在定义类时,经常需要抽象出它的属性,并定义在类的主体中。下面就来介绍与属性相关的内容。
常量属性
在类中定义的属性有常量属性和成员属性之分。常量属性用final关键字修饰,常量只能赋值一次,在程序中不能修改它的值。一般来说,在类中定义的常量属性用大写字母命名。
例如:
成员属性
成员属性是抽象出来的类属性,成员属性不能直接被外部访问或修改,需要通过get和set方法来访问或修改属性值,成员属性一般用private关键字修改,表明为私有成员,禁止外部直接访问。
成员属性的作用范围为整个类文件,作用范围就是成员属性的有效工作范围,在整个类文件中,成员属性都可以被访问和使用。
例如:
Fruits类有三个成员属性,分别是water(汁液含量)、sugar(糖分含量)、fragrance(芳香度),这三个属性被修饰为private,禁止外部访问和修改。外部如果要访问和修改类属性,需要调用类提供的get和set方法,如getWater()方法可以获取water属性的值,setWater(String water)方法可以设置water属性的值,另外两个属性,依次类推。
对于成员属性,Java提供了三种初始化方式。
(1)使用默认值初始化
Java为声明的成员属性或变量提供了默认初始化机制,当声明成员属性或变量时即使没有显式赋值,Java也会为以下类型的成员属性或变量提供默认值:
(2)使用显式值初始化
声明成员属性的同时,进行赋值。
例如:
(3)使用类构造方法初始化
通过类构造方法来初始化属性(类构造方法后面介绍),可参考本节的Fruits类构造方法。
成员变量
变量前面已经介绍过了,变量的主要作用是存储程序运行过程中的临时数据,程序退出后,变量存储的内容不再存在。在类体中声明的变量称为成员变量。
成员变量的作用范围为整个类文件,在整个类文件中,成员变量都可以被访问和使用。
例如:
与成员属性不同的是,成员变量无需提供get和set方法。成员变量一般用于类内部存储临时数据使用。
局部变量
在类方法体中声明的变量为局部变量。
局部变量的作用范围为方法体,在方法体中,局部变量可以被访问和使用,局部变量在方法体外无效,不能被访问和使用。
例如:
其中,在showArea()方法中声明的r为局部变量,局部变量必须要声明并赋值后才能使用。
■ 知识点拨
Java类的成员属性和成员变量有所区别,成员属性是类所表述事物的共同特征,成员属性不能被外部直接访问和修改,必须通过类提供的get和set方法访问和修改成员属性。成员变量一般用于类内部存储临时数据使用,不需要提供get和set方法。
■ 思考与练习
请说明类成员属性、成员变量、局部变量的区别。