Exercicio de Java SE[Resolvido]

Ola gente preciso de ajuda nesse exercício pois estou com dúvida, gostaria de saber se esta certo? se nao estiver gostaria de uma dica de como posso terminar ele ok? se puderem me ajudar eu agradeço. segue código abaixo e exercicio.

/*Crie uma classe Java para gerar senhas aleatórias. Esta classe deverá possuir um método

  • chamado gerarSenha(), com três sobrecargas:
    • gerarSenha() sem parâmetros retorna uma senha contendo oito letras minúsculas e/ ou números.
    • gerarSenha(int tamanho): retorna uma senha contendo o tamanho passado como parâmetro,
    alternando letras minúsculas e números aleatórios.
    • gerarSenha(int tamanho, boolean
    maiusculas): retorna uma senha contendo o
    tamanho passado como parâmetro, alternando letras minúsculas, maiúsculas
    (se o segundo parâmetro for true) e números, todos aleatórios.
    DICA: Use a classe StringBuilder para criar a senha dentro de um laço.
    Para gerar letras aleatórias, use Random junto de algo semelhante ao
    trecho de código a seguir, que mostra todas as letras de A a Z, concatenadas:
    StringBuilderstr = new StringBuilder()
    for (char c = 65 c <= 90 c++) {
    str.append©
    }
    JOptionPane.showMessageDialog(null, str)*/

public class ExercicioJavaSE {

private static String gerarSenha(){
	int qtdeMaximaCaracteres = 8;
    String[] caracteres = { "0", "1", "b", "2", "4", "5", "6", "7", "8",
                "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
                "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w",
                "x", "y", "z"};
    
	StringBuilder senha = new StringBuilder();

    for (int i = 0; i < qtdeMaximaCaracteres; i++) {
        int posicao = (int) (Math.random() * caracteres.length);
        senha.append(caracteres[posicao]);
    }
    return senha.toString();
    
}
private static String gerarSenha(int qtdeMaximaCaracteres){
	
    String[] caracteres = { "0", "1", "b", "2", "4", "5", "6", "7", "8",
                "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
                "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w",
                "x", "y", "z"};
    
	StringBuilder senha = new StringBuilder();

    for (int i = 0; i < qtdeMaximaCaracteres; i++) {
        int posicao = (int) (Math.random() * caracteres.length);
        senha.append(caracteres[posicao]);
    }
    return senha.toString();
}
public String gerarSenha(String ContemPalavra, int Repetir){
	String[] caracteres ={"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e",
			"f","g","h","i","j","k","l","m","n","o","p","q","r","s","t",
			"u","v","w","x","y","z","A","B","C","D","E","F","G","H","I",
			"J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"};

    StringBuilder senha = new StringBuilder();
         for (int x=0; x<10; x++){
        int j = (int) (Math.random()* caracteres.length);
	          return senha.toString();
}
         return senha.toString();
}

public static void main(String[] args) {
	System.out.println(gerarSenha());
	System.out.println(gerarSenha(10));
	System.out.println(gerarSenha(11));

}
}

Faltou você implementar o gerarSenha(int tamanho, boolean maiusculas).
Se tivesse implementado esse método, não precisaria ficar duplicando código nos outros dois, veja:

import java.util.Random;

public class ExercicioJavaSE {

    public static void main(String[] args) {
        ExercicioJavaSE programa = new ExercicioJavaSE();
        System.out.println(programa.gerarSenha());
        System.out.println(programa.gerarSenha(10));
        System.out.println(programa.gerarSenha(11, true));
    }

    private static final String NUMEROS = "0123456789";
    private static final String MINUSCULAS = "abcdefghijklmnopqrstuvwxyz";
    private static final String MAIUSCULAS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

    /**
     * retorna uma senha contendo oito letras minúsculas e/ ou números.
     */
    public String gerarSenha() {
        return gerarSenha(8);
    }

    /**
     * Retorna uma senha contendo o tamanho passado como parâmetro, alternando letras minúsculas e números aleatórios.
     */
    public String gerarSenha(int tamanho) {
        return gerarSenha(tamanho, false);
    }

    /**
     * Retorna uma senha contendo o tamanho passado como parâmetro, alternando letras minúsculas, maiúsculas (se o segundo parâmetro for true) e números, todos aleatórios.
     */
    public String gerarSenha(int tamanho, boolean maiusculas) {
        String caracteres;
        if (maiusculas) {
            caracteres = MINUSCULAS + MAIUSCULAS + NUMEROS;
        } else {
            caracteres = MINUSCULAS + NUMEROS;
        }
        StringBuilder senha = new StringBuilder();
        Random random = new Random();
        int limite = caracteres.length();
        for (int i = 0; i < tamanho; i++) {
            int posicaoAleatoria = random.nextInt(limite);
            senha.append(caracteres.charAt(posicaoAleatoria));
        }
        return senha.toString();
    }
}

obrigada pela dica eu entendi agora

2 curtidas