2010-02-10 34 views
34

Trong Java, là các thông số truy cậpcác công cụ sửa đổi truy cập điều tương tự?Sự khác biệt giữa các thông số truy cập và các công cụ sửa đổi truy cập là gì?

+5

Thú vị, tôi chưa bao giờ thấy câu hỏi cụ thể này trước đây trong năm, nhưng bạn dường như không phải là người duy nhất tự hỏi về điều này: http://www.google.com/search?q=difference+access+specifier+access+modifier;) – BalusC

Trả lời

37

số "truy cập modifier" là thuật ngữ chính thức cho private, protectedpublic, trong khi thuật ngữ "truy cập specifier" không xảy ra ở tất cả trong Java language specification và là AFAIK không phải cái gì mà được sử dụng rộng rãi.

"công cụ sửa đổi truy cập" là cụm từ chính thức cho private, protectedpublic được sử dụng trong Java language specification. "access specifier" được sử dụng đồng nghĩa trong Java API doc, nhưng đây là lần đầu tiên tôi nhận thấy điều đó. Nó có thể tốt hơn để gắn bó với thuật ngữ JLS.

+2

+1 để chứng minh bằng JLS. Tôi nghĩ rằng đó chỉ là rào cản ngôn ngữ. – BalusC

0

Theo tôi, có, cả hai thuật ngữ đều đề cập đến cùng một điều và được sử dụng thay thế cho nhau.

+0

Nó không tùy thuộc vào bạn, nó phụ thuộc vào JLS và thuật ngữ 'access specifier' không xuất hiện ở đó. – EJP

-3

Nói riêng về mặt kỹ thuật, công khai, được bảo vệ và mặc định được coi là thông số truy cập. Những thỏa thuận này với người có thể ... câu hỏi. Các sửa đổi afaik là dễ bay hơi, cuối cùng, tĩnh, thoáng qua vv Những thỏa thuận với làm thế nào để .. khía cạnh.

+0

Vui lòng cung cấp trích dẫn JLS cho xác nhận này. Nó là vô căn cứ. – EJP

0

Tham chiếu JDI đó là nơi duy nhất tôi từng thấy thuật ngữ 'access specifier' được sử dụng trong đặc tả Java. Ngay cả ở đó, công cộng/bảo vệ/tư nhân/gói cũng được gọi là 'modifiers'. Có thực sự không có lý do để bao giờ sử dụng thuật ngữ 'truy cập specifier' trong Java, nó rõ ràng chỉ là một sai lầm trên một trang trong số hàng ngàn.

1

Java đã cơ bản 2 loại Modifiers: bổ truy cập

  1. java
  2. java không truy cập bổ

Java bổ truy cập và specifiers truy cập Java là những điều tương tự, đó là public , private, protected.

-3

Bằng cách sử dụng trình xác định truy cập, chúng tôi xác định ai có thể truy cập lớp/phương thức và biến của chúng tôi (hoặc bất kỳ thứ gì mà chúng tôi sử dụng trình xác định truy cập). specifier truy cập cơ bản java bốn loại -

  1. công cộng: - Hiển thị đối với thế giới,
  2. tin: - Hiển thị đối với chỉ lớp,
  3. bảo vệ: - Hiển thị đối với các gói và tất cả các lớp con, và
  4. mặc định: - Hiển thị đối với các gói

Nhưng modifier truy cập là thuộc tính của một lớp/phương pháp/biến. modifier Truy cập năm loại

  1. thức: - cho hoàn thiện việc triển khai các lớp học, phương pháp, và biến
  2. tĩnh: - để tạo phương pháp lớp học và các biến
  3. đồng bộ và ổn định bổ: - được sử dụng cho chủ đề
  4. trừu tượng: - để tạo các lớp học và phương pháp
  5. thoáng trừu tượng
+2

Vui lòng cung cấp một tham chiếu cho xác nhận không căn cứ này. – EJP

+4

Ai đã bỏ phiếu này? Nó là đồng bằng sai. – gexicide

+0

Quan điểm của Java về ans này là sai. Tất cả từ khóa của bạn được xem là ** Công cụ sửa đổi truy cập **. Nó có thể đúng ngôn ngữ lập trình khác – Premraj

0

Trong một số ngôn ngữ cũ công khai, riêng tư, được bảo vệ và mặc định như C++ được coi là truy cập specifiers và mọi thứ khác được coi là access modifier nhưng trong Java không có thuật ngữ cho specifier, mọi thứ mặc định được coi là modifier only. Vì vậy, công khai, riêng tư, được bảo vệ, mặc định, cuối cùng, trừu tượng, tĩnh, strictfp, đồng bộ hóa, nguyên gốc, thoáng qua và dễ bay hơi đều là các công cụ sửa đổi.

thử nghiệm đơn giản cho nó là khi chúng ta biên dịch đoạn mã sau

lớp tin thử nghiệm {}

chúng tôi sẽ nhận được biên dịch lỗi thời gian nói modifier rằng tin không được phép ở đây. Điều này cũng đúng đối với các công cụ sửa đổi khác. Có thể trình biên dịch java (javac) chỉ xem mọi thứ dưới dạng "công cụ sửa đổi".

3

Thuật ngữ Thông số truy cập được các lập trình viên C++ sử dụng không có trong java. Trong java Chính thức, chúng tôi sử dụng Trình sửa đổi truy cập.

Ví dụ: khi chúng ta khai báo một lớp học với tư nhân, tĩnh trình biên dịch rõ ràng cho thấy các thông báo lỗi như sau:
enter image description here

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