版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Initialization and cleanup,华南理工大学 计算机科学与工程学院 韦佳 ,Initialization and cleanup are two important safety issues. Java use constructor to initialize an object. Java use garbage collector to release memory resources.,Guaranteed initialization with the constructor,The name of the constructor is the same as
2、 the name of the class. The constructor will be called automatically during initialization. Default constructor: no arguments. /SimpleConstructor.java The constructor can also have arguments to allow you to specify how an object is created. /SimpleConstructor2.java,The constructor is an unusual type
3、 of method because is has no return value.,Method overloading,The same word expresses a number of different meanings: overloaded. Method overloading is essential to allow the same method name to be used with different argument types. /Overloading.java,Distinguishing overloaded methods,Each overloade
4、d method must take a unique list of argument types. Even differences in the ordering of arguments are sufficient to distinguish two methods. /OverloadingOrder.java,Overloading with primitives,A primitive can be automatically promoted from a smaller type to a larger one. /PrimitiveOverloading.java If
5、 your argument is wider, then you must perform a narrowing conversion with a cast. /Demotion.java,Overloading on return values,You cannot use return value types to distinguish overloaded methods.,Default constructors,If you create a class that has no constructors, the compiler will automatically cre
6、ate a default constructor for you. /DefaultConstructor.java If you define any constructors, the compiler will not synthesize one for you. /NoSynthesis.java,The “this” keyword,The “this” keyword which can be used only inside a non-static method produces the reference to the object that the method has
7、 been called for. The “this” keyword is used only for those special cases in which you need to explicitly use the reference to the current object. /Leaf.java The “this” keyword is also useful for passing the current object to another method. /PassingThis.java,Calling constructors from constructors,I
8、n a constructor, when you give “this” keyword an argument list, it makes an explicit call to the constructor that matches that argument list. /Flower.java While you can call one constructor using this, you cannot call two. The constructor call must be the first thing you do.,The meaning of “static”,
9、There is no “this” for “static” method. You cannot call non-static methods from inside static methods (the reverse is possible).,Cleanup: finalization and garbage collection,Your objects might not get garbage collected. Garbage collection is not destruction. Garbage collection is only about memory.,
10、Member initialization,Java guarantees that variables are properly initialized before they are used. In the case of a methods local variables, this guarantee comes in the form of a compile-time error. Each primitive field of a class is guaranteed to get an initial value. /InitialValues.java,Specifyin
11、g initialization,Simply assign the initial value at the point you define the variable in the class. /InitialValues2.java You can initialize non-primitive objects in this same way. /Measurement.java You can call a method to provide an initialization value. /MethodInit.java MethodInit2.java Forward re
12、ferencing. /MethodInit3.java Limitation: every object of the type will get the same initialization values.,Constructor initialization,You cant preclude the automatic initialization, which happens before the constructor is entered. The compiler doesnt try to force you to initialize elements in the co
13、nstructor at any particular place.,Order of initialization,Within a class, the order of initialization is determined by the order that the variables are defined within the class. The variable definitions may be scattered throughout and in between method definitions, but the variables are initialized
14、 before any methods can be called - even the constructor. /OrderOfInitialization.java,“static” data initialization,If a field is a static primitive and you dont initialize it, it gets the standard initial value for its type. If its a reference to an object, the default initialization value is null.
15、If you want to place initialization at the point of definition, it looks the same as for non-statics. /StaticInitialization.java The order of initialization is statics first, and then the non-static objects.,Explicit static initialization,Java allows you to group static initializations inside a spec
16、ial “static clause” in a class. /Spoon.java This code is executed only once like other static initializations: the first time you make an object or the first time you access a static member. /ExplicitStatic.java,Non-static instance initialization,Java provides instance initialization for initializin
17、g non-static variables for each object. /Mugs.java The instance initialization clause is executed before the constructor.,Array initialization,Define an array reference. Initialize an array. Copying reference. /ArraysOfPrimitives.java Java will cause a runtime error if you step out of bounds. You ca
18、n use new to create the elements in the array. /ArrayNew.java If you create a non-primitive array, you create an array of references. /ArrayClassObj.java,Its also possible to initialize arrays of objects by using the curly brace-enclosed list. /ArrayInit.java,Variable argument lists,Variable argument lists. /VarArgs.java;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 虫鼠防制试题及答案
- 押题宝典电工(高级)资格证考试试题及答案详解【真题汇编】
- 2025年甘南州合作市保安员考试真题附答案解析
- 辽宁省大连市金普新区九年级上学期期中语文试题【含答案详解】
- 2023年温州市事业单位考试试题真题及答案
- 电工(高级)资格证考试综合检测提分附答案详解【模拟题】
- 2026年贵州经贸职业技术学院单招职业技能笔试备考试题及答案详解
- 2026年成都银杏酒店管理学院高职单招职业适应性测试备考题库及答案详解
- 2025年电工(高级)资格证考试预测试题及答案详解一套
- 2026年湖南食品药品职业学院高职单招职业适应性考试备考题库及答案详解
- 江苏省盐城市五校联考2025-2026学年高二上学期10月第一次联考试题语文试卷含答案
- 电气控制及PLC应用-项目化教程 课件 2.1 项目二 认识三菱系列PLC
- 公安民警心理健康和心理调适
- 2025年师德知识竞赛试题及参考答案
- 2025贵州遵义市仁怀市公共交通服务有限公司招聘公交驾驶员及管理人员招聘141人备考笔试试题及答案解析
- 864《商务英语4》开放大学期末考试机考题库(按拼音)
- 2025智慧园区建设运营模式创新与经济效益分析
- 锅炉工模拟考试题库(含标准答案)
- 影视产业国际化发展路径-洞察及研究
- 设备综合效率OEE统计表(使用)
- WATERS公司的UPLCTQD培训资料MS7校正课件
评论
0/150
提交评论