03_java访问控制
Java访问控制
Java的访问指示符有public、private和protect,指示符protect仅用于继承的情况
public
- 当一个类成员被public指示符修饰时,该成员可以被程序中的任何其他代码访问。
- 为什么main()总是被public指示符修饰?——因为它被在程序外面的代码调用,也就是Java运行系统调用
- 如果不适用访问指示符,该类成员的默认访问设置为在他自己的包内为public,但是在它的包以外不能被存取
private
当一个类成员被指定为private时,该成员只能被它类中的其他成员访问,而不能在外部的代码中对该类成员进行修改或读取
static
当希望定义一个类成员,使它的使用完全独立于该类的任何对象,通常情况下,类成员必须通过它的类对象访问,但是可以在成员的声明前面加上static
关键字,使得该成员能够在它的类的对象创建之前被访问,而不用引用任何对象。
声明为static的变量实质上就是全局变量。当声明一个对象时,并不会产生static变量的拷贝,而是该类的所有对象实例共用一个static变量
声明为static的方法的几条限制:
- 声明为static的方法仅能调用其他的static方法
- 声明为static的方法仅能访问static数据(变量)
- 声明为static的方法不能以任何方式引用this或super
public class UseStatic{
static int a=3;
static int b;
static{
b=a*6;
}
static void meth(int x){
System.out.println("x="+x);
System.out.println("a="+a);
System.out.println("b="+b);
}
public static void main(String[] args) {
meth(30);
}
}
当UseStatic类被装载时,所有的static语句被执行,首先a被设置为3,接着static块执行,b被初始化为a*6,然后调用main(),main()调用meth()