1. 程式人生 > >Java的方法過載和方法的呼叫

Java的方法過載和方法的呼叫

方法過載 · 同一個類中兩個或以上的方法可以有同一個名字,只要引數宣告不同即可

  1. 方法的引數型別相同,個數不同;
  2. 方法的引數個數相同,型別不同;
  3. 過載只跟方法的引數型別和個數相關,跟返回值無關;
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(){
        ......
    }
}