Ejemplo de composición. Extensión de las clases.

Ejemplo de composición. Clase Fecha. package composicion; /** * @author GALIA 11 de marzo 2015 */ public class Fecha { /* Atributos privados */ private int dia; private int mes; private int año; public Fecha(int dia, int mes, int year) { this.setDia(dia); this.setMes(mes); this.setYear(year); } public int getDia() { return dia; } public void setDia(int dia) { this.dia = dia; } public int getMes() { return mes; } public void setMes(int mes) { this.mes = mes; } public int getYear() { return año; } public void setYear(int year) { this.año = year; } @Override public String toString() { return "Fecha [dia=" + dia + ", mes=" + mes + ", year=" + año + "]\n"; } } Clase Hora: package composicion; /** * @author GALIA 11 de marzo 2015 */ public class Hora { private int hora; private int minuto; public Hora() { } public Hora(int hora, int minuto) { if (hora < 0 || hora > 23 || minuto < 0 || minuto > 59) { throw new IllegalArgumentException(); } else { this.setHora(hora); this.setMinuto(minuto); } } public int getHora() { return hora; } public void setHora(int hora) { this.hora = hora; } public int getMinuto() { return minuto; } public void setMinuto(int minuto) { this.minuto = minuto; } @Override public String toString() { return "Hora [hora=" + hora + ", minuto=" + minuto + ""; } } Clase Examen package composicion; /** * @author GALIA 11 de marzo 2015 */ public class Examen { /* Atributos privados */ private String asignatura; private String aula; private Fecha fecha; private Hora hora; /** * Constructor * * @param asignatura * @param aula * @param fecha * @param hora */ public Examen(String asignatura, String aula, Fecha fecha, Hora hora) { this.asignatura = asignatura; this.aula = aula; this.fecha = fecha; this.hora = hora; } /** * @return asignatura */ public String getAsignatura() { return asignatura; } /** * @param asignatura */ public void setAsignatura(String asignatura) { this.asignatura = asignatura; } /** * @return aula */ public String getAula() { return aula; } /** * @param aula */ public void setAula(String aula) { this.aula = aula; } /** * @return fecha */ public Fecha getFecha() { return fecha; } public void setFecha(Fecha fecha) { this.fecha = fecha; } /** * @return hora */ public Hora getHora() { return hora; } public void setHora(Hora hora) { this.hora = hora; } /* * (sin Javadoc) * * @see java.lang.Object#toString() */ @Override public String toString() { return "Examen \n[asignatura=" + asignatura + "]\n" + "[ aula=" + aula + "]\n" + fecha.toString() + hora.toString() + "]"; } } Clase Main, que comprueba todo. package composicion; /** * @author GALIA 11 de marzo 2015 */ public class MainExamen { public static void main(String[] args) { Fecha fecha = new Fecha(18, 3, 2015); Hora hora = new Hora(18, 25); Examen programacion = new Examen( "Programación en Java: UML y Extensión de las clases", "A27", fecha, hora); System.out.println(programacion.toString()); } }

1 Response

Funciona, aunque porque year y año son lo mismo.

Write a comment

You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.