Object类 eaquals方法 super方法

object类

  • 一个类不写extends,则默认直接父类是object
  • 写了extends则object是间接父类

小知识

  • 类名按住ctl+左键跳转至类的定义
  • ctl+t可以查看类的继承关系
  • ctl+o可以快速outline查看类里面所有的方法和属性

关于eclipse中空格补全的问题

新版eclipse已经修复了,解决办法参考一下这个eclipse中空格补全代码问题的解决方法

equals方法

eclipse中快速重写equals()和hashcode()的方法

1. eclipse,在自定类中,选择左上方source->Generate hashcode() and equals()
2. alt+shift+s

“==”和equals的区别

  1. “==”代表比较双方是否相同。如果是基本类型则表示值相等,如果是引用类型则表
    示地址相等即是同一个对象。
  2. Object 类中定义有:public boolean equals(Object obj)方法,提供定义“对象内容
    相等”的逻辑。比如,我们在公安系统中认为 id 相同的人就是同一个人、学籍系统中认为学号相同的人就是同一个人
package com.ssc.inherit;

import java.util.Objects;

public class User {
	int age;
	String name;
	String pwd;
	
	public User(int age,String name,String pwd) {
		// TODO Auto-generated constructor stub
		this.age =age;
		this.name =name;
		this.pwd =pwd;
	}
	@Override
	public int hashCode() {
		return Objects.hash(age);
	}
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		User other = (User) obj;
		return age == other.age;
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		User uUser1 = new User(1001,"颤三","123456");
		User uUser2 = new User(1001,"里斯","123456");
		System.out.println(uUser1);
		System.out.println(uUser2.toString());
		System.out.println(uUser1 == uUser2);
		System.out.println(uUser1.equals(uUser2)); //判断两个对象逻辑是不是一样的
	}

}
/*输出结果:
com.ssc.inherit.User@408
com.ssc.inherit.User@408
false
true
*/

super()

super的作用

  • super“可以看做”是直接父类对象的引用。可以通过 super 来访问父类中被子类覆盖的方法或属性。
  • 使用 super 调用普通方法,语句没有位置限制,可以在子类中随便调用。

super使用

属性和方法的调用顺序

  1. 在这里插入图片描述

构造方法的调用顺序

在这里插入图片描述

package com.ssc.inherit;

public class SuperTest2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("开始创建一个对象。。。。");
		new ChildClass2();

	}

}
class FatherClass2{

	public FatherClass2() {
		// TODO Auto-generated constructor stub
		System.out.println("父类对象");
	}
}
class ChildClass2 extends FatherClass2{
	public ChildClass2() {

		//默认的会在子类的构造方法的第一行加super()或者是this(),编译器自动会帮你加
		System.out.println("子类对象");
	}
}
输出结果:

开始创建一个对象。。。。
父类对象
子类对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值