Está en la página 1de 4

Universidad de Guayaquil

Facultad de Ciencias Matemáticas y Fı́sicas


Carrera de Software
Programación Orientada a Objetos

Trabajo parcial

1. Objetivo
Demostrar los conocimientos adquiridos en el primer parcial de la asignatura de Programación
Orientada a Objetos, a través de la realización de ejercicios propuestos que cubren la temática
estudiada en clases.

2. Indicaciones generales y entregables


Todos los programas han de tener una cabecera que describa su funcionalidad, su autor y la
fecha y hora de creación. Por ejemplo, considerando un algoritmo que calcula el mayor de
dos números enteros, desarrollada por el estudiante “José Juan Pérez Torres” el dı́a 01 de
Agosto de 2021 a las 19:00 horas, la correspondiente cabera es como sigue:

/**
* Calcula el mayor de dos números enteros
*
* Creado el 01 de Julio, 2022, 19:00 horas
*
* @author José Juan Pérez Torres
*
* @version POO PARALELO 2-X - 2022
*
*/

Todos los métodos han de tener una cabecera que describa para qué sirve y debe detallar
cada parámetro. Por ejemplo, el constructor de la clase Rectangulo serı́a

/**
* (Descripción de lo que hace el método - sin paréntesis)
*
* @param parametro1 (descripción del parametro1 - sin paréntesis)
* @param parametro2 (descripción del parametro2 - sin paréntesis)
*/
public void metodo(int parametro1, int parametro2) {
...
}

Los IDE que pueden usar para el desarrollo de los ejercicios es Netbeans o Eclipse.

POO: Trabajo parcial Pag. 1 de 4


Docente: Angel Cuenca Ortega (Email: angel.cuencao@ug.edu.ec)
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Fı́sicas
Carrera de Software
Programación Orientada a Objetos

3. Método de evaluación
El trabajo es individual.

El trabajo tiene una puntuación de 2 puntos y corresponde a “proyecto parcial ” de la “gestión


práctica y autónoma del aprendizaje”.

El trabajo será calificado sobre 10 puntos.

La entrega es sólo a través de Moodle y sólo dentro de la fecha y hora establecida.

En caso de detectar copia, el trabajo tendrá una puntuación de cero para todos los involu-
crados.

4. Ejercicios propuestos
Justificación
Considere el siguiente diagrama para responder las dos preguntas siguientes –con todos su
ı́tems–:

Figura 1: Clases (A, B y C), herencia (entre A y B) y paquetes (p1, p2 y p3)

1. Dadas las siguientes afirmaciones con respecto al diagrama de la Figura 1, responda Sı́, si
está de acuerdo con la afirmación y No, cuando no lo esté. Justifique su respuesta (máximo
2 lı́neas).

POO: Trabajo parcial Pag. 2 de 4


Docente: Angel Cuenca Ortega (Email: angel.cuencao@ug.edu.ec)
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Fı́sicas
Carrera de Software
Programación Orientada a Objetos

a) La clase C debe ser pública para poder instanciar clases de otros paquetes.
b) Los atributos de la clase A no serán heredados por la subclase B porque ambas clases
están en paquetes distintos.
c) La clase B hereda todos los atributos y métodos públicos de A.
d ) Los atributos de B no deben tener visibilidad privada (-).
e) En la clase C el método m1 de cualquier instancia de A no es accesible.

2. Responda a cada una de las siguientes preguntas relacionadas al diagrama de la Figura 1.

a) Suponga que crea una instancia de A en el método main de la clase C. ¿Cuáles métodos
serán accesibles y por qué?
b) Suponga que usted desea crear instancias de B, cuyos valores de los atributos heredados
sean siempre 1. ¿Cuáles serı́an los constructores que deben definirse en A y en B?
c) Suponga que desea crear instancias de B, en donde el atributo b1 tomará el valor de 0,
si se intenta inicializarlo con un valor negativo. ¿Cuál serı́a el constructor?
d ) Suponga que, cada vez que realiza una instancia de B en el método main de la clase C,
un contador de instancias es incrementado. ¿Cuál serı́a el código que deba tener B para
conseguirlo?

Programación

1. Considere la siguiente salida por consola, correspondiente a la ejecución del método main de
un programa Java, que muestra varios estados1 de dos instancias distintas.

Persona[nombre=null, apellidos=null, edad=19]


Persona[nombre=Pepe, apellidos=null, edad=19]
Persona[nombre=Pepe, apellidos=Pérez, edad=19]
Estudiante[nombre=null, apellidos=null, edad=19, código=null]
Estudiante[nombre=null, apellidos=null, edad=25, código=null]
Estudiante[nombre=null, apellidos=null, edad=25, código=001]
Estudiante[nombre=Juana, apellidos=null, edad=25, código=001]
Estudiante[nombre=Juana, apellidos=Coello, edad=25, código=001]

Escriba todo el código Java que ha sido necesario para obtener el resultado anterior. Considere
que todo estudiante es también una persona.

2. Crear una clase Coordenada que tenga los atributos x e y.

3. Crear una clase Linea con dos atributos: p1 y p2 que son objetos de Coordenada. Estos dos
puntos corresponden a los puntos por donde pasa la lı́nea en un espacio de dos dimensiones.
La clase dispondrá de los siguientes métodos:

Un método que permita mover a la lı́nea un cierto valor hacia la derecha del plano
cartesiano.
1
Los estados de las instancias son devueltos por el método toString.

POO: Trabajo parcial Pag. 3 de 4


Docente: Angel Cuenca Ortega (Email: angel.cuencao@ug.edu.ec)
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Fı́sicas
Carrera de Software
Programación Orientada a Objetos

Un método que permita mover a la lı́nea un cierto valor hacia la izquierda del plano
cartesiano.
Un método que permita subir a la lı́nea un cierto valor dentro del plano cartesiano.
Un método que permita bajar a la lı́nea un cierto valor dentro del plano cartesiano.
Nota: se debe garantizar que los dos puntos por los que atraviesa la lı́nea sean distintos2 .

5. Condiciones de los programas


Todos los datos ingresados serán por teclado, a través de la clase Scanner.
Se debe garantizar el funcionamiento de los programas a través de excepciones 3 .

6. Entrega
Se debe realizar un documento en Word que contendrá las respuestas de cada uno de los
ejercicios de la sección Justificación.
Para todos los ejercicios de programación propuestos se debe crear la clase Principal, dentro
del paquete main, en la que se realizarán todas las instancias necesarias que prueben que el
ejercicio está correcto. Ası́ mismo, las clases abstraidas deben estar dentro de un paquete
llamado clases.
Todas las clases de la sección Programación deben disponer del manual técnico (javadoc)
Se debe adjuntar a Moodle un único archivo en formato ZIP con todo lo especificado en los
puntos anteriores.
La fecha de entrega es el dı́a sábado 23 de Julio de 2022, hasta las 23:55 horas por
Moodle.

7. Comentarios
Cualquier duda general se la puede hacer a través de Telegram.

Muchos éxitos estimados compañeros estudiantes. :-))))))

Saludos cordiales.

Angel Cuenca Ortega.


Docente
2
Una buena práctica es hacerlo a través del método.equals
3
El material de excepciones se encuentra en el archivo sesion-excepciones.pdf de la unidad-2 del repositorio de
la asignatura.

POO: Trabajo parcial Pag. 4 de 4


Docente: Angel Cuenca Ortega (Email: angel.cuencao@ug.edu.ec)

También podría gustarte