Chương trình sau đây không có tầm quan trọng của riêng nó. Nó chỉ đếm số đối tượng được tạo thông qua việc sử dụng vòng lặp for bằng cách sử dụng một trường tĩnh bên trong lớp Counter như được hiển thị bên dưới.Câu lệnh tạo đối tượng trong Java không cho phép sử dụng vòng lặp một dòng. Tại sao?
package temp;
final class Counter
{
private static int cnt;
public Counter()
{
cnt++;
}
public static int show()
{
return(cnt);
}
}
final public class Main
{
public static void main(String[] args)
{
for (int i=0;i<50;i++)
{
Counter counter=new Counter();
}
/*for (int i=0;i<50;i++)
Counter counter=new Counter();*/
System.out.print("\nNumber of objects constructed:->"+Counter.show()+"\n\n");
}
}
Câu hỏi duy nhất ở đây là nhận xét vòng lặp for có nghĩa tương tự như trên cho vòng lặp (điều tương tự cũng được áp dụng cho một vòng lặp while) không làm việc ở tất cả gây ra một compile- lỗi thời gian cho biết rằng "không phải là tuyên bố" có nghĩa là trong trường hợp cụ thể này, cặp dấu ngoặc là bắt buộc mặc dù vòng lặp for chỉ chứa một câu lệnh! Tại sao?
+1 để đào nó ra khỏi JLS. –
JasCav có quyền. Một tuyên bố khai báo không giống như một câu lệnh bắt buộc chuẩn, và không thể đứng một mình như một vòng lặp (và có thể không phải là phần thân của if/else). –