← Tornar a l'índex d'exercicis

Exercicis i Qüestionaris U5: Classes, Herència i Excepcions

Autoavaluació i Projectes de la Unitat 5

Aquesta unitat reuneix tots els fonaments del paradigma orientat a objectes: definició de classes pròpies, atributs, constructors, mètodes, encapsulació, herència amb extends i super, classes abstractes, interfícies i gestió robusta d'excepcions amb try-catch.

1. Qüestionari sobre Classes i Objectes

Per a definir una classe amb un camp enter, quina és la forma correcta de fer-ho?

new LaMevaClasse() { }
class LaMevaClasse(){ int elMeuCamp; }
LaMevaClasse { int elMeuCamp; }
class LaMevaClasse { int elMeuCamp; }
LaMevaClasse() { int elMeuCamp; }

Donada la següent classe:

class Point3D { double x, y, z; }

Diges les afirmacions correctes sobre ella:

La classe té tres camps del mateix tipus
La sentència Point3D p = new Point3D(); crea un objecte d'aquesta classe
La declaració de la classe és incorrecta
Els valors dels camps són sempre els mateixos per a tots els objectes de la classe.

Quina és la paraula-clau per a crear objectes d'una classe?

throw
type
new
create

Suposa que tens aquesta classe al teu programa:

class Hotel { String name; String address; int rating; }

Hi han diversos objectes d'aquesta classe:

Hotel h1 = new Hotel(); Hotel h2 = new Hotel(); Hotel h3 = h2; h2.rating = 9; h3.rating = 8; h1.rating = 7;

Quin és el valor de h2.rating després d'executar el codi anterior?

0
9
7
8

2. Exercici Pràctic: Classe Persona

Crea una classe anomenada Persona per a representar persones en un sistema informàtic:

3. Exercici Pràctic: Format Visual TextBox

Crea una classe anomenada TextBox que permeti dibuixar capses de text estilitzades en mode caràcter:

4. Exercici Pràctic: Simulador Object Racing

Simulador interactiu de curses de cotxes utilitzant programació orientada a objectes i interacció entre instàncies:

classDiagram Carrera o-- Coche class Coche { +String piloto +int distancia +int velocidad +static int maxVelocidad +Coche(String piloto) +acelerar(int velocidad): void +mover(): void } class Carrera { +List~Coche~ coches +int distancia +Carrera(int distancia) +iniciar(): void +inscribir(Coche coche): void +primeraPosicion(): Coche }

Implementa les classes Coche i Carrera segons el diagrama i simula una cursa pas a pas a la consola.

5. Exercici d'Herència: Jerarquia Animals

Implementa la jerarquia de classes d'animals següent demostrant l'ús d'herència multinivell i crides al constructor de la superclasse:

classDiagram Animal <|-- Mamifero Mamifero <|-- Perro Mamifero <|-- Gato Mamifero <|-- Caballo class Animal { +String nombre +String tipoAlimentacion +int edad } class Mamifero { +int gestacion } class Perro { +String raza } class Gato { +String pedigri } class Caballo { +String comida +int ejercicio }

Crea els constructors amb crida a super() i sobreescriu toString() a cada subclasse per reflectir la informació completa de cada animal.

6. Exercici de Polimorfisme: Jerarquia Workers

Implementa l'estructura jeràrquica d'empleats d'una organització:

classDiagram Empleado <|-- Directivo Empleado <|-- Operario Operario <|-- Oficial Operario <|-- Tecnico class Empleado { +String nombre +Empleado(String nombre) +getNombre(): String +toString(): String } class Directivo { +toString(): String } class Operario { +toString(): String } class Oficial { +toString(): String } class Tecnico { +toString(): String }

La sortida per consola en recórrer una llista d'empleats ha de reflectir la seva cadena jeràrquica mitjançant el polimorfisme de toString().

7. Classes Abstractes i Interfícies: Shape2D

Implementa un sistema per a dibuixar figures geomètriques de colors mitjançant polimorfisme i mètodes abstractes:

classDiagram class Figure { +int x +int y +Color color +Figure(int x, int y, Color color) +abstract getShape(): Shape }

Fes subclasses per a rectangles, cercles i triangles que retornin la seva instància de java.awt.Shape.

8. Exercicis de Gestió d'Excepcions (try-catch)