package com.wangcf; public class Test { String name="你好"; static String sex="男"; Test t=new Test(); /** * 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员 * 如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量 */ public static void print(){ Test test=new Test(); //创建本类的对象 System.out.println(name); //此处错误,在静态方法中不能调用非静态变量 System.out.println(test.name); //通过类本身的对象可以访问非静态变量 System.out.println(t); //此处也不能调用t System.out.println(sex); //静态方法中可以直接调用静态变量 } /** * 普通成员方法中可以同时调用静态变量的和非静态变量 */ public void show(){ System.out.println(name); System.out.println(sex); System.out.println(t.name); } /** * 静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法 * @param args */ public static void main(String[] args) { t.show(); show(); //不能直接调用非静态方法 Test test=new Test(); test.show(); print(); //可以直接调用非静态方法 } }