在java编译器默认比较的是各自的内存地址,现实中,是比较两对象的属性值是否相等。那么就必须在父类或子类中重写equals方法
2016-10-23
注意:用equals方法比较两对象的属性值是否相等时,只需要在父类或主类中重写一个equals方法,在哪个类中重写方法取决于哪个类
中声明了属性,因为比较的对象所属的类,没有属性时无法进行比较。也就是说子类中没有属性的声明,那么必须在父类中进行重写,
因为子类继承了父类的属性信息,这种情况下是相等的。如果子类与父类都声明了属性,也就是子类对所继承的属性信息进行了更改
那么可以在父类中,也可以在子类中重写equals方法
中声明了属性,因为比较的对象所属的类,没有属性时无法进行比较。也就是说子类中没有属性的声明,那么必须在父类中进行重写,
因为子类继承了父类的属性信息,这种情况下是相等的。如果子类与父类都声明了属性,也就是子类对所继承的属性信息进行了更改
那么可以在父类中,也可以在子类中重写equals方法
2016-10-23
总结:1.toString()方法,在java中,创建对象后(实例化对象),jvm会开辟新的堆内存空间,并赋予新的内存地址。
若直接输出对象,在java编译器默认是打印对象的内存地址。因为jvm会自动调用默认的 toString方法,那么若想获得对象的属性信息,
必须重写toString方法,在子类与父类的内部重写相应的toString方法(注意方法之间是平级的,并列结构),在主类的main中,进行对象的属性赋值,打印操作操作即可。
2. equals方法,在控制台实现调用,在面向对象程序设计中,两引用数据类型的对象(有内存地址,也有对象的属性信息)的直接比较,
若直接输出对象,在java编译器默认是打印对象的内存地址。因为jvm会自动调用默认的 toString方法,那么若想获得对象的属性信息,
必须重写toString方法,在子类与父类的内部重写相应的toString方法(注意方法之间是平级的,并列结构),在主类的main中,进行对象的属性赋值,打印操作操作即可。
2. equals方法,在控制台实现调用,在面向对象程序设计中,两引用数据类型的对象(有内存地址,也有对象的属性信息)的直接比较,
2016-10-23