方法可以按本類中的方法和外部類中的方法分類;方法又可以按靜態方法和非靜態的一般方法分類,其中又包含類中繼承方面的知識。而本文也是介於此分類方式來進行方法呼叫方式討論的。
呼叫方式:直接使用方法名呼叫
例子:
1)繼承於父類的靜態方法:直接使用父類方法名呼叫
public class test extends a }
class a
} 控制台輸出:我是型別a的print方法!
2)子類的新方法:直接使用子類新方法呼叫
public class test extends a
public static void main(string args)
} class a
} 控制台輸出:我是型別b的print方法!
注意事項:父類中的靜態方法是不能被重寫的,子類中同名靜態方法只能是新方法。換句話說,父類和子類中含有的其實是兩個沒有關係的方法,它們的行為也並不具有多型性。相關鏈結
呼叫方式:在非靜態**塊直接呼叫,靜態**塊需要構造物件呼叫。
1)繼承於父類的一般方法:建立子類物件呼叫與直接呼叫
public class test extends a
public test()
}class a
} 控制台輸出:我是型別a的print方法!
2)子類重寫的方法:建立子類物件呼叫與直接呼叫
public class test extends a
public static void main(string args)
public test()
}class a
} 控制台輸出:我是型別b的print方法!
3)子類的新方法:建立子類物件呼叫與直接呼叫
public class test extends a
public static void main(string args)
public test()
}class a
} 控制台輸出:我是型別b-2的print方法!
呼叫方式:使用 類名.方法 進行呼叫
public class test
}class a
}
呼叫方式:用外部類構造的物件進行方法呼叫
public class test
}class a
}
本類的靜態方法(可以繼承於父類)可以直接(不通過類名和物件呼叫)在子類的靜態方法中呼叫,但是不能使用this.方法名。所以「在該類的內部呼叫該類的方法是可以不寫類名的,預設了用this呼叫」這句話在很多回答**現,但是這是不夠嚴謹的,原因是其與this關鍵字不能在靜態方法中呼叫相矛盾。不妨將其認為是jvm提供給程式設計師的編譯器蜜糖。
任何類由於都繼承了object類,但是object類中沒有public修飾的靜態方法。但是object類中有native方法,其雖然不能放在子類的靜態方法中,但是在子類的一般方法中可以直接通過方法呼叫,比如wait()
方法,但要額外注意方法的異常處理,如下的非靜態方法test01()
public class test catch (interruptedexception e)
}}
Java的方法過載和方法的呼叫
方法過載 同乙個類中兩個或以上的方法可以有同乙個名字,只要引數宣告不同即可 方法的引數型別相同,個數不同 方法的引數個數相同,型別不同 過載只跟方法的引數型別和個數相關,跟返回值無關 public intcdd int x,int y public intcdd int x,int y int z ...
java 方法的呼叫
方法的呼叫有3種 1.用方法單獨作為語句來完成某一任務。例如 求多個階層和 public class f static int fact int n int s 1 for int i 1 i n i s s i return s public static void main string arg...
JAVA類的方法呼叫和變數
一 呼叫本類中的方法 方法一 被呼叫方法宣告為static 可以在其他方法中直接呼叫。示例 如下 public class helloword 被呼叫方法,這裡使用了static宣告為靜態方法 param x param y return private static int add int x,i...