《类与对象续》PPT课件.ppt

《类与对象续》PPT课件.ppt

ID:52371668

大小:219.06 KB

页数:61页

时间:2020-04-05

《类与对象续》PPT课件.ppt_第1页
《类与对象续》PPT课件.ppt_第2页
《类与对象续》PPT课件.ppt_第3页
《类与对象续》PPT课件.ppt_第4页
《类与对象续》PPT课件.ppt_第5页
资源描述:

《《类与对象续》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第三章类与对象(续)16、方法重载在Java(和C++)里,多个构造方法都有相同的名字,它们被称为“重载”。方法重载即指多个方法可以享有相同的名字。但是这些方法的参数必须不同,或者是参数个数不同,或者是参数类型不同。(但不能以返回值区分重载的方法)2例如,要打印不同类型的数据,int,float,String,不需要定义不同名的方法:printInt(int);printFloat(float);printString(String)。利用方法重载,只需要定义一个方法名:println(),接收不同的参数:println(int);println

2、(float);println(String);例:overloading.java37、this关键字this关键字只能在方法内部使用,表示对“调用方法的当前对象”的引用。例:MyThis2.java,作为返回值使用:当需要返回对当前对象的引用时,就可以在return语句里使用this。例:this.java,MyThis1.java4This的另一种使用方法:——调用构造方法可以使用this关键字在一个构造方法中调用另外的构造方法。代码更简洁,维护起来也更容易通常用参数个数比较少的构造方法调用参数个数最多的构造方法使用this关键字例子,My

3、This3.java,BankAccount.java58、对象的回收与C++不同,Java额外提供了垃圾回收器,对于不再使用的内存资源,垃圾回收器能自动将其释放,无需再使用类似C++里的析构函数destructor。Java运行时系统通过垃圾收集器周期性地释放无用对象所使用的内存Java运行时系统会在对对象进行自动垃圾回收前,自动调用对象的finalize()方法68.1程序运行时的内部工作原理程序的最小单元变量一旦被定义以后就在内存占用一定的空间。C,C++都允许动态的(在运行时)分配存储空间。堆(heap)是一种运行时的数据结构,是一个大的

4、存储区域,用于支持动态的内存管理。Java里所有引用类型的对象都存储在堆里。栈(stack)也是一种运行时的数据结构,为方法(函数)调用和返回处理提供存储空间。具体参考thinkinjava第二章2.2节7CLanguageMemoryAllocationDynamiclibrariesUnitializedDataInitializeddataDATASEGMENTHeapStackgrowsgrowsTextSegmentchar*p=malloc(1024);intiarray[20];intiarray2[]={1,2,3};intmai

5、n(){...}intmyfunc(intx,floaty){intz;}88.2内存的分配与释放内存是一种紧缺的资源,不再需要时,应当尽快释放。C语言中,通过调用malloc()动态分配内存,用free()释放内存。C++语言中,则用new()与delete()。这些都属于由程序员显示地管理内存资源。如果程序员忘记释放内存,则容易造成内存泄漏甚至导致内存耗尽.Java中的所有对象都是基于堆分配内存,任何对象都可以从堆中分配不同的存储区域,也可以把它们返回堆中,这些操作没有固定的顺序,因而导致了内存产生很多碎片的问题。9Java采用系统管理资源,

6、由系统跟踪内存的使用情况,释放不再使用的内存,这个处理过程称为垃圾回收(garbagecollection)。垃圾收集器自动扫描对象的动态内存区,对不再使用的对象做上标记以进行垃圾回收10finalize()方法提供一个手动释放资源的机会,当资源可能被某些对象占用,Java的内存管理系统无法直接访问,也不能自动释放时,就采用此方法。程序员大部分时间都不会用到此方法,而运行程序库大多用这种方式控制某些资源。11finalize()方法在类java.lang.Object中声明,因此Java中的每一个类都有该方法用于释放系统资源,如关闭打开的文件或s

7、ocket等声明格式protectedvoidfinalize()throwsthrowable129、包(package)——(参考教材4.6,thinkinginjava第5章)Java开发中,有时类名会相同,同名的类就可能发生冲突。为了解决这一问题,Java提供包来管理类名,在C++里用命名空间来管理。但远不如Java灵活方便。13开发人员往往需要一个好的文件组织形式,以便把文件放在一个目录结构里,创建自己的工具库,以供自己或开发团队其他成员使用。这就需要打“包”。Java用“包”来表示相关类的集合,这些相关类可以属于多个文件,(当然有自己

8、独立的.java和.class),把它们一起放到一个组群中,形成一个程序库。Java程序包相当于其它语言中的库函数。打“包”149.1包

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。