一、代码块
1.局部代码块
在方法内部.限定变量的周期,更早的释放,从而提高内存的利用率.
2.构造代码块
在类类的里面,方法的外面.多个构造方法中相同的代码存放在一起,每次调用构造都执行,并且在构造方法前执行.
3.静态代码块
1)在类中,方法外.被static修饰.
2)用于对类进行初始化,在类加载的同时执行,只执行一次.
二、继承
1.继承的好处
1)提高代码的被复用性
2)提高代码的维护性
3)使类和类之间产生关系.
2.继承的弊端
增强了类的耦合性.如果子类改变,父类也会受到影响.
3.继承的特性
1)Java中只支持单继承,不支持多继承.如果支持多继承的话,有相同名字的方法,调用时,会有差异.
2)Java支持多层继承.类1继承类2,类2继承类3.
3)如果需要用某个体系的所有功能,需要对最底层的类创建对象.
4)如果想看某个体系的功能,最顶层的即可.
4.继承中的注意事项
1)子类只能继承父类中所有的成员方法和成员变量.
2)子类不能继承父类的构造方法,但可以通过super关键字来访问父类的构造方法.
3)不要为了部分的功能使用继承.适用于某个类是另一个类的一种.如:香蕉是水果的一种.
4)子类初始化前,要先完成父类数据的初始化,因为子类会继承或使用父类中的数据.
三、super关键字
1.作用
1)调用父类的成员变量.
2)调用父类的构造方法.
3)调用父类的成员方法.
2.注意事项
1)super或this必须出现在第一条语句上,如没有,系统会默认一个super.
四、方法重写(Override)和方法重载(Overload)
1.方法重写
1)应用
当子类需要父类的功能时,而功能主体子类有自己特有的内容时,可以重写父类中的方法.这样即演戏了父类的功能,又定义了子类特有的内容.
2)注意事项
父类中的私有方法不能被重写.因为父类私有方法子类不能继承.
子类重写父类方法时,访问权限不能低于父类,最好一致.(public)
父类的静态方法,子类也必须通过静态方法进行重写.
子类重写父类方法时,声明最好一样.
3)方法重写与方法重载的区别
方法重写是子类的方法覆盖父类的方法,所以方法名和参数要相同.
重载是在类中有同名的方法,但参数列表不同,与返回值无关.
class TestAnimal {
public static void main(String[] args) {
Cat c = new Cat("蓝色",4);
c.catchMouse();
}
}
class Animal{
private String color;
private int legs;
public Animal(){}
public Animal(String color,int legs){
this.color = color;
this.legs = legs;
}
public void setColor(String color){
this.color = color;
}
public String getColor(){
return color;
}
public void setLegs(int legs){
this.legs = legs;
}
public int getLegs(){
return legs;
}
}
class Cat extends Animal {
public Cat(){}
public Cat(String color,int legs){
super(color,legs);
}
public void catchMouse(){
System.out.println(getLegs() + "条腿" + getColor() + "颜色的猫" + "可以抓老鼠");
}
}
class Dog extends Animal {
public void lookHome(){
System.out.println("我是" + getColor() + "的狗" + "我有" + getLegs() + "条腿" + "我可以看家");
}
}
五、final关键字
1.作用
可以用来修饰类,变量,方法.
2.特点
1)如果修饰了类,则类不可以被继承.
2)如果修饰变量,修饰的变量如果是基本数据类型,则其值不能被改变.修饰的如果是引用数据类型,则其储存的地址不能被改变.
class Demo3_Final {
public static void main(String[] args) {
Demo d = new Demo();
d.print();
}
}
class Demo {
final int NUM ;
public void print() {
NUM = 20;
System.out.println(NUM);
}
}
3)如果修饰方法,方法不能被重写.