Công cụ sửa đổi truy cập
Theo mặc định, tất cả
trườngvà
phương thức của một lớp trong Java là
riêng tư. Điều này có nghĩa là không ai có thể truy cập chúng, nghĩa là ngoài các đối tượng của lớp này, không phương thức nào có thể sử dụng các trường và phương thức của các đối tượng của lớp này.
Các trường và phương thức có thể được đặt ở chế độ công khai bằng
công cụ sửa đổi quyền truy cập công khai
. Ngoài ra còn có một công cụ sửa đổi
riêng tư
làm cho trường ở chế độ riêng tư. Nó là tùy chọn vì tất cả các trường và phương thức đều ở chế độ riêng tư theo mặc định. Dưới đây là một ví dụ về việc sử dụng công cụ sửa đổi
public
và
private
.
Sách học
{
tên chuỗi công khai;
Tên tác giả chuỗi;
private int ageYêu cầu;
Chuỗi văn bản;
trang int công khai;
int getTextLength()
{
trả về độ dài văn bản();
}
công khai int getAverageLetterCount()
{
trả về getTextLength() / pageCount;
}
int riêng getDifficuiltyLevel()
{
trả về 5 * ageRequirement * text.Length();
}
}
Trong phiên bản này của lớp Book
, các trường name
và pageCount
được công khai để đọc và sửa đổi trong các đối tượng khác. Phương thức getAverageLetterCount()
cũng có thể được gọi từ các đối tượng của các lớp khác. Tất cả các trường và phương thức khác vẫn ở chế độ riêng tư và chỉ khả dụng trong các phương thức của lớp này. Trong phương thức chung getAverageLetterCount()
chúng ta có thể gọi phương thức riêng getTextLength()
vì getAverageLetterCount()
thuộc về chính lớp đó. Nhưng nó sẽ không hoạt động từ một phương thức của lớp khác.
Nhưng tại sao sau đó đặt các trường ở chế độ riêng tư? Trong mã Java, hầu như bạn sẽ chỉ thấy các trường riêng tư. Thực tế là nếu quyền truy cập vào các trường riêng tư được thực hiện thông qua các phương thức công khai của đối tượng, thì với bất kỳ quyền truy cập nào như vậy vào các trường riêng tư, sẽ có thể thực hiện các hành động và kiểm tra bổ sung. Thông tin thêm về điều này sẽ có trong bài học về đóng gói.