tij3筆記 002

•    用引用操縱對象
java視一切爲對象,但操作的標識符實際上是對象一個的“引用”。擁有一個引用時不一定需要一個對象與它相關聯。String s;創建的只是引用並不是對象。
理解:標識符就是“引用”,聲明變量時就有了這個“引用”,未賦值就不是對象。
•    必須由你創建所有對象
將引用與對象相連接,用new關鍵字完成,創建新的對象:String s = new String(“asdf”)。用new創建的將存於堆。
對於基本類型,不需要new來創建變量:char c = ‘x’;這創建了一個並非“引用”的“自動變量”,其值存在於堆棧中。然而仍可以用基本類型所具有的“包裝器類型”在堆中創建非基本對象:char c =‘x’;character C = new character(c);
創建一個數組對象時實際創造了一個數組 of 引用s,且每個引用都會被初始化爲一個特定值,該值擁有自己的關鍵字null。在使用任何引用時,必須爲其指定一個對象。創建數組 of 基本數據類型,這種數組所佔的內存全部置零。
•    永遠不需要銷燬對象
java對象不具備和基本類型一樣的生命週期,用new創建java對象時,它可以存活於作用域之外。java有一個垃圾回收器,用來監視new所創建的所有對象,並#辨別那些不會再被引用的對象,隨後釋放內存空間。
•    創建新的數據類型:類
class關鍵字創建新類。
類中設置兩種類型的元素:域-數據成員-任何類型的對象;方法-成員函數。
1)域:引用一個對象的成員:objectReference.member。
類的某個成員是基本數據類型時,java會確保它獲得一個默認值。僅當變量作爲一個類的成員使用時,java才確保給它默認值。
2)方法:方法決定了一個對象能夠接收什麼樣的消息。組成包括:名字,參數,返回值和方法體:
returntype methodname(/*argue list*/){
/*method body*/
}
方法名和參數表組合在一起唯一地標識某個方法。
java方法只能作爲類的一部分來創建。方法只有通過對象才能被調用,且這對象必須能執行這個方法調用:objectname.methodname(arg1,arg2,arg3);這種調用方法的行爲通常稱爲“發送消息給對象”。
參數列表中必須指定每個傳入對象的類型及名字;除基本類型外,傳遞的實際上也是引用。
return關鍵字,若不想返回任何值,則指定方法爲void,此時return只用來退出方法;若不是void,則無論在何處返回,編譯器將強制返回一個正確類型的返回值。

程序是一系列帶有方法的對象的組合,這些方法以其它對象爲參數,併發送消息給其它對象。

•    構建一個java程序
定位構件:若類在發出調用的那個源文件中,則可直接使用之(java無“向前引用”,這個類可以在文件的後面再定義);若不在同一文件,使用import關鍵字,導入一個包,也即一個類庫。

java所有的代碼都必須寫在類裏。

static關鍵字:
1)提出:用new來創建對象時,它的數據存儲空間才被分配,它的方法纔可供調用。但有時希望只開闢存儲空間存儲特定數據(靜態的,可引用的),有時希望方法不與對象關聯(或說可脫離對象而調用),此時引入了static關鍵字。
2)引用:
引用一個static變量:一,通過類名;二;通過對象定位
若有
class StaticTest {
  static int i=47;
}
一,可StaticTest.i
二,可
StaticTest st1 = new StaticTest();
然後用st1引用。
前種“靜態性”,且不能被用於非靜態成員(如後者)。
同樣的,引用一個static方法:一,同過類名;二,通過對象引用。
若有
class StaticFun{
  static void incr() {StaticTest.i++}
}
一,可StaticFun.incr();
二,可
StaticFan sf = new StaticFun();
sf.incr();
3)意義:static方法重要用法是在無對象創建的前提下就可以調用它。這一點對定義main()方法很重要,這個方法是運行一個應用時的入口點。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章