2021-Control-POO GIC Resuelto PDF

Title 2021-Control-POO GIC Resuelto
Author jaamaal lopes
Course Programacion orientada a objetos
Institution Universidad Rey Juan Carlos
Pages 3
File Size 138 KB
File Type PDF
Total Downloads 467
Total Views 747

Summary

Control Programación Orientada a Objetos. Curso 20 20 -20 21. 23/11/20 20Se quiere realizar la implementación de un “MiniWhatsapp” definido por las clases del diagrama de clasesde la Figura 1: Contacto [3 puntos] , Mensaje [2 puntos] y MiMiniWhatsapp [3,5 puntos].Figura 1. Diagrama de clases del con...


Description

Control Programación Orientada a Objetos. Curso 2020-2021. 23/11/2020 Se quiere realizar la implementación de un “MiniWhatsapp” definido por las clases del diagrama de clases de la Figura 1: Contacto [3 puntos], Mensaje [2 puntos] y MiMiniWhatsapp [3,5 puntos].

Figura 1. Diagrama de clases del control de POO Las clases Contacto y Mensaje estarán en el paquete basico. La clase MiMiniWhatsapp estará en el paquete apps. Los atributos de un contacto son el nombre, el teléfono y la edad. Se proporcionará un constructor que permita crear objetos con los tres atributos, otro más que permita hacerlo sólo con el nombre y el teléfono y, por último, un constructor copia, que tome los datos de otro objeto contacto. En todo caso, el teléfono tiene que tener siempre un valor positivo; en caso contrario se dejará el valor por defecto que asigna Java. En la clase Contacto es necesario definir los métodos get de todos los atributos, pero en el caso de los set no se va a permitir la modificación ni del nombre ni de la edad, aunque sí la del teléfono. Un contacto es igual a otro si coinciden sus números de teléfono. Un mensaje está formado obligatoriamente por dos contactos (origen y destino) y por el texto enviado entre ambos. A la hora de crear el mensaje si el texto es nulo o bien el contacto origen es igual al contacto destino se dejarán los valores por defecto de Java para todos los atributos. La clase Mensaje ofrecerá un método llamado vocales que devolverá el número de vocales que tiene el texto del mensaje. La clase MiMiniWhatsapp contiene un array de mensajes, que su constructor se encargará de inicializar. Se pueden acumular hasta un máximo de 100 mensajes. Esta clase debe proporcionar un método que permita añadir un nuevo mensaje al array, siempre y cuando el texto del mensaje no sea nulo. Si el array está lleno, el mensaje se colocará de nuevo al principio del array. La clase MiMiniWhatsapp también tendrá un método que permita mostrar por consola toda la información de todos los mensajes almacenados en el array. Por último, programar una clase TestContacto [1,5 puntos] en el paquete Test que, utilizando JUnit a través del método assertEquals pruebe el método getTelefono de la clase Contacto. La clase incluirá dos pruebas: la primera de ellas usará un contacto cuyo constructor indique que el teléfono es el 123, y la segunda de ellas usará un contacto creado con un número de teléfono negativo. Sólo es necesario programar los métodos get y set explícitamente especificados en este enunciado y, eventualmente, aquellos que se utilicen en otras clases. ENTREGA: Se requiere que antes de la finalización del examen, se suba la carpeta del proyecto (NetBeans o BlueJ) en un fichero comprimido (.zip) a la entrega correspondiente de Aula Virtual (“Control 24/10/2019 - Entrega”). Los proyectos de Netbeans se guardan en “Mis documentos>>NetbeansProjects”. Los de BlueJ se pueden guardar en la ubicación deseada al crearlos, para recuperarlos después.

package basico; public class Contacto { private final String nombre; private long telefono; private final int edad; public Contacto (String n, long t,int e){ nombre = n; if (t > 0) telefono = t; edad = e; } public Contacto (String n, long t){ this (n,t,0); } public Contacto (Contacto c){ nombre = c.getNombre(); telefono = c.getTelefono(); edad = c.getEdad(); } public String getNombre() {return nombre;} public long getTelefono() { return telefono;} public int getEdad() {return edad;} public void setTelefono(long t) { if (t > 0) telefono = t; } @Override public String toString(){ return "Nombre: " + nombre + "\tTelefono: " + telefono; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null) return false; if (getClass() != o.getClass()) return false; Contacto aux = (Contacto) o; return (aux.getTelefono() == this.getTelefono()); } } package basico; public class Mensaje { private Contacto origen; private Contacto destino; private String texto; public Mensaje(Contacto o, Contacto d, String t){ if (t!=null || !(o.equals(d))){ origen = new Contacto (o); destino = new Contacto (d) texto = t; } } public String getTexto () {return texto;} @Override public String toString(){ return "\nOrigen: " + origen.toString() + "\nDestino: " + destino.toString() + "\nTexto: " + texto; }

public int vocales () { int num_vocales =0; for (int i=0; i...


Similar Free PDFs