无法从if循环向另一个类发送字符串

时间:2012-10-12 15:39:58

标签: java class inner-classes

我正在尝试将字符串从一个类传递到另一个类,但没有成功。我在研究和反复试验中意识到我需要“public static void main(String [] args){}”才能使用if语句,但是getY()会产生错误。我能做些什么不同的事情?

public class Testing {
public static String z;
public static void main(String[] args) {
int x = 15;

if (x >= 10)
    {
    z = "Blabla";
    }
    public static String getZ() {
    return z;
    }
  }
}

另一个班级是

class B {
public static void main(String args[]) {
String x = Klasatest2.getZ();

System.out.println(x);
}
}

错误:

Klasatest2.java:14:非法开始表达

public static String getZ() 

^

Klasatest2.java:14:非法开始表达

public static String getZ() {

       ^

Klasatest2.java:14:';'预期

public static String getZ() {

                    ^

Klasatest2.java:14:';'预期

public static String getZ() {

                           ^

4个错误

2 个答案:

答案 0 :(得分:0)

对于初学者,你不能在方法中声明一个方法,

public static void main(String[] args) {
int x = 15;

if (x >= 10)
    {
    z = "Blabla";
    }
    public static String getZ() {
    return z;
    }
  }
}

因此,您必须确保将getZ()方法声明为main(string[] args)

的外部

像这样,

public class Test {
public static String z;
public static void main(String[] args) {
int x = 15;

if (x >= 10)
    {
    z = "Blabla";
    }

  }
public static String getZ() {
    return z;
    }
}

另外,你不应该有两个main(String[] args)方法,因为除非你出于某种原因决定自己调用它们,否则只会调用其中一个,这很奇怪。 因此,如果您希望在类Test中设置字符串,则需要从其他类中调用它的main方法,如下所示。

Test.main(null);

答案 1 :(得分:0)

您的应用只能使用一种main(String args[])方法。 试试这个:

public class Testing {
  public static void main(String[] args) {
    A a = new A("hy");
    B b = new B(a.z);
  }

  public class A {
    public String z;
    public A (String z) {
      this.z = z;
    } 
  }

  public class B {
    public B (String y) {
      System.out.println(y);
    }
  }
}