Cấp Phát Quyền Truy Cập Trong Java

    Có rất nhiều bài viết chia sẻ và đề cập về access modifier và cũng có rất nhiều luồng ý kiến khác nhau. Ở bài viết này mình cũng xin chia sẻ những kinh nghiệm và cách đối xử, làm việc của mình với access modifier trong ngôn ngữ Java. Để không mất thời gian bài viết nên mình sẽ đi thẳng vào kiên thức chính với bảng modifier và một số chú ý liên quan tới nó, nào mình bắt đầu thôi  :)
Cảnh báo: (Bài viêt được mình ghi chép lại từ những ngày đầu học hỏi về java lên có thể còn nhiều sai sót, mong bạn đọc đón nhận và góp ý thêm nhé 😀)

Bảng danh sách chi tiết các modifier
TP Truy Cập Quyền Truy Cập Chú Ý
Public

-Toàn bộ mọi gói mọi lớp. -Với gói khác phải khải bao tên gói chước khi dùng phương thức hay thuộc tính có định dạng public.

-Thường dùng cho các thể hiện chức năng của hệ thống.
-là tính chất mặc định kể cả khi ta ko khai báo từ khóa.
Protected

-Các lớp kế thừa có thể truy xuất. -Ít sử dụng
Private

-Chỉ truy cập được trong lớp ko được truy cập bất cứ nơi đâu (kể cả lớp con kế thừa). -Nếu để định dạng này thì muốn truy cập thuộc tính phải dùng các hàm getor và setor để gán lại

-Có tính đóng gói cao sau này
Tính Chất Định Dang Các Bổ Xung
Final

-Đối vơi Lớp: không hỗ trợ với lớp final.

-Đối vơi thuộc tính: Phải gán tường minh.
-Đối với Phương Thức: không cho phép ghi đè ,, còn nạp chồng thì thoải mái.
Static

-Là Biến Tĩnh sử dụng chung cho cả lớp đó.

–khi gọi thông qua tên lớp ko cần thông qua tên đối tượng (vì tĩnh ko đổi lên chắc chắn thông qua lớp nó đã ko đổi rồi).
Định

dạng
gettor Lấy giá trị ra ngoài. -Các ràng buộc được thiết lập trong settor.

-Có 2 loại super
+super hàm khởi tạo: super() || super(truyền Tsố).
+super bình thường: supper..
settor Truyền giá trị vào theo 1 phương thức settor.
this Tham chiếu tới bản thân lớp đang sét.
super Tham chiếu tới chính lớp cha của nó để lấy tt khi bị ghi đè.
Từ Khóa extend Kế thừa Đơn.

Kế thừa từ 1 lớp interface.
Extend dùng nhiều nhất…. các lớp interface với nhau cũng kế thừa = extend ..

-Riêng các lớp bt muốn kế thừa từ lớp interface thì bắt buộc phải kế thừa thông qua từ khóa: implement.
Implement
This
Tổng Kết -Public:  hay dùng cho các phương thức (get và set hay để public nhất này).

-Private: thường đặt cho thuộc tính … các phép toán  dể dễ đóng gói chỉ cho người dùng sử dụng chứ ko cho họ biết thuật toán.
-Protected: thường đặt cho thuộc tính (đối vs Develop họ thường để vậy chỉ khi trong trường hợp cần bảo mật cao thì mới để private).
–Các biến hay các hàm return phải thiết lập giá trị và muốn in ra màn hình phải để trong câu lệnh “sout”.

Bảng chi tiết trừu tượng “abtracts” và đa hình “interface” trong Java
Quyền Xử Lý và Điều Hành Chú ý:  abstract có thể kế thừa 1 lớp implements.
abstract

-Đối với lớp:

+Không cho phép tạo đối tượng nhưng kế thừa thoải mái.
+Được phép kế thừa 2 lớp abtract vs nhau.
+Không tạo được thể hiện đối tượng.
+Ko được kế thừa lớp abtracts từ 1 lớp bình thường.
+Lớp con ko triển khai rõ các PT trừu tượng thì lớp con cũng
là lớp trừu tượng.
+Có thể đn PT ko trừu tượng trong lớp abstract.
-Đối với Phương Thức:
+Phương thức không có thân hàm khi định nghĩa abtract.
+Phương thức định nghĩa này cần được làm rõ ở lớp con.
+Chỉ được dùng PT abstract trong lớp abstract.
==tất cả các hàm kế thừa với abtract đều thông qua extend.
Chú ý: trong lớp abtract có thể chứa các phương thức ko trừu tượng nhưng 1 số sách ghi là chỉ được chứa cac phương thức trừu tượng(cái này có vẻ chuyên nghiệp hơn).

–Không thể định nghĩa các phương thức có kiểu private hoặc static,final bằng kiểu abtract được vì khi khai báo kiểu đó các phương thức ở lớp dẫn xuất không thể ghi đè hoặc nạp chồng ko thể thay đôi được thông tin ở lớp con.
Interface

-Đối với lớp:
+Là lớp hoàn toàn trừu tượng với tất cả các PT trừu tượng và ko chứa những PT bình thường.
+Kế thừa thông qua từ khóa implement.
+Lớp con phải làm rõ PT của lớp cha interface.
-Đối vơi Thuộc Tính: phải gán tường minh là bắt buộc.
-Đối với PT: (PT nằm trong lớp interface).
+Mặc định PT là trừu tượng(abtracts) mà ko cần khai báo.
+modifier chọn là public để mọi nơi đều dùng được.
+2 lớp interface với nhau kế thừa thông qua từ khóa extends còn lại thông qua từ khóa implements

Đặc điểm: tạo các plugin theo thực tế… là lớp.
+ 1 lớp có thể implement từ nhiều lớp interface khác.


Và sự Khác nhau căn bản của Abtract và Interface là :
Abtract: thể hiện độ bao phủ của mình khi nó là 1 lớp trừu tượng cài đặt các hoạt động tổng quát quan trọng
  • Nhiệm vụ chính của nó là: tạo để cho các thằng khác kế thừa
Interface: thể hiện công việc bổ xung thêm cho mỗi 1 lớp nào đó vì vậy nó ko có sự tổng quát được như abtract
  • Nhiệm vụ chính của nó là: Tạo thêm hành động hoạt động mới tạo các plugin để người dùng cập nhật.
  • Kiểu như 1 giao diện interface chính là giới thiệu thêm 1 hành động thuộc tính bổ xung thêm.
Cách thống nhất định dạng khi khai báo biến và class:
  • Tên lớp: Chữ cái đầu viết hoa
  • Tên dịnh danh các biến, phương thức, đối tượng: chữ cái đầu của mỗi từ đều viết hoa trừ đúng Từ đầu tiên.
Chú ý:
  • Có một điều đặc biệt trong method toString() măc định của tất cả các đối tượng trong java đó là: 1 thành phần toString() bắt buộc phải ghi đè nó ko thì nó sẽ ghi ra địa chỉ của đối tượng đó trong bộ nhớ
  • Có thể khai bao đối tượng của lớp abstract và lớp interface nhưng phải hiện thực hóa các PT ngay tại khi khai báo.
  • Có 1 chú ý nhỏ là mặc định các method trong java nếu bạn không khai báo các access modifier thì nó ngầm hiểu là public, trong C# thì lại là private
    Ok vậy là với vài kiến thức thu lượm từ lúc trẻ mong là nó vẫn còn phù hợp cho các bạn mơi bắt đầu và băn khoăn về cách sử dụng các access modifier cũng như phân biệt được rõ hơn về abtract và interface. Mình xin phép kết thúc bài viết tại đây. Các bạn cùng góp ý và chia sẻ quan điểm của mình để mọi người cùng học hỏi thêm nhé 🙂.
Previous
Next Post »