2010-05-11 29 views
8

Cấp cho anh ta đã không cho chúng tôi thấy mã thực sự ở đây, chỉ cần đề cập đến nó, tôi thấy nó cực kỳ kì quái.Đây có phải là mã Java hợp lệ không? Giáo viên của tôi tuyên bố nó là, nhưng tôi thực sự không chắc chắn

Ví dụ, theo những gì ông nói đây là Java hợp lệ:

public class Person 
{ 
    String Name; 
    int Age; 

    { 
     //These two braces just chilling together - VALID? :O 
    } 
} 
+9

Tại sao bạn không thể tự biên dịch nó? – someguy

+5

Cháy lên nhật thực (hoặc bất kỳ IDE nào khác) và tự loại bỏ nó - IDE sẽ không phàn nàn. – bergyman

+0

Chắc chắn - Hãy thử. Nó có giá trị trong hầu hết các ngôn ngữ. Vâng, hầu hết những gì tôi đã phát triển. Chỉ để chắc chắn rằng tôi đã thử nó trong mã tôi đã mở ngay bây giờ. –

Trả lời

16

Có - đó là instance initializer. Bạn cũng có thể sử dụng nó cùng với anonymous subclasses cho Double-Brace Initialization.

+0

Không có dấu chấm phẩy ở giữa. {} Chỉ là định nghĩa phạm vi. – vfilby

+5

Không, không phải khi nó trôi nổi xung quanh trong cơ thể lớp như thế - đó là một bộ khởi tạo phiên bản trống. Bên trong phương pháp, sau đó có, đó là một định nghĩa phạm vi. – gustafc

+2

@vfilby: Không, nếu nó là một khối trong một lớp nhưng không phải trong một phương thức hoặc hàm tạo, thì nó là một trình khởi tạo thể hiện. –

Các vấn đề liên quan