目录
一、程序运行截图
二、难点
1、解决错误输出
(1)在要求里,需要System.out.println(对象),很少有见到直接打印对象,如果任凭其输出,则会出现一堆看不懂的乱码,但实际上是该对象的地址,解决这个问题需要重写tostring方法
(2)tostring的返回值一定是string类型,在自己创建的类中,可以重写tostring方法,让它返回我们需要的值
2、tostring如何达到换行效果
(1)普通的string类型可以使用“+”进行连接,但似乎难以换行
(2)使用stringbuffer类,新建一个对象,例如
StringBuffer new_string = new StringBuffer();
(3)然后用appen方法往里面添加字符串,此时可以加\n换行字符,例如
new_string.append("Shape:");
new_string.append("\n");
(4)最后用“对象.tostirng()”变回普通字符串,或者用""+对象的方式,例如
new_string.toString();
""+new_string;
三、代码
import java.util.Scanner;
public class Table {
private String s;
private int leg;
private int hight;
private int ar;
public Table(String s,int leg,int hight,int ar){
this.s = s;
this.leg = leg;
this.hight = hight;
this.ar = ar;
}
@Override
public String toString() {
StringBuffer new_string = new StringBuffer();
new_string.append("Shape:");
new_string.append(s);
new_string.append("\n");
new_string.append("Legs:");
new_string.append(leg);
new_string.append("\n");
new_string.append("Hight");
new_string.append(hight);
new_string.append("\n");
new_string.append("Area:");
new_string.append(ar);
new_string.append("\n");
// return new_string.toString();
return ""+new_string;
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();
int leg=sc.nextInt();
int hight=sc.nextInt();
int ar=sc.nextInt();
Table ta=new Table(s,leg,hight,ar);
System.out.println(ta);
sc.close();
}
}