ejercicios objetos java

Solutions on MaxInterview for ejercicios objetos java by the best coders in the world

showing results for - "ejercicios objetos java"
Lyna
03 Jul 2018
1/**
2 * Clase Password
3 *
4 * Contiene una contraseña y una longitud
5 *
6 * @author Fernando
7 * @version 1.0
8 */
9public class Password {
10  
11    //Constantes
12  
13    /**
14     * Longitud por defecto
15     */
16    private final static int LONG_DEF=8;
17  
18    //Atributos
19  
20    /**
21     * Longitud de la contraseña
22     */
23    private int longitud;
24    /**
25     * caracteres de la contraseña
26     */
27    private String contraseña;
28  
29    //Metodos publicos
30  
31    /**
32     * Devuelve la longitud
33     * @return longitud de la contraseña
34     */
35    public int getLongitud() {
36        return longitud;
37    }
38  
39    /**
40     * Modifica la longitud de la contraseña
41     * @param longitud a cambiar
42     */
43    public void setLongitud(int longitud) {
44        this.longitud = longitud;
45    }
46  
47    /**
48     * Devuelve la contraseña
49     * @return contraseña
50     */
51    public String getContraseña() {
52        return contraseña;
53    }
54  
55    /**
56     * Genera una contraseña al azar con la longitud que este definida
57     * @return contraseña
58     */
59    public String generaPassword (){
60        String password="";
61        for (int i=0;i<longitud;i++){
62            //Generamos un numero aleatorio, segun este elige si añadir una minuscula, mayuscula o numero
63            int eleccion=((int)Math.floor(Math.random()*3+1));
64  
65            if (eleccion==1){
66                char minusculas=(char)((int)Math.floor(Math.random()*(123-97)+97));
67                password+=minusculas;
68            }else{
69                if(eleccion==2){
70                    char mayusculas=(char)((int)Math.floor(Math.random()*(91-65)+65));
71                    password+=mayusculas;
72                }else{
73                    char numeros=(char)((int)Math.floor(Math.random()*(58-48)+48));
74                    password+=numeros;
75                }
76            }
77        }
78        return password;
79    }
80  
81    /**
82     * Comprueba la fortaleza de la contraseña
83     * @return
84     */
85    public boolean esFuerte(){
86        int cuentanumeros=0;
87        int cuentaminusculas=0;
88        int cuentamayusculas=0;
89        //Vamos caracter a caracter y comprobamos que tipo de caracter es
90        for (int i=0;i<contraseña.length();i++){
91                if (contraseña.charAt(i)>=97 && contraseña.charAt(i)<=122){
92                    cuentaminusculas+=1;
93                }else{
94                    if (contraseña.charAt(i)>=65 && contraseña.charAt(i)<=90){
95                        cuentamayusculas+=1;
96                }else{
97                    cuentanumeros+=1;
98                    }
99                }
100            }
101            //Si la constraseña tiene mas de 5 numeros, mas de 1 minuscula y mas de 2 mayusculas
102            if (cuentanumeros>=5 && cuentaminusculas>=1 && cuentamayusculas>=2){
103            return true;
104        }else{
105            return false;
106        }
107    }
108  
109    //Constructores
110    /**
111     * Crea una contraseña al azar
112     */
113    public Password (){
114        this(LONG_DEF);
115    }
116  
117    /**
118     * La contraseña sera la pasada por parametro
119     * @param longitud
120     */
121    public Password (int longitud){
122        this.longitud=longitud;
123        contraseña=generaPassword();
124    }
125}
126