版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、模块7类别的高级功能模块7类别的高级功能11.static关键字21.1 .static(类)变量21.2 .静态(类)方法31.3静态初始化节目31.4 .“独身”设计模式42.关键字final52.1 .Final类别52.2 .Final方法52.3 .Final变量5抽象类53.1问题的线索53.2问题63.3解决方案63.4模板方法设计模式74.介面85.内部类别115.1 .范例1115.2 .范例2125.3 .范例3125.4 .范例4135.5 .内部类属性14练习:使用高级语言功能146.1修改银杏帐户问题146.2 .使用内部类146.3确认进度14牙齿模块描述了Java
2、编程语言中更多面向对象的功能。完成牙齿模块的学习后,您应该能够-描述static变量、方法和初始程序说明final类别、方法和变数-说明如何使用抽象类和抽象方法。-说明如何使用内部类别。-说明如何和何时使用介面1.static关键字Static关键字用于声明成员属于类,而不是属于类的实例。1.1 .static(类)变量有时,您希望类的所有实例都可以共享的变量。例如,可以用作实例间通信的基础,或跟踪已创建的实例数。类变量可以由类的所有实例共享,如图7-1所示。您可以使用关键字static显示变数,以达到牙齿效果。这些变量有时称为类变量,有时称为类变量,以区别于非共享成员或实例变量。Public
3、 class Count Private int serialNumberprivate static int counter=0;Public Count() CounterSerialNumber=counter在牙齿示例中创建的每个对象都被指定了唯一的序列号,该序列号从1开始继续向上。Counter变量由所有实例共享,因此,如果一个对象的构造函数增加counter,则创建的下一个对象将接受增加的值。Static变量在某种程度上类似于其他语言中的全局变量。Java编程语言没有这些全局语言,但static变量是类的所有实例都可以访问的单个变量。如果Static变量未标记为private,则可
4、以在类外部访问它。这不需要类的实例,可以通过类名指向它。Public class StaticVar Public static int numberPublic class OtherClass Public void method() int x=static var . number;1.2 .static(类)方法如果没有对象的实例,有时需要访问节目代码。标记为关键字static的方法可以这样使用,也称为类方法。Static方法可以通过类名而不是引用来访问。例如:Public class GeneralFunction Public static int addup (int x,in
5、t y) return x y;Public class UseGeneral Public void method() int a=9;Int b=10Int c=GeneralFunction.addUp(a,b);system . out . print ln( addup()gives c);非静态变量只能通过实例引用访问。例如:Public class Wrong int x;public static void main(string args)x=9;/COMPILER ERROR!Main()是静态的,因为必须在实例化发生之前按顺序访问它,以便应用程序可以运行。静态方法不能被非
6、静态方法复盖。1.3 .静态初始化节目方法节目主体中不存在的代码可以包含在static block的类中。这完全有效。类装载后,静态块代码只运行一次。类中的其它静态块按它们在类中出现的顺序运行。公共类staticinitdemo static int I=5;Static system . out . print ln( static code I= I);公共类测试public static void main(string args)system . out . print ln( main code : I= staticinitdemo . I);打印到:Static code: i=
7、5主要代码:i=61.4 .“独身”设计模式我们在模块2中分析过轮船公司的应用。牙齿应用程序总是要处理同一个公司。如果软件设计不正确,可能会在系统中生成两个公司的对象。牙齿问题概括为“单身设计模式”。“独身”的目标是在软件系统的指定类中只存在一个实例,只允许一个点访问实例。以下代码片段实现了“独身模式”。Packageshipping.domainPublic classCompanyprivate static company instance=new company();Private StringNameprivate Vehiclefleet;public static company
8、 get company()ReturninstancePrivateCompany().下列程式码片段说明如何使用独身物件:Packageshipping.reportsimport shipping . domain . *;PublicclassFuelNeedsReportpublic void generate text(printstream output)companyc=company . get company();.2.关键字final2.1 .Final类Java编程语言允许关键字Final修饰类。这样就不能继承类。例如,Java.lang.String类是final类。
9、出于安全原因,执行牙齿操作。如果方法具有字符串引用,则该方法必须是类字符串中的字符串,而不是其他类中的字符串。牙齿类是字符串的修改子类。因为字符串可能被恶意操纵。(大卫亚设,美国电视电视剧,美国电视电视剧)2.2 .Final方法个别方法也可以标记为final。不能复盖标记为Final的方法。这是因为安全原因。如果方法具有不能更改的实现,并且对对象的一致状态很重要,则应使方法为final。声明为Final的方法有时用于优化。编译器可以生成直接调用方法的代码,而不是通常与运行时查找相关的虚拟方法调用。标记为Static或private的方法自动标记为final。2.3 .Final变量如果变量标
10、记为final,则结果变量为常量。尝试更改Final变量的值可能会导致编译错误。以下是正确定义final变量的示例:public final int max _ array _ size=25;3.抽象类3.1问题的柔道假设轮船公司需要提供列出公司交通工具清单和燃料需求的周刊。假设Shipping系统具有ShippingMain类。牙齿类生成车辆列表和燃料要求报告。PublicclassShippingMain public static void main(stringargs)companyc=company . get company();/populate the company with a fleet of vehiclesC.addVehicle(新轨迹(10000.0);C.addVehicle(新轨迹(15000.0);C.add vehicle(new river barge(500000.0);C.addVehicle(新轨迹(9500.0);C.add vehicle(new river barge(750000.0);fuelneedsreportreport=new fuelneedsreport();report . generate text(system . out);图7-3图7-3显示了公司及其交通工具的异
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025~2026学年河北省邢台市任泽区校联考冀教版三年级上册12月月考数学试卷【附答案】
- PHP基础综合试题(含详细答案解析)
- Photoshop 7.0 招聘笔试试题汇编及详细答案
- 废金属回收分拣操作规程
- 载车板装配调试操作工规程
- 干眼环境湿度管控实操标准化方案共识
- 电机检修安全操作规程
- P40岗位综合能力测试试题
- OPPO R11产品知识考核试题及详细答案
- 胰岛素注射部位轮换与硬结预防共识
- 七年级上册人教版英语第一次月考试卷(含答案)
- 消防工程确保工期的技术组织措施
- 2026中考冲刺-九年级数学知识点梳理
- 卡丁车赛车场项目可行性研究报告
- GJB573B-2020 引信及引信零部件环境与性能试验方法
- DGTJ08-2087-2019 混凝土模卡砌块应用技术标准
- DB11-T 593-2025 高速公路清扫保洁质量与作业要求
- SMT错件问题及预防措施培训
- TQGCML0832021污水处理专用活性焦应用技术规范
- DB33T 2417-2021 城市公共客运智慧安防管理通 用要求
- 河南城建学院2021届毕业生就业质量年度报告
评论
0/150
提交评论