是否在函数外声明了所有实例变量?

MrA*_*rAP 2 java variables instance-variables

我知道变量可以用两种方式分类: -

第一种方法是根据范围将它们分类为全局变量和局部变量.当变量可由类的实例的所有方法访问时,即在整个类中,则它被称为全局变量,并且当它仅在类的实例中的代码块内可访问时,它是已知的作为局部变量.

第二种方法是将它们分类为类/静态实例/非静态变量.类/静态变量是属于该类的变量,并且对于类的所有实例仅存在这些变量的一个副本,并且它们由它们共享.实例变量是属于类实例的变量,为每个实例创建单独的副本.

我的讲师说实例变量只能在函数外声明.为什么会这样?局部变量可以不是实例变量吗?

Mur*_*nik 5

如果在方法中声明变量,则它是属于该方法的局部变量.方法终止时,它将超出范围.使变量属于实例的唯一方法是直接在类下声明它 - 即,在任何方法之外.

编辑:

这是@Yeikel建议的样本:

public class MyClass {

    private static int iAmAStaticMember = 1;

    private int iAmAnInstanceMember;

    public void someMethod() {
        int iAmALocalVariables = 4;
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 您应该添加示例代码以完成此答案 (3认同)