Java静态嵌套类

本文概述

  • 具有实例方法的Java静态嵌套类示例
  • 具有静态方法的Java静态嵌套类示例
静态类, 即在类内部创建的静态类在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

    推荐阅读