【1】对象和类的概念:
对象:现实世界中真实存在的,看的见摸得着。【万物皆对象】
类:具有【相同特征】和【相同的行为】的事物集合。【物以类聚,人以群分】
【2】类和对象的区别:
类:集合、数据结构的定义、模板
对象:个体、对象
【3】为什么要有类:
可以简单方便的根据模板来得到需要的对象。
【4】设计类及如何从类得到对象:
实例化,由类得到类的实例
设计类实质是描述某一类对象的共同特征和共同行为。
【5】为什么要用构造方法:
简化成员变量的赋值操作
如果没有构造方法,默认会有无参构造方法,一旦有了有参构造方法,系统不会默认添加无参构造方法
建议:开发中,一旦添加构造方法,则必须添加无参构造方法
【6】this关键字的作用:
this关键字可以省略掉
指代当前对象,绑定的是当前对象。
this();//表示调用本类无参构造方法
this(有参);//表示调用本类有参构造方
【7】==和equals的区别:
==:比较基本数据类型的值是否相等、对象在内存中的地址是否一致
equals:比较两个对象的内容是否相同
如果当前类没有重写equals方法,则会默认调用父类中的equals方法,
如果没有父类,则会默认调用Object中的equals方法
Object中的equals方法实质也是用==比较两个对象在内存中的地址是否一致
So,在实际开发中则根据实际需要重写equals方法
如果用equals比较两个两个对象返回值为true,则他们的hashCode码一致
so,在重写equals方法时最好也重写hashCode码
【8】类的初始化过程:
1、加载.class文件进内存
2、在栈内存中为其开辟空间
3、在堆内存中为其对象开辟空间
4、对对象的成员变量进行默认初始化
5、对对象的成员变量进行显示初始化
6、通过构造方法对其对象的成员变量进行赋值
7、初始化完毕,把对象的内存地址赋值给2中的变量