欢迎来到天天文库
浏览记录
ID:34632774
大小:172.07 KB
页数:7页
时间:2019-03-08
《(三)corejava高级特性总结new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、http://www.aloaha.comSomePDFFeaturessuchasprinting,editing,128BITencryption,etcaredisabledinevaluationmode一.高级特性:关键字:staticfinalabstract在开始之前,我们有必要来复习一下‘多态’相关的知识点:1.多态的原则:满足开----闭原则。(后面会再讲到此原则,先有个概念):在不影响原有功能的基础上有可扩展性。2.多态的应用:把共性都抽取出来,而个性才分到具体的子类中。3.注意:我们在设计的
2、时候,尽可能地在方法调用,返回值类型,形参,都应该应用多态。这样程序的复用性,可扩展性都很好,还可以降低耦合性。如:packageday05;publicclassTestPoly{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubVehiclev=getVehicle(Integer.parseInt(args[0]));goHome(v);}/*************注:此处为了方便,我把以下两个方法都写成了静态的.*此方法是为
3、了获得一种交通工具,它属于一种工厂,专门用来生产'交通工具'*@paramtype:根据此类型参数,来确定生产哪种'交通工具'*/publicstaticVehiclegetVehicle(inttype){if(type==0)returnnewBike();elseif(type==1)returnnewCar();elsereturnnewPlane();}/**********************************此方法使用Vehicle(交通工具)来做为形参.在实现在使用它的run()方法.*
4、@paramv*/publicstaticvoidgoHome(Vehiclev){v.run();}}http://www.aloaha.comSomePDFFeaturessuchasprinting,editing,128BITencryption,etcaredisabledinevaluationmodeclassVehicle{publicvoidrun(){}}classBikeextendsVehicle{publicvoidrun(){System.out.println("gohomebyBi
5、ke");}}classCarextendsVehicle{publicvoidrun(){System.out.println("gohomebycar");}}classPlaneextendsVehicle{publicvoidrun(){System.out.println("gohomebyplane");}}以上是我们对于多态的一个例子,希望能让大家对多态的理解有所帮助。关键字:static可以修饰:属性,方法,代码块(局部变量不能做静态)修饰属性:static属性:表示此属性是属于整个类的,不属于某
6、一对象,所以它也叫类变量,存放在代码空间。概念:类加载的过程?现在我们思考一个问题,JAVA虚拟机怎么来加载类文件的?:JAVA虚拟机通过输入流来读入JAVA字节码文件的过程。就是类加载的过程。那么我们说,在类加载时,JAVA虚拟机就会为类静态属性初始化,初始值为0或null;注:静态实例变量可以用类名直接来调用。如:Student.id;当然也可以用对象来拿,但不建议这么做。现在,我们来比较一下:静态实例变量,实例变量,局部变量的区别?1.静态实例变量也叫类变量,类加载时就开始初始化,类卸载时消亡,存放在代码区
7、。2.实例变量,有了对象之后才有,有初始值,存放在堆区,随对象而存在3.局部变量,只在定义它的代码块内有效,存放在栈区.http://www.aloaha.comSomePDFFeaturessuchasprinting,editing,128BITencryption,etcaredisabledinevaluationmode修饰方法:静态方法:特点:在静态方法中不能访问非静态成员(含属性和方法)静态方法可以被覆盖,但没有多态。所以,JAVA虚拟机对于静态方法的选择,看编译时类型,而不是运行时类型。注:父类静
8、态的方法只能由子类静态的方法覆盖,非静态的也只能由非静态的覆盖。记住:静态,只有类的概念,不存在对象的概念,也不能使用this关键字.可以用类名直接调用静态方法。思考:主方法为什么一定要是静态方法?答:在用JAVA命令启动JVM(虚拟机)时,由于MAIN方法是一个很特殊的方法,这是一个程序的入口方法,根据JVM加载类文件时的要求,在加载的时候还不存在任何对象,那如何来调用
此文档下载收益归作者所有