静态内部类【了解即可】
什么是静态内部类?
-
有static修饰,属于外部类本身。
-
它的特点和使用与普通类是完全一样的,类有的功能它都有,只是位置在某个类的里面而已。
public class Outer{
// 静态成员内部类
public static class Inner{
}
}
静态内部类的创建格式
// 外部类名.内部类名 = new 外部类.内部类构造器();
// 例如:
Outer.Inner = new Outer.Inner();
静态内部类的代码案例(可以复制自己试一试)
类里面包着静态类(Outer)
/** 外部类 */ public class Outer { public static int a = 100; private String hobby = "篮球"; /** 学习静态成员内部类 */ public static class Inner{ private String name; private int age; public static String SchoolName; public Inner() { } public Inner(String name, int age) { this.name = name; this.age = age; } public void show(){ System.out.println("名称:"+name); System.out.println(a); // System.out.println(hobby); // 报错 // 因为 Outer是外部类的实例成员,实例成员要用对象调用 Outer o = new Outer(); System.out.println(o.hobby); } public static void run(){ System.out.println("我在跑步!"); } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } }
测试类 (Test)
public class Test { public static void main(String[] args) { // 访问静态内部类的实例方法 // 实例方法要先创建对象才能访问的!!! Outer.Inner in = new Outer.Inner(); in.setName("张三"); in.show(); // 访问静态内部类的静态方法 Outer.Inner.run(); } }
静态内部类总结
-
如果一个类中包含了一个完整的成分,如汽车类中的发动机类。(发动机可以定义成内部类)
-
特点、使用与普通类是一样的,类有的成分它都有,只是位置在别人里面而已。
-
可以直接访问外部类的静态成员,不能直接访问外部类的实例成员。
-
注意:开发中实际上用的还是比较少。
下一章讲成员内部类,此处有点多,看的也头疼但是都很好理解的(匿名内部类才是重点!!!)