Java基础第八讲

来源:互联网 发布:订单系统代码java 编辑:程序博客网 时间:2024/06/05 05:10
一、代码块


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)如果修饰方法,方法不能被重写.

0 0
原创粉丝点击