假設我有一個類,並且我希望它的某個方法根據參數具有不同的行爲。我想要做的就是這樣的事(我知道這並不在Java中工作):將參數傳遞給Java中的類
class myClass(int a) {
public void myMethod() {
if (a == 1)
// do something
if (a == 2)
// do something else
}
}
有沒有辦法做到這一點?
假設我有一個類,並且我希望它的某個方法根據參數具有不同的行爲。我想要做的就是這樣的事(我知道這並不在Java中工作):將參數傳遞給Java中的類
class myClass(int a) {
public void myMethod() {
if (a == 1)
// do something
if (a == 2)
// do something else
}
}
有沒有辦法做到這一點?
你有兩種方法可以做到這一點。
像這樣:
class MyClass {
private final int a;
public MyClass(int a) {
this.a = a;
}
public void myMethod() {
if (a == 1)
// do something
if (a == 2)
// do something else
}
}
就像是:
class MyClass {
public void myMethod(int a) {
if (a == 1)
// do something
if (a == 2)
// do something else
}
}
參數必須傳遞給方法,而不是類:
class MyClass { // note that class names should start with an uppercase letter.
public void myMethod(int a) {
if (a == 1)
// do something
if (a == 2)
// do something else
}
}
可以在構造函數中
class MyClass {
private int a;
public MyClass(int a){
this.a = a;
}
public void myMethod() {
if (a == 1)
// do something
if (a == 2)
// do something else
}
}
Polymorphism通過這個參數是要走的路。首先用抽象方法myMethod()
定義基類,然後用兩個類來擴展它,從而提供該方法的兩種不同實現。
哦不,不是!繼承是邪惡的,很可能會產生不可讀的代碼,並且很難維護和測試。隨時隨地組成繼承。 – Guillaume
是的,構造函數是最適合的。 – user1010399
這取決於如果這只是方法的參數,或者需要在類中多次重複使用的東西 – Guillaume
謝謝,這個作品。但是當我聲明它爲「private final int」時,它說「不能將值賦給最終變量hashType」。所以我宣稱它是一個變量。也許我做錯了什麼? – hattenn