第一种- package com.itheima;
- public class Test1
- {
- int num = 20;//非静态成员变量,在类创建实例对象是加载
- static int temp;//静态成员变量,和类一起加载,可以用类名调用
-
- public static int getTemp()
- {
- return temp;
- }
-
- public int getNum()
- {
- return num;
- }
-
- public static void main(String args[])
- {
- Test1 d = new Test1();//创建实例对象,现在存在了num 值为20
- temp = d.getNum();//temp一直都存在,这里只是给他赋值
- //temp = num;
- System.out.println(temp);//打印出:20,这里可以不调用getTemp
- }
- }
复制代码
第二种
package com.itheima;
public class Test1
{
int num = 20;//非静态成员变量,在类创建实例对象是加载
static int temp;//静态成员变量,和类一起加载,可以用类名调用
public static int getTemp()
{
return temp;
}
public int getNum()
{
return num;
}
public static void main(String args[])
{
Test1 d = new Test1();//创建实例对象,现在存在了num 值为20
temp = num;//错误,因为这里的num是静态代码块中的成员,意思就是在类加载就必须有这个num,
//但是你前面的num是非静态,这里的num初始化还没有,非静态成员必须用对象调用
System.out.println(temp);//打印出:20
}
} |