Java 类变量的声明意外结束

Java 类变量的声明意外结束,java,android,compiler-errors,global-variables,variable-declaration,Java,Android,Compiler Errors,Global Variables,Variable Declaration,我面临着一个奇怪的错误:声明意外结束。我很确定没有打字错误。请帮忙 package test.anyname; import android.app.*; import android.os.*; public class MainActivity extends Activity { boolean ty= true; ty= false; // Error occurred at this line @Override protected void on

我面临着一个奇怪的错误:声明意外结束。我很确定没有打字错误。请帮忙

package test.anyname;
import android.app.*;
import android.os.*;

public class MainActivity extends Activity {
   boolean ty= true;
   ty= false;       // Error occurred at this line
   @Override
   protected void onCreate(Bundle savedInstanceState){
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
   }
}

可以直接在类主体内编写的内容只有:

  • 字段声明(例如,
    布尔ty=true;
  • 方法声明(例如,
    @Override protected void onCreate(Bundle savedInstanceState){…}
  • 建设者
  • 嵌套接口和类的声明
  • 静态和实例初始值设定项

ty=false
是一个赋值,但它不是这些赋值,因此它是不允许的。

您只能初始化一次变量,并且不能在某些方法之外再次更改此变量。那么,你应该用一种方法来做这件事

package test.anyname;
import android.app.*;
import android.os.*;

public class MainActivity extends Activity {
   boolean ty = false; // you can initialize only once

   @Override
   protected void onCreate(Bundle savedInstanceState){
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
   }

   void changeTy() {
      ty = !ty;
   }
}    

ty=false语句必须在某个方法中。@Eran为什么必须
ty=false在一个方法中?如果你想让ty为“false”,为什么要用“true”初始化,或者你可以将onCreate()中ty的值改为“false”@VíVêkBårì我是新手,这是我的第一个脚本。但据我所知,这应该是允许的,对吗?@D5fgj存在编译器错误这一事实清楚地表明这是不允许的?因为它可以在没有错误的情况下运行,这是一个带有初始值设定项的字段声明是合法的(也许令人惊讶);2) 您可以更改实例初始值设定项中的变量(例如,
boolean ty=false;{ty=true;}
),这不是方法。