Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ToString和输出问题_Java_Variables_Int_Tostring - Fatal编程技术网

Java ToString和输出问题

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

我的程序需要一些帮助

这是我的任务

我已经编写了代码,但是当我要打印代码时,它只打印Int。(注意,我的格式要好得多。) — 我不习惯这个网站)

这是我的类文件:

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