Java学习笔记
传送门:
Java学习笔记(一)
Java学习笔记(二)
Java学习笔记(三)
学习内容:
imooc课程:Java入门第二季 升级版
Ⅰ面向对象的基础认知
Ⅱ面向对象特性之封装
Ⅲ面向对象特性之继承和多态
2021.09.29打算稍微抽点时间学完课程
学习笔记:
一、面向对象的基础认知
世间万物皆对象
类是对象的模板
特征是静态、行为是动态
1.类和对象的关系
-
类是抽象的概念,是对象的模板
-
对象是具体的事物,是类的具体事例
-
System.out.println(“hello world!”)
-
System
是类,out
是静态成员变量,println
是调用方法。
2.面向对象编程
- 面向对象编程是利用编程方式体现出现实中类与对象
- 从已有的现实类中定义程序中的类(Class)
- 从类(Class)创建(实例化)具体的对象(Object)
3.创建类的写法
public class 类名{
//类的内容;
}
类名首字母要大写
4.创建类的实例对象
类名 对象名 = new 类名();
new关键字是创建实例的重要标识;
对象的命名规则和变量的一样|首字母小写,随后有意义的每个单词首字母大写|不可用拼音命名;
引用类型传的是地址
引用类型的赋值需要用到new
5.成员变量
- 成员变量就是隶属于对象的变量;
- 成员变量用于保存对象的静态特征;
- 同类型的不同对象拥有相同的成员变量,但值彼此独立。
6.方法
- 方法(Method)是用于完成特定功能的整段代码
二、面向对象特性之封装
1.包-package
- 把功能相似或相关的类组织在同一个人包中
- 包也采用了树形目录的存储方式
- 通过包也可以限定类的访问权限
2.包的命名规则
- 包采用“逆域名法”进行命名,用“.”分割,单词全部小写
- 标准格式:域名后缀.组织机构名.项目名[.模块名].包的职能
eg.
com.imooc.weather.ui
com.alibaba.taobao.customer.data
Note:
- package关键字用于说明当前类归属于哪个包
- import关键字用于导入其他包的类
- 同一个包下的类无需import导入
3.访问修饰符
- 访问修饰符用于控制类、成员变量、方法的访问范围
- 不写访问修饰符代表是默认修饰符,表示只能被包中的其他类访问
4.面向对象三大特征
- 封装、继承、多态
5.封装
- 封装即隐藏功能的实现细节
- 利用对象与方法是实现封装的直接途径
- 良好的封装让代码更容易阅读与维护
6.对成员读写进行封装
- getter:
public 成员变量类型 get成员变量名()
,成员变量首字母大写 - setter:
public void set成员变量名(新的数据参数)
,使用this
三、面向对象特性之继承和多态
1.继承
extends
关键字用于类的继承extends
关键字后面是“父类”,extends
关键字前面是“子类”- 子类会继承父类的 (default)/protected/public修饰的成员变量与方法
2.访问修饰符作用范围总结
修饰符号 | 本类 | 同一个包的类 | 继承类 | 其他类 |
---|---|---|---|---|
private | 1 | 0 | 0 | 0 |
无(friendly) | 1 | 1 | 0 | 0 |
protected | 1 | 1 | 1 | 0 |
public | 1 | 1 | 1 | 1 |
其他与OOP有关的修饰符
- fianl —— 代表类中的最底层,不能再派生子类
- abstract —— 修饰抽象类或方法,抽象方法的方法体为空
- this —— 指代本类
- super —— 指代父类
3.多态
- 多态是同一个行为具有多个不同表现形式或形态的能力
4.接口
- 接口(interface)是一个抽象的类型,只提供方法的定义,不能被实例化
- 实现类是一个接口的具体实现,要实现每一个接口方法的功能
- 接口类(interface)中不能有具体的实现方法,接口类的继承类(implement)中必须要有具体的实现方法
5.ArrayList类
- ArrayList类是Java内置的数据集合,用于存储多个数据
- ArrayList是数组替代品,提供了更多的数据操作方法
- ArrayList几乎是每一个项目中必用的类
- 支持泛型(eg.
List<String>
) add()
末尾追加元素(也可以插入到指定位置)、remove()
末尾移除元素- 循环遍历
for(String book: bookList)