探究靜態內部類和非靜態內部類的區別

package com.zhao.j2sePractice;.net

/**
 * 探究靜態內部類和非靜態內部類的區別
 *
 * 注意:靜態方法不能夠調用非靜態的內部類
 *
 * @author Administrator
 *
 */
public class TestStaticClassAndNotStaticClass {
 /**
  * 非static型的name
  */
 private String name = "zhao";
 /**
  * static型的age
  */
 private static int age = 12;對象

 /**
  * @param args
  */
 public static void main(String[] args) {get

  TestStaticClassAndNotStaticClass test = new TestStaticClassAndNotStaticClass();
  test.transferNotStaticClass();
  
  System.out.println();class

  StaticClass staticClass = new StaticClass();
  staticClass.staticMethod();test

 }變量

 /**
  * 建立方法來調用非靜態類
  */遍歷

 public void transferNotStaticClass() {
  /**
   * 類加載的機制:先從本類中找是否存在此類,若是不存在,則在同一個包下尋找,依次向上遍歷
   */
  NotStaticClass notStaticClass = new NotStaticClass();
  notStaticClass.method();
 }方法

 /**
  * 非靜態類
  *
  * @author Administrator
  *
  */
 class NotStaticClass {
  public void method() {static

   System.out.println(name + "     非靜態類");
   System.out.println(age + "      非靜態類");
  }auth

 }

 /**
  * 靜態類
  *
  * @author Administrator
  *
  */
 static class StaticClass {

  public void staticMethod() {

   /**
    * 必須建立對象來調用公共類的成員變量name
    */
   TestStaticClassAndNotStaticClass test = new TestStaticClassAndNotStaticClass();

   System.out.println(test.name + "     靜態類");
   System.out.println(age + "     靜態類");
  }
 }

}

相關文章
相關標籤/搜索