Loading

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()

posted @ 2022-09-12 20:30  CHhY  阅读(37)  评论(0编辑  收藏  举报