類體中的變量分為兩部分。變量定義部分定義的變量為類的成員變量,在方法體中定義的變量和方法中涉及的變量稱為局部變量。
成員變量和局部變量的區別:
(1)、成員變量在整個類中都有效,局部變量只在定義它的方法中有效
(2)、成員變量分為實例成員變量(簡稱實例變量)和類變量(簡稱靜態變量),如果在成員變量類型前加static,這個變量就稱為類變量。
(3)、如果局部變量的名字與成員變量的名字相同,則成員變量被隱藏 ,也就是說,這個成員變量在這個方法中暫時失效。
例:
public class Benson{
int x=100,y;
void f(){
int x=10;
y=x; //這里的y得到的值是10,而不是100
}
}
注意:如果局部變量的名字與成員變量的名字相同,則成員變量被隱藏,這是如果想在該方法內使用成員變量,必須使用this關鍵字。
例:
public class Employee{
int sideA,sideB,sideC;
void setSide(int sideA,int sideB,int sideC){
this.sideA=sideA; this.sideB=sideB;this.sideC=sideC;
}
}
方法聲明包括方法名、返回類型和外部參數。其中參數的類型可以是簡單數據類型,也可以是復合數據類型(又稱引用數據類型)。
對於簡單數據類型來說,實現的是值傳遞,方法接收參數的值,但不能改變這些參數的值。如果要改變參數的值,則用引用數據類型,因為引用數據類型傳遞給方法的數據在內存中的地址。
例:
public class PassTest{ float ptValue; public void changeInt(int value){ value=55;//在方法中對參數進行修改 } public void changeObject(PassTest pt){ pt.ptValue=88;///在方法中對引用參數進行修改 } public static void main(String argsp[]){ int val=11; System.out.println("初始值:"+val); PassTest pt=new PassTest(); pt.changeInt(val);//值傳遞 System.out.println("值傳遞后:"+val); pt.ptValue=99; System.out.println("初始值:"+pt.ptValue); pt.changeObject(pt); System.out.println("引用傳遞后:"+pt.ptValue); } }
構造方法是一個特殊的方法。java中每個類中都有構造方法,用來初始化該類的一個對象。構造方法具有和類名相同的名稱,而且不返回任何數據類型。同時,構造方法也可以重載。構造方法只能用new操作符調用,當類創建對象的時候使用構造方法。
例:
class Point{
int x,y;
Point(){
x=0;y=0;
}
Point(int x,int y){
this.x=x;this.y=y;
}
}