有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从主对象之外的方法访问类对象

很抱歉,如果标题没有它应该是准确的,甚至可能是错误的翻译我的一部分。我是德国人,也是一名代码初学者,所以请你给我放轻松。 所以我用JAVA编写了一个程序。这是一个银行账户的程序,我在一本书中找到了它,并试图扩展它。现在,为了在这个线程中保持简单,我显然减少了关于这个问题的示例代码

public class Test1 {
public static void method(){
    k.setNumber(300);  // This is where the problem is. From this method 
                       // I cannot acces the in main created class 
                       // object from 'Test'
    }

public static void main(String[] args) {

    Test k = new Test();

    method();
    k.getNumber();

}

}

现在是课堂测试:

public class Test {

int number;

public int getNumber(){
    return number;
}

public void setNumber(int nr){
    number = nr;
}
}

那有什么办法吗?否则,我将不得不在“main”中编写所有内容,这在本例中是没有问题的,但在我的原始代码中,这并不容易做到

谢谢你的帮助和建议。希望这之前没有发布,因为我已经搜索了这个网站和网络


共 (5) 个答案

  1. # 1 楼答案

    您可以将k设置为全局变量,也可以像这样在method的参数中传递它

    public static void main( String[] argv )
    {
        final Test k = new Test();
    
        method( k );
        System.out.println(  k.getNumber() );
    }
    
    public static void method(Test k)
    {
        k.setNumber( 2 );
    }
    
  2. # 2 楼答案

    您可以这样做:

        public class Test1 {
    public static void method(Test k){
        k.setNumber(300);  // This is where the problem is. From this method 
                           // I cannot acces the in main created class 
                           // object from 'Test'
        }
    
    public static void main(String[] args) {
    
        Test k = new Test();
    
        method(k);//pass this test class instance to method
        k.getNumber();
    
    }
    
    }
    
  3. # 3 楼答案

    您还可以将其用作方法的变量:

    public class Test1 {
    
    public static void method(Test test){
        test.setNumber(300); 
    }
    
    public static void main(String[] args) {
      Test k = new Test();
    
      method(k);
      k.getNumber();
     }
    
    }
    
  4. # 4 楼答案

    目前,k只属于main方法。要从同一类中的其他方法访问它,需要将其设置为类变量。这应该是您所需要的:

    public class Test1 {
        private static Test k;
    
        public static void method() {
            k.setNumber(300);
        }
    
        public static void main(String[] args) {
            k = new Test();
            method();
            k.getNumber();
        }
    }
    
  5. # 5 楼答案

    你需要定义

    Test K = new Test()
    

    在两种方法之外,即main和method。大多数情况下,您需要将“K”设置为全局,以使这两种方法都可见