3.2.1 属性的声明
属性是对象状态的描述。在Java中,一切都是从类开始,因此,属性也是在类中定义的。一个变量直接作为类的成员来定义,该变量就是成员变量,也就是属性。例如,
class CoffeeHouse {
int employeeCount;
}
在上例中,变量employeeCount直接定义在类CoffeeHouse之下,是作为类的成员出现的。因此,employeeCount是类CoffeeHouse的一个属性。属性的有效区域(作用范围)是整个类。也就是说,在整个类的内部,都可以通过employeeCount标识符来引用该属性。
3.2.2 属性与局部变量
局部变量和属性比较相似,二者都是变量。但是,局部变量不是直接定义在类之下,而是出现在方法或者代码块等位置,变量的有效区域也仅限于其所出现的方法或者代码块内部。例如,
class CoffeeHouse {
int employeeCount = 20;
{
String tmpName = "张三";
}
}
与变量employeeCount相比,tmpName定义在另外一个代码块(一对大括号所包含的代码)内部。那么,employeeCount是一个属性(成员变量);而tmpName只是一个局部变量。在代码块外部,变量tmpName是无效的,如果尝试引用该变量,那么,编译器将抛出错误。
3.2.3 强类型与弱类型
对于变量或常量,标识符(也就是变量和常量的名字)是必不可少的。除此之外,就是数据类型和实际值。定义变量或者常量时,是否需要数据类型也是不定的。这与具体的编程语言有关——强类型与弱类型编程语言。
强类型语言是指,在定义变量或者常量时,要求指定数据类型的语言。比较典型的有,Java、C#等。值得注意的是,变量和常量的值,必须与声明的数据类型完全一致,否则无法编译通过。
String a = "12";
a = 13; // 将抛出编译错误,因为此处的赋值与其数据类型不符合
弱类型语言是指,在定义变量或者常量时,无须指定数据类型的语言。比较典型的有,JavaScript、VBScript等。
a = "12";
a = 13; //不会有任何编译时和运行时错误,因为JavaScript对类型不敏感。实际是根据变量的值来确定数据类型
属性也是变量的一种,数据类型是变量声明中必不可少的部分,我们将在接下来的章节中重点介绍Java中的各种数据类型。
更多技术交流文章,请关注微信公众号【时代码农】