目录
一、现有技术解决问题
- 单独的定义变量解决
缺点:不利于数据的管理
- 使用数组解决
缺点:1.数据类型体现不出来
2.只能通过[下标]获取信息,造成变量名字和内容的对应关系不明确
3.不能体现猫的行为
二、类与对象的关系示意图
三、类和对象的关系与区别
- 类是抽象的,代表一类事物,比如:人类,猫类.....,即它是数据类型
- 对象是具体的,实际的,代表一个具体事物,即是实例
- 类是对象的模板,对象和类的一个个体,对应一个实例
四、对象在内存中的存在形式
五、属性/成员变量/字段
- 基本概念
1.从概念上或叫法上看:成员变量=属性=field(字段)(即成员变量是用来表示属性的)
2.属性是类的一个组成部分,一般是基本数据类型,也可是印用类型(对象,数组)。
- 注意事项和使用细节
1.属性的定义语法同变量,但多了一个访问修饰符(这里暂不需了解),
示例:访问修饰符 属性类型 属性名;
简单介绍访问修饰符:控制属性的访问范围,有四种:public,proctected,默认,private
2.属性的定义类型可以为任意类型,包含基本类型或引用类型
3.属性如果不赋值,有默认值,规则和数组一样。具体说明: int 0,short 0, byte 0,
long 0,float 0.0,double 0.0,char \u0000, boolean false,String null
六、如何创建对象
1.直接创建 Cat cat1 = new Cat();
2.先声明再创建 Cat cat1;//声明对象cat1 cat = new Cat();//创建
七、如何访问属性
- 基本语法: 对象名.属性名; 示例:cat1.name;
- Java内存的结构分析
1.栈:一般存放基本数据类型(局部变量)
2.堆:存放对象(Cat cat1,数组等)
3.方法区:常量池(常量,比如字符串),类等加载信息
- Java创建对象的流程简单分析
1. 先加载 Person 类信息(属性和方法信息, 只会加载一次)
2.在堆中分配空间, 进行默认初始化(细节里第三条规则)
3.把地址赋给 p , p 就指向对象
4. 进行指定初始化, 比如 p.name =”jack” (把默认值改成jack) p.age =10(默认值改成10)