一.Private
private是私有的,其实是在自己的类里面调用
class A
{
private int x = 1;
public void show()
{
System.out.println(this.x);
}
}
class text
{
public static void main(String[] args)
{
A a = new A();
a.show();
}
}
这是完全合法的
二.Protected
被 protected 修饰的成员对于本包和其子类可访问
什么是访问,就是通过自己的子类的对象或者同一个包中的类对象来调用这个函数
class A
{
protected void show()
{
System.out.println("被调用了");
}
}
class B extends A
{}
class text
{
public static void main(String[] args)
{
B b = new B();
b.show();
}
}
如果在同一个包中调用(继承关系)
类A
package bao;
public class A
{
protected void show()
{
System.out.println("被调用了");
}
}
类B继承A
在这个类中我们用B自身的类调用show函数
package bao;
public class B extends A
{
public void Show()
{
this.show();
}
}
主类
package bao;
public class text {
public static void main(String[] args)
{
B b = new B(); //实例化Son1类
b.show();
}
}
同一个包内(非继承关系):
类A
package bao;
public class A
{
protected int X = 520;
}
类text
package bao;
public class text
{
public static void main(String args[])
{
A a = new A();
System.out.println(a.X);
}
}
这里在text类中利用a调用x是合法的
如果是在不同的包中调用protected成员:
bao中类A
package bao;
public class A
{
protected int X = 520;
}
bao1中类text
package bao1;
import bao.*;
public class text
{
public static void main(String args[])
{
A a = new A();
System.out.println(a.X);
}
}
会报错
这里的访问其实是在别的类中能调用被修饰的类的成员
三.Public
这个关键字就是不管这个类是不是继承关系,不管是不是一个包内的都可以进行调用
四.默认
如果是什么也不加,就是只能是包内访问