Java学习笔记:面向对象与多态
1星 需积分: 44 149 浏览量
更新于2024-09-09
2
收藏 2.17MB PDF 举报
"小码哥 任小龙的Java学习笔记,主要涵盖了Java的基础知识,包括面向对象、for循环增强、可变参数以及类的结构、封装、权限控制、构造器重载、继承、覆盖方法、子类初始化、多态等核心概念。"
在Java编程中,面向对象是其核心特性之一。面向对象编程(OOP)允许我们将复杂的程序设计分解成一系列相互协作的对象。在Java中,类是对象的蓝图,它定义了对象的属性(成员变量)和行为(方法)。成员变量可以是类成员(使用`static`修饰)或实例成员。类成员对所有对象共享,而实例成员仅属于特定对象。
`for`循环增强是一种简化遍历数组或集合的方式。例如,对于数组`Num[]`,可以用`for (int var : Num) { ... }`这样的语法来依次输出数组中的元素,这被称为foreach循环或者增强for循环。
可变参数是Java 5引入的新特性,允许方法接受不定数量的参数。在方法声明中,使用`...`来表示可变参数列表,这样就可以传入任意数量的同类型参数。
在面向对象编程中,`static`关键字用于标记类级别的成员,这意味着它们不属于任何特定对象,而是直接关联于类本身。`static`方法只能访问其他`static`成员,而普通方法(非`static`)可以访问静态和非静态成员。`this`关键字代表当前对象的引用,常用于实例方法中访问实例成员,而在构造器中,`this`可以用来调用其他构造器。
继承是面向对象的另一个关键特性,它允许子类继承父类的属性和方法,以此实现代码复用和创建类的层次结构。在Java中,一个类可以只有一个直接父类,但可以有多个子类。覆盖方法(重写)是子类对父类方法的一种改进,通常使用`@Override`注解来标识。如果父类和子类有同名静态方法,则子类的方法会隐藏父类的方法,而不是覆盖。
子类初始化时,首先会执行父类的构造器,确保父类的状态正确初始化。`super`关键字用于在子类构造器中调用父类构造器,并且必须作为第一条语句。`static`与`this`、`super`不兼容,因为`static`属于类级别,而`this`和`super`属于对象级别。
多态是面向对象的另一大特性,它允许将子类对象赋值给父类引用,运行时调用的是实际子类的方法。这种机制使得我们能够编写通用代码,处理多种类型的对象,而无需知道它们的具体类型。多态主要应用于接口,可以减少因类型差异带来的复杂性。
在多态调用时,需要注意以下几点:
1. 如果父类没有某个方法,而子类有,编译会报错。
2. 父类有该方法,子类没有,则会调用父类的方法。
3. 父类和子类都有该方法,会调用子类的方法,这是覆盖的体现。
这些知识点构成了Java面向对象编程的基础,理解和掌握它们对于进行有效的Java开发至关重要。
199 浏览量
145 浏览量
220 浏览量
130 浏览量
351 浏览量
151 浏览量
534 浏览量
人月神话
- 粉丝: 39
- 资源: 13
最新资源
- arithmetic-progression:js,cpp的算术级数
- html5 canvas+three.js实现的水墨风格云雾变换动画特效源码.zip
- 易语言-PE文件头比较小工具
- Nissan HD Wallpapers JDM Sports Cars Theme-crx插件
- System.Runtime.InteropServices.RuntimeInformation 文件
- firefox-selection-fix:一个脚本,用于禁用Firefox损坏的clickSelectsAll行为
- oc-client-browser:OpenComponents浏览器客户端
- 桔子人才:Desafio Zup桔子人才
- Cross_Slide_Coordinated_Viewing_codeChallenge:该存储库是我对gSoC 2021拟议项目caMicroscope的“交叉滑动协作查看”的代码挑战的提交
- K-Pop-crx插件
- webextensions-history-browser:like像老板一样浏览您的Firefox历史记录
- PowerDesigner导出word模版
- paypal-common-components:PayPal JavaScript SDK的通用组件
- 网页设计2021
- React95:带有Win95 UI的React组件库
- DIYInvestmentPrimer:我们想从我们的投资研究中提供基本和简单的信息