2009-12-14 15 views
21

Tôi đã thấy một số lập trình viên sử dụng _ (gạch dưới) ở phía trước tên lớp và những người khác sử dụng nó cho các biến cục bộ.Có một tiêu chuẩn trong java cho _ (gạch dưới) ở phía trước của tên biến hoặc lớp?

Chuẩn Java có yêu cầu/đề xuất sử dụng _ (gạch dưới) trước biến cá thể hoặc tên lớp không?

+8

Không đồng ý với việc đóng - Java là một trong những ngôn ngữ có định dạng chính thức được xác định, do đó, một câu hỏi liên quan đến việc tiêu chuẩn địa chỉ một điểm có vẻ hợp lý hay không. –

Trả lời

25

Đó là vấn đề về sở thích cá nhân.

Martin Fowler có vẻ thích nó. Tôi không quan tâm nhiều cho nó - nó phá vỡ các mô hình đọc, và thông tin nó truyền tải đã được nói một cách tinh tế bởi màu sắc trong IDE của bạn.

Tôi đã thử nghiệm bằng cách sử dụng _ làm tên của biến giữ kết quả được trả về bằng một phương pháp. Nó rất súc tích, nhưng tôi đã nghĩ rằng cái tên result thì tốt hơn.

Vì vậy, hãy để đồng nghiệp của bạn đồng ý về những gì bạn thích nhất và sau đó chỉ cần làm điều đó.

+0

Tên biến bao gồm một dấu gạch dưới đơn có thể không hợp lệ trong phiên bản Java tương lai (tôi đã đọc ở đâu đó) –

+0

Sẽ xảy ra trong Java 9. –

+0

Thông tin cơ bản về các ký hiệu gạch dưới đơn có thể được tìm thấy trong [JEP 302] (http : //openjdk.java.net/jeps/302). –

17

nếu bạn muốn theo java thực hành tốt nhất, sử dụng các quy ước mã được nêu ở đây http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html

Tức là, không có gạch cho tên biến thành viên tư nhân.

Tho, cá nhân, tôi không bị phiền phức theo cách nào, miễn là tính nhất quán được áp dụng.

6

Nhiều người (kể cả bản thân tôi) sử dụng _ trước tên trường. Lý do cho việc này là dễ dàng phân biệt chúng với các biến cục bộ. Tuy nhiên trong lứa tuổi của IDE này không phải là cần thiết kể từ cú pháp tô sáng cho thấy điều này. Sử dụng dấu gạch dưới trước tên lớp là sai. Theo quy ước, tên lớp bắt đầu bằng một chữ hoa.

+0

Có những dịp để sử dụng _ trước tên lớp, khi bạn lo lắng rằng tên lớp của bạn có thể va chạm với tên lớp khác và bạn muốn phân biệt lớp của mình với người khác. Ví dụ như các lớp bên trong hoàn toàn thường sử dụng quy ước này để giữ những thứ như Record, Data, vv là các tên lớp phổ biến, vì vậy thay vào đó chúng chọn _Record, _Data, v.v. – GrayWizardx

+0

Ahh, phải, tôi nghĩ tôi sẽ đặt dấu gạch dưới ở cuối . Nhưng đó là một vấn đề của hương vị tôi cho là. –

+3

+1 cho "Ở lứa tuổi IDE" + "cú pháp tô sáng" – pimpf0r

3

Rất nhiều người là các biến mẫu vì nó làm cho chúng nổi bật. Cá nhân tôi ghét nó chủ yếu là bởi vì phương pháp nên, đối với hầu hết các phần, không quá 10 dòng mã (Tôi hầu như không bao giờ đi hơn 20). Nếu bạn không thể thấy rằng một biến không phải là cục bộ dưới 10 dòng thì có điều gì đó sai :-)

Nếu bạn có 100 phương thức đường và bạn không khai báo tất cả các biến ở đầu khối mà chúng được sử dụng trong tôi có thể thấy lý do tại sao bạn muốn sử dụng _ để phân biệt chúng ... tất nhiên, như với hầu hết mọi thứ, nếu nó đau thì ngừng làm việc đó!

35

Tôi nghĩ các đồ tạo tác như thế này là cổ điển trước IDE và C++. Đừng làm thế.

+0

Không thể tưởng tượng tại sao câu trả lời này, và chỉ có câu trả lời này, đã được bỏ phiếu xuống năm năm sau đó. – duffymo

+0

Chỉ cần bỏ phiếu để sửa chữa công lý. Chỉnh sửa: Tôi không phải là người đã bỏ phiếu xuống –

+0

và bởi vì câu trả lời của bạn là câu trả lời hữu ích nhất đối với tôi, tôi sẽ bỏ phiếu – amal50

0

Tôi đồng ý với những người khác ở đây ... Nó phá vỡ tiêu chuẩn và không thực sự mua cho bạn bất cứ điều gì nếu bạn chỉ sử dụng một tiêu chuẩn đặt tên. Nếu bạn cần biết sự khác nhau giữa biến lớp và biến cục bộ của bạn, hãy thử quy ước đặt tên như lVariableName trong đó l được sử dụng để biểu thị rằng nó là cục bộ. Với tôi điều này là không cần thiết vì việc đánh dấu IDE là đủ, nhưng có thể hữu ích đối với một số người.

1

Sử dụng _ trước khi biến giúp trong một trường hợp nếu nhà phát triển muốn sử dụng từ tiêu chuẩn/khóa làm tên biến cố ý hoặc vô tình. Nó sẽ không đưa ra xung đột nếu điều đó có một nhân vật bổ sung.

1

Nó có vẻ là một quy ước cho biết nếu dấu gạch dưới được sử dụng như một ký tự ban đầu trong tên của phương pháp, phương pháp không thể bị ghi đè.

Ví dụ, trong ngữ cảnh của phương thức JSP, _jspService() không thể ghi đè.

Tuy nhiên, tôi không tìm thấy bất kỳ tài liệu nào nêu trên quy ước.

+9

Nếu bạn muốn đảm bảo phương thức không được ghi đè, bạn phải làm cho nó 'cuối cùng' – enrybo

0
  1. Không sử dụng _ khi bạn sử dụng một màn hình màu LCD hiện đại, với IDE hiện đại như Eclipse, Netbeans, IntelliJ, Android Studio.
  2. Sử dụng _ khi bạn cần sử dụng màn hình CRT đơn sắc kiểu cũ chỉ với văn bản màu xanh lá cây hoặc trắng hoặc khi bạn gặp khó khăn trong việc xác định màu trên màn hình LCD.
  3. Sự đồng thuận của các cộng tác viên mã của bạn sẽ ghi đè ở trên.
Các vấn đề liên quan