疯狂java学习笔记1005---内部类的使用

 1、在外部类以外的地方定义内部类(包括静态和非静态)格式:

OuterClass.InnerClass varName

 2、由上得出内部类的完整的全名是OuterClass.InnerClass

 3、在外部类以外的地方创建非静态内部类实例格式:

OuterInstance.new InnerConstructor()

例:

 

  
  
  
  
  1. class Out 
  2.     //定义一个内部类,不使用访问修饰符,即只有同一个包中的其他类可访问该内部类 
  3.     class In 
  4.     { 
  5.         public In(String msg) 
  6.         { 
  7.             System.out.print(msg);   
  8.         }    
  9.          
  10.     }    
  11. public class CreateInnerInstance 
  12.     public static void main(String[] args) 
  13.     { 
  14.         Out.In in = new Out().new In("测试信息");//创建非静态内部类对象(非静态内部类的构造器必须使用外部类对象来调用)    
  15.         /* 
  16.             上面代码可改为如下三行代码: 
  17.             使用OutterClass.InnerClass的形式定义内部类变量 
  18.             Out.In.in 
  19.             创建外部类实例,非静态内部类实例将寄存在该实例中 
  20.             Out out  = new Out(); 
  21.             通过外部类实例和new来调用内部类构造器创建非静态内部类实例 
  22.             in = out.new In("测试信息"); 
  23.         */ 
  24.     }    

在外部类以外的地方创建静态内部类:

 

  
  
  
  
  1. public StaticOut 
  2.     static class StaticIn 
  3.     { 
  4.          public StaticIn() 
  5.          { 
  6.             System.out.println("静态内部类的构造器");     
  7.          }   
  8.     }    
  9. public class CreateStaticInnerInstance 
  10.     public static void main(String[] args) 
  11.     { 
  12.         StaticOut.StaticIn in = new StaticOut.StaticIn(); 
  13.     }    

静态内部类只需使用外部类即可调用构造器,而费静态内部类必须使用外部类对象调用构造器。

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

你可能感兴趣的:(java)