0
点赞
收藏
分享

微信扫一扫

Java中内部类、权限修饰符

沐之轻语 2022-01-16 阅读 64

 内部类:
         1)成员内部类---在外部类的成员位置定义的类   

class Outer{ //外部类
    private int num = 10 ;
    class Inner{//成员内部类//内部类的成员方法
        public void show(){
            System.out.println(num);
        }
    }

        2)局部内部类---在外部类的成员方法中定义的类

public void method(){
        //局部内部类
        class Inner{

成员内部类可以存在一些修饰符号:

         可以使用private修饰,可以保证数据的安全性;

成员内部类还可以加入static修饰的,

特点: 如果成员内部类都是静态的--成员内部类的这个方法是否静态,无关了,访问外部类成员---->只能是静态的。
非静态的成员内部类中,是不能存在静态方法的

如何直接访问成员内部类的成员方法呢?

        将外部类的成员内部类---当做是外部类的成员

        直接访问的方式:前提条件:当前的成员内部类是非静态的!

        外部类名.内部类名 对象名 = new 外部类对象.new 内部类对象;

局部内部类特点:局部内部类也依然访问外部类的成员变量

class Outer4{
    private int num = 100 ;
    public void method(){
        //局部内部类
        class Inner4{
            public void show(){
                //局部变量
                int num2 = 20 ;
                System.out.println(num2) ;
                System.out.println(num) ;
            }
        }
        //在method方法中,访问show
        //创建局部内部类对象.show()
        Inner4  inner4 = new Inner4() ;
        inner4.show() ;
    }
}

//测试类
public class InnerClassDemo4 {
    public static void main(String[] args) {
        //创建外部类对象
        Outer4 outer4 = new Outer4() ;
        outer4.method() ;
    }
}

权限修饰符 

权限修饰在同一个包下的当前类中同一个包下的子类中/无关类中 在不同包下子类中  不同包下的无关类中
private    √
默认修饰符 √ √
 protected:受保护的 √ √ √
public  √ √ √ √

 其他的修饰符:
      static:结合自定义去使用
         定义自定义常量结合final
                  public static final 数据类型 变量名 = 初始化数据;
           static还可以在工具类中---->工具类中的构造方法私有化,里面的方法都加入static,类名访问
      abstract--->修饰类-->抽象类
               还可以在成员方法中定义:抽象类中 =--->public abstract 返回值类型 方法名(参数列表) ;
               abstract在接口中定义的抽象方法---abstract可以省略
      final结合static一块使用的:
      public static final 数据类型 变量名 = 初始化数据;

举报

相关推荐

0 条评论