




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,1,第五章Java高级语言特征,静态变量、方法与初始化程序块final关键字抽象类Interfacepackage访问控制内部类其它,.,2,类变量(static/classvariable),在该类所有实例之间是共享的。在加载该类时,只分配一次空间,并初始化。例:classEmployeestaticintcom;则运行时,,.,3,类变量(static/classvariable),类变量可用来在实例之间进行通信或跟踪该类实例的数目。,例:publicclassCountprivateintserialNumber;privatestaticintcounter=0;publicCount()counter+;serialNumber=counter;,.,4,类变量可以是public或private对于public类型的类变量,可以在类外直接用类名调用而不需要初始化。PublicclassStaticVarpublicstaticintnumber;publicclassOtherclasspublicvoidmethod()intx=StaticVar.number;,类变量(static/classvariable),.,5,类(class/static)方法,可以直接被调用,而不需要生成任何实例publicclassGeneralFunctionpublicstaticintaddUp(intx,inty)returnx+y;publiccalssUseGeneralpublicvoidmethod()intc=GeneralFunction.addUp(9,10);,.,6,静态初始化程序,没有存在于任何方法体中的静态语句块。在加载该类时执行且只执行一次。publicClassStaticInitDemostaticinti=5;staticSystem.out.println(“Staticcode:i=”+i+);publicclassTestpublicstaticvoidmain(Stringargs)System.out.println(“Maincode:i=”+StaticInitDemo.i);,Staticcode:i=5Maincode:i=6,.,7,Final关键字,被定义成final的类不能有子类。例:finalclassEmployeeclassManagerextendsEmployee被定义成final的成员方法不能被重写。被定义成final的成员变量不能改变。该变量实际上是常量,一般大写,并赋值。finalintNUMBER=100;,.,8,抽象类,一个类如果只声明方法而没有方法的实现,则称为抽象类。必须在声明中增加abstract关键字,在无方法体的方法前也要加上abstract。PublicabstractclassDrawingpublicabstractvoiddrawDot(intx,inty);publicvoiddrawLine(intx1,inty1,intx2,inty2)./调用drawDot()方法抽象类也可有普通的成员变量或方法。,.,9,抽象类,抽象类不能直接用来生成实例。一般可通过定义子类进行实例化。可以生成抽象类的变量,该变量可以指向具体的一个子类的实例。,AbstractclassEmployeeabstractvoidraiseSalary(inti);classManagerextendsEmployeevoidraiseSalary(inti).,Employeee=newManager();,.,10,接口interface,Interface是在抽象类概念的基础上演变而来的。一个interface所有成员方法都是抽象的,并且只能定义staticfinal成员变量。,.,11,Interface的含义,interface定义了一组行为的协议。两个对象之间通过这个协议进行通信。interface不属于类层次结构。不相关的类可以实现相同的接口。,.,12,Interface示例,.,13,用implements代替extends声明子类,该子类中必须实现接口(及其超类)中的所有方法。例:interfaceSayHellovoidprintMessage();classSayHelloImplimplementsSayHellovoidprintMessage()System.out.println(“Hello”);,实现interface,.,14,Interface的使用,Interface可以作为一种数据类型使用。如:,publicclassStockMonitorpublicvoidwatchStock(StockWatcherwatcher,StringtickerSymbol,doubledelta).,.,15,Interface中注意问题,不能向interface定义中随意增加方法。publicinterfaceStockWatcherfinalStringsunTicker=SUNW;finalStringoracleTicker=ORCL;finalStringciscoTicker=CSCO;voidvalueChanged(StringtickerSymbol,doublenewValue);voidcurrentValue(StringtickerSymbol,doublenewValue);,publicinterfaceStockTrackerextendsStockWatchervoidcurrentValue(StringtickerSymbol,doublenewValue);,.,16,可以通过实现接口实现多重继承:一个类可只继承一个父类,并实现多个接口。interfaceI1;interfaceI2;classE.;classMextendsEimplementsI1,I2一个interface可作为类名使用,实现多态。,接口interface,InterfaceHumanclassChineseimplementsHumanclassJapaneseimplementsHuman.Humane=newChinese();Humane=newJapanese();,.,17,类分组package语句,包(package)是相关类与接口的一个集合,它提供访问控制与命名空间管理。Java平台中的类与接口都是根据功能以包组织的。包机制的好处:程序员容易确定包中的类是相关的,并且容易根据所需的功能找到相应的类。每个包都创建一个新的命名空间,因此不同包中的类名不会冲突。同一个包中的类之间有比较宽松的访问控制。,.,18,创建包,用package语句指定源文件中的类属于一个特定包:package包名包定义语句在每个源程序中只能有一条,即一个类只能属于一个包。包定义语句必须在程序的第一行(之前可有空格及注释)。包名用“.”分隔。,.,19,import语句,将package引入源程序,格式:import包名.*;import包名.类名;import语句必须在源程序之前,在package声明之后。package./缺省是package.import./缺省是importjava.lang.*类声明.,.,20,包名与包中类的存储位置,包分隔符相当于目录分隔符,包存储的路径由包根路径加上包名指明的路径组成。包的根路径由CLASSPATH环境变量指出。%CLASSPATH%abcfinanceDept,.,21,源文件(.java)与类文件(.class)的管理,源文件可以按照包名指明的路径放置。如,类文件也应该放在反映包名的一系列目录下。,.,22,一般将源文件与类文件分别存放,可采用如下方式:,源文件(.java)与类文件(.class)的管理,示例,.,23,高级访问控制,成员变量和方法有4种访问级别:public,protected,default(package),private;类有两种访问级别:public或default。修饰符的作用范围:ModifierSameclassSamePackageSubclassUniversepublicYesYesYesYesprotectedYesYesYesdefaultYesYesprivateYes,.,24,classAlphaprivateintiamprivate;privatevoidprivateMethod()System.out.println(privateMethod);classBetavoidaccessMethod()Alphaa=newAlpha();a.iamprivate=10;a.privateMethod();,高级访问控制-private,/illegal,/illegal,.,25,classAlphaprivateintiamprivate;booleanisEqualTo(AlphaanotherAlpha)if(this.iamprivate=anotherAlpha.iamprivate)returntrue;elsereturnfalse;,高级访问控制,注意:访问控制应用于class或type层次,而不是对象层次。,.,26,允许类本身、它的子类、以及同一个包中其余的类访问这些成员。packageGreek;publicclassAlphaprotectedintiamprotected;protectedvoidprotectedMethod()System.out.println(protectedMethod);packageGreek;classGammavoidaccessMethod()Alphaa=newAlpha();a.iamprotected=10;tectedMethod();,高级访问控制protected,/legal,/legal,.,27,packageLatin;importGreek.*;classDeltaextendsAlphavoidaccessMethod(Alphaa,Deltad)a.iamprotected=10;d.iamprotected=10;tectedMethod();tectedMethod();,高级访问控制protected,X,X,.,28,packageGreek;classAlphaintiampackage;voidpackageMethod()System.out.println(packageMethod);packageGreek;classBetavoidaccessMethod()Alphaa=newAlpha();a.iampackage=10;a.packageMethod();,高级访问控制package,.,29,内部类,内部类是在一个类的声明里声明的类。ClassAclassB内部类可作为类的一个成员使用。一般只在包容类中调用。内部类可以访问外包类的所有成员。,.,30,=运算符与equals()方法,equals()和=比较两个引用是否指向相同的对象。equals()方法在String,Date,File,所有Wrapper类都重写了该方法,改为比较内容。,.,31,Wrapper类,Wrapper将基本类型表示成类。每个wrapper类对象都封装了基本类型的一个值。PrimitiveDataTypeWrapperClassbooleanBooleanbyteBytecharCharactershortShortintIntegerlongLongfloatFloatdoubleDouble,.,32,Wrapper类,Wrapper类中包含了很多有用的方法和常量。如数字型Wrapper类中的MIN_VALUE和MAX_VALUE常量,定义了该类型的最大值与最小值。byteValue,shortValue方法进行数值转换,valueOf和toString实现字符串与数值之间的转换。,例:Wrapper类对象的创建:Integerquantity=newInteger(123456);Doubleamount=newDouble(345987.246);,.,33,CollectionAPI-集合类,一个集合类对象表示了一组对象,相当于一个容器。,.,34,Set,Set不能包含重复的元素。两种Set实现:HashSet和TreeSetSet接口定义:publicinterfaceSet/BasicOperationsintsize();booleanisEmpty();booleancontains(Objectelement);booleanadd(Objectelement);/Optionalbooleanremove(Objectelement);/OptionalIteratoriterator();,.,35,List,List是有序的集合,元素可以重复。List接口定义:publ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外墙瓷砖合同协议书
- 公益项目合同协议书
- 合同协议书文章模板
- 修路用工合同协议书
- 租赁铺面合同协议书
- 吧师合同协议书
- 花园养护合同协议书
- 中介财务合同协议书
- 酒店安全合同协议书
- 转让水库合同协议书
- 产科护士进修个人总结5篇
- 《中国海洋大学》课件
- 医院保密培训课件
- 《无人机航拍技术》项目1任务2 无人机航拍应用
- 教育行业媒体宣传服务合同
- 糖尿病视网膜病变专家共识
- 管理会计学(第6版) 课件 郭晓梅 第6、7章 短期经营方案的分析评价;长期投资方案的经济评价
- 第四单元 资本主义制度的确立 说课课件-高一下学期统编版(2019)必修中外历史纲要下
- G520-1~2(2020年合订本)钢吊车梁(6m~9m)(2020年合订本)
- 2024-2025学年七年级地理下册 7.4 俄罗斯课时1说课稿 (新版)新人教版
- 中外运社招在线测评题
评论
0/150
提交评论