内部类(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;//只有静态内部类可以声明静态成员变量 //静态内部类只可以访问外部类的静态成员,而非静态内部类可以访问外部类的所有成员 } }