如何将值传递给另一个类方法

时间:2016-09-23 23:55:08

标签: java swing methods

我在Question类中有全局变量,并在事件处理程序中递增这些值。我有另一个类User,它包含一个静态方法Details()。我想将这两个变量值(在增量之后)从事件处理程序传递给User类的Details()。:

public class Question {

    public int phCounter = 0;
    public int chemCounter = 0;

    private void CategoryCbActionPerformed(java.awt.event.ActionEvent evt) {

        phCounter++;
        chemCounter++;
    }
}

...

public class User {

    static void Details() {
        public counter ;
    }

}

我的问题是有什么办法,除了将值作为参数发送到Details(),我可以在Details()方法中注入这些递增的值。

2 个答案:

答案 0 :(得分:0)

首先:Java中的方法名称是camelCase。不是UpperCase;)

如果要访问另一个类中的类的字段,有几种方法可以实现。最简单的是静态字段:

public class MyClass {
    public static String accessible;
}

public class AnotherClass {
    public void someMethod() {
        // You can set the value ...
        MyClass.accessible = "New value";
    }

    public void anotherMethod() {
        // ... and get the value.
        System.out.println(MyClass.accessible);
    }
}

但请记住:除非您更改静态字段的值,否则静态字段的值将始终相同,即使您创建使用静态字段的类的新实例也是如此。如果可能,应该避免使用静态字段。在大多数情况下,您可以采用OOP方式来获得相同的结果。

〜变形

答案 1 :(得分:0)

  

我可以在Details()方法中注入这些递增的值。

这句话是什么意思?

下面的代码无法编译!

public class User{
    static void Details()
    {
        public counter;
    }
}

如果您想使用反射将args发送到方法,为什么不调用User.Details(int a,int b)