[RESOLVIDO] Erro ao exibir array

1 resposta Resolvido
H

Boa tarde.

Eu criei uma classe chamada Cards.

class Cards {

private String naipe, valor;

private boolean estado = false;
public Cards(int naipe, int valor){

switch (naipe){

case 0:

this.naipe = “Ouros”;

break;

case 1:

this.naipe = “Espadas”;

break;

case 2:

this.naipe = “Copas”;

break;

case 3:

this.naipe = “Paus”;

break;

default:

System.out.println(Você deve ter ingerido tóxicos!”);
}
switch (valor){
  case 1:
  this.valor = "Às";
  break;
  case 11:
  this.valor = "Valete";
  break;
  case 12:
  this.valor = "Dama";
  break;
  case 13:
  this.valor = "Reis";
  break;
  default:
  this.valor = Integer.toString(valor);
}
}

public String showCard(){

String str = this.valor + " " + this.naipe;

return str;

}

}

Se eu instanciar um objeto (myCard) da classe Cards no main eu consigo usar System.out.println(myCard.ShowCard());

Aparece na tela o valor e o naipe da carta. Até aí normal.


Depois eu criei uma classe chamada Deck. Essa classe serve para criar 52 cartas únicas, 13 de cada naipe.

class Deck {

int id = 0;

Cards[] deck = new Cards[52];

public Deck(){
  
  for (int i=0; i<4; i++){
    for (int j=1; j<14; j++){
      Cards card = new Cards(i,j);
      deck[id] = card;
      id++;
    }
  }
}

}

Agora estou querendo testar o programa até essa parte. Para isso preciso exibir uma carta na tela.

Estou tentando fazer:

Deck myDeck = new Deck();
System.out.println(myDeck[3].ShowCard());

Mas o compilador diz que uma Array é esperada e está encontrando Deck.

Eu estou usando um compilador online.

1 Resposta

H
Solucao aceita

Desculpem. Eu consegui achar o erro.

Eu estava tratando a instancia de Deck como se fosse o próprio array.

Porém na verdade meu array é um atributo de Deck, e não o próprio Deck.

Dessa forma eu fiz myDeck.deck[5].showCard(); dentro do println e deu certo.

Eu já estava a um tempo tentando encontrar o erro, por isso ia tentar ajuda por aqui.

Até mais!

Criado 15 de novembro de 2019
Ultima resposta 15 de nov. de 2019
Respostas 1
Participantes 1