class MyTestClass {
public int Value;
public boolean equals(MyTestClass obj){
return obj.Value ==this.Value;
}
public MyTestClass(int initValue){
Value = initValue;
}
}
這是類的構造方法,或者構造函數;建立對象時,自動調用。與類名相同,沒有傳回值。若沒有定義構造函數,Java編輯器會自動提供一個沒有參數的構造函數;若定義一個構造函數,編輯器将不再提供構造函數。例如:
public class Test{
public static void main(String[] args){
Foo obj1=new Foo();
}
}
class Foo{
int value;
public Foo(int initvalue){
value=initvalue;
}
}
這個函數會編輯出錯。。
下面這個例子更加說明構造函數和預設構造函數
package jxlPacakge;
public class InitializeBlockDemo {
public static void main(String[] args) {
InitializeBlockClass obj=new InitializeBlockClass();
System.out.println(obj.field);
obj=new InitializeBlockClass(300);
System.out.println(obj.field);
}
}
class InitializeBlockClass{
//下面這句在初始化塊之前與之後,會影響到field字段的初始值
//public int field=100;
{
field=200;
}
public int field=100;
public InitializeBlockClass(int value){
this.field=value;
}
public InitializeBlockClass(){
}
}