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 + " 静态类");
}
}
}