在此代码中
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/