Object 类

Object类

类与类之间的关系:

  1. 继承:从现实的关系考虑,当可以使用谁是谁的描述。 比如人是生物。
  2. 组合:从现实的关系考虑,当可以使用谁属于谁的描述。 比如显卡属于电脑
  3. 传参:传参的内聚性最高,耦合性最低。
public class Demo23 {
	public static void main(String[] args) {
		//实例:根据轮子的个数比较两辆车
		Car car1 = new Car(5);
		Car car2 = new Car(4);
		
		//boolean isTrue = car1.comWithWheels(car2);
		//System.out.println(isTrue);
				
		//学习equals
		
		//默认的比较规则是按照地址比较,我们通过重写它,可以按照自己的比较规则进行。
		//boolean isture1 = car1.equals(car2);
		//System.out.println(isture1);
		
		
		//学习 hashCode()方法---获取到的是对象的哈希值,可以理解成当前对象的身份证
		//System.out.println(car1.hashCode());//1887400018 --十进制的哈希值
		//System.out.println(car2.hashCode());
		
		//System.out.println(Integer.toHexString(car1.hashCode()));//707f7052  --十六进制的哈希值
		
		
		//toString() --默认得到的是包名+类名+@+哈希值
		//System.out.println(car1.toString());//com.qianfeng.test.Car@707f7052
		//System.out.println(car1);//com.qianfeng.test.Car@707f7052 说明默认调用的toString
		
		
		//了解:getClass():获取的是当前对象的字节码文件,相当于将 系统处理事务的过程面向对象,形成了class类
		//Class class1 = car1.getClass();
		//System.out.println(class1);//class com.qianfeng.test.Car  得到的就是字节码文件
		//自己拼出toString()
		//System.out.println(class1.getName()+"@"+Integer.toHexString(car1.hashCode()));
		
	}
	
}

class Car{
	int wheels;
	
	public Car(int wheels) {
		super();
		this.wheels = wheels;
	}

	//方法:根据轮子个数比较  
	public boolean comWithWheels(Car car) {
		
		return this.wheels>car.wheels;
		
	}

	//重写equals方法
	@Override
	public boolean equals(Object obj) {
		//自己制定比较的规则
		//1.先进行容错处理
		if (!(obj instanceof Car)) {
			System.out.println("类型错误");
			//退出程序
			System.exit(0);
		}
		//2.向下转型
		Car car = (Car)obj;
		
		return this.wheels>car.wheels;
		
	}

	@Override
	public String toString() {
		return "Car [wheels=" + wheels + "]";
	}
}

猜你喜欢

转载自blog.csdn.net/fang1025780636/article/details/81391929