07第七讲Java 类设计.ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
07第七讲Java 类设计

第七讲 高级类特性 第七讲:高级类特性 学习目标: 描述static变量、方法和初始化 描述final类、方法和变量 解释如何使用以及何时使用抽象类 解释如何使用以及何时使用接口 解释如何使用以及何时使用嵌套类 第七讲:高级类特性 static关键字: static关键字用作变量、类和内部类的修饰符. static关键字声明属性或方法同整个类相关,而不是和具体实例相关 静态成员经常称为类成员,如:类属性或类方法 第七讲:高级类特性 类属型:在类的所有实例之间共享 第七讲:高级类特性 类方法:直接通过类名可以调用 *注意:静态上下文要一致 第七讲:高级类特性 静态初始化: 类的代码可能在静态块中,而不是在方法体中 静态块代码仅在加载类时执行一次 静态块代码总是用来初始化静态属性的 第七讲:高级类特性 静态初始化: *单一设计模式 第七讲:高级类特性 final关键字: 不能子类化final类 不能重写final方法 Final变量是一个常数 仅仅声明一个final变量,而不是在声明时赋值,此变量叫“空final变量” 空final实例属性必须在每个构造器中设置 空final方法变量必须在该方法体使用之前设置 第七讲:高级类特性 接口: 接口是用户代码和实现接口的类之间的一个和约 接口中的方法都没有具体实现 多个无关联的类能实现同一接口 类能实现多个无关联的接口 语法: <修饰符> class <名称> [extends <父类>] [implements <接口 >[,<接口>*]{ } 第七讲:高级类特性 接口的使用: 声明方法,该方法将由一个或多个类实现 显示对象的编程接口而不是暴漏类的实现细节 捕获无关联类之间的相似性,而无需强加类关系 第七讲:高级类特性 内部类: 添加到JDK1.1 允许将类的定义放到其他类定义中 将逻辑上属于一起的类组织为一体 可以访问其包含类内的成员 第七讲:高级类特性 1、成员内部类作为外部类的成员 第七讲:高级类特性 2、成员内部类可以互相调用 注意:内外部类不能同名。 第七讲:高级类特性 3、在另一个外部类中使用非静态内部类中定义的方法时,要先创建外部类的对象,再创建与外部类相关的内部类的对象,再调用内部类的方法。 第七讲:高级类特性 4、多层调用时要指明 第七讲:高级类特性 1.可以用4种权限、static、final、abstract定义; 2.非静态内部类不能声明任何static成员; 3. (例2)编译后生成A.class,A$B.class, A$C.class。 第七讲:高级类特性 class A{ public void g(){} public void f(){ final int x; class B{ ………..} } } class A{ class B{ static int x;//wrong } } 第七讲:高级类特性 本地类(Local class)是定义在代码块中的类.它们只在定义它们的代码块中是可见的.本地类与本地变量类似—它们被定义在使用它们的地方. 本地类有三个重要特性: 仅在定义了它们的代码块中是可见的;(前边例题) 可以使用定义它们的代码块中的任何本地final变量或final方法参数; 本地类不可以是static的,里边也不能定义static类、成员变量、方法。 第七讲:高级类特性 是本地类的一种特殊形式. 本地类和匿名类最主要的区别是匿名类没有自己的名字. 使用匿名类的四个条件: 匿名类不能有构造函数; 匿名类不能定义静态的成员、方法或类; 匿名类不能用4种权限、static、final、abstract修饰; 只可以创建一个匿名类实例。 class A{ class A{ classB extends C x.add(new C() {B类类体;} {B类类体;} ) } } 编译后:A.class A$1.class * * public class Count { private int serialNumber; public static int counter; public Count() { counter++; serialNumber = counter; }

文档评论(0)

mv2323 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档