欢迎来到天天文库
浏览记录
ID:51588630
大小:571.50 KB
页数:59页
时间:2020-03-24
《孙卫琴《Java面向对象编程》配套PPT--java_base2_oo.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第4课对象和类构造方法重载方法覆盖方法访问控制static变量,方法和初始代码块this引用的用途final类,方法和变量abstract类和方法,接口解释如何以及何时使用内部类降级,以及如何把Java程序从JDK的低版本升级到高版本参考《Java面向对象编程》的第6、7、8和12章interfaceMyIFC{voidmethod1();voidmethod1(inta);}abstractclassBase{publicvoidmethod1(){System.out.println("hi");}protectedabstractvoidmethod2(
2、);}classSubextendsBaseimplementsMyIFC{privateinta;privatestaticintb;publicstaticfinalintC=1;Sub(){this(-1);}Sub(inta){this.a=a;}publicvoidmethod1(){a++;}publicvoidmethod1(inta){this.a=a;}publicvoidmethod2(){a--;}publicstaticvoidmethod3(){b++;}}构造方法声明构造方法的语法规则重载构造方法,参见Employee.java默认
3、构造方法,参见Sample1.java子类调用父类的构造方法,参见Son.java,构造方法的语法规则一个新对象的初始化的最终步骤是去调用对象的构造方法。构造方法必须满足以下条件:方法名必须与类名称完全相匹配;不要声明返回类型;不能被static、final、synchronized、abstract、native修饰。publicclassSample{intx;publicSample(){//No-argconstructorx=1;}publicSample(intx){//int-argconstructorthis.x=x;}}构造方法的语法规则p
4、ublicclassSample{intx;publicvoidSample(){x=1;}publicstaticvoidmain(Stringargs[]){Samples=newSample();System.out.println(s.x);}}重载构造方法publicclassEmployee{privateStringname;privateintsalary;publicEmployee(Stringn,ints){name=n;salary=s;}publicEmployee(Stringn){this(n,0);}publicEmployee
5、(){this("Unknown");}}Employeetom=newEmployee("Tom",1000);Employeejack=newEmployee("Jack");Employeesomeone=newEmployee();默认构造方法默认构造方法是没有参数的构造方法,你可以显式定义类的默认构造方法。为了保证每个类至少有一个构造方法,如果定义的类中一个构造方法也没有写,Java将自动提供一个默认构造方法。该构造方法没有参数,用public修饰,而且方法体为空。格式如下:publicClassName(){}只要类中显式定义了一个或多个构造方法,
6、而且所有显式定义的构造方法都带参数,那么将失去默认构造方法。默认构造方法publicclassSample1{}publicclassSample2{publicSample2(inta){System.out.println(“MyConstructor”);}}publicclassSample3{publicSample3(){System.out.println(“MyDefaultConstructor”);}}Sample1s1=newSample1();Sample2s2=newSample2();//非法Sample2s22=newSample
7、2(1);Sample3s3=newSample3();在构造子类对象时,JVM会先调用父类的构造方法子类构造方法中通过super语句调用父类构造方法如果子类构造方法中没有通过super语句调用父类构造方法,那么JVM会调用父类的默认构造方法,如果不存在默认构造方法,将导致编译错误子类调用父类构造方法classFather{StringfatherName;Father(){this.fatherName=“未知";}Father(StringfatherName){this.fatherName=fatherName;}}classSonextendsFat
8、her{StringsonName;S
此文档下载收益归作者所有