OOP: Tầm vực và sử dụng tầm vực một cách thích hợp

Tầm vực là một khái niệm quan trọng trong Lập trình Hướng đối tượng. Tầm vực ảnh hưởng đến việc kế thừa của class này đến các class khác. Bài này sẽ nói về các tầm vực của các từ khóa là public, protected, package, private.


Thuộc Tính và Phương Thức Mang Tầm Vực public

Những thuộc tính và phương thức này ít bị hạn chế nhất. Chúng có thể được truy cập từ mọi class.


Thuộc Tính và Phương Thức Mang Tầm Vực private

Những thuộc tính và phương thức này bị hạn chế nhiều nhất. Chúng chỉ có thể được truy cập từ chính class đó (class khác với object).

Như vậy, thường thì ta sẽ đặt tầm vực của biến thành viên là private và của phương thức là private hoặc public.

Thuộc Tính và Phương Thức Mang Tầm Vực protected

Những thuộc tính và phương thức mang tầm vực này có thể được truy cập từ chính class đó, từ package chứa class đó và subclass.

Thuộc Tính và Phương Thức Mang Tầm Vực package

Những thuộc tính và phương thức mang tầm vực này có thể được truy cập từ chính class đó và từ package chứa class đó.


Để hiểu rõ hơn chúng ta sẽ tìm hiểu ví dụ sau:
  • x mang tầm vực public nên x có thể được truy cập từ mọi class trong hình.
  • y có tầm vực là protected nên những y có thể được truy cập từ Sample, Other1, Sub1, Sub2.
  • z không được khai báo tầm vực nên mặc định nó là package, z có thể được truy cập từ Sample, Other1, Sub1.
  • t mang tầm vực là private nên t chỉ có thể truy cập từ Sample.
Ta có thể thấy rằng việc sử dụng protectedpackage khá bất tiện vì có sự nhập nhằng giữa việc truy cập từ subclass và từ package. Bởi vậy, chúng ta chủ yếu nên sử dụng privatepublic.

Nhận xét