类与对象
概念
- 类是抽象的,概念的,代表一类事物,比如人类、猫类……,即它是数据类型。
- 对象是具体的,实际的,代表一个具体事物,即使实例。
- 类是对象的模板,对象是类的一个个体,对应一个实例
对象在内存中存在的形式
属性/成员变量
- 从概念或叫法上看:成员变量 = 属性 = field (即 成员变量是用来表示属性的)
- 属性是类的一个组成部分,一般是基本数据类型,也可以是引用类型(对象,数组)。比如前面定义猫类时的int age;就是属性。
注意事项和细节说明
属性的定义语法同变量,示例:访问修饰符 属性类型 属性名;
访问修饰符:控制属性的访问范围
有四种访问修饰符:
public,protected,默认,private
属性的定义类型可以为任意类型,包含基本类型或引用类型
属性如果不赋值,有默认值,规则和数组一致。
如何创建对象
先声明再创建
Cat cat;//声明对象cat
cat = new Cat();//创建
直接创建
Cat cat = new Cat();
如何访问属性
对象名.属性名
类和对象的内存分配机制(※)
Java内存结构:
栈:一般存放基本数据类型(局部变量)
堆:存放对象(Cat cat,数组等)
方法区:常量池(常量,例如字符串),类加载信息
示意图[Cat(name,age,price)]
创建对象的流程:
Person = new Person();
p.name = "Tom";
p.age = 10;
先加载Person类信息(属性和方法信息,只会加载一次)
在堆中分配空间,进行默认初始化
把地址赋给p,p就指向对象
进行指定初始化,比如:
p.name = "jack" p.age = 10
成员方法
在某些情况下,我们要需要定义成员方法(简称方法)。比如人类:除了有一些属性外( 年龄,姓名..),我们人类还有一
些行为比如:可以说话、跑步..,通过学习,还可以做算术题。这时就要用成员方法才能完成。现在要求对Person 类完善。