03.权限修饰符

权限修饰符

在Java中提供了四种访问权限,使用不同的访问权限时,被修饰的内容会有不同的访问权限,以下表来说明不同权限的访问能力:

public protected default private
同一类中
同一包中(子类与无关类)
不同包的子类
不同包中的无关类

归纳一下:在日常开发过程中,编写的类、方法、成员变量的访问

  • A:要想仅能在本类中访问使用private修饰
  • B:要想本包中的类都可以访问除了private修饰符,其它都可以
  • C:要想本包中的类与其他包中的子类可以访问使用protected修饰
  • D:要想所有包中的所有类都可以访问使用public修饰。
    注意:如果类用public修饰,则类名必须与文件名相同。一个文件中只能有一个public修饰的类。
package com.itheima_02;

/*
 *  权限修饰符:
 *      public      当前类,相同报下不同类,不同包下的类
 *      default     当前类,相同报下不同类
 *      private     当前类
 *      protected   当前类,相同报下不同类
 * 
 *  default和protected的区别:
 *      default     当前包下使用
 *      protected   让子类对象使用
 */
public class PermissionsDemo {

    public void publicMethod() {
        System.out.println("publicMethod");
    }

    void defaultMethod() {
        System.out.println("defaultMethod");
    }

    private void privateMethod() {
        System.out.println("privateMethod");
    }
    
    protected void protectedMethod() {
        System.out.println("protectedMethod");
    }
    
    public static void main(String[] args) {
        PermissionsDemo pd = new PermissionsDemo();
        pd.publicMethod();
        pd.defaultMethod();
        pd.privateMethod();
        pd.protectedMethod();
    }
}
package com.itheima_02;

public class PermissionsDemo2 {
    
    public static void main(String[] args) {
        PermissionsDemo pd = new PermissionsDemo();
        pd.publicMethod();
        pd.defaultMethod();
//      pd.privateMethod();
        pd.protectedMethod();
    }
}
package com.itheima_03;

import com.itheima_02.PermissionsDemo;

public class PermissionsDemo3 {
    
    public static void main(String[] args) {
        PermissionsDemo pd = new PermissionsDemo();
        pd.publicMethod();
//      pd.defaultMethod();
//      pd.privateMethod();
//      pd.protectedMethod();
    }
}
package com.itheima_03;

import com.itheima_02.PermissionsDemo;

public class PermissionsDemo4 extends PermissionsDemo{
    
    public void function() {
        super.publicMethod();
        super.protectedMethod();
    }
    
    public static void main(String[] args) {
        PermissionsDemo pd = new PermissionsDemo();
        pd.publicMethod();
//      pd.defaultMethod();
//      pd.privateMethod();
//      pd.protectedMethod();
    }
}

你可能感兴趣的:(03.权限修饰符)