JavaSe学习总结_代码块、继承与制作API篇
(一)代码块:在Java语言,用{}括起来的内容,简称为代码块
1 代码块的分类:
1.1 局部代码块:书写的位置,是在方法中定义的{代码...}
作用:限定变量的生命周期的
1.2 构造代码块:在类的成员位置,每次在执行构造方法之前,如果当前类中有构造代码块,优先执行构造代码块,再执行构造方法
作用:如果多个类的构造方法中有共有的内容,可以将抽取到构造代码块中
1.3 静态代码块:在类的成员位置,在{} 外面被static,静态代码块
作用:优先于对象存在,静态代码块只执行一次,优先执行
2 静态代码块、构造代码块、构造方法之间的优先级:静态代码块>构造代码块>构造方法
代码:
运行结果:
(二)继承
代码:
运行结果:
1 格式:class 子类名(派生类) extends 父类名(超类){}
2 继承的好处:
a 提高代码的复用性
b 后期利于维护
c 继承关系是多态的前提
3 继承的特点:只支持单继承,不支持多继承,但是可以支持多层继承
4 注意事项:
a 子类继承父类,只能继承父类的非私有的成员变量和成员方法
b 子类不能继承父类的构造方法,只能通过super()间接的去访问父类的构造方法
c 不要了部分功能去使用继承(当A类是B类的一种,能体现出是一种”is a”的关系,则使用继承)
5 super关键字:可以间接父类的构造方法
6 this关键字和super关键字的应用场景:
6.1 成员变量
this.成员变量
super.成员变量
6.2 构造方法
无参:this();super() ;
有参:this("..");super("..");
7 如果父类的无参构造方法没有给出,子类的构造方法会报错?如何解决?
会报错,解决方法:
a 手动给出父类的无参构造
b 间接的通过super(…)访问父类的有参构造
c 通过this():访问本类中的无参构造方法,再通过本类无参构造方法里面第一个语句super(…)访问父类的有参构造
8 关于继承中成员变量的访问特点?
8.1 子类继承父类,如果他们的成员变量名称不一致:分别输出;
8.2 如果成员变量名称一致:
a 首先,在子类的局部位置中找,有就输出;
b 没有,在子类的成员位置找,有就输出;
c 还没有,直接在父类的成员位置中,有就输出;
d 如果没有,就会报错
9 继承中的成员方法访问特点:
a 当成员方法名称不一致的时候,分别调用
b 当成员方法名称一致的情况,首先在子类中查看,如果有,就调用;如果没有,就调用父类的成员方法;
10 overload(方法重载)和overread(方法重写)区别:
override(继承):当子类出现了和父类一模一样的方法的时,子类的方法会重写父类的方法,调用的子类的功能
overload(方法):在方法中,多个方法名相同,且参数列表不同
11 final关键字:被final修饰的类、变量、成员方法不能被直接继承、覆盖
(三)制作API
代码:
DOS命令:
结果: