[英]Initialization of object in Java
我正在学习 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
根据我的理解:
my_class
是类的名称my_object
是我正在创建的对象的引用new
运算符分配内存并返回它的地址,该地址存储在my_object
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;
处标记错误a=10;
但它可以工作并打印输出: 10
我哪里错了?
您可以初始化任何final
一次场,无论是在构造函数(即,每个构造一次),或在其声明。
(值得注意的是,如果您希望构造函数的参数在最终变量的值中起作用,则必须在构造函数中对其进行初始化——否则最终变量将毫无用处!)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.