一、面向对象
1.1 This
1.1.1 是什么
this:是每个对象中,保存自身内存地址的一个引用类型变量(成员变量)
因此this无法在静态上下文使用
1.1.2 能干什么
1 用在成员方法和构造方法中,区分同名的局部变量和成员变量
2 用在构造方法中,用于重载调用当前类中其他构造方法,提高代码重用性
3 return this可以链式调用
1.1.3 怎么用
1.1.3.1 区分成员变量和局部变量
1.1.3.2 重载调用构造方法
1.1.3.3 链式调用
1.1.4 注意
this无法在静态上下文使用
1.2 Static
1.2.1 是什么
static关键字,是修饰静态的修饰符
1.2.2 能干什么
1 静态修饰变量
2 静态修饰方法
3 修饰静态语句块
1.2.3 怎么用
1.2.4 实例语句块
一般对象初始化写在构造方法中,很少写实例语句块
1.2.5 静态和成员的应用场景
静态变量是类的所有对象共有的属性和值
成员变量是类的所有对象共有的属性,值可以相同可以不同
1.3 封装
1.3.1 软件包机制
1.3.1.1 Package
package软件包机制,方便分类管理,可以解决命名冲突问题
一般采用公司域名倒叙的方式命名
在Java中.package语句 是限制class文件的保存位置,与Java文件无关
package语句 可以不写,如果写的话,必须写在Java源文件第一行
1.3.1.2 import
1.3.1.3 注意
// 注意 : eclipse编程中,按空格和回车的时候 会自动导包,此时需要注意,导入的是否是正确的
1.3.2 权限控制
1.4 继承
1.4.1 是什么
概念:从已有类中派生出新的类,新的类会拥有父类的属性和行为
- Java只支持单继承,这样使Java类关系比较简单
- 一个类可以被很多类继承
- Java中继承是可以被传递的
- 如果一个类没有显示继承另一个类的话,默认继承object,object是Java提供的根类(祖宗)
1.4.2 能做什么
继承目的:代码复用
1.4.3 怎么用
通过extends表示 class 类名 extends 父类名 {}
1.5 super
1.5.1 是什么
super : 在子类中,通过this表示当前对象,通过super表示父类
1.5.2 能干什么
1 用在成员方法和构造方法中,区分分子类同名的属性
2 用在构造方法中,用于重载调用父类的构造方法super(),必须写在子类构造方法第一行
而this()也必须在构造方法第一行,所以this()和super()不能同时出现
如果子类构造中,没有写this(…),也没有写索super(…),则第一行默认有super()去调用父类无参构 造
this和super都不能在静态上下文使用
1.5.3 怎么用
1.5.3.1 区分父子类同名属性
1.5.3.2 调用父类构造
子类创建对象,一定会执行父类构造方法
1.5.4 注意
this和super都不能在静态上下文中使用
而 this() 也必须在构造方法第一行,所以 this() 和 super() 不能同时出现
二、覆写override
2.1 是什么
方法覆写:子类对父类方法进行重新编写
当父类功能无法满足子类需求的时候,子类可以根据需求进行覆写
覆写条件:
1 必须有继承关系的体系中
2 方法名,参数列表,返回值必须一致
3 不能比原方法有更低级的访问权限
4 不能比原方法有更宽泛的异常
5 方法覆写,特指成员方法(只有成员方法可以覆写)
2.2 应用场景
当父类功能无法满足子类需求时,子类可以根据需求进行覆写
2.3 面试题
三、final
3.1 是什么
final 是个修饰符,表示最终的,不可更改的
3.2 能做什么
-
final修饰的类 不能被继承
-
final修饰的成员方法,不能被覆写
-
final修饰的成员变量,没有默认值,必须显示赋值(不能有不赋值的情况),不能二次赋值
-
final修饰的静态变量,是常量,没有默认值,必须显示赋值(不能有不赋值的情况),不能二次赋值
一般会和public一起使用,psf:public static final,并且常量名,一般全大写
- final修饰的布局变量,不能二次赋值
3.3 怎么用
3.4 深入final
能二次赋值
- final修饰的静态变量,是常量,没有默认值,必须显示赋值(不能有不赋值的情况),不能二次赋值
一般会和public一起使用,psf:public static final,并且常量名,一般全大写
- final修饰的布局变量,不能二次赋值
3.3 怎么用
[外链图片转存中…(img-poEXPqzR-1722338963027)]