面向对象是相对于面向过程而言的,是软件开发方法。面向对象把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统设计,更贴近事物的自然运行模式。本篇博客介绍Java面向对象的属性(field)和方法(Method)。
目录:
属性(field)/变量
语法格式
☃ 修饰符 数据型 类型 属性名 = 初始化值;☄ 修饰符
常用的权限修饰符有:private、缺省(default)、protected、public
其他修饰符:static(类变量/静态变量)、final (使用final关键字后变量不允许修改)
☄ 数据类型
基本数据类型(如int、Boolean)和引用数据类型
☄ 属性名
属于标识符,符合命名规则和规范即可
✔ 修饰符只能在成员变量中使用,局部变量使用修饰符编译不通过
例子:
class Person{
public int age = 10;
private String name = "张三";
}
访问权限说明
访问修饰符 | 同一个类 | 同包 | 不同包,子类 | 不同包,非子类 |
---|---|---|---|---|
private | √ | |||
缺省(default) | √ | √ | ||
protected | √ | √ | √ | |
public | √ | √ | √ | √ |
成员变量与局部变量
☃ 在方法体外,类体内声明的变量称为成员变量☃ 在方法体内部声明的变量称为局部变量
☀ 注意:二者在初始化值方面的异同
◐ 同:都有生命周期
◑ 异:局部变量除形参外,均需显式初始化
class Person{
int age;
public static void main(String args[]){
double weight;
System.out.println(age); //输出0
//System.out.pritnln(weight); 编译不通过,必须赋初始值
}
}
成员变量(属性)和局部变量的区别
成员变量 | 局部变量 | |
---|---|---|
声明的位置 | 直接声明在类中(方法体外) | 方法形参或内部、代码块内、构造器内等 |
修饰符 | private、public、protected、static、final等 | 不能用权限修饰符修饰,可以用final修饰,其权限与声明它的方法对应 |
初始化值 | 有默认初始化值 | 没有默认初始化值,必须显式赋值,方可使用 |
内存加载位置 | 堆空间 或 静态域内 | 栈空间 |