因为定义一个成员变量时,成员变量将被放置到堆内存中,成员变量的作用域将扩大到类存在范围或者对象存在范围,这种范围的扩大有两个害处:
增大了变量的生存空间,这将导致更大的内存开销。
扩大了变量的作用域,这不利于提高程序的内聚性。
package chap5_3;
public class ScopeTest1 {
static int i ;
//类成员变量
public static void main(String[] args)
{
for(i=0;i<10;i++)
{
System.out.println("hello");
}
}
}
package chap5_3;
public class ScopeTest2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//方法局部变量
int i;
for(i=0;i<10;i++)
{
System.out.println("hello");
}
}
}
package chap5_3;
public class ScopeTest3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 代码块局部变量
for (int i = 0; i < 10; i++) {
System.out.println("hello");
}
}
}
如果有如下几种情形,则应该考虑使用成员变量
1.如果需要定义的变量是用于描述某个类或某个对象的固有信息的,例如每个人对象都具有身高体重这种信息,这种变量应该定义为成员变量。
2.如果在某个类中需要以一个变量来保存该类或者实例运行时的状态信息,这种用于保存某个类或某个实例状态信息的变量通常应该使用成员变量。