当前位置: 首页 > 面试题库 >

实例变量部分中的Java ArrayList add()方法

傅恺
2023-03-14
问题内容

在通常声明/定义实例变量的Java类中,我想将a
ArrayList作为实例变量之一,并使用一些元素作为开始对其进行初始化。一种方法是声明ArrayList并在构造函数中对其进行初始化。但是,我想知道为什么在构造函数外部初始化值是非法的。例如,

public class Test {
    // some instance variables...

    private ArrayList<String> list = new ArrayList<String>();
    list.add("asdf");

    // methods here...
}

所以我知道这是非法的。但是为什么这是非法的呢?


问题答案:

您不能在类中自由执行语句。它们应该在方法内部。我建议您将此行添加到类的构造函数或类初始化块中。

在类构造函数中:

public class Test {
    // some instance variables...

    private List<String> list = new ArrayList<>();

    public Test() {
        list.add("asdf");
    }
    // methods here...
}

在类初始化块中:

public class Test {
    // some instance variables...

    private List<String> list = new ArrayList<>();

    {
        list.add("asdf");
    }
    // methods here...
}


 类似资料:
  • 问题内容: 我已经读过“如果变量的作用域更近,则该变量将被遮盖”。我发现此Point类带有一个构造函数作为示例: 然后,我在下面的CreateObjectDemo类中创建了Point类的对象,并打印了变量x的值。 运行编译器后,它显示0。但是为什么不显示23?我认为构造函数中的 “ x = x” 将类似于 “ 23 = 23” 。我是否误解了阴影变量的定义? 问题答案: 我认为构造函数中的“ x

  • 本文向大家介绍PHP中静态变量的使用方法实例分析,包括了PHP中静态变量的使用方法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP中静态变量的使用方法。分享给大家供大家参考,具体如下: 1.定义静态变量 2.静态变量赋值 3.静态变量使用 更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基本语法入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(s

  • 对象的实例变量及方法 实例变量(Instance Variables)是当你使用它们时,才会被建立的对象。因此,即使是同一个类的实例,也可以有不同的实例变量。 从技术层面上来看,一个对象(实例)只是存储了它的实例变量和其所属类的引用。因此,一个对象的实例变量仅存在于对象中,方法(我们称之为实例方法(Instance Methods))则存在于对象所属的类中。这也就是为什么同一个类的实例都共享类中的

  • 本文向大家介绍python函数局部变量用法实例分析,包括了python函数局部变量用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python函数局部变量用法。分享给大家供大家参考。具体分析如下: 当你在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是 局部 的。这称为变量的 作用域 。所有变量的作用域是它们被定义的块,从它们的

  • 问题内容: 我读到Java为类属性提供了默认值,但没有为局部变量提供默认值。那是对的吗?如果是这样,背后的原因是什么?当您做某件事时,为什么不一直这样做呢? 谢谢你, 罗杰 问题答案: 标准局部变量存储在堆栈中,直到初始化后才真正创建。如果未使用局部变量,则它不会进入堆栈。但是,成员变量在堆中分配,因此具有默认的占位符(空引用或默认原语)。

  • 问题内容: 这是JDK的类方法。作者为什么将字段分配给局部变量? 上面和下面之间有什么区别?这与线程安全有关吗? 问题答案: 为了稍微扩展一下Michael的答案,我希望它可以确保该方法永不返回,而且还可以提供所提到的性能优势。 给出以下代码: 至少从理论上讲,在多线程代码中,可以将字段设置为第一次读取()和第二次读取之间,然后将其返回。我没有看过其余的代码,但是我假设还有其他可能被分配的地方。对