Java - 我需要在 main 方法中使用变量布尔值,在外部初始化但在相同 class

Java - I need to use a variable boolean inside the main method, initialized outside but within the same class

布尔值必须在 main 方法之外,以便其他方法可以对其进行操作。我到处搜索都找不到合适的答案,因为我偶然发现的只是布尔值作为方法的解决方案。它必须是一个简单的布尔值,不能是静态的。没有太多时间,所以任何帮助都会很棒。谢谢

public class myClass {

   private int[][] holdsStuff;
   private boolean isNeeded;

   public setFalse (){
   }

   public setTrue () {
   }

   public static void main(String[] args) {
      //call methods to change isNeeded
      //require isNeeded to prevent invalid changes being made to holdsStuff
   }
}
public class myClass {

       private int[][] holdsStuff;
       private boolean isNeeded;

       public void setFalse (){
       isNeeded =false;
       }

       public void setTrue () {
        isNeeded = true;
       }

       public static void main(String[] args) {

           myClass myclass = new myClass();
           myclass.setFalse();
           myclass.setTrue();
          //call methods to change isNeeded
          //require isNeeded to prevent invalid changes being made to holdsStuff
       }
    }

如果class成员isNeeded不是静态的,那么它一定属于myclass的一个实例,你可以创建一个新的实例并操作这个实例:

public class myClass {

    private int[][] holdsStuff;
    private boolean isNeeded;

    public void setFalse (){
        isNeeded = false;
    }

    public void setTrue () {
        isNeeded = true;
    }

    public static void main(String[] args) {
        myClass mc = new myClass();
        myClass.setFalse();

    }
}

因为 main 是静态的,所以要么使用 static keyward,要么创建一个相同的实例 class。使用以下静态密钥:

public class myClass {

   private int[][] holdsStuff; // make this static if you are also this inside main
   private static boolean isNeeded;

   public static setFalse (){
   }

   public static setTrue () {
   }

   public static void main(String[] args) {
      //call methods to change isNeeded
      //require isNeeded to prevent invalid changes being made to holdsStuff
   }
}

您想在其他方法和 main 方法中使用 isNeeded,即 static static 方法只处理静态数据 read this。所以你想要做的是创建这个 class 的实例以在 main 方法

中调用 isNeeded
 public static void main(String[] args) {
       myClass myclass = new myClass();          
       boolean isNeeded = myclass.isNeeded;
   }