本文概述
- 具有实例方法的Java静态嵌套类示例
- 具有静态方法的Java静态嵌套类示例
- 它可以访问外部类(包括私有)的静态数据成员。
- 静态嵌套类无法访问非静态(实例)数据成员或方法。
class TestOuter1{
static int data=http://www.srcmini.com/30;
static class Inner{
void msg(){System.out.println("data is "+data);
}
}
public static void main(String args[]){
TestOuter1.Inner obj=new TestOuter1.Inner();
obj.msg();
}
}
立即测试
【Java静态嵌套类】输出:
data is 30
在此示例中, 你需要创建静态嵌套类的实例, 因为它具有实例方法msg()。但是你无需创建Outer类的对象, 因为嵌套类是静态的, 并且静态属性, 方法或类都可以在没有对象的情况下进行访问。
编译器生成的内部类
import java.io.PrintStream;
static class TestOuter1$Inner
{
TestOuter1$Inner(){}
void msg(){
System.out.println((new StringBuilder()).append("data is ")
.append(TestOuter1.data).toString());
}
}
具有静态方法的Java静态嵌套类示例如果你在静态嵌套类中具有静态成员, 则无需创建静态嵌套类的实例。
class TestOuter2{
static int data=http://www.srcmini.com/30;
static class Inner{
static void msg(){System.out.println("data is "+data);
}
}
public static void main(String args[]){
TestOuter2.Inner.msg();
//no need to create the instance of static nested class
}
}
立即测试
输出:
data is 30
推荐阅读
- Java抛出异常(throw关键字:throw关键字)
- Java套接字编程
- Java中的ResourceBundle类
- Applet中的参数
- 小程序中的绘画
- newInstance()方法
- 10大Docker替代品(最佳容器虚拟化软件推荐)
- 10个最佳Wunderlist替代品(任务管理工具推荐合集)
- Windows和Mac的15种最佳vMix替代品(文稿演示软件推荐)