Video: Java Cơ Bản 41 Quản lý truy cập và kế thừa trong Java 2025
Khi các ứng dụng Java của bạn trở nên phức tạp hơn, cần phải xem xét phạm vi trở nên quan trọng hơn bao giờ hết. Lý do chính là bạn có thể vô tình giới thiệu một lỗi vào ứng dụng của bạn bằng cách không quan sát các quy tắc phạm vi
Điều này có thể xảy ra từ trường hoặc thành viên khác đang được sử dụng không chính xác bởi ứng dụng (chẳng hạn như thêm giá trị dữ liệu không chính xác hoặc truy cập một phương thức tại sai thời gian hoặc dữ liệu không chính xác) Ngoài ra, phạm vi không chính xác có thể để cánh cửa mở ra cho người bên ngoài tương tác với ứng dụng của bạn theo những cách không lường trước được (như một vi rút)
Phạm vi mặc định xảy ra khi bạn không chỉ định cụ thể một phạm vi cho một phần tử lớp. Bởi vì nhiều nhà phát triển Java không biết phạm vi mặc định là gì cho một số phần tử (và sử dụng một phạm vi mặc định có nghĩa là mã của bạn không phải là tài liệu) không được sử dụng rất thường xuyên.
Thậm chí như vậy, bạn cần t o biết phạm vi mặc định là cho các yếu tố khác nhau bởi vì một số nhà phát triển Java dựa vào nó. Tuy nhiên, trước khi bạn có thể hiểu được phạm vi mặc định, bạn cần xem xét tầm nhìn - mức đo lường của các yếu tố ứng dụng có thể nhìn thấy một thành viên. Java cung cấp các mức độ hiển thị sau đây (theo thứ tự chung của đóng gói):
-
Đóng gói: Chỗ chứa chứa một số lớp học. Khi làm việc với một cấu trúc thư mục đơn giản, như những ví dụ trong cuốn sách này, gói này là một thư mục chứa một số thư mục. tập tin lớp.
-
Lớp: Một lớp học thường nằm trong một đĩa đơn. java tập tin mà bạn biên dịch thành a. tập tin lớp. Nó chứa một khai báo lớp đơn.
-
Phương pháp: Một phần tử có thể nằm trong lớp hoặc là một phần của một phương pháp. Phương pháp này hoạt động như một vật chứa để giữ nguyên tố.
-
Một phần tử có thể nằm trong một khối mã, chẳng hạn như một vòng lặp for. Phạm vi phụ thuộc một phần vào vị trí được sử dụng để khai báo một phần tử. Ví dụ, một biến được định nghĩa trong một khối (chẳng hạn như một vòng lặp for) chỉ có thể được nhìn thấy bên trong khối đó. Khi bạn cố gắng sử dụng biến bên ngoài khối, Java sẽ hiển thị một ngoại lệ. Tầm nhìn vào tài khoản, bảng này mô tả các mức độ phạm vi khác nhau trong môi trường Java.
X | Có thể tiếp cận được từ | X | X | X |
Có thể tiếp cận từ bất kỳ lớp trẻ em | X | X | Có thể sử dụng bất cứ nơi nào | |
X | cho thấy cách phạm vi mặc định phù hợp với sơ đồ sự việc. Ví dụ, nếu bạn tuyên bố một phương pháp bằng cách sử dụng phạm vi mặc định, bất kỳ phương pháp có thể sử dụng nó miễn là nó nằm trong cùng một gói.Ngoài ra, nếu bạn tạo một lớp kế thừa từ lớp chứa phương thức, lớp con có thể sử dụng phương pháp miễn là nó nằm trong cùng một gói. | Tuy nhiên, nếu phân lớp tồn tại bên ngoài gói hiện tại, nó không thể sử dụng phương pháp. Trong ngắn hạn, phạm vi mặc định là một chút hạn chế hơn so với phạm vi được bảo vệ, nhưng ít hạn chế hơn so với phạm vi tư nhân. | ||