语言程序设计_第1页
语言程序设计_第2页
语言程序设计_第3页
语言程序设计_第4页
语言程序设计_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 第五章Java高级语言特征 静态变量 方法与初始化程序块 final 抽象类 Interface package 访问控制 内部类 其它 2 类变量 static classvariable 在该类所有实例之间是共享的 在加载该类时 只分配一次空间 并初始化 例 classEmployee staticintcom 则运行时 3 类变量 static classvariable 类变量可用来在实例之间进行通信或跟踪该类实例的数目 例 publicclassCount privateintserialNumber privatestaticintcounter 0 publicCount counter serialNumber counter 4 类变量可以是public或private 对于public类型的类变量 可以在类外直接用类名调用而不需要初始化 PublicclassStaticVar publicstaticintnumber publicclassOtherclass publicvoidmethod intx StaticVar number 类变量 static classvariable 5 类 class static 方法 可以直接被调用 而不需要生成任何实例publicclassGeneralFunction publicstaticintaddUp intx inty returnx y publiccalssUseGeneral publicvoidmethod intc GeneralFunction addUp 9 10 6 静态初始化程序 没有存在于任何方法体中的静态语句块 在加载该类时执行且只执行一次 publicClassStaticInitDemo staticinti 5 static System out println Staticcode i i publicclassTest publicstaticvoidmain Stringargs System out println Maincode i StaticInitDemo i Staticcode i 5Maincode i 6 7 Final关键字 被定义成final的类不能有子类 例 finalclassEmployee classManagerextendsEmployee 被定义成final的成员方法不能被重写 被定义成final的成员变量不能改变 该变量实际上是常量 一般大写 并赋值 finalintNUMBER 100 8 抽象类 一个类如果只声明方法而没有方法的实现 则称为抽象类 必须在声明中增加abstract关键字 在无方法体的方法前也要加上abstract PublicabstractclassDrawing publicabstractvoiddrawDot intx inty publicvoiddrawLine intx1 inty1 intx2 inty2 调用drawDot 方法 抽象类也可有普通的成员变量或方法 9 抽象类 抽象类不能直接用来生成实例 一般可通过定义子类进行实例化 可以生成抽象类的变量 该变量可以指向具体的一个子类的实例 AbstractclassEmployee abstractvoidraiseSalary inti classManagerextendsEmployee voidraiseSalary inti Employeee newManager 10 接口interface Interface是在抽象类概念的基础上演变而来的 一个interface所有成员方法都是抽象的 并且只能定义staticfinal成员变量 11 Interface的含义 interface定义了一组行为的协议 两个对象之间通过这个协议进行通信 interface不属于类层次结构 不相关的类可以实现相同的接口 12 Interface示例 13 用implements代替extends声明子类 该子类中必须实现接口 及其超类 中的所有方法 例 interfaceSayHello voidprintMessage classSayHelloImplimplementsSayHello voidprintMessage System out println Hello 实现interface 14 Interface的使用 Interface可以作为一种数据类型使用 如 publicclassStockMonitor publicvoidwatchStock StockWatcherwatcher StringtickerSymbol doubledelta 15 Interface中注意问题 不能向interface定义中随意增加方法 publicinterfaceStockWatcher finalStringsunTicker SUNW finalStringoracleTicker ORCL finalStringciscoTicker CSCO voidvalueChanged StringtickerSymbol doublenewValue voidcurrentValue StringtickerSymbol doublenewValue publicinterfaceStockTrackerextendsStockWatcher voidcurrentValue StringtickerSymbol doublenewValue 16 可以通过实现接口实现多重继承 一个类可只继承一个父类 并实现多个接口 interfaceI1 interfaceI2 classE classMextendsEimplementsI1 I2 一个interface可作为类名使用 实现多态 接口interface InterfaceHuman classChineseimplementsHuman classJapaneseimplementsHuman 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 abc financeDept 21 源文件 java 与类文件 class 的管理 源文件可以按照包名指明的路径放置 如 类文件也应该放在反映包名的一系列目录下 22 一般将源文件与类文件分别存放 可采用如下方式 源文件 java 与类文件 class 的管理 示例 23 高级访问控制 成员变量和方法有4种访问级别 public protected default package private 类有两种访问级别 public或default 修饰符的作用范围 ModifierSameclassSamePackageSubclassUniversepublicYesYesYesYesprotectedYesYesYesdefaultYesYesprivateYes 24 classAlpha privateintiamprivate privatevoidprivateMethod System out println privateMethod classBeta voidaccessMethod Alphaa newAlpha a iamprivate 10 a privateMethod 高级访问控制 private illegal illegal 25 classAlpha privateintiamprivate booleanisEqualTo AlphaanotherAlpha if this iamprivate anotherAlpha iamprivate returntrue elsereturnfalse 高级访问控制 注意 访问控制应用于class或type层次 而不是对象层次 26 允许类本身 它的子类 以及同一个包中其余的类访问这些成员 packageGreek publicclassAlpha protectedintiamprotected protectedvoidprotectedMethod System out println protectedMethod packageGreek classGamma voidaccessMethod Alphaa newAlpha a iamprotected 10 a protectedMethod 高级访问控制 protected legal legal 27 packageLatin importGreek classDeltaextendsAlpha voidaccessMethod Alphaa Deltad a iamprotected 10 d iamprotected 10 a protectedMethod d protectedMethod 高级访问控制 protected X X 28 packageGreek classAlpha intiampackage voidpackageMethod System out println packageMethod packageGreek classBeta voidaccessMethod Alphaa newAlpha a iampackage 10 a packageMethod 高级访问控制 package 29 内部类 内部类是在一个类的声明里声明的类 ClassA classB 内部类可作为类的一个成员使用 一般只在包容类中调用 内部类可以访问外包类的所有成员 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和TreeSet Set接口定义 publicinterfaceSet BasicOperationsintsize booleanisEmpty booleancontains Objectelement booleanadd Objectelement Optionalbooleanremove Objectelement OptionalIteratoriterator 35 List List是有序的集合 元素可以重复 List接口定义 publicinterfaceListextendsCollection PositionalAccessObjectget intindex Objectset intindex Objectelement Optionalvoidadd intindex Objectelement OptionalObjectremove intindex OptionalabstractbooleanaddAll intindex Collectionc Optional SearchintindexOf Objecto intlastIndexOf Objecto List的实现 ArrayList LinkedList Vector 36 Map

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论