Java 访问另一个类';构造函数中的公共变量

Java 访问另一个类';构造函数中的公共变量,java,Java,我有C1班和C2班。 C1有一个公共布尔变量b1 b1的值在C1中设置,然后我在C1中创建了一个C2类的对象。 在C1中,我有: b1 = true; C2 c2 = new C2(); 现在在C2的构造函数中,我想根据b1的值做出决定。 如何在C2的构造函数中访问b1的值(它是C1类的变量)? C2的构造函数不能有任何参数 谢谢如果C2类被定义为C1的内部类,您可以像这样访问其外部类: C1.this.b1 在C2中,将C1作为对象,然后进行检查 boolean check=new C

我有C1班和C2班。 C1有一个公共布尔变量b1

b1的值在C1中设置,然后我在C1中创建了一个C2类的对象。 在C1中,我有:

b1 = true; 
C2 c2 = new C2(); 
现在在C2的构造函数中,我想根据b1的值做出决定。 如何在C2的构造函数中访问b1的值(它是C1类的变量)? C2的构造函数不能有任何参数


谢谢

如果C2类被定义为C1的内部类,您可以像这样访问其外部类:

C1.this.b1

在C2中,将C1作为对象,然后进行检查


boolean check=new C1().b1

有几种方法可以做到这一点。您还可以按照@Logard的建议将b1设为静态,或者将C1设为单态:

public enum C1{
    INSTANCE;

    public boolean b1=false;  

}

public class C2{

    public C2(){
        System.out.println(C1.INSTANCE.b1);
    }

}

为什么在
C2
的构造函数中不能有任何参数?如果没有它,您就无法按要求执行操作。
C2
C1
的非静态嵌套类吗?请注意,一个类可以有多个构造函数,因此您可以保留无参数构造函数并添加一个接受布尔参数的新构造函数。@Aleks G有很多方法可以做到这一点。C1可以做成单例,也可以做成静态。@JohnKane你说得对,但是为什么不把一个参数传递给C1构造函数呢?除非不需要,否则它不会得到C1现有实例的当前值?