2013-12-12 75 views
0

我是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() 
} 
+3

请坚持到Java命名约定(类以大写,一切以小写),对方不可选的,并且提高了可读性你的代码很多。 – LionC

回答

0

普通干将不带任何参数

main

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

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

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

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

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

那么这

由于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()); - message()在你的Logic类中有一个参数。
  • System.out.print(logicObject2.someArray()); - 在Logic类中没有someArray()方法。

编辑:常规数据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; 
    } 
} 
+0

太棒了,非常感谢。我现在要编辑我的问题,我想通过一些参数向gui类传递一个void的逻辑。我该怎么做? – medzi

+0

查看我的编辑...另外,您应该提出一个新问题,而不是在已回答的同一问题中更改完整问题。 –

+0

你是明星,这是辉煌的。好吧,我要发布一个新问题。再次感谢:) – medzi

0

您在马有主

而不是s未定义的变量s你可以写字符串常量"I like stackoverflow"

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

    return s; 
} 

此方法需要您将字符串传递到随后再返回相同的字符串。

尝试:

public String message(){ 

    return s; 
} 
0

写在你的逻辑类类以下内容:

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

我不知道,但我认为这是你的问题。 (如果这不工作只是交换this.s和S)

相关问题