java 内部类和类的权限修饰符

一、分类:

1、 成员内部类

  • 格式:
修饰符 class 外部类名称{
    修饰符 class 内部类名称{
        //……
    }
    //……
}
  • 注意:

    内用外,随意访问;

    外用内,需要内部对象

  • 使用:

    • 间接方式:在外部类的方法中使用内部类,然后main知识调用外部类的方法
    • 直接方式:
      • 外部类名称 . 内部类名称 对象名 = new 外部类名称() . new 内部类名称();

2、局部内部类(包含匿名内部类)

  • 格式:
修饰符 class 外部类名称{
    修饰符 返回值类型 外部类方法名称(参数列表){
        修饰符 class 内部类名称{
        //……
   		}
    	//……
        //在方法里,定义内部类对象并调用内部类变量或方法
    } 
}
  • 注意:只有当前所属的方法才能使用局部内部类,出了方法就不能用

二、访问同名变量

public class outter{
    int num = 1;//外部类的成员变量
    public class inner{
        int num = 2;//内部类的成员变量
        public void methodInner(){
            int num = 3;//内部类方法的局部变量
            System.out.println(num);//就近原则  3
            System.out.println(this.num);//2
            System.out.println(Outter.this.num);//1
        }
    }
}

类的权限修饰符

  1. 外部类:

    public / (default)

  2. 成员内部类:

    ``public / protected / (default) / private`

  3. 局部内部类:

    什么都不能写,也不是(default)

原文地址:https://www.cnblogs.com/zx-coder/p/12818521.html