5 类与对象
6.1 类与对象
// 类的定义
public class ClassName{
memberVariable;
memberMethod;
};
// 创建对象
ClassName objectName = new ClassName();类名首字母建议大写,需要见名知义,驼峰模式。
一个java文件中可以定义多个class类,且只能一个类是public修饰,而且public修饰的类名必须成为代码文件名。实际开发中,建议一个文件定义一个类。
成员变量完整定义格式:修饰符 数据类型 变量名 = 初始化值; (一般无需指定初始化值,存在默认值)。
成员变量默认值规则:
| 数据类型 | 明细 | 默认值 |
|---|---|---|
| 基本类型 | byte/short/int/long | 0 |
| 基本类型 | float/double | 0.0 |
| 基本类型 | boolean | false |
| 引用类型 | 类、接口、数组、String | null |
6.2 封装
封装:告诉我们如何正确地设计对象的属性和方法。对象代表什么,就得封装对应的数据,并提供对应的行为。
private关键字:private是一个修饰符,可以用来修饰成员(成员变量,成员方法)。
被private修饰的成员,只能在本类进行访问,针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作。
提供“getValue()”方法,用于获取成员变量的值,方法用public修饰。
提供“setValue(参数)”方法,用于设置成员变量的值,方法用public修饰。
this关键字:this修饰的变量用于指代成员变量,其主要作用是区分重名的局部变量和成员变量(本质是代表所在方法调用者的地址)。
方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量。
方法的形参没有与成员变量同名,不带this修饰的变量指的是成员变量。
6.3 构造方法
作用:创建对象的时候,虚拟机会自动调用构造方法,作用是给成员变量进行初始化。
格式
// 构造方法格式
public ClassName(paraList){
ConstructBody;
}特点
方法名与类名相同,大小写一致;
没有返回值类型,void也没有;
没有返回值。
注意事项
创建:如果没有定义构造方法,系统将给出一个默认的无参数构造方法 如果定义了构造方法,系统将不再提供默认的构造方法。
重载:如果自定义了带参构造方法,还要使用无参数构造方法,就必须再写一个无参数构造方法。
推荐的使用方式:无论是否使用,都手工书写无参数构造方法。
6.4 标准JavaBean
类名需要见名知意
成员变量使用private修饰
提供至少两个构造方法
无参构造方法
带全部参数的构造方法
get和set方法:提供每一个成员变量对应的setter和getter
如果还有其他行为,也需要写上
6.5 内存图
java内存分配
栈:方法运行时使用的内存,比如main方法运行,进入方法栈中执行。
堆:存储对象或数组,用new来创建,都存储在堆内存。
方法区:存储可以运行的class文件。
本地方法栈:JVM在使用操作系统功能时使用,与开发无关。
寄存器:给CPU使用,与开发无关。

提示
当多个对象指向同一片空间时,其中一个对象对空间中值的进行修改,其他对象访问该空间时就是修改后的值了。