Java ToString和输出问题
我的程序需要一些帮助 这是我的任务 我已经编写了代码,但是当我要打印代码时,它只打印Int。(注意,我的格式要好得多。) — 我不习惯这个网站) 这是我的类文件:Java ToString和输出问题,java,variables,int,tostring,Java,Variables,Int,Tostring,我的程序需要一些帮助 这是我的任务 我已经编写了代码,但是当我要打印代码时,它只打印Int。(注意,我的格式要好得多。) — 我不习惯这个网站) 这是我的类文件: public class Card { //instance variables public String rank; public String suit ; public int cardValue; //constructor public Card(String rank, String sui
public class Card
{
//instance variables
public String rank;
public String suit ;
public int cardValue;
//constructor
public Card(String rank, String suit, int cardValue)
{
this.rank = rank;
this.suit = suit;
this.cardValue = cardValue;
}
//accessors
//get methods
public String getrank()
{
return rank;
}
public String getsuit()
{
return suit;
}
public int getcardValue()
{
return cardValue;
}
//toString
public String toString()
{
String output =
"The" + rank + "of" + suit + "=" + cardValue + "\n";
return output;
}
}
这是我的跑步者文件:
import static java.lang.System.*;
public class CardRunner
{
public static void main( String args[] )
{
Card bob = new Card("ACE", "SPADES", 11);
System.out.println(bob.cardValue);
}
}
调用
System.out.println(bob.cardValue)时
,则只打印卡的cardValue
属性
您应该打印卡
实例,以便执行toString
方法:
System.out.println(bob);
试试这个
System.out.println(bob);
如果要从bob输出所有数据,应执行以下操作:
System.out.println(bob.toString());
如果使用System.out.println(bob.cardValue)代码>然后打印单个对象属性。
如果要打印完整对象属性,请传递完整对象,而不是传递单个属性
打印此文件:-“System.out.println(bob);
”
您还需要重写toString()
函数
//toString
public String toString()
{
String output =
"The" + rank + "of" + suit + "=" + cardValue + "\n";
return output;
}
正如其他人所写——当您编写System.out.println(bob.cardValue)时代码>它只打印一个参数
您需要调用重写的“toString()”(顺便说一句,每个对象都有它,每个类,java中的每个对象都是“object”类的子对象)
对于调用toString(),您不需要打印某个类的实例(bob.cardValue)的某些参数,而只需打印该实例(对象)的(bob)(bob是对象,“Card”类的实例:)
toString()的一些示例使用:
System.out.println(bob); //in fact, will be called toString() also
System.out.println(bob.toString());
//or if you just need save instance in your custom string format in some *String* variable
String bobInMyString = bob.toString();
String bobInMyStringUsingCasttoString = (String) bob; //should also call toString()
顺便说一句,它应该看起来像(编译器的注释):
如果您询问为什么要使用toString()重写,请查看例如on(复数),它对自定义类或将对象写入文件等非常有用。不是属性而是字段,它们是不正确的公共字段,这可能是类中的字段(当典型的类实现getter时)应该是私有的,然后编译器将给出第一个循环的错误。删除toString()中的“\n”,在外部循环中使用“\n”,为什么要对如此平庸的问题进行投票?我同意,当然不是“倒下”。祝贺autor首次尝试,不仅是“为我编写代码”,而且这对于“向上”来说太低了
@Override
public String toString()
{
String output =
"The" + rank + "of" + suit + "=" + cardValue + "\n";
return output;
}
}