java類與物件
類與物件
java中使用class關鍵字來定義類
class 類名稱{
//類的成員變數
//類的成員方法
}
成員變數
形式 資料型別 變數名稱 (【=值】)(定義變數時可以賦值也可不賦值)
成員方法
對應於類物件的行為,主要用來定義類可執行的操做
方法的定義必須在某個類中,定義方法時如果沒有指定許可權修飾符,方法的訪問許可權為預設(即只能在本類及同一個包的類中進行訪問)
成員方法的引數
(1)值引數,即按值傳遞(在方法中對值型別的形參的修改並不會影響實參)
(2)引用引數(類似傳地址,引數型別是陣列或其他引用型別)
(3) 不定長引數:即多個引數例如
a.add(int···x); //定義add方法,並指定不定長引數的型別(當成一個數組處理,而且只能是三個點)
注意:不定長引數必須是方法中的最後一個引數,任何其他常規引數必須在他前面
構造方法 (是一個與類同名的方法)
特點:(1) 沒有返回型別,也不能定義成void,(不需要通過使用void關鍵字進行修飾)
(2)構造方法的名稱要和本類的名稱相同
(3)構造方法主要作用是完成物件的初始化工作,他能把定義物件的引數傳遞給物件成員
區域性變數
在使用是必須進行賦值操作或被初始化,如果在成員方法內定義一個變數,那麼這個變數被稱為區域性變數
物件的建立
通過new操作符來建立物件
public class CreatObject{ public CreatObject(){ //構造方法 Systrm.out.println("abc"); } public static void main(String[] args){ new CreatObject(); //使用new操作符建立物件的同時,將自動呼叫構造方法中的程式碼 } }
訪問物件的屬性和行為
用new建立一個物件後,可用“物件.類成員”來獲取物件的屬性和行為
物件的銷燬
被java虛擬機器視為垃圾的物件
(1)物件引用超過其範圍
(2)將物件賦值為null
this關鍵字
(1)當類中成員變數與成員方法的引數重名時,使用this關鍵字被隱式的用於引用物件的成員變數和方法
(2)作為方法的返回值
(3)呼叫類中的構造方法
static關鍵字
1.靜態變數:把共享的變數用static修飾
例如:一個水池有注水,也有放水,則水量是共享變數
定義 static public int water=0;
當類首次被載入時,靜態變數就被分配到記憶體中,直到程式結束才會釋放
2.靜態常量
在處理問題時會需要兩個類共享一個數據常量
用final static修飾一個成員變數,這個成員變數就會成為一個靜態常量
例final static double PI=3.1415926;
(常量大寫)
3.靜態方法
呼叫類的靜態方法,無需建立類的物件(類名.靜態方法)
public class StaticMethod{
static public void show(){ //定義靜態方法
System.out.println("abc");
}
public static void main(String[] args){
StaticMethod.show(); //使用類名呼叫靜態方法
}
}
4.靜態程式碼塊(自始至終只執行一次)
public class StaticTest{
static{
語句
}
}
類的主方法 (public static void main(String[] args))
特性:(1)主方法是靜態的,若果要直接在主方法中呼叫其他方法,則該方法必須也是靜態的
(2)沒有返回值
(3)形參為陣列,其中args[0]~args[n]分別代表程式的第一個引數到第n+1個引數,可以使用args.length獲取引數的個數