Передача защищенного элемента массива 'card' из подкласса в подкласс - PullRequest
0 голосов
/ 13 сентября 2018

Я могу найти нужную карту в 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();
}

1 Ответ

0 голосов
/ 13 сентября 2018

В вашей функции 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:

Защищенный модификатор указывает, что член может быть доступен только в пределах его собственного пакета

Это означает, что ваш класс Hand может получить к нему доступ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...