成员变量和局部变量
Java 中以类来组织程序。类中可以定义变量和方法。在类的方法中,我们同样也可以定义变
量。在不同的位置定义的变量有什么不同吗?由图 11.4 所示,在类中定义的变量称为类的成员变量,例如变量 1、变量 2 和变量 3。在方
法中定义的变量称为局部变量,例如变量 4 和变量 5。在使用时,成员变量和方法的局部变量
具有不同的使用权限。对于图中 AutoLion 类中所定义的变量说明如下。
成员变量:AutoLion 类的方法可以直接使用该类定义的成员变量。如果别的类的方法要
访问它,必须首先创建该类的对象,然后才能通过点运算符来引用。
局部变量:它的作用域仅仅在定义该变量的方法内,因此只有在这个方法中能够使用它。
总地来说,使用成员变量和局部变量时需要注意以下几点内容。
作用域不同。
局部变量的作用域仅限于定义它的方法,在该方法外无法访问它,成员变量的作用域在整
个类内部都是可见的,所有成员方法都可以使用它,如果访问权限允许,还可以在类外部使用成员变量。
/*
成员变量的 类变量 和 实例变量
*/
class Person
{
//类变量 --》 归属于这个类的变量
static String staticName;
//实例变量 --》属于某个实例对象
String name;
public static void main(String[] args)
{
/*
类变量的访问方式:
1.类名.类变量名
Person.staticName;
2.类的某个对象.类变量名
Person jack = new Person();
jack.staticName;
实际上也是找到这个实例所属的类, 然后再访问这个类变量
*/
//1.类名.类变量名
Person.staticName = "类赋值";
//2.类的某个对象.类变量名
Person jack = new Person();
jack.staticName = "jack赋值";
jack.name = "杰克";
Person rose = new Person();
rose.staticName; // --> jack赋值
rose.name; // --> null
//这个类所有的实例,去访问类变量的时候,都是同一个区间,
//代表如果一个 实例改变了 类变量的值,
//那么所有实例访问到的这个类变量的值都会是改变之后的。
/*
1.实例变量的访问方式:
实例对象.实例变量名
Person jack = new Person();
jack.name;
2.不能用 类名来访问实例变量
*/
}
}