java访问权限修饰符包含四个:public,protected,friendly,private;但是,friendly在java中并没有显示的声明,成员变量和方法默认情况下就是friendly权限。
看到网上有许多写java访问修饰符的文章,觉得下面的这种分类讨论比较清晰易懂。
一、访问权限修饰符修饰成员变量和方法
public:表明该成员变量和方法是共有的,能在任何情况下被访问。
protected:必须在同一包中才能被访问。(说的比较简单,看个例子就明白了)
eg:class A
{
protected int weight ;
protected int f( int a,int b )
{
// 方法体
}
}
假设B与A在同一个包中,则
class B
{
void g()
{
A a=new A();
A.weight=100;//合法
A.f(3,4); //合法
}
}
特别说明:什么是在同一个包中?
答:用package打包在一起的class ,叫在同一个包中。(不明白,举个例子)
eg:在JDK的src\java\io中,你会看到许多java类,第一句源代码都是package java.io;
没有使用package打包的,在同一目录下的类也会被视做同一个包。
friendly:在这种情况下中,同protected。区别在第二和第三种情况中。
eg: class A