关于实例变量

来源:百度知道 编辑:UC知道 时间:2024/06/24 17:30:24
public class Hello
{
int objVal=10;

public Hello(String a)
{
System.out.println(a);
}

public int getobjVal()//get objVall
{
return objVal;
}

public void changeInt( Hello x )
{
System.out.println(objVal+1);
}

public static void main(String[] args)//main方法
{
int val;
val = 15;

Hello pt = new Hello("小金哥");//Hello类的对象pt
Hello pb = new Hello("小尼哥");//Hello类的对象pb

System.out.println(pt.objVal);
pt.changeInt(pt);
System.out.println(pt.objVal);
System.out.println(pb.objVal);
System.out.println(pb.getobjVal());

System.out.println("~~~~~~~~~~~~~~~~~~");

}
}

有的时候变量的调用直接输入objVal即可调用,但是有的时候必须创建对象侯才可以调用,请问如何区分这两种方法,在什么情况下使用那种方法?

在变量的作用域范围内,可以直接调用。
int objVal =10; 的作用域范围是整个类Hello,所以在Hello的
方法中能直接调用。
但main方法是个例外,因为main方法前面有static修饰符。static方法不能调用实例变量。

int val; 的作用域是main方法,所以可以在main方法中直接调用。

在同一个类中,公共变量和方法是可以在方法中直接调用的。
不过main有点奇怪,是程序入口。
而且是static的,所以调用变量,方法不能调用nonstatic的。要用对象。