Trang

Sunday, May 18, 2014

Public , Private , Protected....

Có 4 loại access control(kiểm soát truy cập): private, none, protected, và public; và 4 loại access level: class, package, subclass, và world.

- private: Chỉ để dành cho trong class access mà thôi, còn mấy cái kia thì chịu
- None: không để từ khóa phía trước biến, thì trong class và package có thể xài được
- protected(bảo hộ): trong class, package và các subclass (extends từ lớp này) có thể xài được
- public(công chúng,chung): ở đâu xài cũng được.

Nói túm lại là biến thì như đồ đạc của mình. Nếu như khai biến bằng private thì chỉ có mình xài thôi. Không khai gì hết thì (tất nhiên) mình có thể xài được, nhưng ai trong nhà cũng xài được hết. Nếu khai là protected thì ai trong nhà cũng xài được hết, và con cái nó không còn ở trong nhà nữa, đã ra riêng rồi nhưng nó cũng tới xài đại. Nếu khai public thì coi như cho ông Tư bến đò vô xài luôn.

                                           ******************************

nói vậy cho dễ hiểu theo C or C++ or java pr VB thì sẽ có 3 thằng chính private, public and protected. 3 thằng này là 3 thằng khai báo biến cho 1 hàm nào do or 1 biến , thường nó đứng trước 1 hàm or 1 biến 

private -> có nó thì biến or hàm đó chỉ được sài trong lớp đó thôi -> ra khỏi hàm đó thì nó không hàm nào hiểu được nó cả 
protected -> thằng này thì cao hơn 1 chút, ra ngoài hàm vẫn có thể hiểu được nếu hàm kia là extend(mở rộng) của hàm chứa nó 
public -> mọi lớp dểu sử dụng được nó cả 

tui ví dụ chỉ minh hoạ thôi còn hàm chính xác thì không nhớ rõ 
ex (ví dụ): 

private -> mặc định là biến or hàm không dể thuộc tính đều là private 

class a 
     private int n;

giá trị n trong lớp a chỉ được sài trong lớp a mà thôi, ra khỏi lớp a thì giá trị n không có lớp nào sài được

protecter -> cái này rất ít sài 

class a{
     proteced int n;
}
class b extend a 
or
class b public a {
     int m;
     m=n;
}
khi dó giá trị n trong lớp a có thể được hiểu trong lớp b

public:

public class a
{int n;}

class b 
{int n;}
class c
{int n;}
giá trị n trong class a ,bây giờ được sài trong class b or class c

                **************************************
Mấy cái này gọi là access modifier nè. Nó gồm: public, protected, default và private (cái này là sắp theo thứ tự khả năng nhìn thấy các biến hay hàm của một lớp từ ngoài vào).
public: thằng nào thấy cũng được bất kể chung class hay chung package.
protected: chung package thấy, và thằng nào kế thừa cũng sẽ thấy.
default: tức là không khai báo gì hết, chỉ chung package thấy.
private: chỉ trong lớp đó thấy thôi, ngoài ra ko ai thấy được hết.

Chính xác trong java là như thế này:

_________|___Class____|__Package___|__Subclass___|_ _Outsite the Package_____|
Public_____|____Yes____|____Yes____|_____Yes_____|_ ______Yes_____________|
Private____|____Yes____|_____No____|_____No_____|_ _______No_____________|
Protected__|____Yes____|____Yes____|_____Yes_____| ________No_____________|
No modifier|____Yes____|____Yes_____|_____No_____|____ ____No_____________|

No comments:

Post a Comment