将受保护的“card”数组元素从子类传递到子类

问题描述 投票:1回答:1

我能够在passCard()中找到我想要的卡片,但是我很难将卡片移到手中。

   public class CardContainer
{
    protected Card[] cards;

这是我试图将卡片传到手中的地方。我能够找到卡但在那之后被卡住了。

public boolean passCard(CardContainer cc, Card c)
{
    for(int i = 0; i < cards.length; i++)
        {
            if(cards[i].equals(c)) 
            {       

                //this is where im trying to make magic happen


                return true;
            }
        }
    return false;
}
}

public class Hand extends CardContainer {

    private String playerName;

    public Hand(String name, int numCards)
    {
        playerName = name;
        cards = new Card[numCards];

        // manually entered a card to test if it works
        cards[1] = new Card(1,'s');
    }
}



public class TestDemo {

    public static void main(String[] args) {

    Hand h = new Hand("name", 10);
    System.out.println(deck.passCard(h, new Card(2,'s')));

    // prints manually entered card in hand class
    h.printCards();
}
java oop
1个回答
1
投票

在你的passCard函数中,你可以简单地初始化Cards中的一个元素(这假设你想在位置i初始化它):

public boolean passCard(CardContainer cc, Card c)
{
    for(int i = 0; i < cards.length; i++)
    {
        if(cards[i].equals(c)) 
        {       
            h.cards[i] = this.cards[i];
            return true;
        }
    }
    return false;
}

由于cards只是protected

protected修饰符指定只能在其自己的包中访问该成员

这意味着你的Hand类可以访问它。

© www.soinside.com 2019 - 2024. All rights reserved.