2009-11-08 45 views
18

Trong C# bạn có thể thiết lập các thuộc tính như thế này:Java có thuộc tính tự động không?

public int CustomerId {get;set;} 

nào thiết lập một tài sản tự động gọi là ID khách hàng, nhưng tôi đã tự hỏi nếu có bất cứ điều gì tương tự như trong Java?

+0

Java là ngôn ngữ tôi mô tả là ngôn ngữ cấp cao "cấp thấp". Đó là một ngôn ngữ cấp cao ở chỗ nó có quản lý bộ nhớ, là hướng đối tượng, vv Nhưng nó ở mức độ thấp theo nghĩa là hầu như không có gì "bổ sung" được thực hiện bởi trình biên dịch. ngay cả những mẫu đơn giản nhất, giống như các thuộc tính, phải được thực hiện thủ công bởi lập trình viên (tôi chắc chắn có một ngoại lệ ở đâu đó). (Có thể đó là một ngôn ngữ "OOP" thuần túy?) Đây là một điều tốt và một điều xấu. đó là một lý do tại sao tôi đề nghị Java như một ngôn ngữ đầu tiên, vì nó sẽ dạy những điều cơ bản về OOP mà không quá phức tạp. –

Trả lời

26

Không, Java không có gì tương tự tại thời điểm này. Heck, các thuộc tính trong Java chủ yếu là các quy ước của các phương thức get/set, thay vì được trình biên dịch thực sự hiểu bởi vì chúng nằm trong C#. Các công cụ và thư viện nhận ra mẫu get/set, nhưng ngôn ngữ không biết về chúng. (Có thể là trong một phiên bản Java tương lai, sẽ có thêm hỗ trợ "chính thức").

Một số ngôn ngữ giống như Java chẳng hạn như Groovy có tạo thuộc tính tự động.

+0

C# là ngôn ngữ "Java-Like" –

+9

@Tom: Có, theo một số cách. Tôi không chắc chắn rằng đó là có liên quan mặc dù ... nó chắc chắn không hợp lệ những gì tôi đã viết. –

+0

@JonSkeet: Bạn có thể làm rõ ý nghĩa của từ "thực sự hiểu" không? Tôi nghĩ rằng các công cụ C# chỉ đơn giản là cú pháp đường cho cùng một loại điều, cụ thể là một lĩnh vực với một vài chức năng để đọc/ghi? – Carlos

12

Không, không có điều gì trong Java.

Trong Eclipse, tuy nhiên, bạn có thể tự động triển khai phương thức getter/setter cho các trường có Nguồn> Tạo Getters/Setters.

3

Bạn cũng có thể làm điều này một cách dễ dàng, bằng cách sử dụng các chú thích từ Project Lombok

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