前言
继续学习类与对象
类与对象的区别和联系
1)类是抽象的,概念的,代表一类事物,比如人类,猫类.., 即它是数据类型.
2) 对象是具体的,实际的,代表一个具体事物, 即 是实例.
3) 类是对象的模板,对象是类的一个个体,对应一个实例
成员方法/属性 中的细节
1)从叫法上来看,属性 = 成员变量
2)属性的定义类型可以为任意类型,包含基本类型和引用类型
3)属性是类的一个组成部分,一般为基本数据类型
4)属性如果不赋值,则默认值和数组一致
5)属性的定义方法与变量相同。如:访问修饰符 数据类型 属性名;
如何创建对象
创建对象有两种方法,一种是先声明在创建,一种是直接创建
1)先声明后创建
Catcat1; // 声明对象 cat1cat1=newCat(); // 创建对象 cat1
2)直接创建对象
Catcat1=newCat(); // 直接创建对象
一般我们都会使用第二种直接创建对象的方法创建对象,但并不能说第一种方法没用,有的情况下我们也需要使用第一种方法进行创建对象。
如何访问属性
访问属性的基本语法为:
对象名.属性名;
如: cat.name; cat.age;
类与对象的内存分配机制(重要)
看看下一段代码,思考结果是什么
publicclassObject02 { publicsttaicvoidmain(String[] args) { Personp1=newPerson(); p1.name="周小末"; p1.age=18; Personp2=p1; //p1 指向 p2System.out.println(p2.name+p2.age); } } classPerson { Stringname; intage; }
可以看出,把 p1 赋给 p2 (让p1指向p2)后,p1 和 p2 指向了同一个内存空间,所以输出p2中的name和age就是周小末 18。
这里就要和小伙伴们说一下Java内存的结构分析了😋
1)栈:一般存放基本数据类型,也就是局部变量
2)堆:堆主要存放对象(Cat cat1 ,数组等)
3)方法区:包含常量池(常量,如字符串等),类加载信息