类的成员-属性
# 类的成员
Java的基本单位是类class
,Java成员即类中的成员,包括以下五个部分:
- 属性
- 方法
- 构造器
- 代码块/初始化块
- 内部类
# 类的属性field
其中属性也可以叫成员变量或者字段,方法也可以叫函数。
在类内部声明的变量,称为==成员变量==。
在方法体内部声明的变量,称为==局部变量==。
属性的语法格式
修饰符 数据类型 属性名 = 初始化值;
- 修饰符
- 常用的权限修饰符有:private、缺省、protected、public
- 其他修饰符:static、final (暂不考虑)
- 数据类型
- 任何基本数据类型(如int、Boolean) 或任何引用数据类型。
- 属性名
- 属于标识符,符合命名规则和规范即可。
属性(成员变量)与局部变量的区别
成员变量 | 局部变量 | |
---|---|---|
声明的位置 | 直接在类中声明 | 方法形参或内部、代码块内、构造器内等 |
修饰符 | private、public、static、final等 | 不能用权限修饰符修饰,可以用final修饰 |
初始化值 | 有默认初始化值 | 没有默认初始化值,必须显式赋值,方可使用 |
内存加载位置 | 堆空间或静态域内 | 栈空间 |
属性(成员变量)与局部变量的相同点
- 定义变量的格式:数据类型 变量明 = 变量值
- 先声明,后使用
- 变量都有其对应的作用域
成员变量的基本类型默认值
如果类的成员变量(字段)是基本数据类型,那么在类初始化(实例化)时,这些类型将会被赋予一个初始值。
基本类型 | 初始值 |
---|---|
boolean | false |
char | \u0000 (null) |
byte | (byte) 0 |
short | (short) 0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d |
这些默认值仅在 Java 初始化类的时候才会被赋予。这种方式确保了基本类型的字段始终能被初始化(在 C++ 中不会),从而减少了 bug 的来源。但是,这些初始值对于程序来说并不一定是合法或者正确的。 所以,为了安全,我们最好始终显式地初始化变量。
这种默认值的赋予并不适用于局部变量 —— 那些不属于类的字段的变量。
帮我改善此页面 (opens new window)
上次更新: 2020/12/18, 12:50:58