2009-06-20 28 views

Trả lời

106

Chúng là các công cụ sửa đổi truy cập và giúp chúng tôi thực hiện Encapsulation (hoặc ẩn thông tin). Chúng cho trình biên dịch biết các lớp khác nên có quyền truy cập vào trường hoặc phương thức được xác định.

private - Chỉ lớp hiện tại mới có quyền truy cập vào trường hoặc phương pháp.

protected - Chỉ lớp và lớp con hiện tại (và đôi khi cùng các lớp gói) của lớp này sẽ có quyền truy cập vào trường hoặc phương pháp.

public - Bất kỳ lớp nào cũng có thể tham chiếu đến trường hoặc gọi phương thức.

Giả định các từ khóa này được sử dụng như một phần của khai báo trường hoặc phương thức trong định nghĩa lớp.

+2

lưu ý rằng trong các thành viên java của cùng một gói có thể truy cập các thành viên được bảo vệ –

+0

Có, và Java cũng có một công cụ sửa đổi truy cập thứ tư là chuỗi rỗng. Không cung cấp bất kỳ công cụ sửa đổi truy cập nào sẽ cho phép truy cập từ bất kỳ lớp cấp gói nào. –

+0

Tôi thích phần "biên dịch", bởi vì hầu hết các ngôn ngữ tôi biết tất cả các hàm/lớp có thể dễ dàng truy cập trong thời gian chạy ví dụ thông qua các phản xạ trong .NET. Vì vậy, tôi có xu hướng nói rằng, các công cụ sửa đổi truy cập này về cơ bản chỉ là sự trợ giúp cho các lập trình viên để hướng dẫn các lập trình viên khác làm việc trên/bằng cùng một mã bằng cách che giấu những thứ nhất định. – merkuro

1

Mục công khai là mục công khai có thể truy cập được từ bất kỳ lớp nào khác. Bạn chỉ cần biết đối tượng đó là gì và bạn có thể sử dụng toán tử dấu chấm để truy cập nó. Được bảo vệ có nghĩa là một lớp và các lớp con của nó có quyền truy cập vào biến, nhưng không phải bất kỳ lớp nào khác, chúng cần sử dụng trình getter/setter để làm bất cứ điều gì với biến đó. Một phương tiện riêng mà chỉ có lớp đó có quyền truy cập trực tiếp vào biến, mọi thứ khác cần một phương thức/hàm để truy cập hoặc thay đổi dữ liệu đó. Hi vọng điêu nay co ich.

3

Chúng không thực sự là khái niệm mà là từ khóa cụ thể có xu hướng xảy ra (với ngữ nghĩa hơi khác nhau) trong các ngôn ngữ phổ biến như C++ và Java.

Về cơ bản, chúng có nghĩa là để cho phép một lớp hạn chế quyền truy cập vào các thành viên (các trường hoặc hàm). Ý tưởng là loại ít hơn được phép truy cập trong một loại khác, ít phụ thuộc hơn có thể được tạo ra. Điều này cho phép đối tượng truy cập được thay đổi dễ dàng hơn mà không ảnh hưởng đến các đối tượng tham chiếu đến nó.

Nói chung, công khai có nghĩa là mọi người đều được phép truy cập, phương tiện riêng tư chỉ các thành viên của cùng một lớp được phép truy cập và được bảo vệ nghĩa là thành viên của các lớp con cũng được phép. Tuy nhiên, mỗi ngôn ngữ lại bổ sung thêm những thứ của riêng nó vào điều này. Ví dụ, C++ cho phép bạn kế thừa không công khai. Trong Java, cũng có cấp truy cập mặc định (gói) và có các quy tắc về các lớp nội bộ, v.v.

0

Để tổng hợp, trong lập trình hướng đối tượng, mọi thứ được mô hình hóa thành các lớp và đối tượng. Các lớp học có chứa các đặc tính và phương pháp. Từ khóa công cộng, riêng tư và được bảo vệ được sử dụng để chỉ định quyền truy cập vào các thành viên này (thuộc tính và phương pháp) của một lớp từ các lớp khác hoặc các .dll khác hoặc thậm chí các ứng dụng khác.

4

Tất cả ba là công cụ sửa đổi truy cập và từ khóa được sử dụng trong một lớp học. Mọi thứ được khai báo ở nơi công cộng có thể được sử dụng bởi bất kỳ đối tượng nào trong lớp hoặc bên ngoài lớp, chỉ có thể sử dụng các biến riêng tư trong lớp và không thể thay đổi thông qua truy cập trực tiếp.). Bất cứ điều gì được xác định trong phần được bảo vệ có thể được sử dụng bởi lớp và lớp dẫn xuất của chúng.

0

Những Riêng tư, Công khai và Được bảo vệ này được gọi là các thông số truy cập.

Trong "Công khai", tất cả các thành viên bên trong hoặc bên ngoài lớp đều truy cập các biến.

Trong thành viên riêng tư duy nhất trong lớp có thể truy cập các biến.

Trong "Được bảo vệ", tất cả các thành viên trong lớp và các thành viên của lớp (Lớp phụ) có nguồn gốc từ lớp Gốc có thể truy cập các biến.

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