-3

嗨,我有一个要求,我需要 is4cselected true 的值。

public class A {
        boolean is4cselected=false;
        public A(){
            //
    //
        }
        public void set4c(){
            is4cselected=true;
        }

    }
    class B{
        public static void main(String args[]){
            A a=new A();
            a.set4c();

        }

    }

我没有看到它发生,因为我们必须首先创建 A 类的对象。

有没有其他方法可以实现这一目标?我的意思是说我需要 is4cselected 在某些 if 情况下为假,而在 main() 中的某些 if-else 条件下为真。提前致谢

4

5 回答 5

0

对类本身的变量使用 static 关键字

如果 is4cselected 与所有类 A而不仅仅是类 A 的特定实例相关联,那么您可以使用静态成员(换句话说,如果只有 1 is4cselected,则在所有之间共享A);

public class A {
     static boolean is4cselected=false;
        ......

然后你可以像往常一样将其称为 A.is4cselected、useprivatepublic

或者,如果它特定实例相关联,则只需将其传递给构造函数

使用构造函数初始化类的实例

public class A {
    boolean is4cselected;
    public A(boolean is4cselected){
          this.is4cselected=is4cselected;
    }
    ......

你会像这样创建A类;

A a=new A(true);
于 2013-10-15T10:31:38.170 回答
0

您可以添加一个为该字段获取布尔值的构造函数,并在您想要创建具有默认值以外的值的类的实例时调用它:

public A(boolean is4cselected){
    this.is4cselected = is4cselected
}

然后:

public static void main(String args[]){
    A a = new A(true);
}
于 2013-10-15T10:32:55.490 回答
0

is4cselected在拥有实例之前,您无法更改实例成员 ( ) 的值。

可以添加一个构造函数,让您在外部任何东西A都可以访问该实例之前设置该值:

public A(boolean sel) {
    is4cselected = sel;
}

...你会B像这样使用它:

A a = new A(true);

或者你可以为它添加一个工厂函数:

public static A buildWithFlagSet() {
    A rv = new A();
    rv.set4c();
    return rv;
}

...你会B像这样使用它:

A a = A.buildWithFlagSet();
于 2013-10-15T10:33:20.807 回答
0
public class A {
    boolean is4cselected=false;
    public A(is4cselected){
        this.is4cselected = is4cselected;
    }
    public void set4c(){
        is4cselected=true;
    }

}
class B{
    public static void main(String args[]){
        A a=new A(true);
    }

}
于 2013-10-15T10:34:55.053 回答
-3

是的:

看@静态{}我添加到你的代码

public class A {
    static{
        boolean is4cselected=false;
    }

        public A(){
            //
    //
        }
        public void set4c(){
            is4cselected=true;
        }

    }
    class B{
        public static void main(String args[]){
            A a=new A();
            a.set4c();

        }

    }
于 2013-10-15T10:28:38.013 回答