静态内部类:定义在一个类中的类,即嵌套类,且使用static修饰
注意:
1.不能访问外部类非静态成员
2.非静态内部类只能定义非静态成员,而静态内部类可以定义静态成员和非静态成员
3.实例化
(1)在类中访问:
静态内部类类名 对象名 = new 静态内部类类名();
(2)在类以外访问内部类
嵌套静态内部类的类的对象.静态内部类类名 对象名 = new 嵌套静态内部类的类的对象.静态内部类类名();
例子:
package com.lqh.chapter05; //外部类 public class OuterStatic { // 外部类变量 static String out = "outer"; static String repeat = "22"; // 静态内部类 static class Inner { String in = "inner"; static String repeat = "88";//可以定义static修饰的变量 // 内部方法 public void inMethod() { System.out.println("内部类方法"); } public void visitOutMethod() { System.out.println("访问外部类的变量:" + out); outMethod(); } public String getRepeat() { //repeat是内部类的值,而OuterStatic.this.repeat则是外部类的值 return repeat + " "+ OuterStatic.repeat; } } public static void outMethod() { System.out.println("外部类方法"); } public void visitInMethod() { //在类中访问内部类 Inner inner = new Inner(); inner.visitOutMethod(); } public static void main(String[] args) { OuterStatic outer = new OuterStatic(); outer.visitInMethod(); //在类以外中访问内部类 OuterStatic.Inner inner = new OuterStatic.Inner(); inner.inMethod(); System.out.println(inner.getRepeat()); } }
输出结果为:
访问外部类的变量:outer
外部类方法
内部类方法
88 22