package com.heima.test;
public class Test11 {
public static void main(String[] args) {
// demo01(); //hascode hashcode地址值
// demo02(); //Class 获得字节码文件
// demo03(); //重写父类的tostring方法
// demo04(); //重写父类的equls方法
}
public static void demo04() {
/*
1.这是父类的equls方法
2.==比较的是地址值
3.一般子类重写父类的equls方法,来比较属性值
4.基本数据类型==比较的是值,引用数据类型比较的是地址值
public boolean equals(Object obj) {
return (this == obj);
}
*/
Studenttest stu1=new Studenttest("张三",33);
Studenttest stu2=new Studenttest("张三",33);
boolean b=stu1.equals(stu2);
System.out.println(b);
}
public static void demo03() {
/*
1.这是object的toString方法,方法中省略了【this.】
2.直接打印对象的引用,默认调用toString方法
3.子类默认都继承顶级父类,故:在new子类对象时,省略的【this.】默认指向子类对象
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
*/
Studenttest stu=new Studenttest("张岩",88);
String str=stu.toString();
System.out.println(str);
}
public static void demo02() {
Studenttest s02=new Studenttest();
Class clazz=s02.getClass();
String name=clazz.getName();
System.out.println(name);
}
public static void demo01() {
Object ob=new Object();
int i=ob.hashCode();
System.out.println(i);
}
}
class Studenttest{
//成员属性
private String name;
private int age;
//构造方法
public Studenttest(){
}
public Studenttest(String name,int age){
this.name=name;
this.age=age;
}
//get方法
public String getName() {
return name;
}
public int getAge() {
return age;
}
//set方法
public void setAge(int age) {
this.age = age;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "我的名字是"+name+","+"我的年龄是"+age;
}
@Override
public boolean equals(Object obj) {
Studenttest stu=(Studenttest)obj;
return (name==stu.name)&&(age==stu.age);
}
}
网友评论