加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 构造函数未按预期打印

发布时间:2020-12-15 05:01:46 所属栏目:Java 来源:网络整理
导读:public class Fraction{ public Franction(int n,int d) { int num = n; int denom = d; } public static void main(String[] args) { Fraction f1 = new Fraction(5,10); System.out.println("Fraction = " + f1); }} 您好,我正在尝试学习Java …我正在编写
public class Fraction
{
    public Franction(int n,int d)
    {
        int num = n;
        int denom = d;
    }

    public static void main(String[] args)
    {
        Fraction f1 = new Fraction(5,10);
        System.out.println("Fraction = " + f1);
    }
}

您好,我正在尝试学习Java …我正在编写的这本书表明上面代码的输出应该打印“Fraction = 5/10”,但是当我尝试它时我只收到“Fraction = Fraction” @ 33469a69“我假设是打印它存储的位置的引用?我理解如何使用构造函数我只是没有收到预期的输出.任何帮助将不胜感激…谢谢!

解决方法

要获得所需的输出,需要在Franction类中重载toString()方法.此方法用于确定对象的文本表示.默认情况下,它是ClassName @ hashCode.

此外,您可能希望将在构造函数中收到的值存储为字段.现在,您将分子和分母存储在构造函数的局部变量中,一旦构造函数退出就会被销毁.

尝试这样的事情:

public class Fraction
{
    private final int num
    private final int denom;

    public Franction(int n,int d)
    {
        this.num = n;
        this.denom = d;
    }

    @Override
    String toString() 
    {
        return String.format("%d/%d",num,denom);
    }

    public static void main(String[] args)
    {
        Fraction f1 = new Fraction(5,10);
        System.out.println("Fraction = " + f1);
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读