Java 类的成员——成员变量
如何声明成员变量
语法格式:
[修饰符1] class 类名{ [修饰符2] 数据类型 成员变量名 [= 初始化值]; }
说明:
– 位置要求:必须在类中,方法外
– 修饰符2(暂不考虑)
- 常用的权限修饰符有:private、缺省、protected、public
- 其他修饰符:static、final
– 数据类型
- 任何基本数据类型(如int、Boolean) 或 任何引用数据类型。
– 成员变量名
- 属于标识符,符合命名规则和规范即可。
– 初始化值
- 根据情况,可以显式赋值;也可以不赋值,使用默认值
示例:
public class Person{ private int age; //声明private变量 age public String name = “Lila”; //声明public变量 name }
成员变量 vs 局部变量
1、变量的分类:成员变量与局部变量
在方法体外,类体内声明的变量称为成员变量。
在方法体内部等位置声明的变量称为局部变量。
成员变量 与 局部变量 的对比
相同点:
– 变量声明的格式相同: 数据类型 变量名 = 初始化值
– 变量必须先声明、后初始化、再使用。
– 变量都有其对应的作用域。只在其作用域内是有效的
不同点:
1、声明位置和方式 (1)实例变量:在类中方法外 (2)局部变量:在方法体{}中或方法的形参列表、代码块中
2、在内存中存储的位置不同 (1)实例变量:堆 (2)局部变量:栈
3、生命周期 (1)实例变量:和对象的生命周期一样,随着对象的创建而存在,随着对象被GC回收而消亡, 而且每一个对象的实例变量是独立的。 (2)局部变量:和方法调用的生命周期一样,每一次方法被调用而在存在,随着方法执行的结束而消亡, 而且每一次方法调用都是独立。
4、作用域 (1)实例变量:通过对象就可以使用,本类中直接调用,其他类中“对象.实例变量” (2)局部变量:出了作用域就不能使用
5、修饰符(后面来讲) (1)实例变量:public,protected,private,final,volatile,transient等 (2)局部变量:final
6、默认值 (1)实例变量:有默认值 (2)局部变量:没有,必须手动初始化。其中的形参比较特殊,靠实参给它初始化。
3、对象属性的默认初始化赋值
当一个对象被创建时,会对其中各种类型的成员变量自动进行初始化赋值。
4、举例
class Person {//人类 //1.属性 String name;//姓名 int age = 1;//年龄 boolean isMale;//是否是男性 public void show(String nation) { //nation:局部变量 String color;//color:局部变量 color = "yellow"; } }
测试类
//测试类 class PersonTest { public static void main(String[] args) { Person p = new Person(); p.show("CHN"); }