一、代码块:
被{}包起来的代码,就是代码块
分类:
局部代码块
在方法中,被{}括起来的部分,作用,缩短变量的生命周期,及早释放内存
构造代码块
在类中方法外,每次在调用构造方法之前,都会先调用构造代码块的内容
静态代码块
在类中方法外,加上static,在加载类的时候调用一次,优先于构造方法执行
//同步代码块
二、继承: extends
让类与类之间产生关系,形成子父类的关系
定义格式:
class 子类 extends 父类 {
}
继承的好处与弊端:
好处:
1、提高代码复用性,代码少了
2、提高代码的可维护性,代码好改
3、让类与类产生关系,是多态的前提
弊端:
耦合性增强
开发原则:
高内聚,低耦合
内聚:自己完成一件事情的能力
耦合:类与类之间的关系
java中的继承特点:
1、只支持单继承,不支持多继承,支持多层继承,形成继承体系
2、如果想用体系的所有功能,就用最底层的类
如果想知道体系的共性功能,就查看最顶层的类
使用继承的注意事项:
1、不能继承私有的;
2、不能继承构造方法; super
3、符合 is a的关系的时候,才使用继承,不要为了部分功能而继承
三、this和super区别:
1、this是本类当前对象的引用
super是当前对象父类的引用
2、this访问成员变量,既可以访问本类的,也可以访问父类的
super只能访问父类的成员变量
继承中构造方法之间的关系:
子类的构造方法默认会访问父类的空参构造
构造方法的注意事项:
1、如果父类中没有空参构造,怎么办,答:访问父类的有参构造
两种访问方式:
super(String name, int age);
public Dog() {
this(name,age);
}
public Dog(String name,int age) {
super(name,age);
}
this(String name,int age)
2、super语句和this语句必须在构造方法的第一行
继承中成员方法之间的关系:
1、如果你的子类里面没有和父类中的方法重名的方法,子类对象可以直接调用父类的成员方法
如果子类中有和父类中重名的方法,子类对象使用的是子类的成员方法
2、super
1、super访问父类的成员变量
super.变量
2、super访问父类的构造方法 super();
3、super访问父类的成员方法 super.成员方法()
3、重写
override
继承中成员方法的重写:
在子父类中出现了一模一样的方法
四、方法重写的注意事项:
1、父类中私有的方法不能被重写,因为子类无法继承父类的私有方法;
2、在重写的过程中,子类方法的权限不能小于父类方法的权限
3、静态只能覆盖静态,静态不能覆盖非静态,非静态也不能覆盖静态
重写和重载的区别:
重写,override,子父类中出现了一模一样的方法声明,方法体可以不一样
重载,overload,在同一个类中,方法名相同,参数列表不同,与返回值类型无关
final关键字:
1、修饰类,类不能被继承;
2、修饰方法,方法不能被重写;
3、修饰变量,变量就变成了常量,只能赋值一次;
public static final int MINITES_PER_HOUR = 60;
1 * MINITES_PER_HOUR * ASDFASDF
final修饰局部变量:
1、基本数据类型,值不能改变
2、引用数据类型,地址不能改变,但是地址所指向的对象的属性可以改变
final int[] arr = new int[3];
final修饰的变量初始化时机:
1、显示初始化;
2、构造方法完成之前 |
|