2012-04-27 54 views
10

Tôi đã bắt đầu lập trình bằng java 2 năm trước. Người cao niên trong dự án của chúng tôi tại thời điểm đó đã khuyên tôi nên thêm 'obj' vào tên của đối tượng đang được tạo ra.Quy ước đặt tên cho các đối tượng trong java

Ex:

Car objCar = new Car("Ferrari"); 

Đây objCar là những gì đang nói về. Nhưng nhiều lúc Stack tràn đã phản đối nó và bây giờ tôi thấy rằng đây không phải là cách đặt tên của một đối tượng nên được thực hiện. Rõ ràng với quy ước đặt tên khi các bộ sưu tập được sử dụng nhưng bị nhầm lẫn khi các đối tượng của các lớp chung được tạo ra.

Có ai có thể làm sáng tỏ không?

+2

Mọi thứ trong Java ngoại trừ các loại nguyên thủy là các đối tượng. Bạn có thể thêm 'obj' vào mỗi tên biến không? – Gabe

+0

công cụ 'obj ...' này nếu từ thời cũ. –

+1

nếu cho bạn nó là đơn giản hơn để xác định thuộc tính của bạn ... tại sao không với "obj" – Neifen

Trả lời

25

Chỉ cần gọi số car. Hungarian notation không được sử dụng bởi Sun/Oracle.

Đặt tên biến của bạn theo cách mô tả sử dụng. Nhưng bạn không cần phải chỉ ra loại trong tên biến. Bạn đã chỉ định loại trong khai báo biến. IDE sẽ hiển thị cho bạn loại biến nếu bạn di chuột qua các biến đó để thông tin luôn sẵn có.

Bạn nên sử dụng lowercaseStartingCamelCase cho tên biến và tên phương thức và UppercaseStartingCamelCase cho tên lớp học.

Nếu bạn muốn đọc cách thức hoạt động của Sun/Oracle, bạn có thể đọc số Code Conventions for the Java Programming Language.

+0

Các tiêu chuẩn theo sau khi đặt tên các đối tượng là gì? Chỉ cần tên lớp với chữ cái vỏ nhỏ trong đầu? –

+0

@Ajj Cân nhắc đặt tên cho nó một cái gì đó có ý nghĩa, giống như những gì nó làm/được sử dụng cho. Đó là "tiêu chuẩn". Nếu bạn có nghĩa là tiêu chuẩn ngữ pháp, tên biến bắt đầu bằng chữ thường và sử dụng camelCase. –

+0

Làm tốt với các phương thức truy cập và đặt tên của trình biến đổi. Tôi chỉ nhầm lẫn với các lớp học chung như 'Xe hơi', 'Học sinh', 'Máy', vv .. –

2

Đặt tên cho đối tượng của bạn là gì, nó giúp việc đọc và tái cấu trúc dễ dàng hơn.

1

quy ước đặt tên cho các đối tượng trong java chỉ là tên. Ví dụ:

Car car = new Car("Ferrari"); 

Phần còn lại của ký pháp Hungary đã bị hủy bỏ chủ yếu do sự hỗ trợ bổ sung mà IDE đã cung cấp cho điều hướng.

+0

Ok. Vì vậy, đây là cách nó được thực hiện chủ yếu? –

-1

Là bạn cao cấp, sau khi tất cả tôi có thể đề nghị bạn một số đặt tên quy ước liên quan đến nghi ngờ của bạn. Như chúng ta biết tất cả các tên lớp là bắt đầu bằng chữ cái đầu tiên, giả sử lớp "MyTest" khi đối tượng chúng ta cần tạo lớp này, nó phải là "mytest". Tên đối tượng phải ở định dạng này. Theo jakarta tuyên ngôn dự án tôi đã tìm thấy loại đối lưu này và là sau đây. Khác với jakarta, Sun API bao gồm IDE cho phát triển cũng họ đang sử dụng điều này. Hy vọng, nó sẽ giúp bạn.Yes Tôi mới.Thanks cho thông tin hữu ích của bạn.

+0

Manoj, có vẻ như bạn mới làm quen với SO. Kính gửi vv, không được hỗ trợ các điều khoản trong SO và câu trả lời không cần phải được mã định dạng. – kosa

+0

Cảm ơn thông tin hữu ích của bạn. –

0

tên lớp bằng chữ nhỏ là tiêu chuẩn Sun/Oracle.

khi bạn đang làm việc cho một công ty,

tùy thuộc vào quy ước đặt tên dự án nó có thể thay đổi.

Car car=new Car(); //good to follow 

nếu Đó là Singleton pattern, bạn có thể đưa ra một cái tên như bên dưới

private static final Car singletonCar=new Car(); 
+1

Không được nhận dạng đơn trong tên trường. Thực tế là họ là những người độc thân chỉ nên hiển thị khi trường được khởi tạo. Nếu cái gì khác là cần thiết, sau đó nó là một tín hiệu về một cái gì đó đang được thực hiện sai. Trong ví dụ của bạn, điều sai lầm là bạn cho phép nhiều hơn một ví dụ của Car-singleton của bạn. – Torben

+0

edited.there có nhiều cách để tạo ra một singleton nó là một trong số họ. Loại quy ước đặt tên này được duy trì chỉ để dễ đọc. –

+1

Ý tưởng về singleton là bạn chỉ có thể khởi tạo một thể hiện của đối tượng. Trường cuối cùng không ngăn bạn tạo hai đối tượng Ô tô. Bạn phải xây dựng các hạn chế vào chính đối tượng Car. Khởi tạo các trình đơn được viết khá tốt. Xin vui lòng Google nó. Một khi bạn đã có được một tham chiếu đến một singleton, không nên có bất kỳ cần phải ghi nhãn nó như là một singleton trong tên trường. Singleton nên được thực hiện theo cách mạnh mẽ đến nỗi người dùng không phải biết về nó sau khi khởi tạo. Nó sẽ hoạt động giống như bất kỳ đối tượng khác được chia sẻ bởi nhiều chủ đề. – Torben

4

dụ của bạn là một chút quá tầm thường.Trong thực tế, bạn sẽ không bao giờ đặt tên cho một lĩnh vực kiểu đối tượng "Xe hơi" là "xe hơi". Tương tự như vậy, bạn không bao giờ đặt tên một kiểu "Integer" là "integer".

Thay vào đó, tên sử dụng cho người đọc biết trường được sử dụng. Một số ví dụ:

private Transport preferredTransportMethod; 

private int invoiceCounter; 

Loại trường tiền tố không được sử dụng phổ biến là Java. Tuy nhiên, thành viên của lớp đôi khi được bắt đầu bằng chữ "m" thấp hơn để ngăn việc gán tự ngẫu nhiên trong các phương thức setter.

private long mTripDurationMillis;