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 + " 靜態類");
}
}
}