Criar um baralho

Boa noite!

Estou com dúvida pois tenho um exercício que diz o seguinte:

Crie a classe Carta, que possui um nome e um naipe. Crie os métodos get e um construtor que configure os valores de cada carta.
• Crie agora uma classe Baralho, que possui 52 cartas. No construtor de Baralho, inicialize as 52 cartas (juntamente com os 4 coringas, que devem se chamar “coringa” e o naipe é“coringa”).

Meu programa está dando erro e não sei onde é:
Segue em anexo o código:

class Carta {

private String nome;
private String naipe;
	
public Carta(String nome, String naipe) {		
	this.nome = nome;
	this.naipe = naipe;
}
	
public String getNome() {
    return nome;
}

public String getNaipe() {
    return naipe;
}

}

public class Baralho {

public Baralho() {

	String nomes[] = {"Ás", "Dois", "Três", "Quatro", "Cinco", "Seis", "Sete", "Oito", "Nove", "Dez", "Valete", "Dama", "Rei","coringa", "coringa", "coringa", "coringa"};
	String naipes[] = {"Copas", "Espadas", "Paus", "Ouros","coringa", "coringa", "coringa", "coringa"};
	int cont = 0;
			
	for (int j = 0; j < naipes.length; j++) {
		for (int i = 0; i < nomes.length ; i++) {
			cartas[cont] = New Carta(nomes[i], naipes[j]);
			cont++;
		}
	}
}

A instrução new é com letra minúscula.

Obrigado!
Mas, continua dando o mesmo erro…

Que erro?

Aparece uma lâmpada com um x no IDE do Eclipse…

Pois é, você pode pôr o cursor do mouse em cima dessa lâmpada e verificar quais são os erros.
Ou pode abrir a view “Problems” e também identificar o problema. (Window --> Show view --> Problems).

Se você prestar atenção no código da sua classe Baralho vai perceber que, além de não ter declarado o array de cartas, você jogou o código solto no corpo da classe e não dentro de um método.

Entendi…

Agora estou com dificuldades em embaralhar as cartas. Não estou sabendo criar o método.
Acho que o caminho é esse:

public class Baralho {

 public Baralho() {
		
		String nomes[] = {"Às", "Dois", "Três", "Quatro", "Cinco", "Seis", "Sete", "Oito", "Nove", "Dez", "Valete", "Dama", "Rei"};
		String naipes[] = {"Copas", "Espadas", "Paus", "Ouros"};
		int cont = 0;
		
		for (int j = 0; j < naipes.length; j++) {
			for (int i = 0; i < nomes.length ; i++) {
				cartas[cont] = new Carta(nomes[i], naipes[j]);
				cont++;
			}
		}
	}

//Embaralha cartas

public void embaralha( ) {

	for (int i=0 ; i < cartas.length; i++) {

		Carta aux = cartas[i];
		int proxima = (int)(Math.random() * cartas.lenght);
		cartas[i] = cartas[proxima];
		cartas[proxima] = aux;
	}

}

Mas tá dando erro, e não posso usar comandos avançados porque esse é um exercício para iniciantes. Entretanto, estou confuso…
Tenho estudado sobre construtores, métodos, só que vou absorvendo aos poucos. São muitas informações para POO.

public class Baralho {

 public Baralho() {
		
		String nomes[] = {"Às", "Dois", "Três", "Quatro", "Cinco", "Seis", "Sete", "Oito", "Nove", "Dez", "Valete", "Dama", "Rei"};
		String naipes[] = {"Copas", "Espadas", "Paus", "Ouros"};
		int cont = 0;
		
		for (int j = 0; j < naipes.length; j++) {
			for (int i = 0; i < nomes.length ; i++) {
				cartas[cont] = new Carta(nomes[i], naipes[j]);
				cont++;
			}
		}
	}

//Embaralha cartas

public void embaralha( ) {

	for (int i=0 ; i < cartas.length; i++) {

		Carta aux = cartas[i];
		int proxima = (int)(Math.random() * cartas.lenght);
		cartas[i] = cartas[proxima];
		cartas[proxima] = aux;
	}

}

Boa noite!
Finalmente o programa tá funcionando, falta documentar e fazer uns arremates.
Mas eu não entendo porque ele não está tirando a primeira carta da pilha, e nem porque não está escrevendo os resultados do método tem cartas que é um boolean.

public class Carta {

private String nome; // Define variável para armazenar o nome de cada carta
private String naipe;// Define variável para armazenar o nome de cada naipe


public Carta(String nome, String naipe) {	//Método carta determina as variáveis nome e naipe	
	this.nome = nome;
	this.naipe = naipe;
}	
		
public String getNome() {
    return nome;
}

public String getNaipe() {
    return naipe;
}

}public class Baralho {

int quantidade=70;
int index=0;
Carta[] cartas = new Carta[quantidade];

public Baralho() {

	String nomes[] = {"Às", "Dois", "Três", "Quatro", "Cinco", "Seis", "Sete", "Oito", "Nove", "Dez", "Valete", "Dama", "Rei","Coringa"};
	String naipes[] = {"Copas", "Espadas", "Paus", "Ouros"};
	int cont = 0;
	
	for (int j = 0; j < naipes.length; j++) {
		for (int i = 0; i < nomes.length ; i++) {
			
			if ((nomes[i]!="Coringa") && (naipes[j]!="Coringa")) {
				cartas[cont] = new Carta(nomes[i], naipes[j]);					
			}
							
			if (nomes[i]=="Coringa") {
				String aux = naipes[j];
				naipes[j]="Coringa";
				cartas[cont] = new Carta(nomes[i], naipes[j]);
				naipes[j] = aux;
			}
			cont++;	
				
		}
		quantidade = cont;
	}	

}
//Embaralha cartas

	public void embaralha( ) {

		for (int i=0 ; i < quantidade; i++) {
			Carta aux = cartas[i];
			int proxima = (int)(Math.random() * quantidade);
			cartas[i] = cartas[proxima];
			cartas[proxima] = aux;
		}
	}

	public void imprimeBaralho() {
		int i;

		for (i = 0; i < quantidade; i++) {
			System.out.print(cartas[i].getNome()+" ");
			System.out.println(cartas[i].getNaipe());
		}
	}
	
			
	public Carta daCarta() {
		if (quantidade>0 || cartas[quantidade]!=null) {
			quantidade--;
			return cartas[index++];				
		}			
		return null;			
	}
	
	public boolean temCarta() {
		if(quantidade > 0) {
			System.out.println(quantidade);//conferindo se está entrando na condição
			return true;
		}
		else {
			return false;
		}			
	}

}
public class Aplicacao {

public static void main(String[] args) {
	// TODO Auto-generated method stub
	Baralho carteado = new Baralho();
	
	carteado.temCarta();
    carteado.imprimeBaralho(); // imprime para verificar se a saida está correta
    System.out.println("");
    carteado.embaralha();
    carteado.imprimeBaralho();
    System.out.println("");
    carteado.daCarta();
    carteado.imprimeBaralho();
    System.out.println("");
    carteado.temCarta();
}

}
Saida do programa
56
Às Copas
Dois Copas
Três Copas
Quatro Copas
Cinco Copas
Seis Copas
Sete Copas
Oito Copas
Nove Copas
Dez Copas
Valete Copas
Dama Copas
Rei Copas
Coringa Coringa
Às Espadas
Dois Espadas
Três Espadas
Quatro Espadas
Cinco Espadas
Seis Espadas
Sete Espadas
Oito Espadas
Nove Espadas
Dez Espadas
Valete Espadas
Dama Espadas
Rei Espadas
Coringa Coringa
Às Paus
Dois Paus
Três Paus
Quatro Paus
Cinco Paus
Seis Paus
Sete Paus
Oito Paus
Nove Paus
Dez Paus
Valete Paus
Dama Paus
Rei Paus
Coringa Coringa
Às Ouros
Dois Ouros
Três Ouros
Quatro Ouros
Cinco Ouros
Seis Ouros
Sete Ouros
Oito Ouros
Nove Ouros
Dez Ouros
Valete Ouros
Dama Ouros
Rei Ouros
Coringa Coringa

Dez Ouros
Dois Espadas
Às Ouros
Dois Paus
Seis Ouros
Dama Copas
Às Espadas
Cinco Ouros
Nove Copas
Dama Espadas
Coringa Coringa
Valete Copas
Cinco Paus
Rei Espadas
Às Copas
Dez Espadas
Sete Copas
Dois Copas
Coringa Coringa
Oito Paus
Quatro Copas
Dama Ouros
Três Paus
Rei Paus
Cinco Espadas
Dois Ouros
Quatro Paus
Valete Paus
Nove Ouros
Sete Ouros
Três Copas
Sete Paus
Valete Espadas
Às Paus
Dez Copas
Rei Copas
Nove Paus
Dama Paus
Três Ouros
Sete Espadas
Quatro Ouros
Seis Copas
Coringa Coringa
Coringa Coringa
Quatro Espadas
Rei Ouros
Seis Paus
Três Espadas
Oito Ouros
Nove Espadas
Seis Espadas
Valete Ouros
Dez Paus
Oito Copas
Oito Espadas
Cinco Copas

Dez Ouros
Dois Espadas
Às Ouros
Dois Paus
Seis Ouros
Dama Copas
Às Espadas
Cinco Ouros
Nove Copas
Dama Espadas
Coringa Coringa
Valete Copas
Cinco Paus
Rei Espadas
Às Copas
Dez Espadas
Sete Copas
Dois Copas
Coringa Coringa
Oito Paus
Quatro Copas
Dama Ouros
Três Paus
Rei Paus
Cinco Espadas
Dois Ouros
Quatro Paus
Valete Paus
Nove Ouros
Sete Ouros
Três Copas
Sete Paus
Valete Espadas
Às Paus
Dez Copas
Rei Copas
Nove Paus
Dama Paus
Três Ouros
Sete Espadas
Quatro Ouros
Seis Copas
Coringa Coringa
Coringa Coringa
Quatro Espadas
Rei Ouros
Seis Paus
Três Espadas
Oito Ouros
Nove Espadas
Seis Espadas
Valete Ouros
Dez Paus
Oito Copas
Oito Espadas

55