Tôi biết rằng this(...)
được sử dụng để gọi một hàm tạo của một lớp từ một hàm tạo khác. Nhưng chúng ta có thể sử dụng new
không?Có thể "mới" được sử dụng bên trong hàm tạo của lớp để gọi một hàm tạo khác trong Java không?
Để rõ ràng hơn về câu hỏi, Line-2 có hợp lệ không? Nếu nó là (như trình biên dịch không khiếu nại), tại sao đầu ra là null
không Hello
?
class Test0 {
String name;
public Test0(String str) {
this.name= str;
}
public Test0() {
//this("Hello"); // Line-1
new Test0("Hello"){}; // Line-2
}
String getName(){
return name;
}
}
public class Test{
public static void main(String ags[]){
Test0 t = new Test0();
System.out.println(t.getName());
}
}
Tại sao bạn muốn làm điều này? –
@Lutz Horn Tôi thấy mã như vậy ở đâu đó và tôi muốn hiểu cơ bản đằng sau điều này. – Dexter
Bạn có chắc đó là mã có cùng ngữ nghĩa với bạn không? Mã này biên dịch nhưng nó không có ý nghĩa như thế này. –