[英]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.