猿教程 Logo

Java 静态内部类

在类中创建的静态类在java中称为静态内部类。 它不能访问非静态数据成员和方法。 它可以通过外部类名访问。

  • 它可以访问外部类的静态数据成员,包括private。

  • 静态嵌套类不能访问非静态(实例)数据成员或方法。


Java静态内部类与实例方法的示例

相关实例:

class TestOuter1{
  static int data=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();
  }
}

输出:

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=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


版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/Java/java-static-nested-class.html