内部类(1)

内部类(1)

如果是一个事物包含另一个事物,那么这就是一个类包含另一个类

分为成员内部类和局部内部类(包含匿名内部类)

成员内部类

格式: 修饰符 class 外部类名称{

修饰符 class 内部类名称{

}

}

注意事项:

内部类用外部类的方式可以随意访问,外部类用内部类的成员需要创建对象

成员内部类的使用: 1.间接方式: 在外部类方法中使用内部类,然后在main方法中只需要调用内部类方法;

2.直接使用(创建内部类对象): 外部类名称.内部类名称 对象名 = new 外部类名称(). new 内部类名称();

public  class SongDynasty {//外部类
        int startyear = 960;
        int endyear = 1368;

        public void inner(){
            songci ci = new songci();
            ci.sentence();//外部类用内部类内容,需要先创建对象
        }
        String name = "赵姓江山";

        //===========================================

    public class songci{//内部类
              public void  sentence (){
                  System.out.println(startyear+"--"+endyear);
                  //内部类用外部类的成员变量和方法可以随意使用
                  System.out.println("且将新火试新茶,杯酒趁年华");
              }
              String name = "大宋皇帝";
              public void test (){//重名情况
                  String name ="历史人物";
                  System.out.println(name);
                  System.out.println(this.name);
                  System.out.println(SongDynasty.this.name);
                  basefact();
              }
             public  songci(){}
             //在不同包继承外部类,内部类修饰符为protected的情况下,需创建用public修饰的构造方法

    }
    public  static class Quiet{//只有内部类可以被声明为静态类
        int num = 10;
        public static int num2 = 20;//只有静态内部类可以声明静态成员变量
        //静态内部类只可以访问外部类的静态成员,而非静态内部类可以访问外部类的所有成员
    }
}
原文地址:https://www.cnblogs.com/susexuexi011/p/13811539.html