- 为什么需要类与对象
- 类与对象
- 对象在内存中存在形式
- 属性
- 如何创建对象
- 类与对象的内存分配机制
- Java内存结构
- Java创建对象的流程
public class Object01 {
public static void main(String[] args) {
//1.使用变量
String cat1Name = "小白";
String cat1Age = 3;
String cat1Color = "白色";
String cat2Name = "校花";
String cat2Age = 100;
String cat2Color = "小花";
//2.使用数组
String[] cat1 = {"小白", 3, "白色"};
String[] cat2 = {"小花", 100, "花色"};
}
}
- 存在问题
类与对象
- 如果将来有很多只猫,属性很多,还有行为
- 不利于数据管理,效率不高
- 使用数组类型不一致,不能见名知意。
- 所以需要类与对象
- 类:是抽象,所有的大学生。
- 对象: 是抽象的具体,大学生某某某。
- 万物皆对象,即现实世界中看到的所有东西都是对象。
- 类与对象关系图
- 使用类与对象解决上面的问题
- 1.数据的管理方便多了。
- 2.见名知意。
public class Object02 {
public static void main(String[] args) {
//new Cat() 表示创建一只猫
//Cat cat1 = new Cat()把创建的猫赋给cat1
Cat cat1 = new Cat();
cat1.name = "小白";
cat1.age = 3;
cat1.color = "白色";
Cat cat2 = new Cat();
cat2.name = "小花";
cat2.age = 10;
cat2.color = "花色";
System.out.println("cat1的信息:" + cat1.name + " " +
cat1.age + " " + cat1.color);
System.out.println("cat2的信息:" + cat2.name + " " +
cat2.age + " " + cat2.color);
}
}
class Cat {
String name;
int age;
String color;
}
对象在内存中存在形式
属性
- Cat cat = new Cat();
- 这个 cat 本质和C语言的指针一模一样,是内存空间的地址。
执行步骤:
1.将类的信息(属性,方法)加载到方法区
2.在堆中开辟空间
3.如果属性是基本数据类型,直接在堆中,引用数据类型在方法区的常量池
4.返回堆中地址给对象变量。
- 又叫 成员变量, 字段(field),比如人的姓名,年龄
- 属性既可以是基本数据类型,也可以是引用数据类型,如字符串,数组。
public class Object03 {
public static void main(String[] args) {
}
}
class Car {
String name;
double price;
String color;
String[] master;
}
- 属性细节
- 属性可以用访问修饰符修饰,控制属性的访问范围, 格式: 访问修饰符 数据类型 属性名
四种访问修饰符:public, protected, 默认(不写),private。- 属性不赋值,有默认值,和数组一样。
- Person p = new Person(),person是对象名,对象引用,对象变量,new Person()堆中的空间才是真正的对象,叫p对象是为了方便。
- 属性的访问方法
如何创建对象对象名.属性名
- 方式1
1.先声明
2.再创建
例:
Cat cat;
cat = new Cat();
- 方式2
类与对象的内存分配机制 Java内存结构 Java创建对象的流程直接创建
Cat cat = new Cat();
- 练习题



