面向对象
理论题
什么是类?
类是一组具有相同属性、操作和关系的同类事物描述,是抽象的,概念上的定义。
什么是对象?
是实际存在的该类事物的个体,也称为实例。
类和对象的区别是什么?
类是集合、是抽象的、是制造对象的模板、是数据结构和行为的定义。
对象是个体、是具体、是类的实例、是数据。
如何定义一个类、类的属性和方法?
定义类属性,对象共同的特征,共同的行为是方法。
public class 类名{} 定义一个类
如何创建类的对象?
类名 对象名 = new 类名()
构造方法有什么作用?
构造方法作用就是对类进行初始化。 如果你没有定议任何构造方法的形式,程式会为你取一个不带任何参数的构造函数,那么你产生类的对像时只能用不带参数的方法。
通过构造方法实例化对象的时候有什么特点?
如果不添加带参数的构造方法,那么默认只能使用无参数的构造方法,如果加了带参数的构造方法,而没有添加无参数的构造方法,则只能使用带参数的构造方法,如添加的无参数构造方法,又添加了带参数构造方法,则带参数构造方法会覆盖无参数构造方法。
能否使用==进行两个对象的比较?
不能,== 是回进行地址空间的比较的。对象的地址空间都是不同的。
== 和 equals的区别?【重点】
equals和== 最大的区别是一个是方法一个是运算符,二者比较的都是物理地址,equals方法如果在类中没有定义则默认使用OBJ的equals方法。也是比较物理地址。
所以如果要实现我们的目的,equals方法都是由开发者来重写。
toString方法重写
toString 如在类中没有定义,默认使用祖类(obj)的方法。输出地址空间,所以需要重写toString方法,以输出我们想要的结果