JAVA基礎(chǔ)教程2.ppt_第1頁
JAVA基礎(chǔ)教程2.ppt_第2頁
JAVA基礎(chǔ)教程2.ppt_第3頁
JAVA基礎(chǔ)教程2.ppt_第4頁
JAVA基礎(chǔ)教程2.ppt_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、Initialization and cleanup,華南理工大學(xué) 計算機(jī)科學(xué)與工程學(xué)院 韋佳 ,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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論