Como passar um objeto para um elemento de vetor em java?

public void pegarCarta() {
		System.out.println("oi");
		this.cartas[cartas.length] = this.carta;

		    Carta[] aux = new Carta[cartas.length + 1];

    		if (cartas[quantidadeDeCartas] != null) {
    			for (int i = 0; i < cartas.length; i++) {
    				aux[i] = cartas[i];
    			}
    		}
    	}`Texto pré-formatado`

Dar o seguinte erro:
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
at Jogador.pegarCarta(Jogador.java:31)
at Jogador.setCarta(Jogador.java:18)
at Game.main(Game.java:17)

Digamos que você tem um vetor de inteiros com três posições, mais ou menos assim:

int[] numeros = new int[3];

O atributo length desse vetor vai ser igual a três, porém o vetor começa do zero e vai até o dois.

numeros[0] = 1;
numeros[1] = 2;
numeros[2] = 3;

Então se você tentar acessar o índice igual a largura do array vai retornar uma ArrayIndexOutOfBoundsException, já que a posição três não existe.

numeros[3] = 4; // Erro: ArrayIndexOutOfBoundsException

Então quando você quiser pegar o ultimo índice de um vetor, você usa o atributo length menos um.

numeros[numeros.length - 1] = 3;

Obrigado!

Entendi…
Mas meu problema é que estou construindo um vetor de cartas. O objeto carta é formado por dois Strings valor e naipe. Preciso passar esses valores para um jogador que vai tirando a carta do baralho e vai ficando com ela. Estou fazendo assim:

jogador1.pegarCarta() = carteado.daCarta();

Ambos os métodos são do tipo carta, mas dar erro informando que ela precisa ser uma váriavel.

Posta todos os códigos fontes aqui por favor.

E não se esqueça de formatá-los, você seleciona todo o código fonte e clica no botão mostrado abaixo:

image

Olá!

Bom dia!

Era uma bobagem que não estava conseguindo ver.
Consegui corrigir, era para eu passar a variável como parâmetro.
Muito obrigado, por sua ajuda e pronta atenção.

1 curtida