如何允许任何类/方法访问变量?

时间:2012-08-17 14:55:31

标签: java

import javax.swing.*;

class Person {
     public String name;

     public static void main(String[] args) {
         new Person().enter();
     }
     void enter(){
        Person a = new Person();
        String first = JOptionPane.showInputDialog(null,"Enter your first name");
        a.name = first;
        new la().a();
     }
}
class la{
     void a(){
        Person a = new Person();
        System.out.println(a.name);
    }
}

正如您所看到的,我在这里要做的是从JOption输入设置全局变量'name',然后能够使用新输入的var从其他类访问'name'稍后的。由于以后类的工作依赖于var'name'。现在我知道我可以通过构造函数将这些传递给相关的类并避免这个问题,但我想知道这种方式是否可行?

2 个答案:

答案 0 :(得分:0)

现在,通过不指定您的类是Public,您将其设置为Default。默认是包私有,因此其他包中的类将无法访问此类的公共变量。

将该类声明为Public并将任何全局变量设置为Public,并且可以访问它们。

答案 1 :(得分:0)

你的榜样无法实现你想要实现的目标。

您在Person中创建一个新实例Main,为其分配一个新实例,然后创建一个la的新实例,创建它自己的实例Person

这些不同的实例之间没有联盟。

public static void main(String args[]) {
    String first = JOptionPane.showInputDialog(null,"Enter your first name");
    // You should be checking the return result, but any way...
    Person person = new Person();
    person.name = first;

    La la = new La(person);

}

public class La {
    public La(Person person) {
        System.out.println(person.name);
    }
}