繁体   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