九java常用关键字,特性,代码块1012
1.构造方法
实例化对象
初始化属性
开辟存储空间
特点:一个类存在一个默认的无参构造方法
构造方法无返回值且和类名一致
构造方法可重载
定义构造方法会覆盖默认的构造方法
构造方法可相互作调用,通过this表示,但必须放在首行
2.this
this表示当前对象
this不能和static结合使用
this可访问属性,方法
this可以用作构造方法名使用,但必须放在首行
3.static
static表示静态的
用static修饰的成员变量,方法可直接用类名访问,也可以使用对象来访问
被该类所有对象所共享
不用static修饰的成员变量,只能通过对象名访问,属于单个对象
4.final
用来修饰属性,方法和类
当final修饰成员变量时,被修饰的变量必须被初始化(赋值),变量为常量,其值不能改变,不能修饰局部变量
当final修饰方法时,该方法无法被子类重写;
当final修饰类时,该类不能被继承,并且所有成员方法都会被隐式地指定为final方法
5.封装性
用访问限制符(private)保护成员变量
以及提供对应的get()/set()方法
6.继承extends
减少代码重复率,通过extends关键字指定
特点:单继承 一个子类只有一个父类
多层继承 一个类可有多个子类
作为子类,可继承父类的属性,方法,也可定义属性和方法
super:指的父类或父类的父类的对象
可直接访问父类的成员属性和成员方法(包括构造方法)
子类构造方法调用父类构造方法时,super须作为第一条语句,若没有调用,会自动调用父类的无参构造方法
不能和static结合使用
比较点 | this | super |
---|---|---|
属性 | this.属性表示的是本类中的属性,如果在子类中找不到属性则会从父类中继续查找 | super 属性,表示直接找到父类中的属性 |
方法 | this.方法()表示调用本类中的方法,如果找不到则从父类中查找 | 表示从子类直接找到父类中被子类覆盖过的方法 |
构造 | 可以调用本类中的其他构造方法,要放在构造方法的首行 | 从子类调用父类的构造方法,要放在子类构造方法首行 |
特殊点 | this 表示当前类对象 | super表示父类对象 |
7.修饰符
public 可以被不同包的类访问
默认 可以被同一个包的类访问
protected 可以被同一个包或不同包的子类访问
private 只能在本类中使用
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cfw47Oq3-1602474043167)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\1602471846135.png)]
8.方法重载
方法名相同
参数列表不同(与返回值无关)
9.方法重写(覆盖)**
只在子类继承父类的过程中,子类存在一个和父类方法名,参数列表,返回值类型都相同的方法
满足的要求:只存在子类继承父类关系中
子类方法名称,参数列表和返回类型必须和父类方法一致
子类方法不能缩小父类方法的限定符
子类方法不能抛出比父类更多的异常
注:父类的静态方法只能被子类的静态方法覆盖
若父类方法用final修饰,则该方法不能被重写
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zkVK5hx7-1602474043170)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\1602472892329.png)]
10.多态
多态是同一个对象同一个行为注入不同的实例执行不同的动作
多态存在的条件:继承
重写
父类引用指向子类对象
11.代码块
普通代码块
放在方法内部
静态代码块
放在类的下面,不能放在方法内部,通过static关键字指定
优于主方法执行,且只执行一次
构造代码块
放在类的下面,不能放在方法内部
每次实例化对象都会执行,优于构造方法执行