Before I explain these four keywords, I want to make a simple definition of the relationship between classes, for inheriting their own class,base class can think that they are their own children, and for their own directory of classes, think is their friends.
1, public:public indicates that the data member, the member function is open to all users, all users can directly make the call
2, private:private means private, private means that except class himself, no one can directly use, private property sacred inviolability, even children, friends, can not be used.
3, protected:protected for children, friends, is public, free to use, without any restrictions, and for other external class,protected become private.
Scope Current class same package descendant class other package
Public√√√√
Protected√√√x
Friendly√√xx
Private√xxx
Note: Default to friendly when not written
From:http://www.cnblogs.com/burandanxin/archive/2009/12/17/1626734.html
[Scope Public private protected in]java and non-writable differences