创建Address、Rectangle、Length和Check类,在从Object类继承toString方法的基础上实现新的toString方法,然后为这些类创建一个Object数组,并依次显示转换出来的字符串。
时间: 2024-11-09 13:27:27 浏览: 23
首先,让我们创建四个类,分别是`Address`, `Rectangle`, `Length` 和 `Check`,并分别实现自定义的`toString()`方法。由于Java中的类不能直接继承`Object`类的`toString()`,但我们可以重写`Object`类的`equals()`和`hashCode()`方法,间接地使用`toString()`,因为`toString()`默认就是根据这些方法进行调用的。
```java
// Address 类
class Address {
private String street;
private String city;
// toString 方法,提供自定义信息
@Override
public String toString() {
return "Address{" +
"street='" + street + '\'' +
", city='" + city + '\'' +
'}';
}
// ...其他构造器和getter/setter省略
}
// Rectangle 类
class Rectangle {
private double width;
private double height;
// toString 方法,提供自定义信息
@Override
public String toString() {
return "Rectangle{" +
"width=" + width +
", height=" + height +
'}';
}
// ...其他构造器和getter/setter省略
}
// Length 类
class Length {
private double value;
// toString 方法,提供自定义信息
@Override
public String toString() {
return "Length{" +
"value=" + value +
'}';
}
// ...其他构造器和getter/setter省略
}
// Check 类(这里假设它有一个检查地址的方法)
class Check {
private Address address;
// 构造器等
// ...
// 自定义toString 方法
@Override
public String toString() {
return "Check{" +
"address=" + address.toString() +
'}';
}
}
public class Main {
public static void main(String[] args) {
Address a = new Address("123 Main St", "Anytown");
Rectangle r = new Rectangle(5, 7);
Length l = new Length(10.5);
Check c = new Check(a);
Object[] objects = {a, r, l, c};
for (Object obj : objects) {
System.out.println(obj.toString());
}
}
}
```
在这个例子中,我们为每个类都实现了自己的`toString()`方法,提供了一些具体属性的值。在`main`方法中,我们创建了一个`Object`类型的数组,包含了这些类的对象实例,并遍历数组,打印它们各自的`toString()`结果。
运行这段程序后,你会看到类似以下的输出:
```
Address{street='123 Main St', city='Anytown'}
Rectangle{width=5.0, height=7.0}
Length{value=10.5}
Check{address=Address{street='123 Main St', city='Anytown'}}
```
阅读全文