1 this
1.1 是什么
this 是对象中第一个成员变量 里面存放着当前对象的地址;
this只能出现在成员方法中 不能出现在静态方法中 因为静态方法无法使用成员变量
谁调用这个成员方法 this代表的就是谁
1.2 能做什么
1 用在成员方法/构造方法中 区分同名的成员变量跟局部变量
2 用在构造方法中 用于重载调用当前类中其他的构造方法
3 返回this,用于链式调用
1.3 怎么用
1.3.1 区分成员变量跟局部变量
1.3.2重载调用构造方法
1.3.3 链式调用
1.4 注意
this 不能出现在静态方法中
2 static
2.1 是什么
static 修饰符 标注静态属性 如果没有使用static修饰的haul就是成员属性
2.2能做什么
功能 1 静态变量
2 静态方法
3静态语句块 static修饰static{}
2.3 静态语句块
static{} 可以理解为没有名字 没有返回值的方法
静态语句块 不能调用 在类加载的时候会自动调用 并且只能执行一次(main方法之前执行)
静态语句块 跟静态变量是同优先级并且先与main执行
所有的静态属性都是在加载的时候进行初始化的
访问一个类的时候(比如创建该类对象 使用该类的方法)会加载该类到内存中此时 静态语句块会执行
整个程序生命周期中 类只会被加载一次 因此静态语句块只能执行一次 并且在最开始执行 因此适合做初始化
2.4 实例语句块
没有static修饰的语句块 等同于没有名字的成员方法
实例语句块在创建对象的时候立刻执行 而且是在构造方法之前执行 每创建一个对象就会执行一次
3 封装
在Java中,封装(Encapsulation)是一种面向对象编程的特性,它指的是将数据和操作数据的方法(即类的成员变量和方法)包装在一个单元(即类)中,以实现对数据的控制访问和保护。
通过权限修饰符将数据隐藏起来 控制用户对数据的修改程度
适当的封装利于代码理解 提高安全性容易维护】
3.1包机制
3.1.1 package
package 引入包机制 解决命名冲突问题
因为完整的类名是带有包名的
package规定编译之后class文件的放置目录 不是java文件的放置目录
packag必须放在第一行
3.1.2 import
import 导入其他类 使当前类中可以直接使用该类 而不用编写类的全名
improt 包名.类名。
import 包名.*
放在class之上 package之下
3.2权限控制
private 只能本类使用
default 只能当前的包内的类使用
protected 只能当前包内或者是这个类的子类使用
4 继承
4.1 是什么
继承是从一个已有的类中 衍生出一个新的类 该类往往包含着父类的特征而且可以增加新的特征属性
java支持单继承一个类只有一个父类 但是一个类可以有很多子类 继承可以传递
默认继承的是Object类
Object是根类所有的类间接或者直接继承
4.2 能做什么
好处 代码复用
功能 方法覆写
4.3 怎么用
class 类名 extends 父类名{类体}
5 super
5.1是什么
super 在子类中 表示父类特征 super里面保存着父类的属性方法 (可以理解为父类对象 但是不准确)
5.2能做什么
1 区分子类跟父类同名的属性跟方法
2 在子类构造方法中 重载调用父类的构造方法
5.3 怎么用
5.3.1 区分父子类同名的属性 方法
5.3.2 调用父类的构造方法
super 可以在子类构造方法里面调用父类构造方法
在子类构造方法中 如果第一行没有写super()或者this()会有一个默认的super()调用父类的无参构造
在父类中没有无参构造那么 需要手写 带参的 super(**)
先父后子
5.4 注意
super()只能出现在子类构造方法的第一行因此不能与 this()同时出现
因为构造方法第一行如果有super()调用父类的话 如果某一个类构造方法私有化了那么
该类不会被继承