有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

用类的名称声明对象的java

    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是不同的类,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       
    }

}

共 (2) 个答案

  1. # 1 楼答案

    卡是一门课,你说得对。这行代码返回一个卡片对象:

    deck.deal();
    

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

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

  2. # 2 楼答案

    Card似乎是由名为dealDeck类中的方法返回的。我们真的看不出你到底想要什么,但这是一个基本的解释

    如果您想了解更多关于面向对象编程工作原理的信息,这里有一个Brian Will的优秀教程:YouTube Video