Object_4.java
package JAVA;
public class Object_4 {
private String name;
private int age;
//设置内部类为外部类传递参数参数
public Object_4(){
//TODO Auto-generated constructor stub
//添加TODO方法
}
public Object_4(String name, int age){
}
//添加Getter和Setter方法。
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//重构toString方法
@Override
public String toString() {
return "姓名:"+this.name+",年龄:"+this.age;
}
//重写equals方法
@Override
public boolean equals(Object obj) {
//判断内存地址
if (obj == this) {
return true;
}
if (obj == null) {
return false;
}
//判断是否是同一类型的对象
if (obj instanceof Object_4) {
//强制转换成Person类型
Object_4 s = (Object_4) obj;
//判断他们的属性值 注:这里的age为什么要用==?可以在评论区回答
if (this.name.equals(s.name) && this.age == (s.age)) {
return true;
}
}
return false;
}
}
Test.java
package JAVA;
public class Test04 {
public static void main(String[] args) {
Object_4 s1=new Object_4("ZYH",20);
Object_4 s2=new Object_4("SG",20);
//getClass()方法是获得调用该方法的类
Class class1=s1.getClass();
Class class2=s2.getClass();
if(class1==class2){ //class方法的返回值是一个类型
System.out.println("s1和s2是同一个类型");
}else{
System.out.println("s1和s2不是同一个类型");
}
System.out.println("=======================");
//hashCode()方法: 对象的地址字符串或数字使用hash算法计算出来的int类型的数值
System.out.println(s1.hashCode());
System.out.println(s2.hashCode());
System.out.println("=======================");
//toString方法: 返回类名和他的引用地址
System.out.println(s1.toString());
System.out.println(s2.toString());
System.out.println("=======================");
//equals方法判断两个对象是否相等true/false
System.out.println(s1.equals(s2));
Object_4 s3=new Object_4("小敏",20);
Object_4 s4=new Object_4("小敏",20);
System.out.println(s3.equals(s4));
}
}
运行Tes.java的时候出现如下报错:
跟着教程来写的,一模一样,但是我的始终不行。
望帮忙解决,谢谢!!