Java学习笔记:面向对象与多态
1星 需积分: 44 188 浏览量
更新于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开发至关重要。
2020-05-27 上传
2023-08-30 上传
2024-04-22 上传
2023-05-18 上传
2023-05-30 上传
2023-05-30 上传
2023-06-10 上传
人月神话
- 粉丝: 38
- 资源: 13
最新资源
- StarModAPI: StarMade 模组开发的Java API工具包
- PHP疫情上报管理系统开发与数据库实现详解
- 中秋节特献:明月祝福Flash动画素材
- Java GUI界面RPi-kee_Pilot:RPi-kee专用控制工具
- 电脑端APK信息提取工具APK Messenger功能介绍
- 探索矩阵连乘算法在C++中的应用
- Airflow教程:入门到工作流程创建
- MIP在Matlab中实现黑白图像处理的开源解决方案
- 图像切割感知分组框架:Matlab中的PG-framework实现
- 计算机科学中的经典算法与应用场景解析
- MiniZinc 编译器:高效解决离散优化问题
- MATLAB工具用于测量静态接触角的开源代码解析
- Python网络服务器项目合作指南
- 使用Matlab实现基础水族馆鱼类跟踪的代码解析
- vagga:基于Rust的用户空间容器化开发工具
- PPAP: 多语言支持的PHP邮政地址解析器项目