1.This
1.1是什么
this是什么:是每个对象中,保存自身内存地址的一个引用类型变量
this就表示当前对象
能做什么
1.在成员方法或者构造方法,区分同名的成员变量和局部变量 this.xxx
2.用在构造方法中,重载调用当前类中其他构造方法,但是必须写在构造方法的第一行
this(xxx)
3.return this返回当前对象的内存地址,可以链式调用
1.3怎么用
1.3.1区分成员和局部
public class This_01{
static int b=2;
public static void main(String[]args){
int a = 2;
int b = 2l
//静态变量可以和局部变量同名
//局部变量优先级更高
//可以使用类名区分同名的静态变量和局部变量
System.out.println(a);
System.out.println(This_01.b);
System.out.println(b);
}
//成员变量
int d =2;
public void m1(){
//成员变量可以和局部变量同名
//局部变量优先级更高
//可以使用this区分同名的成员变量和局部变量
int c = 2;
System.out.println(c);
System.out.println(d);
int d = 3;
System.out.println(d);
System.out.println(this.d);
}
}
1.3.2重载调用构造方法
1.3.3链式调用
1.4注意
this不能出现在静态上下文
2.Static
2.1是什么
修饰符,关键字,用来区分静态和成员
2.2能做什么
static 能做什么
1.在类体中使用static修饰的变量是静态变量
2.用static修饰的方法,是静态方法
3.还可以使用static定义静态语句块
2.3静态语句块
2.4实例语句块
3.封装
把所有组成部分组合在一起,还可以通过权限修饰符将数据隐藏起来,可以控制用户对类数据的修改程度
适当的封装可以让代码更容易理解,易于维护,更提高了代码的安全性
3.1包机制
3.1.1Package
3.1.2Import
注意 : 按空格 或者回车的时候 会自动导包,如果程序没有问题,但是报错,可以查看一下是否导包错误
3.2权限控制
4.继承
4.1是什么
继承:就是在已有的类中派生出新的类,新的类吸收已有类的属性和行为
java中只支持单继承不支持多继承,并且继承可以传递
一个类只能继承一个父类,但是一个类可以被很多子类继承
4.2能做什么
继承的目的:代码复用,提高效率,如果父类满足不了子类需求的话,还可以进行覆写,可以使用多态
如果一个类没有显示继承一个类,那么该类 默认继承Object
java.lang.Object是java中提供的根类,所有类都会直接或者间接性的继承这个类
4.3怎么用
语法: class 类名 extends 父类名{类体}
5.Super
5.1是什么
super:官方说法是代表父类的特征
5.2能做什么
5.3怎么用
5.3.1区分父子类同名的属性
5.3.2调用父类的构造方法
5.4注意
如果在子类构造方法中,没有显示出现super()也没有出现this(xxx) 则默认有一个super()调用父类无参构造
并且super(xxx)必须出现在子类构造方法第一行所以
this(xxx)和super(xxx)不能同时出现
因为构造方法第一行super()调用父类构造,所以某一行如果构造方法私有化了,那么该类不会被继承
6.覆盖/重写
6.1是什么
覆盖/重写:写一个和父类一样的方法,但是功能不一样
1.方法名,返回值,参数列表 必须和父类一样
2不能比原方法拥有更低的访问权限
3不能比原方法拥有更宽泛的异常
覆写 特指成员方法,也就是 只有成员方法 可以覆写
6.2应用场景
当父类功能无法满足子类需求的时候,进行覆写