鱼C论坛

 找回密码
 立即注册
查看: 4667|回复: 6

[已解决]调用构造方法时输出了地址值,我要的是输出特定的值

[复制链接]
发表于 2020-11-2 12:23:53 | 显示全部楼层 |阅读模式
2鱼币
拜托
问题:编写一个学生和教师数据输入和显示程序,学生和教师数据输入和显示,学生数据有编号、姓名、班级和成绩,
教师数据有编号、姓名、职称和部门。要求编号、姓名输入和显示设计成一个Person类,并作为学生数据操作类Student和教师数据操作类Teacher的父类。

具体疑惑:控制台为什么会输出这个,要怎么解决?

控制台输出:     Text04.Student@677327b6
                        Text04.Teacher@14ae5a5

代码如下:
package Text04;

public class Program04 {
    public static void main(String[] args) {
        Student student = new Student(0124,"张三","物联一班",93);
        System.out.println(student);
        Teacher teacher = new Teacher(0021,"李四","特级教师","信息工程部");
        System.out.println(teacher);
    }
}


//创建一个person类
package Text04;

public class Person {
    private int number;
    private String name;

    public Person(int number, String name) {
        this.number = number;
        this.name = name;

    }

    public int getNumber() {
        return number;
    }

    public void setNumber(int number) {
        this.number = number;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

//创建一个Student类
package Text04;

public class Student extends Person{
    private String clbum;
    private int grade;

    public Student(int number, String name, String clbum, int grade) {
        super(number, name);
        this.clbum = clbum;
        this.grade = grade;
    }

    public String getClbum() {
        return clbum;
    }

    public void setClbum(String clbum) {
        this.clbum = clbum;
    }

    public int getGrade() {
        return grade;
    }

    public void setGrade(int grade) {
        this.grade = grade;
    }
}

//创建一个Teacher类
package Text04;

public class Teacher extends Person {

    private String rank;
    private String section;

    public Teacher(int number, String name, String rank, String section) {
        super(number, name);
        this.rank = rank;
        this.section = section;
    }
}
最佳答案
2020-11-2 12:23:54
本帖最后由 wuliangtdi 于 2020-11-2 15:54 编辑

重写toString方法就行了,没有重写toString方法就是打印地址值

最佳答案

查看完整内容

重写toString方法就行了,没有重写toString方法就是打印地址值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-2 12:23:54 | 显示全部楼层    本楼为最佳答案   
本帖最后由 wuliangtdi 于 2020-11-2 15:54 编辑

重写toString方法就行了,没有重写toString方法就是打印地址值
QQ图片20201102155329.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-2 15:58:06 | 显示全部楼层
wuliangtdi 发表于 2020-11-2 15:43
重写toString方法就行了,没有重写toString方法就是打印地址值

哼~花里胡哨



小忍❤
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-2 17:57:59 | 显示全部楼层

就这?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-11-2 18:51:58 | 显示全部楼层
wuliangtdi 发表于 2020-11-2 15:43
重写toString方法就行了,没有重写toString方法就是打印地址值

你好,打扰了,我还是有点问题
这个toString重写,   他提示是这样写的: public String toString() {
        return "Person{" +
                "number=" + number +
                ", name='" + name + '\'' +
                '}';
    }
只能输出这样,要怎么改,还是这部分是哪的内容?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-2 19:14:41 From FishC Mobile | 显示全部楼层
hhhhc 发表于 2020-11-2 18:51
你好,打扰了,我还是有点问题
这个toString重写,   他提示是这样写的: public String toStri ...

你这是重写了父类的toString()方法  子类的也要重写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-11-2 20:36:35 | 显示全部楼层
wuliangtdi 发表于 2020-11-2 19:14
你这是重写了父类的toString()方法  子类的也要重写

很nice
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-25 11:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表