ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:493.99KB ,
资源ID:3233897      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3233897.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(SUNJAVA 培训专用教材C06.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

SUNJAVA 培训专用教材C06.docx

1、SUNJAVA 培训专用教材C06第六章 高级语言特征本模块讨论Java编程语言更多的面向对象特征。第一节 相关问题 讨论-下述问题与本模块中出现的材料相关:- 如何保持一个类或方法不被分成子类或被覆盖?- 如何将数组概念的使用扩展到对象?第二节 目 的 完成本模块的学习后,应该能- 描述static变量,方法和初始程序- 描述final类,方法和变量- 列出访问控制级别- 确认降级类并解释如何从JDK1.0升迁到JDK1.1到JDK1.2- 描述如何应用收集和反射- 在Java软件程序中,确认- static方法和变量- public,private,protected和缺省变量- 使用ab

2、stract类和方法- 解释如何以及何时使用内部类- 解释如何以及何时使用接口- 描述=和equals()之间的不同第三节 类(static)变量类(static)变量 在所有类的实例中共享 可以被标记为public或private 如果被标记为public而没有该类的实例,可以从该类的外部访问 public class Count private int serialNumber; private static int counter = 0; public Count() counter+; serialNumber = counter; 有时想有一个可以在类的所有实例中共享的变量。比如,

3、这可以用作实例之间交流的基础或追踪已经创建的实例的数量。 可以用关键字static来标记变量的办法获得这个效果。这样的变量有时被叫做class variable,以便与不共享的成员或实例变量区分开来。 public class Count private int serialNumber; private static int counter = 0; public Count() counter+; serialNumber = counter; 在这个例子中,被创建的每个对象被赋于一个独特的序号,从1开始并继续往上。变量counter在所有实例中共享,所以,当一个对象的构造函数增加coun

4、ter时,被创建的下一个对象接受增加过的值。 Static变量在某种程度上与其它语言中的全局变量相似。Java编程语言没有这样的全局语言,但static变量是可以从类的任何实例访问的单个变量。 如果static变量没有被标记成private,它可能会被从该类的外部进行访问。要这样做,不需要类的实例,可以通过类名指向它。public class StaticVar public static int number;public class OtherClass public void method() int x = StaticVar.number; 第四节 类(static)方法类(stat

5、ic)方法 没有它所属的类的任何实例,static方法可以被调用 public class GeneralFunction public static int addUp(int x, int y) return x + y; public class UseGeneral public void method() int a = 9; int b = 10; int c = GeneralFunction.addUp(a, b); System.out.println(addUp() gives + c); 当没有一个特殊对象变量的实例的时候,有时需要访问程序代码。用关键字static标记的

6、方法可以这样使用,有时被称做class method。static方法可以用类名而不是引用来访问,如:public class GeneralFunction public static int addUp(int x, int y) return x + y; public class UseGeneral public void method() int a = 9; int b = 10; int c = GeneralFunction.addUp(a, b); System.out.println(addUp() gives + c); 因为static方法不需它所属的类的任何实例就会

7、被调用,因此没有this值。结果是,static方法不能访问与它本身的参数以及static变量分离的任何变量。访问非静态变量的尝试会引起编译错误。注-非静态变量只限于实例,并只能通过实例引用被访问。public class Wrong int x; public static void main(String args) x = 9; / COMPILER ERROR! Import points to remember about static methods: Main()是静态的,因为它必须在任何实例化发生前被顺序地访问,以便应用程序的运行。 静态方法不能被覆盖成非静态。第五节 静态初始

8、化程序静态初始化程序 在static block中,类可以包含方法程序中不存在的代码。当类被装载时,静态代码块只执行一次。 方法程序体中不存在的代码在static block中类可以包含该代码,这是完全有效的。当类被装载时,静态块代码只执行一次。类中不同的静态块按它们在类中出现的顺序被执行。public class StaticInitDemo static int i = 5; static System.out.println(Static code i= + i+ ); public class Test public static void main(String args) Syst

9、em.out.println(Main code: i= + StaticInitDemo.i); 将打印出:Static code: i=5Main code: i=6Static 方法和数据第六节 一个完整的例子1 class MyClass 2 static int statInt = 4;3 static Double statDouble = 16.0;4 int instInt;5 double instDouble;6 7 public static void statMethod()8 System.out.println (statInt=+statInt+ 9 ;statd

10、ouble=+statDouble);10 11 public static void instMethod() 12 System.out.println(instInt=+instInt+ 13 ;instdouble=+instDouble); 14 15 public MyClass(int intArg, double doubleArg)16 instInt = intArg;17 instDouble = doubleArg;18 19 public static void main(string args)20 MyClass instance1 = new MyClass(1

11、,2.0);21 MyClass instance2 = new MyClass(3,4.0);22 23 MyClass.statMethod(); /Outputs:statInt=4;24 /statDouble=16.025 26 instance1.instMethod(); /Outputs:instInt=1; 27 /instDouble=2.0 28 instance1.statMethod(); /Outputs:statInt=4;29 /statDouble=16.0 30 31 instance2.instMethod(); /Outputs:instInt=3;32

12、 /instDouble=4.0 33 instance2.statMethod(); /Outputs:statInt=4;34 /statDouble=16.0 35 36 37. 图6-1是MyClass类定义的框图。这个例子阐述了:1 Static方法和数据的单个(共享)副本是因为类和该类的所有实例而存在。通过一个实例或通过类本身可以访问static成员。2 非静态数据只限于实例,只能通过该实例的非静态方法对它进行访问。非静态数据定义对象之间互不相同的特点,非静态方法在它们所作用的非静态数据的基础上对每个对象的行为互不相同。 考虑一下模仿汽车的特殊类型的一个对象的实例。轮子的大小,对该

13、类型的所有汽车来说是个常量,可能被模仿成一个静态变量。颜色根据对象的不同而不同,其行为也根据对象的不同而不同,在它所作用的非静态数据的基础上对不同对象返回不同的颜色。 图6-1 Myclass 例子第七节 关键字final6.7.1 Final类关键字final Final类不能被分成子类Final方法不能被覆盖Final变量是常数 Java编程语言允许关键字Final被应用到类中。如果这样做了,类便不能被子分成子类。比如,类Java.lang.String就是一个final类。这样做是出于安全原因,因为它保证,如果方法有字符串的引用,它肯定就是类String的字符串,而不是某个其它类的字符串

14、,这个类是String的被修改过的子类,因为String可能被恶意窜改过。6.7.2 Final方法 个体方法也可以被标记为final。被标记为final的方法不能被覆盖。这是由于安全原因。如果方法具有不能被改变的实现,而且对于对象的一致状态是关键的,那么就要使方法成为final。 被声明为final的方法有时被用于优化。编译器能产生直接对方法调用的代码,而不是通常的涉及运行时查找的虚拟方法调用。 被标记为static或private的方法被自动地final,因为动态联编在上述两种情况下都不能应用。6.7.3 Final变量 如果变量被标记为final,其结果是使它成为常数。想改变final变量的值会导致一个编译错误。下面是一个正确定义final变量的例子:public final int MAX_ARRAY_SIZE = 25;注-如果将引用类型(即,任何类的类型)的变量标记为final,那么该变量不能指向任何其它对象。但可能改变对象的内容,因为只有引用本身是final。第八节 抽象类抽象类 声明方法的存在而不去实现它的类被叫做抽象类 可以通过关键字abstract进行标记将类声明为抽象 public abstract class D

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1