疯狂java学习笔记1005---静态内部类

 

  
  
  
  
  1. /* 
  2.     1、static关键字能修饰内部类,不可以修饰外部类。 
  3.     2、静态内部类不能访问外部类的实例成员,只能访问外部类的成员。 
  4.     3、静态内部类的实例方法也不能访问外部类的实例属性。③ 
  5. */ 
  6.  
  7. package bin; 
  8. public class StaticInnerClassTest 
  9.     private int prop1 = 5
  10.     private static int prop2 = 9
  11.     static class StaticInnerClass 
  12.     { 
  13.             //静态内部类里包含静态成员 
  14.             private static int age; 
  15.             public void accessOuterProp()//③ 
  16.             { 
  17.                     //下面代码错误,静态内部类无法访问外部类的实例成员 
  18.                     //System.out.println(prop1); 
  19.                      
  20.                     //下面代码正常 
  21.                     System.out.println(prop2); 
  22.             } 
  23.     }    

1、外部类依然不能直接访问静态内部类的成员,但可以使用静态内部类的类名作为调用者来访问静态内部类的类成员,也可以使用静态内部类对象作为调用者来访问静态内部类的实例成员。

 

  
  
  
  
  1. public class AccessStaticInnerClass 
  2.     static class StaticInnerClass 
  3.     { 
  4.         private static int prop1 = 5
  5.         private int prop2 = 9;   
  6.     }    
  7.     public void accessInnerProp() 
  8.     { 
  9.         System.out.println(StaticInnerClass.prop1); 
  10.         System.out.println(new StaticInnerClass().prop2); 
  11.     } 

2、此外Java允许在接口中定义内部类,接口里定义内部类默认使用public static修饰。(用处不大)

本文出自 “java程序猿的博客” 博客,转载请与作者联系!

你可能感兴趣的:(java)