gpt4 book ai didi

java - java中这两个构造函数有什么区别? (内存)

转载 作者:行者123 更新时间:2023-12-01 07:06:30 26 4
gpt4 key购买 nike

在此代码中

public class Base {
int length, breadth, height;

Base(int l, int b, int h) {
length = l;
breadth = b;
height = h;
}
}

Base(int l, int b, int h) {
this.length = l;
this.breadth = b;
this.height = h;
}

这两个构造函数初始化有什么区别?哪种方法是最受青睐的?它在内存分配方面有何变化?

最佳答案

没有什么区别。在第一个构造函数中,您只需省略 this,而在第二个构造函数中,您可以显式指定它。生成的字节码是完全一样的(你可以检查一下)。如果你想放或不放它,这只是一个风格问题,除非该字段与参数具有相同的名称,在这种情况下 this 是强制性的以避免歧义,例如:

Base(int length,int breadth,int height) {
this.length = length;
this.breadth = breadth;
this.height = height;
}

(请明智地使用空格,这会使您的代码更具可读性)。

关于java - java中这两个构造函数有什么区别? (内存),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22557494/

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