public class Person { String name ; int age ; public _________ toString( ) { return ( name+" "+age ); } }
时间: 2024-01-28 12:05:25 浏览: 61
答案是:覆盖(override)。完整代码如下:
public class Person {
String name;
int age;
@Override
public String toString() {
return (name + " " + age);
}
}
覆盖(override)是指在子类中定义与父类中同名、同参数列表和同返回值类型的方法,以实现对父类方法的重新定义和扩展。在这个例子中,我们覆盖了Object类中的toString()方法,以便输出Person对象的字符串表示形式。
相关问题
import java.util.Objects; public class Person { private String name; private int age; public Person() { } public Person(String name, int age) { this.name = name; this.age = age; } 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; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + '}'; } //hashCode和equals进行name的比较就好了 @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof Person)) return false; Person person = (Person) o; return person.name.equals(this.name); } @Override public int hashCode() { return Objects.hash(getName()); } }
这是一个 Java 类,名为 Person,有两个属性,分别为 name 和 age,以及它们各自的 getter 和 setter 方法。此外还有一个默认构造方法和一个带有两个参数的构造方法。
在该类中,还重写了 toString()、equals() 和 hashCode() 方法,其中 equals() 方法进行了 name 的比较,hashCode() 方法根据 name 生成了哈希值。这些方法的重写是为了方便在集合中使用该类的实例。
逐句解释:1. package shiyan3; public class Person { // 定义属性:年龄、姓名 private int age; private String name; // 构造函数 public Person(int age, String name) { this.age = age; this.name = name; } // 定义方法:读取年龄、读取姓名 public int getAge() { return age; } public String getName() { return name; } // 定义方法:设置年龄、设置姓名 public void setAge(int age) { this.age = age; } public void setName(String name) { this.name = name; } // 重写equals()方法,判断两个Person对象的年龄是否相等 @Override public boolean equals(Object obj) { if (obj == null || !(obj instanceof Person)) { return false; } Person p = (Person) obj; return p.age == this.age; } // 重写toString()方法,显示Person的基本信息 @Override public String toString() { return "Person{name=" + name + ", age=" + age + "}"; } public static void main(String[] args) { Person person1 = new Person(20, "Tom"); System.out.println(person1); person1.setAge(21); Person person2 = new Person(20, "Jerry"); // 判断person1和person2对象的年龄是否相等 System.out.println(person1.equals(person2)); }
这段代码定义了一个名为 Person 的类,位于 shiyan3 包中。该类具有两个属性:年龄(age)和姓名(name),它们的数据类型分别为 int 和 String。Person 类的构造函数接收两个参数,分别是 age 和 name,用于初始化对象的属性值。在类中定义了四个方法,分别为 getAge、getName、setAge 和 setName,分别用于读取和设置 age 和 name 属性的值。equals 方法被重写,用于判断两个 Person 对象的年龄是否相等。如果 obj 为 null 或者不是 Person 类型的对象,则返回 false;否则,将 obj 强制转换为 Person 对象,比较其 age 属性与当前对象的 age 是否相等,如果相等则返回 true,否则返回 false。toString 方法也被重写,用于返回 Person 对象的基本信息,包括 name 和 age。在 main 方法中,首先创建了一个 Person 对象 person1,使用 System.out.println 方法打印该对象的信息。然后使用 setAge 方法将 person1 的年龄修改为 21。接着创建了另一个 Person 对象 person2,其 age 属性值为 20。最后通过调用 equals 方法比较 person1 和 person2 的年龄是否相等,并使用 System.out.println 方法打印结果。
阅读全文