欢迎来到天天文库
浏览记录
ID:58699443
大小:555.50 KB
页数:68页
时间:2020-10-04
《第5章高级类特性ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章高级类特性2JavaSE知识图解JAVA发展历程JAVA环境搭建基础程序设计数据类型流程控制运算符数组面向对象编程类和对象属性方法设计模式接口三大特性应用程序开发JDBC集合异常处理类库多线程IO反射网络连接OracleJAVA新特性Eclipse使用泛型枚举装箱/拆箱可变参数Annotation本章内容5.1关键字:static类属性、类方法单例(Singleton)设计模式5.2理解main方法的语法5.3类的成员之四:初始化块5.4关键字:final5.5抽象类(abstractclass)模板方法设计模式(TemplateMethod)5.6更彻底的抽象:接口(int
2、erface)工厂方法(FactoryMethod)和代理模式(Proxy)5.7类的成员之五:内部类当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new关键字才会产生出对象,这时系统才会分配内存空间给对象,其方法才可以供外部调用。我们有时候希望无论是否产生了对象或无论产生了多少对象的情况下,某些特定的数据在内存空间里只有一份,例如所有的中国人都有个国家名称,每一个中国人都共享这个国家名称,不必在每一个中国人的实例对象中都单独分配一个用于代表国家名称的变量。5.1关键字staticSportsMans1=newSportsMan("金龙",
3、23);SportsMans2=newSportsMan("银龙",21);s1.name="花龙";s1.nation="China";s1:s2:name:金龙age:23nation:name:银龙age:21nation:静态域nation:null花龙China关键字staticclassCircle{privatedoubleradius;publicCircle(doubleradius){this.radius=radius;}publicdoublefindArea(){returnMath.PI*radius*radius;}}创建两个Circle对象Circl
4、ec1=newCircle(2.0);//c1.radius=2.0Circlec2=newCircle(3.0);//c2.radius=3.0Circle类中的变量radius是一个实例变量(instancevariable),它属于类的每一个对象,不能被同一个类的不同对象所共享。上例中c1的radius独立于c2的radius,存储在不同的空间。c1中的radius变化不会影响c2的radius,反之亦然。如果想让一个类的所有实例共享数据,就用类变量!类属性、类方法的设计思想类属性作为该类各个对象之间共享的变量。在设计类时,分析哪些类属性不因对象的不同而改变,将这些属性设置为
5、类属性。相应的方法设置为类方法。如果方法与调用者无关,则这样的方法通常被声明为类方法,由于不需要创建对象就可以调用类方法,从而简化了方法的调用关键字static使用范围:在Java类中,可用static修饰属性、方法、代码块、内部类被修饰后的成员具备以下特点:随着类的加载而加载(不是说创建对象)优先于对象存在(对象时有生命周期的)修饰的成员,被所有对象所共享访问权限允许时,可不创建对象,直接被类调用静态域堆栈country:CHINAStatic的属性a1:0x1232name:Peterage:12country:a2:0x1222name:Lileiage:21country:
6、Athletea1=newAthlete("刘翔","110米栏","China");Athletea2=newAthlete("姚明","篮球","China");a2:a1:name:刘翔major:110米栏name:姚明major:篮球静态域contry:China中国CHINAclassCircle{privatedoubleradius;publicstaticStringname="这是一个圆";publicstaticStringgetName(){returnname;}publicCircle(doubleradius){getName();this.radiu
7、s=radius;}publicdoublefindArea(){returnMath.PI*radius*radius;}publicvoiddisplay(){System.out.println("name:"+name+"radius:"+radius);}}publicclassTestStatic{publicstaticvoidmain(String[]args){Circlec1=newCircle(2.0);Circlec2=newCircle(3.
此文档下载收益归作者所有