网站大量收购闲置独家精品文档,联系QQ:2885784924

面向对象高级概要1.ppt

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

* 注:以上4个权限修饰符可以修饰类的成员,不能修饰局部变量。 类也有权限修饰符,不过类只有两种权限:public和friendly。一般情况下我们只在类的成员上设置权限控制。而不在类上做权限的控制,所以通常类的权限为public。 如果把类设置为firendly权限,那么只有该包中的类能够访问它,其他包中的类将无法使用这个类。 * 示例:275-8-01,275-8-02 public class Circle { static double pi = 3.14; int radius; public Circle() { } * 示例:275-8-03,275-8-04 * 注: 请大家思考一个问题,主函数(main)会被谁调用呢? 一般运行一段程序都是通过Java解释器。如下所示: D:\javaprogs\java Test Java解释器后面是类名,而不是文件名。假设按照下面的方式执行则行不通。 D:\javaprogs\java Test.clss 从上面的示例可以看出,Java解释器是通过类名,找到字节码文件,再找到该字节码文件中的main函数,然后执行整个程序。 Java要求类名必须和文件名相同也就是这个道理,否则Java解释器就找不到字节码文件了。 Java解释器在调用main函数时,直接通过类名调用这个静态函数,没有必要先实例化类再通过对象调用。 这样不仅减少程序执行的步骤,还保证程序运行的效率。可见,main函数的static修饰符是非常重要的。 * 示例:275-8-5 注:隐式赋予变量默认值,在类第一次装入虚拟机时,name=null,age=0,height=0.0; 注: 非静态的属性赋值过程: 1、隐式赋予变量默认值; 2、显式赋予初值; 3、构造方法赋予新值; 静态属性赋值过程: 因为静态的属性是类级别的属性,不属于任何对象,也可以说它被所有对象共享。 它在类第一次装载到虚拟机时被赋值,对象实例化时不需要给静态属性赋值。 经历了两个步骤: 1、在类被装载到虚拟机时先被赋予默认值; 2、再被显式的赋值; * 示例:275-8-6 注: 类中最常见的成员是属性、方法和构造器。除此之外,类中还可以包含程序块和类。 程序块又分为静态块和非静态块,类中的类我们称为嵌套类或内部类。 有的类中包含着很多属性,如果每个属性都要显示的赋值,我们可以把这些赋值在程序块中集中处理。 静态属性的赋值集中在静态块中,非静态属性的赋值集中在非静态块中。 * 示例:275-8-15(变量) 示例:275-8-16(类) 示例:275-8-17(类) * 示例:275-8-18 * 示例:275-8-19 * 示例:275-8-20 * * 注: 我们知道Java中的数据类型分为两大类:基本类型和引用类型。基本类型共有8种,其中7种(除boolean)外可以相互转换。从低级向高级转换为自动转换,反之则为强制转换。 同样引用类型的变量也可以相互转换,分为上溯造型和下溯造型两种。 应用类型转换的前提:具有继承关系的引用变量才能相互转换。 前面已经提过继承关系中存在一个规律:子类是父类的一种。例如:人类是动物的一种,动物是生物的一种等。 * 示例:275-8-21 * 示例:275-8-32 * 示例:275-8-33 示例:275-8-34 注: 1、普通类的权限只能是public 和 friendly,而内部类作为类的成员,可以和其它成员一样使用所有4种权限。 2、尽量让内部类声明为private权限,避免暴露内部类给其他类。 3、内部类的方法可以访问外部类的成员(包括私有),且不必实例化外部类,这正是我们使用内部类的一个重要原因。 * 示例:275-8-35 * 示例:275-8-36 注: 1、静态内部类作为外部类的静态成员,不能访问外部类非静态成员; 2、非静态内部类只能定义非静态成员,而静态内部类可以定义静态成员和非静态成员。 * 示例:275-8-38 简单地说:匿名内部类就是没有名字的内部类。什么情况下需要使用匿名内部类?如果满足下面的一些条件,使用匿名内部类是比较合适的:?   ·只用到类的一个实例。??   ·类在定义后马上用到。??   ·类非常小(SUN推荐是在4行代码以下)??   ·给类命名并不会导致你的代码更容易被理解。?   在使用匿名内部类时,要记住以下几个原则:?   ·匿名内部类不能有构造方法。??   ·匿名内部类不能定义任何静态成员、方法和类。??   ·匿名内部类不能是public,prote

文档评论(0)

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

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

1亿VIP精品文档

相关文档