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); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |