实验三--桌子类

本文探讨了Java编程中遇到的两个关键问题:如何解决对象输出时的乱码问题,以及如何在toString方法中实现换行。通过重写toString方法,学习者可以控制对象的输出格式,并使用StringBuffer实现多行字符串输出。
摘要由CSDN通过智能技术生成

目录

一、程序运行截图

二、难点

1、解决错误输出

2、tostring如何达到换行效果

三、代码


一、程序运行截图

二、难点

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();
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值