Từ khóa public private protected internal ý nghĩa là gì trong c#

Thảo luận trong 'Lập trình phần mềm' bắt đầu bởi admin, 29/12/14.

  1. admin

    admin Phạm Công Sơn Thành viên BQT

    Tham gia ngày:
    22/5/13
    Bài viết:
    3,741
    Đã được thích:
    716
    Điểm thành tích:
    113
    Giới tính:
    Nam
    1. từ khóa Public là gì?
    • Khi gán từ khóa này cho phương thức, trường, thuộc tính, các biến, lớp thì chúng sẽ được truy xuất và sử dụng công khai mà không có ràng buộc nào. Tuy nhiên bạn cần lưu ý nếu lớp không được khai báo public thì tất cả thuộc tính hay phương thức trong nó đều không thể truy xuất từ lớp khác.
    • Khi nào cần dùng Public:
      • Bạn muốn công khai một lớp cho các lớp khác truy xuất
      • Sử dụng cho các phương thức. Nếu đã cho lớp khác truy xuất thì các phương thức cần phải public thì lớp đó mới sử dụng được
      • Sử dụng cho get, set. Đây là hai thuộc tính quản lý đầu vào ra của các trường dữ liệu (field). Nếu không có mục đích khác thì thông thường ta sử dụng public để lấy dữ liệu và nhập dữ liệu thông qua get/set
      • Và nhiều trường hợp khác.
      • Và tất nhiên còn dùng trong việc khai báo biến, thông thường các biến cục bộ chỉ sử dụng private để bảo vệ thông tin.
    2. từ khóa Private là gì
    • Chỉ gán từ khóa này cho trường (field), phương thức, thuộc tính get/set, các biến.... Nhưng không thể gán cho class. Lưu ý class được mặc định ẩn là Internal, chỉ khi bạn gán public thì class đó mới được công khai.
    • Các thành viên nếu được thiết lập ở chế độ này sẽ chỉ được nhìn thấy và truy xuất được ở bản thân lớp định nghĩa thành viên đó.
    • Hặc nói cách khác từ khóa private có thể gán cho biến hoặc hàm, và biến và hàm đó chỉ được sài trong lớp đó thôi khi ra khỏi hàm đó, thì không hàm nào có thể gọi nó được.
    3. từ khóa Protected là gì
    • Từ khóa này bạn cần chú ý, khi tạo một lớp cha (cơ sở) các trường (field) cần phải gán protected nếu không các lớp con sẽ không kế thừa được.
    • Nó bảo vệ thông tin và chỉ cho lớp con kế thừa được quyền truy xuất.
    • Chế độ này sẽ được dùng để giới hạn truy cập tới các lớp được thừa kế và bản thân lớp định nghĩa thành viên đó.
    4. từ khóa Internal là gì
    • Nó giới hạn các class chỉ được sử dụng trong một Assembly (*.exe,*.dll), nghĩa là khi bạn tạo 1 project, bạn build thành dll, tiếp theo bạn tạo cái project thứ 2 bạn add references cái dll của Project thứ 1 vào thì biến hoăc hàm khai báo Internal sẽ không gọi được từ project 2 nay. Còn trong project 1 biến hoặc hàm nó tương tự từ khóa public.
    • Để truy xuất được các biến và hàm Internal từ project 1 thì có các đó là truy xuất thông qua : Friend Assemblies.
    Những từ khóa trên có nhiệm vụ tăng độ bảo toàn thông tin trong C#, giữ cho thông tin được bảo mật theo ý người sử dụng

    Ví dụ:
    Đây là lớp NhanVien
    public-private-protected-internal-h1.png
    • Tiếp đến tạo một class GiangVien kế thừa từ lớp NhanVien
    public-private-protected-internal-h2.png
    • Khởi tạo một đối tượng là Giảng Viên
    public-private-protected-internal-h3.png
    • Bạn có thể thấy ở trên lớp cha NhanVien khai báo các field là protected thì lớp con GiangVien mới kế thừa được. Và mặc định lớp GiangVien ở trên lúc này là internal
    • Một điều nữa tại lớp GiangVien khai báo là public, tuy nhiên không cần gán như vậy các lớp khác vẫn kế thừa bình thường, không ảnh hưởng gì cả.
    Lưu ý:
    • Khi bạn tạo một project ClassLibrary, trong project này tất cả class sẽ được build ra một DLL. Các bạn thường sử dụng để tạo ra các DLL trong mô hình 3 layer và dùng các DLL này add reference cho Project khác để sử dụng.
    • Vậy nên việc khai báo các từ khóa Access Modifiers cần phải rõ ràng, nếu không lúc add DLL đó sẽ không thể sử dụng vì chưa Public chẳng hạn hoặc để Public tùy tiện một số class cần bảo mật.
    • Xin nói thêm DLL là viết tắt của từ Dynamic Link Library
     
    Cảm ơn đã xem bài:

    Từ khóa public private protected internal ý nghĩa là gì trong c#

    Chỉnh sửa cuối: 23/8/15
    Đang tải...
  2. seolagi

    seolagi

    Vip Member

    Tham gia ngày:
    16/4/14
    Bài viết:
    258
    Đã được thích:
    5
    Điểm thành tích:
    18
    Kiến thức hay, hồi xưa mình ít khi để ý
     


Like và Share ủng hộ ITSEOVN