请使用面向对象的思想,设计自定义类Person继承Object类,重写toString()方法实现对象信息输出。要求:创建带参(name,age,sex为参数)构造方法。重写toString()方法,输出信息格式为姓名:xx年龄:xx性别:xx(其中,xx为对象对应属性值)
时间: 2024-11-03 20:20:59 浏览: 37
在面向对象编程中,我们可以设计一个名为`Person`的自定义类,它会继承自`Object`类,并添加必要的属性如`name`、`age`和`sex`。同时,我们会在类中创建一个带参构造函数用于初始化对象,以及重写`toString()`方法以方便输出个人信息。
```java
public class Person extends Object {
private String name;
private int age;
private String sex;
// 构造方法,接受三个参数:name, age, sex
public Person(String name, int age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
// 重写toString()方法,返回包含姓名、年龄和性别的字符串
@Override
public String toString() {
return "姓名: " + name + " 年龄: " + age + " 性别: " + sex;
}
//
相关问题
定义一个Person类,具有如下的成员 人类( 私有属性 (姓名); 私有属性(年龄); 带两个参数的构造方法) 重写Object类的toString方法,输出当前对象的姓名及年龄信息; 重写Object类的eouals方法,判当前对象与Object对象obj是否同龄;;
在Java中,我们可以按照以下步骤定义一个名为`Person`的类,满足您的需求:
```java
public class Person extends Object {
// 私有属性
private String name;
private int age;
// 构造方法,接受姓名和年龄作为参数
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// 重写Object的toString()方法
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
// 重写equals()方法,比较当前对象的年龄是否与另一个对象的年龄相等
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
Person person = (Person) obj;
return age == person.age;
}
// 为了使equals()正常工作,还需要覆盖hashCode()方法,虽然这不是必需的,但推荐这样做
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
```
在这个例子中,我们创建了一个`Person`类,它从`Object`类继承,并添加了姓名和年龄作为私有字段。构造函数接收这两个参数并设置它们。`toString()`方法返回包含姓名和年龄的字符串描述,`equals()`方法则用来比较两个`Person`对象的年龄是否相同。由于`equals()`方法是重写的,所以在比较其他`Object`对象时,也需要强制转换为`Person`类型来进行年龄比较。
定义一个Person类,有年龄,姓名等属性,方法有读取年龄、读取姓名,设置年龄、设置姓名,并重写Object类中equals()方法,实现判断两个Person对象的年龄是否相等;重写Object类中toString()方法,显示Person的基本信息。
下面是一个Java代码示例:
```java
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;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Person other = (Person) obj;
if (this.age != other.age) {
return false;
}
return true;
}
@Override
public String toString() {
return "Person{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}
}
```
在上面的示例中,我们定义了一个名为`Person`的类,它有两个私有属性`age`和`name`,分别表示年龄和姓名。我们还定义了一个构造函数,用于初始化这两个属性值。然后,我们为这两个属性定义了读取和设置方法,以允许其他类访问它们。
接下来,我们重写了`equals()`和`toString()`方法。`equals()`方法用于比较两个`Person`对象的年龄是否相等,而`toString()`方法则用于返回`Person`对象的基本信息,以方便输出。
请注意,在`equals()`方法中,我们使用了Java中的`getClass()`方法来比较两个对象的类是否相同。这是因为在Java中,所有对象都继承自`Object`类,因此我们需要确保比较的是同一种类型的对象。
阅读全文