JAVA 成员变量、成员方法、构造方法的访问权限public、protected、friendly(default)、private

成员变量、成员方法、构造方法的访问权限

这三个访问权限的使用方法相同,如下:

例子

package demo7;

public class PC {
    //private只能在当前类中访问
    private String testPrivate;
    //默认访问权限,不能被其他包下的类访问
    String testFriendly;
    //可以在任意地方访问
    public String testPublic;

    private void methodPrivate(){

    }
    void methodFriendly(){

    }
    public void methodPublic(){

    }

    public static void main(String[] args) {
        PC lenovo=new PC();
        lenovo.testPrivate="123";
    }
}

同一包中的测试类:

不能访问 private访问权限

package demo7;

public class Test {
    public static void main(String[] args) {
        PC pc=new PC();
        System.out.println(pc.testPrivate);
        pc.methodPrivate();
    }
}

不同包中的普通测试类:

只能访问 public访问权限

package demo8;

import demo7.PC;

public class Test {
    public static void main(String[] args) {
        PC pc=new PC();
        System.out.println(pc.testPrivate);
        pc.methodPrivate();
        pc.testFriendly="";
    }
}

protected

父类

p1 包下创建下面类

package p1;

public class Phone implements USB{

    int battery;

    protected String name;

    @Override
    public void chongdian() {
        // TODO Auto-generated method stub
        battery = 100;
    }

}

子类

p2 包下创建子类

package p2;

import inter.Phone;

public class SmartPhone extends Phone{

    public SmartPhone(){
        this.name = "Iphone"; // 只能访问到父类的 name 属性
        this.battery = 10; // 访问到父类的 battery 属性 报错,因为是 默认访问权限
    }
}

原文出处:https://malaoshi.top/show_1IX3Prjyjy0w.html