ITPub博客

首页 > Linux操作系统 > Linux操作系统 > java 内部类(六)

java 内部类(六)

原创 Linux操作系统 作者:xiangying816 时间:2010-06-10 08:37:46 0 删除 编辑

1.普通代码块,在一个方法中直接用{},就称为普通代码块。
2.构造代码块,直接在类中用{},构造块会优先于构造方法执行。new 几次类的时候会执行多次。
3.静态块,使用static声明的代码块,静态块的主要目的是静态属性初始化。static{...}
new 几个次类的时候会执行一次。静态块优先于构造块执行。
4.在屏幕上输出helloworld,但不使用主方法。
public class Test{
    static{
         System.out.println("Hello World!!"): 
         System.exit(1);
    }
}
5.内部类:
class Outer{
 private String name = "HELLO WORLD!!!" ;
 class Inner{
  public void print(){
   System.out.println("name = " + name) ;
  }
 };
 public void fun(){
  new Inner().print() ; // 打印信息
 };
};
public class InnerClassDemo01{
 public static void main(String args[]){
  new Outer().fun() ;
 }
};
//这样程序有点混乱,改进如下:
class Outer{
 private String name = "HELLO WORLD!!!" ;
 public void fun(){
  new Inner(this).print() ; // 打印信息 };
 public String getName(){
  return this.name ;
 }
};
class Inner{
 private Outer out ;
 public Inner(Outer out){
  this.out = out ;
 }
 public void print(){
  System.out.println("name = " + this.out.getName()) ;
 }
};
public class InnerClassDemo02{
 public static void main(String args[]){
  new Outer().fun() ;
 }
};
内部类唯一的好处就是可以方便访问外部类的私有成员,如果要在外部直接使用内部类的实例化对象:
外部类.内部类 内部类对象=外部类实例.new 内部类实例().
class Outer{
 private String name = "HELLO WORLD!!!" ;
 class Inner{
  public void print(){
   System.out.println("name = " + name) ;
  }
 };
};
public class InnerClassDemo03{
 public static void main(String args[]){
  Outer ut = new Outer() ; // 外部类实例
  Outer.Inner in = out.new Inner() ; //实例化内部类对象
  in.print() ;
 }
};
一个内部类如果使用static关键字的话,则内部类将成为外部类。直接可以通过外部类.内部类访问
class Outer{
 private static String name = "HELLO WORLD!!!" ;
 static class Inner{
  public void print(){
   System.out.println("name = " + name) ;
  }
 };
};
public class InnerClassDemo04{
 public static void main(String args[]){
  Outer.Inner in = new Outer.Inner() ; // 实例化内部类对象
  in.print() ;
 }
};
内部类可以在任意的地方使用,在方法中声明:
class Outer{
 private String name = "HELLO WORLD!!!" ;
 public void fun(){
  class Inner{
   public void print(){
    System.out.println("name = " + name) ;
   }
  }
  new Inner().print() ;
 }
};
public class InnerClassDemo05{
 public static void main(String args[]){
  new Outer().fun() ;
 }
};
在方法中定義的內部類,可以直接訪問外部類的各方法成員,但如果訪問方法中的參數,則在參數上要使用final關鍵字申明。
class Outer{
 private String name = "HELLO WORLD!!!" ;
 public void fun(final int temp){
  class Inner{
   public void print(){
    System.out.println("temp = " + temp) ;
    System.out.println("name = " + name) ;
   }
  }
  new Inner().print() ;
 }
};
public class InnerClassDemo06{
 public static void main(String args[]){
  new Outer().fun(30) ;
 }
};

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/15127599/viewspace-664908/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: java 链表上(七)
请登录后发表评论 登录
全部评论

注册时间:2011-03-02

  • 博文量
    90
  • 访问量
    187382