簡體   English   中英

如何將數據/值從一類傳遞到另一類

[英]how to pass data/values from one class to another

我是Java的新手,我正努力將變量/數組從一個類傳遞到另一個類,而gui類應該從該類打印邏輯類中的數據。

這是我的代碼如下:

Gui班:

package testClassesGUI;

public class Gui {

    public static void main(String []args){

        Logic logicObject = new Logic();
        logicObject.message(s);//here is an error

        Logic logicObject2 = new Logic();
        logicObject2.someArray(String[] someArray);//here is an error

        System.out.print(logicObject.message());//here is an error
        System.out.print(logicObject2.someArray());//here is an error

            Logic logicObject3 = new Logic();
        logicObject3.currentPoints((DominoPlayer[] player);

            System.out.print(p.getName() + " has " + p.getPoints() + " Points");

    }
}

Logic類:

package testClassesGUI;

public class Logic {

    String s = "hello";
    public String message(String s){

        return s;
    }

    String[] someArray = { "Great", "World" };

    public String[] message2(String[] someArray){

        return someArray;

    }

   //imagine i have imported this and I need to pass to the gui class
   public void currentPoints(CardPlayer[] player) {
    for (CardPlayer p : player) {
        p.getName();  //pass this to the gui class
                   p.getPoints();//pass this to the gui class
        }
    }
    //return p.getName() and p.getPoints()
}

您在main中有未定義的變量s

代替main中的s ,您可以編寫常量字符串"I like stackoverflow"

String s = "hello";
public String message(String s){

    return s;
}

此方法期望您將一個字符串傳遞給它,然后返回相同的字符串。

嘗試:

public String message(){

    return s;
}

在邏輯類中編寫以下內容:

 public String message(String s){
this.s = s;
    return s;
}

我不確定,但是我認為那是你的問題。 (如果這不起作用,只需交換this.s和s)

普通吸氣劑不帶任何參數

嘗試這個

String s = "hello";
public String message(){
    return s;
}

String[] someArray = { "Great", "World" };

public String[] message2(){
    return someArray;
}

然后這在你的main

Logic logicObject = new Logic();
System.out.print(logicObject.message());

String[] array = logicObject.message2();
for (String s: array){
    System.out.print(s + " ");
}

由於message2()返回String[] ,因此您在調用它時希望將其設置為等於String[] array = logicObject.message2();

當您嘗試執行此操作時

System.out.print(logicObject2.someArray());

因為沒有方法someArray()所以會出現錯誤。 這里有一個someArray[]數組,因此您可以像沒有任何()情況那樣調用它的logicObject.someArray


所有錯誤清單

  • logicObject.message(s); -有沒有s宣布,你可以通過
  • logicObject2.someArray(String[] someArray); -邏輯類中沒有someArray()方法
  • System.out.print(logicObject.message()); - Logic類中的message()帶有一個參數。
  • System.out.print(logicObject2.someArray()); -您的Logic類中沒有someArray()方法。

編輯:常規數據訪問Mutator(set) Accessor(get)Mutator(set)方法

public class Logic {
    private String s = "hello";
    private String[] someArray = { "Great", "World" };

    // getter method
    public String getS(){
        return s;
    }

    // getter method
    public String[] getSomeArray(){
        return someArray;
    }

    // setter method
    public void setS(String s){
        this.s = s;
    }

    // setter method
    public void setSomeArray(String[] someArray){
        this.someArray = someArray;
    }
}

暫無
暫無

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

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