【问题标题】:Declaring a Object with the name of the class用类的名称声明一个对象
【发布时间】:2017-06-14 01:45:41
【问题描述】:
    int sum = 0;
    for (int i = 0; i < 5; i++) {
        Card c = deck.deal();
        System.out.println("Got card " + c.getName());
        sum += c.getValue();
    }

我不明白Card c = deck.deal(); 这行。 Card是不同的类,deck是main()中的一个对象,deal()是不同的类。

import java.util.Random;

public class Deck {

    int Cnumb;
    int Cname;
    String cardName[] = new String[5];
    int cardNum[] = new int[14];


    public void init(){
        cardName[0] = "";
        cardName[1] = "Heart's";
        cardName[2] = "Diamond's";
        cardName[3] = "Spade's";
        cardName[4] = "Club's";

        cardNum[0] = 0;
        cardNum[1] = 1;
        cardNum[2] =2;
        cardNum[3] =3;
        cardNum[4] =4;
        cardNum[5] =5;  
        cardNum[6] =6;
        cardNum[7] =7;
        cardNum[8] =8;
        cardNum[9] =9;
        cardNum[10] =10;
        cardNum[11] =11;
        cardNum[12] =12;
        cardNum[13] =13;

    }

    public void shuffle(){

        Random rnd = new Random();


        // Random Card
        Cnumb = rnd.nextInt(Integer.MAX_VALUE) % 13;
        Cnumb = Cnumb + 1;

        Cname = rnd.nextInt(Integer.MAX_VALUE) % 4;
        Cname = Cname + 1;

    }

      public Card deal(){
        String Suit =  cardName[Cname];
        int Rank = cardNum[Cnumb];
        //return ; // here is the problem       
    }

}

【问题讨论】:

  • 您要求我们猜测我们看不到的代码在做什么。大概您可以使用其余的代码。阅读它,看看它在做什么。
  • 所以有错误?你真的应该在问题中这么说。

标签: java arrays arraylist


【解决方案1】:

看来Card 类是由Deck 类中称为deal 的方法返回的。我们无法准确了解您的要求,但这是对所发生情况的基本解释。

如果您想了解有关面向对象编程工作原理的更多信息,请参阅 Brian Will 的精彩教程:YouTube Video

【讨论】:

  • 也许这有助于我对返回类型感到困惑,因为它一直显示错误..
  • 哦,老是报错?那是什么错误,它应该让你知道返回类型是什么。
  • 说字符串不能转成卡片
  • 啊,那只是deck.deal()的返回类型是String,而不是Card。检查Deck 类中的deal 方法,看看它在哪里返回这个值。然后,您应该将其更改为返回 Cards 数组,而不是 Strings
【解决方案2】:

卡是一个类,你是对的。这行代码返回一个卡片对象:

deck.deal();

Deck 是另一个包含所有卡片的类,它包含一个名为 deal 的方法,该方法返回一张卡片。

编辑:您有两个问题,您的方法 deal() 被编写为返回 Card object,但您已将 Card 声明为 stringsarray。这会导致错误。

【讨论】:

  • 是的,先生,但我在甲板类中的返回类型有问题..
猜你喜欢
  • 2016-12-25
  • 1970-01-01
  • 1970-01-01
  • 2018-05-28
  • 2017-05-05
  • 2015-11-11
  • 2013-10-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多