estaba haciendo un codigo para verificación de fechas que es el siguiente:
Código
public class MesesV3 { //constantes final int ENERO=1; final int FEBRERO=2; final int MARZO=3; final int ABRIL=4; final int MAYO=5; final int JUNIO=6; final int JULIO=7; final int AGOSTO=8; final int SEPTIEMBRE=9; final int OCTUBRE=10; final int NOVIEMBRE=11; final int DICIEMBRE=12; //variables// int dia,mes,anio; dia=ScanF.leeInt(); mes=ScanF.leeInt(); anio=ScanF.leeInt(); switch(mes) { case ENERO: break; case FEBRERO: if(((anio%400==0)||((anio%4==0)&&(anio%100!=0))&&(dia<=29&&dia>0))) else if(dia<=28&&dia>0) else break; case MARZO: break; case ABRIL: break; case MAYO: break; case JUNIO: break; case JULIO: break; case AGOSTO: break; case SEPTIEMBRE: break; case OCTUBRE: break; case NOVIEMBRE: break; case DICIEMBRE: break; } } }
pero mi profesor me dijo que esta parecia mas una practica de programación estructurada y ahora tengo que corregirla y hacerla de nuevo con los siguientes requerimientos
3. Inicializar todos los atributos con datos válidos
por medio de un constructor sin parámetros
4. Declarar y definir todos los métodos dame()
5. Declarar y definir todos los métodos fija()
6. Incluir al menos el método verifica() mostrado (se puede optar por otra forma en
nombre y parámetros, pero igualmente privada)
7. Es optativo y deseable que los otros métodos fija también sean booleanos.
8. Contemple que un año bisiesto es múltiplo de 4, no múltiplo de 100 pero sí múltiplo de
400
9. Programarla lo más completa y sintética posible de forma que siempre represente en sus
atributos una fecha válida
10. Validación en cada uno de los métodos fija para que los atributos en conjunto
representen siempre una fecha correcta sea cual fuere el orden posible de invocación a
los métodos fija() desde main
11. Si al tratar de cambiar algún atributo mediante un método fija(), la nueva fecha no sería
válida, los atributos permanezcan sin modificación.
12. Evitar imprimir mensajes a consola desde métodos al interior de la clase (el método
main no forma parte de la clase)
13. Codificar en el ámbito del método main lo siguiente:
a) Declaración de variable de instancia del tipo MiFecha en una línea independiente
b) Instanciación de un objeto del tipo MiFecha sobre la variable del punto anterior
c) Definición de todos los atributos del objeto instanciado mediante sus 3 métodos de
interfaz
d) Impresión en consola del contenido de cada uno de los atributos, uno por línea
e) Evitar solicitar datos al usuario por consola
y esto es lo que llevo programado pero en los métodos fija no se a que se refiere con Validación en cada uno de los métodos fija para que los atributos en conjunto
representen siempre una fecha correcta si la validación ya la hice en el metodo verificarDia
Código
public class MiFecha { final int ENERO=1; final int FEBRERO=2; final int MARZO=3; final int ABRIL=4; final int MAYO=5; final int JUNIO=6; final int JULIO=7; final int AGOSTO=8; final int SEPTIEMBRE=9; final int OCTUBRE=10; final int NOVIEMBRE=11; final int DICIEMBRE=12; private int dia; private int mes; private int anio; public MiFecha(){ dia=26; mes=MARZO; anio=1992; } public boolean fijaDia(int diax){ dia=diax; return true; } public int dameDia(){ return dia; } public boolean fijaMes(int mesx){ mes=mesx; return true; } public int dameMes(){ return mes; } public boolean fijaAnio(int aniox){ anio=aniox; return true; } public int dameAnio(){ return anio; } private boolean verificaDia(int dia,int mes,int anio){ boolean fechaValida= false; switch(mes){ case ENERO: case MARZO: case MAYO: case JULIO: case AGOSTO: case OCTUBRE: case DICIEMBRE: if(dia < 0 && dia >31) fechaValida=true; else fechaValida=false; break; case FEBRERO: if(((anio%400==0)||((anio%4==0)&&(anio%100!=0))&&(dia<=29&&dia>0))) fechaValida=true; else if(dia<=28&&dia>0) fechaValida=true; else fechaValida=false; break; case ABRIL: case JUNIO: case SEPTIEMBRE: case NOVIEMBRE: if( dia > 0 && dia < 30) fechaValida=true; else fechaValida=false; break; } return fechaValida; } } class Encapsulamiento{ MiFecha f=new MiFecha(); } }
de antemano gracias