[英]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 B
的Class A
或者您需要引用Class B
object。
否则,您可以将getNum2()
方法指定为static
方法。
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();
}
}
getNum2()
指定为 staticclass 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.