关于实例变量
来源:百度知道 编辑: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;
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的。要用对象。