Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: DRANXZ88 en 27 de Julio 2016, 21:51
-
Propuesta de solución para el ejercicio CU00912C del tutorial de programación en java avanzado:
Clase principal main
package ejercicioscu00912c;
public class EjerciciosCu00912c {
public static void main(String[] args) {
PruebaClon prueba = new PruebaClon("000000000000", "000000000000", "000000000000", "000000000000");
PruebaClon prueba1 = prueba.clone();
PruebaClon prueba2 = prueba.clone();
PruebaClon prueba3 = prueba.clone();
PruebaClon prueba4 = prueba.clone();
prueba1.datos1 = "111111111111";
prueba2.datos2 = "111111111111";
prueba3.datos3 = "111111111111";
prueba4.datos4 = "111111111111";
prueba.Imprimir();
prueba1.Imprimir();
prueba2.Imprimir();
prueba3.Imprimir();
prueba4.Imprimir();
}
}
Clase para clonar e imprimir
package ejercicioscu00912c;
public class PruebaClon implements Cloneable {
public String datos1, datos2, datos3, datos4;
public PruebaClon() {
}
public PruebaClon(String datos1, String datos2, String datos3, String datos4) {
this.datos1 = datos1;
this.datos2 = datos2;
this.datos3 = datos3;
this.datos4 = datos4;
}
public PruebaClon clone() {
PruebaClon clon = new PruebaClon(datos1, datos2, datos3, datos4);
return clon;
}
public void Imprimir() {
System.out.println(datos1 + datos2 + datos3 + datos4);
}
}
-
Hola DRANXZ88 el ejercicio devuelve el resultado que se pedía pero tienes algunas cosas a mejorar.
Para imprimir la información de un objeto por pantalla en lugar de public void Imprimir() es conveniente usar el método toString() ya que es un estándar. Este método se explica en la entrega CU00694B y siguientes del curso de Java básico.
Otro error que tienes es declarar public String datos1, datos2, datos3, datos4;
Los atributos de clase deben ser private, y para acceder o modificarlos debes usar métodos get y set creados al efecto.
Saludos
-
Ejercicio corregido según observación Alex Rodríguez
Clase donde se clona
package ejercicioscu00912c;
public class PruebaClon {
private String datos1, datos2, datos3, datos4;
public PruebaClon() {
}
public PruebaClon(String datos1, String datos2, String datos3, String datos4) {
this.datos1 = datos1;
this.datos2 = datos2;
this.datos3 = datos3;
this.datos4 = datos4;
}
public String getDatos1() {
return datos1;
}
public void setDatos1(String datos1) {
this.datos1 = datos1;
}
public String getDatos2() {
return datos2;
}
public void setDatos2(String datos2) {
this.datos2 = datos2;
}
public String getDatos3() {
return datos3;
}
public void setDatos3(String datos3) {
this.datos3 = datos3;
}
public String getDatos4() {
return datos4;
}
public void setDatos4(String datos4) {
this.datos4 = datos4;
}
@Override
public PruebaClon clone() {
PruebaClon clon = new PruebaClon(datos1, datos2, datos3, datos4);
return clon;
}
@Override
public String toString() {
String mensaje = datos1 + datos2 + datos3 + datos4;
return mensaje;
}
}
Clase principal main
package ejercicioscu00912c;
public class EjerciciosCu00912c {
public static void main(String[] args) {
PruebaClon prueba = new PruebaClon("000000000000", "000000000000", "000000000000", "000000000000");
PruebaClon prueba1 = prueba.clone();
PruebaClon prueba2 = prueba.clone();
PruebaClon prueba3 = prueba.clone();
PruebaClon prueba4 = prueba.clone();
prueba1.setDatos1("111111111111");
prueba2.setDatos2("111111111111");
prueba3.setDatos3("111111111111");
prueba4.setDatos4("111111111111");
System.out.println(prueba.toString());
System.out.println(prueba1.toString());
System.out.println(prueba2.toString());
System.out.println(prueba3.toString());
System.out.println(prueba4.toString());
}
}