gpt4 book ai didi

java - Java中对象的初始化

转载 作者:行者123 更新时间:2023-12-02 08:48:40 25 4
gpt4 key购买 nike

我正在学习 Java 中的一些基本 OOP 概念。考虑以下代码片段:

class my_class{
int a;
public my_class() {
System.out.print(a+" ");
a = 10;
System.out.print(a);
}
}
class Main{
public static void main(String[] args) {
my_class my_object = new my_class();
}
}

以下代码的输出为:0 10

据我了解:

  1. my_class 是类的名称
  2. my_object 是我正在创建的对象的引用
  3. new 运算符分配内存并返回存储在 my_object 中的地址
  4. my_class() 是构造函数,它使用默认值 0 初始化对象的字段,然后为其分配 10

现在考虑代码:

class my_class{
final int a;
public my_class() {
a=10;
System.out.print(a);
}
}
class Main{
public static void main(String[] args) {
my_class my_object = new my_class();
}
}

根据我之前的理解,它应该创建 my_object ,并将字段 final int a 设置为默认值 0,该值应该是不可更改的,并在 a 处标记错误=10; 但它可以工作并打印输出:10

我哪里出错了?

最佳答案

您可以在构造函数中(即每个构造函数一次)或在其声明中初始化任何 final 字段一次。

(值得注意的是,如果您希望构造函数的参数在最终变量的值中发挥作用,则必须在构造函数中对其进行初始化 - 否则最终变量将毫无用处!)

关于java - Java中对象的初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60916845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com