Tôi đã viết lớp đơn giản này trong java chỉ để thử nghiệm một số tính năng của nó.java "void" và "non void" constructor
public class class1 {
public static Integer value=0;
public class1() {
da();
}
public int da() {
class1.value=class1.value+1;
return 5;
}
public static void main(String[] args) {
class1 h = new class1();
class1 h2 = new class1();
System.out.println(class1.value);
}
}
Đầu ra là:
Nhưng trong mã này:
public class class1 {
public static Integer value=0;
public void class1() {
da();
}
public int da() {
class1.value=class1.value+1;
return 5;
}
public static void main(String[] args) {
class1 h = new class1();
class1 h2 = new class1();
System.out.println(class1.value);
}
}
Kết quả của mã này là:
Vậy tại sao không, khi tôi sử dụng void
trong khai báo phương thức khởi tạo, trường tĩnh của lớp không thay đổi nữa?
Thứ hai không phải là hàm tạo. Nó chỉ là một phương pháp xảy ra để chia sẻ một tên với lớp của nó. – murgatroid99
Vì nó không còn là một hàm tạo. –
câu trả lời cho câu hỏi tương tự này [Tại sao các nhà thầu trong java không có kiểu trả về] (http://stackoverflow.com/questions/6801500/why-do-constructors-in-java-not-have-a-return- loại) cho một lý do tuyệt vời. – Doswell