访问修饰符

1.java提供四种访问控制修饰符号,用于控制方法和属性(成员变量)的访问权限(范围)。

1.公开级别:用public修饰,对外公开

2.受保护级别:用protected修饰,对子类同一个包中的类公开

3.默认级别:没用修饰符,向同一个包的类公开

4.私有级别:用private修饰,只有本类可以访问,不对外公开。

2.4种访问修饰符的访问范围

访问修饰符_第1张图片

3.同一个类中可以访问public,protected,默认,私有的属性和方法

package com.hspedu.modifier;

public class A {
    //    四个属性
    public int n1 = 100;
    protected int n2 = 200;
    int n3 = 300;
    private int n4 = 400;

    public void m1() {
        System.out.println("n1=" + n1 + "n2=" + n2 + "n3=" + n3 + "n4=" + n4);
    }
}

        

4. 在一个包下,可以访问public,protected和默认 不能访问私有的

package com.hspedu.modifier;

public class B {
    public void say() {
        A a = new A();
//        在一个包下,可以访问public,protected和默认 不能访问私有的
        System.out.println("n1=" + a.n1 + "n2" + a.n2 + "n3" + a.n3);
    }
}

5. 在不同的包下可以访问public修饰的属性和方法
但是不能访问protected,默认,private修饰的属性和方法

package com.hspedu.pkg;

import com.hspedu.modifier.A;

//不同包下的类
public class Test {
    public static void main(String[] args) {
        A a = new A();
//        在不同的包下可以访问public修饰的属性和方法
//        但是不能访问protected,默认,private修饰的属性和方法
        System.out.println(a.n1);

    }
}

6.文件的架的结构

访问修饰符_第2张图片

modifier A:

package com.hspedu.modifier;

public class A {
    //    四个属性
    public int n1 = 100;
    protected int n2 = 200;
    int n3 = 300;
    private int n4 = 400;

    public void m1() {
        System.out.println("n1=" + n1 + "n2=" + n2 + "n3=" + n3 + "n4=" + n4);
    }
}

B:

    package com.hspedu.modifier;

    public class B {
        public void say() {
            A a = new A();
    //        在一个包下,可以访问public,protected和默认 不能访问私有的
            System.out.println("n1=" + a.n1 + "n2" + a.n2 + "n3" + a.n3);
        }
    }

Test:

package com.hspedu.modifier;

public class Test {
    public static void main(String[] args) {
        A a = new A();
        a.m1();
        B b = new B();
        b.say();
    }
}

pkg-Test:

package com.hspedu.pkg;

import com.hspedu.modifier.A;

//不同包下的类
public class Test {
    public static void main(String[] args) {
        A a = new A();
//        在不同的包下可以访问public修饰的属性和方法
//        但是不能访问protected,默认,private修饰的属性和方法
        System.out.println(a.n1);

    }
}

7.注意事项

1.修饰符可以用来修饰类中的属性,成员方法以及类

2.只有默认和public才能修饰类,并且遵循上述访问权限的特点

2.同一个类中四种都能访问

3.同一个包中不用类中public,protected和默认 不能访问私有的

4.不同包中只能访问public修饰的属性和方法

你可能感兴趣的:(java,java-ee)