Java的方法過載和方法的呼叫
阿新 • • 發佈:2019-02-06
方法過載 · 同一個類中兩個或以上的方法可以有同一個名字,只要引數宣告不同即可
- 方法的引數型別相同,個數不同;
- 方法的引數個數相同,型別不同;
- 過載只跟方法的引數型別和個數相關,跟返回值無關;
public int cdd(int x, int y){
return x+y;
}
public int cdd(int x, int y ,int z){
return x+y+z;
}
//要麼型別不同,要麼個數不一樣多,否則構不成過載
方法的呼叫
- 呼叫非靜態方法:通過物件呼叫
- 呼叫靜態的方法:通過類名呼叫
- 本類中
- 靜態直接呼叫靜態
- 靜態呼叫非靜態
- 非靜態呼叫靜態
- 非靜態呼叫非靜態
- 不同類中
- 靜態呼叫靜態
- 靜態呼叫非靜態
- 非靜態呼叫靜態
- 非靜態呼叫非靜態
本類中
- 靜態呼叫靜態:直接呼叫
public static void main(String[] args){
t2(); //直接呼叫
}
public static void t2(){
......
}
- 靜態呼叫非靜態:通過靜態的物件去呼叫
public class A{
public static void main(String[] args){
}
public void noStatic(){ //非靜態方法
......
}
public static void yesStatic(){ //靜態方法
A yes = new A(); //在靜態裡建立一個物件
yes.noStatic(); //通過靜態的物件呼叫非靜態
}
}
- 非靜態呼叫靜態:直接呼叫
public class AD{
public static void main(String[] args){
}
public void nono(){ //非靜態方法
yesyes(); //直接呼叫
}
public static void yesyes(){ //靜態方法
......
}
}
- 非靜態呼叫靜態:直接呼叫
public class AA{
public static void main(String[] args){
}
public void yes1(){
yes2();
}
public void yes2(){
......
}
}
不同類中
- 靜態呼叫靜態:通過 類名.靜態方法()呼叫
public class AA{
public static void main(String[] args){
}
public static void one(){
AA.two(); //類名.靜態方法();
}
public static void two(){
......
}
}
- 靜態呼叫非靜態:先匯入該類中的包,後建立物件呼叫
public class AA{ //AA類
public static void main(String[] args){
}
public staic void yesStatic(){ //在靜態方法中建立物件
BB b = new BB(); //非靜態所在類類名 物件 = new 非靜態所在類類名();
b.noStatic();
}
}
public class BB{ //BB類
public void noStatic(){
......
}
}
- 非靜態呼叫靜態:先匯入該包,通過類名呼叫
public class AA{ //AA類
public static void main(String[] args){
}
public void yesStatic(){ //在非靜態方法中建立物件
BB.yesStatic();
}
}
public class BB{ //BB類
public static void yesStatic(){
......
}
}
- 非靜態呼叫非靜態:先匯入該包,通過物件呼叫
public class AA{ //AA類
public static void main(String[] args){
}
public void yesStatic(){ //在非靜態方法中建立物件
BB b = new BB(); //非靜態所在類類名 物件 = new 非靜態所在類類名();
b.yesStatic(); //通過物件呼叫
}
}
public class BB{ //BB類
public void yesStatic(){
......
}
}