簡體   English   中英

如何在 class 中使用另一個 class 的方法?

[英]How can I use methods from another class in a class?

當我運行此代碼時,我在 A class 的添加方法中的“getNum2”上收到錯誤“無法找到符號”。我該如何做到這一點,以便一個 class 可以使用另一個 class 的對象/方法。

我認為如果我將該方法放在主 class 中會起作用,但我希望能夠為不同的對象調用“添加”方法,而不是為一組值進行硬編碼。

class Main {
  public static void main(String[] args) {
    System.out.println("Hello world!");
A a = new A(1);
B b = new B(2);
  }
}

public class A {

    private int num1;
    
    public A(int num){
      num1=num;
    }
    
    public int getNum1(){
      return num1;
    }
    
    public int add (){
      return getNum1()+getNum2();
    }
}

public class B{
    
    private int num2;
    
    public B (int num){
      num2=num;
    }
    
    public int getNum2(){
      return num2;
    }

}

您的add方法在A內部。 這意味着您可以訪問A的方法,例如getNum1 如果你想在add中調用B的方法,那么你需要在那里訪問B的一個實例。 您可以簡單地將該實例作為參數傳遞:

public int add (B b){
  return getNum1()+b.getNum2();
}

在你的main你可以這樣稱呼它

int sum = a.add(b);

要在 Class A 中調用getNum2()方法,首先您需要在Class A中創建Class BClass A或者您需要引用Class B object。

否則,您可以將getNum2()方法指定為static方法。

  1. Class A中創建一個 Class Class B的 Object。
class A{

   private int num;

   int getNum1(){
       return num;
   }

   public int add(){
       B b = new B();
       return getNum1() + b.getNum2();
   }
}
  1. getNum2()指定為 static
class A{

    private int num;

    int getNum1(){

    }

    public int add(){
        return getNum1() + B.getNum2();
    }

}

class B{

    static int num;

    public static int getNum2(){
        return num;
    }
}

請記住,我使用的術語非常簡單,您可以理解。 不是最好的方式。 此外,我已經跳過了您用來使這更容易理解的構造函數。

你最好多學習 Java 的基本 OOP 概念。順便說一句,祝你好運!

這是與您的代碼更相關的代碼。

public class Main{
    public static void main(String[] args) {
        A a = new A(2);
        B b = new B(3);

        a.add(b);
    }   
}

class A{

    private int num;

    public A(int num){
        this.num = num;
    }

    int getNum1(){
        return num;
    }

    public int add(B b){
        return getNum1() + b.getNum2();
    }

}

class B{

    private int num;

    public B(int num){
        this.num = num;
    }

    public int getNum2(){
        return num;
    }
}

您的 A class 沒有getNum2()方法,也沒有 B 的實例。

將A中的add方法修改為:

public int add(int toAdd) {
  return num + toAdd;
}

並像這樣使用它:

A a = new A(1);
B b = new B(2);
int result = a.add(b.getNum2());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM