预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共27页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

黑马程序员java培训就业班笔记day09总结资料仅供参考Day09总结:上午:final关键字:Eg:代码实现:ClassFu{Finalvoidmethod(){//code...访问低层代码}}ClassZiextendsFu{Voidmethod(){Sop("haha");}}以上代码体现出继承的弊端,因为父类的method的方法访问了系统的低层代码。当子类对其覆写,就不会去访问父类的meth的方法,直接用自己的method这样就出现了代码的不严谨性,因此此时需要用final关键字进行修饰。注意为什么不把类加final修饰,因为可能该类中会出现很多功能。有些是不需要被覆写的。有些是被调用的。因此只能根据自己所需对相应的成员进行修饰。Final的特点:final是一个修饰符,能够修饰类、方法、变量(成员变量、局部变量)Final修饰的类不能够被继承。Final修饰的方法不能够被覆盖。Final修饰的变量是一个常量,只能被赋值一次。是为了增强阅读性,只要数据是固定的,就将这个数据用一个名称来表示,并用final修饰。常量名称都是大写字母,多个单词组成时用下划线来分隔。代码体现:Eg:ClassZi{Staticfinalintnum=90;//必须对变量进行初始化,不知道要最终化哪个值,因此必须对它进行初始化。加静态也是一样的,同样的道理,而且被初始化,此时静态和final没有必然的联系。当变量被final修饰时,说明变量已经是一个常量值,此时不能被修饰,能够用static来修饰。PublicstatidoublePI=3.14;Voidmethod(){Finalintx=4;X=8;Sop(num);//既然是在操作一个固定的值。为什么不把4直接写在此处,如果这样做的的话,阅读性极差,你根本就不知道它所代表什么?为了增强阅读性,此时数据是不变化的,因此我们需要给它起个名字,而且用final来修饰。这样的话它也是固定的不变的。注意:被final修饰的数值只能被覆写一次,而且修饰的常量名全部大写,多个单词组成时用下划线进行分隔。Eg:finalintPERSON_AGE=4;}}抽象类:特点:没有方法体的方法,称为抽象方法,必须存放在抽象方法类中,抽象方法和抽象类必须用abstract关键字来修饰,抽象类不能够被实例化,为什么?因为调用抽象方法没有意义?为什么?因为它连方法体都不存在?抽象类必须由其子类将抽象类中的抽象方法都覆盖后,其子类才能够被实例化,否则该子类还是抽象类。Eg:AbstractclassDemo{Abstractvoidshow();}ClassSubDemoextendsDemoVoidshow(){}//此时把父类中抽象方法覆盖,此时才能被实例化。}比如水果,它就是抽象的,不具体它包含各种各样的水果,每种水果有它自己的体现。抽象类涉及的问题?抽象类中是否能够定义非抽象的方法?能够首先抽象类是一个类,类是用来描述事物,只不过描述事物过程中有些信息不具体,抽象类和一般类异同点:相同:抽象类和一般类都用于描述事物,都能够定义成员。不同:抽象类中能够定义抽象成员函数,(抽象要么修饰类要么修饰函数)而一般类不能够。抽象类不能够实例化,一般类能够实例化。抽象类中是否有构造函数?有,而且抽象类虽然自身不能够被实例化,可是其子类覆盖了所有的抽象方法后,是能够实例化的。因此抽象类的构造函数是用于给其子类对象进行实例化。抽象类一般都是一个父类?是、因为需要子类去覆盖父类中的抽象方法。代码体现:AbstractclassDemo{Abstractvoifshow1();Abstractvoidshow2();}AbstractclassSubDemoextendsDemo{Voidshow1();}ClassTestextendsSubDmeo{Voidshow2();}抽象类中可不能够不定义抽象方法?能够;看上去没有什么意义,其实有点意义,就是不让这个类创立对象,为什么不让创立?代码体现:interfaceInterTest//这是一个测试接口,有4种测试方式。{voidtest1();voidtest2();voidtest3();voidtest4();}abstractclassInterTestImplimplementsInterTest//用这个类进行所有的空实现。可是创立对象是毫无意义的。因此用抽象。{publicvoidtest1(){}publicvoidtest2(){}publicvoidtest3(){}publicvoidtest4(){}}classTest2extendsInterTestImpl{publicvoidtest2(){}}classTest3extendsInterTes