java - 所有实例变量都声明在函数外吗?

标签 java variables instance-variables

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

第一种方法是根据作用域将它们分为全局变量和局部变量。当一个类实例的所有方法都可以访问该变量时,即在整个类中,则它被称为全局变量,而当它只能在类实例的代码块中访问时,它被称为全局变量作为局部变量。

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

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

最佳答案

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

编辑:

这是@Yeikel 建议的示例:

public class MyClass {

    private static int iAmAStaticMember = 1;

    private int iAmAnInstanceMember;

    public void someMethod() {
        int iAmALocalVariables = 4;
    }
}

关于java - 所有实例变量都声明在函数外吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41446522/

相关文章:

javascript - 在 Shiny 的 R 中使用观察函数

ruby - 使用变量的 Object.const_set

ios - 为什么我不能为我的伊娃赋值?

java - 从 Java 8 中的并行流中收集

java - 使用 JPA 时构建器模式的最佳实践和实现

java - Minecraft Forge EntityJoinWorldEvent 返回错误的位置!错误

ruby - 如何将字符串转换为多个变量

java - 在 Spring Webflux 中组合多个单声道

java - 我应该在声明时还是在构造函数中实例化实例变量?

ios - 我应该在接口(interface)中声明变量还是在 objective-c arc 中使用属性?