This
this是每个对象中保存自身内存地址的一个引用类型变量
应用:
1.在成员方法/构建方法中,使用this.变量,来区分同名的成员变量和局部变量
2.在构造方法中,可以重载调用当前对象的其他构造方法(必须在构造方法第一行)
3.return this 可以做到链式调用
区分成员变量和局部变量
重载调用构造方法
链式调用
注意:静态方法中无法调用非静态变量this。
Static
static是静态修饰符,用于区分静态和成员属性
应用:
1.static修饰的变量是静态变量
2.static修饰的方法为静态方法
3.static语句修饰的语句块/代码块是静态语句块
静态语句块
static{]可以看作一个没有名字的方法,不能复用,只能执行一次。当程序加载时,会自动调用静态语句块,并且整个类生命周期中只执行一次,访问一个类静态属性时会加载该类。由于静态语句块最先执行,并且只执行一次,所以适合做一些类初始化相关工作
实例语句块
实例语句块可以看作没有名字的成员变量,只有一对{},每次创建对象时,实例语句都会被执行,并且在构造方法之前执行。
顺序:静态->main->实例->构造
封装
包机制:
可以将文件分类管理,另外可以解决命名冲突的问题。注意package限制的是class文件的存放位置,跟Java文件无关,
带有package的代码应该这样编译和运行:
编译:javac -d 生成路径 java源文件路径
javac -d ./ -encoding utf-8 xxxx.java
运行:java 包名.类名
java com.Test
import:
import用于导入用到的其他类,在当前类中可以直接写类名进行调用,语句中可以有多个,但是必须在package语句之下,class语句之上,如果用到的是Java.lang.*类,则不需要导入,因为Java.lang包下是核心类
权限控制:
继承
继承是从已有的类中派生出新的类,新的类能吸收已有类的属性和行为,并且还能扩展新的属性和行为。在Java中只支持单继承,即一个类只能由一个父类,但是一个父类可以有多个子类。Java中继承是可以传递的,引入继承可以提高代码的复用性。
语法:class 类名 extends 父类名 {}
注意:当一个类没有显示继承另一个类的时候,则默认继承Java.lang.Object, Object是Java提供的根类,私有化属性是不能被继承的
应用:代码复用,方法覆写,多态
Super
super保存了父类的特征,可以理解为父类引用对象
应用:
1. 在子类成员方法中/构造方法中,用于区分父类与子类同名的成员变量
2.在子类构造方法中,super(....)调用父类的构造方法,但是必须在子类构造方法的第一行
注意:如果在子类构造方法中,没有县市出现this()和super()的话,默认第一行有super()调用父类无参构造。且this()和super()不能同时出现在构造方法中。构造方法私有化后不能再被继承。
区分父子类同名的属性
覆写/重写
覆写/重写是对继承的方法进行重新编写。
应用场景:当父类的功能无法满足子类需求的时候,子类需要根据自己的需求进行重写
覆写/重写的要求:
1.必须是有继承关系的体系中
2.方法名,返回值,参数列表,都必须相同
3.覆写的方法不能比原方法更低的访问权限
4.不能比原方法更广泛的异常
5.覆写特指成员方法,只有成员方法可以覆写
覆写的目的:为了满足需求、减少错误、访问权限越来越广
注意:@Override注解,是一种源码注解,生成class文件后就会被删除,该注解只是一种检查机制,当编译时,会检查该方法是否符合覆写的方法,如果不符合,会提醒程序员报错。