JAVA基础教程2.ppt_第1页
JAVA基础教程2.ppt_第2页
JAVA基础教程2.ppt_第3页
JAVA基础教程2.ppt_第4页
JAVA基础教程2.ppt_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论