Hola y bienvenidos. En esta ocasión, vamos a ver el caso de estudio del avión. Empecemos con el enunciado. Vemos la descripción, en un enunciado dice, "El avión de una aerolínea tiene un número fijo de 50 sillas". Fijo, es la palabra clave aquí, ya veremos por qué. "De ellas, ocho son de clase ejecutiva, mientras que el resto económicas. Las sillas ejecutivas se acomodan en filas de cuatro sillas separadas en el medio por el corredor, y económicas en filas de seis sillas, tres a cada lado del corredor. El esquema del avión es el siguiente". Entonces vemos acá, ejecutivas, económicas. Cuando un pasajero llega a solicitar una silla, este indica sus datos personales y sus preferencias con respecto a la posición de la silla. Los datos del pasajero que le interesan a la aerolínea son el nombre y la cédula con la que se identifican de forma única. Y para dar la ubicación deseada, el pasajero indica la clase y la ubicación, que puede ser en el caso de las ejecutivas ventana y pasillo, y en las económicas ventana, pasillo y centro. La asignación de la silla en el avión se hace en orden de llegada, tomando en cuenta las preferencias anteriores. Vemos en el modelo conceptual entonces la clase de avión que tiene dos constantes grandes, la de sillas ejecutivas y la de sillas económicas, 842 es el vuelo respectivo. Y que nos van a servir para modelar el tamaño de los arreglos que haremos a continuación. Vemos acá entonces las asociaciones entre avión y silla con cardinalidad 42 y ocho, respectivamente, y que nos indican que en lugar, obviamente, de tener 50 relaciones o 50 asociaciones entre avión y silla, vamos a tener dos. Una por el arreglo de sillas económicas, y otra por el arreglo de sillas ejecutivas. Porque los arreglos o vectores de tamaño fijo son lo que vamos a utilizar para modelar estas 50 sillas, en lugar de hacerlo con 50 objetos independientes. La clase de silla que tiene unas constantes para modelar sus características, y al mismo tiempo sus atributos básicos, así como la serie de métodos. Y en particular, una asociación con la cardinalidad cero o uno de pasajero, indicando que una silla puede o no tener un pasajero asignado. Y un pasajero está modelado entonces a través de su cédula y su nombre, y tiene los métodos básicos de una clase. Vamos a revisarlos entonces en código, habiendo ya pasado por el modelo conceptual. En el código, como siempre, no nos vamos a interesar por la interfaz, sino por el mono. Empecemos por las dos clases pasajero y silla. Pasajero vemos que está modelado a través de la cédula y el nombre, y su constructor utilizar los parámetros que recibe para asignar los valores iniciales de cédula. Tiene dos métodos que retorna los valores de cédula y nombre, y un método de comparación que utiliza como criterio la cédula de los pasajeros, el identificador único. A pesar de que un pasajero pueda llamarse igual que otro, es la cédula la que lo va a distinguir de manera única. Vamos a la clase silla. La clase silla tiene cinco constantes, dos para modelar si es de clase ejecutiva o económica, tres para modelar si es ventana, centro o pasillo. Y tiene tres atributos que modelan el número de la silla, la clase de la silla y la ubicación de la silla. Y además este atributo que modela un objeto de tipo pasajero, que es justamente la asociación que veíamos que es el pasajero que puede o no estar asignado a la silla. Al momento de realizar una nueva instancia, en el constructor vemos que se reciben tres parámetros para inicializar los valores de número, clase y ubicación los atributos de todos los objetos de tipo silla. Y que el pasajero siempre se inicializa en null, es decir, como si no hubiese asignado ninguno a la silla. Vemos los métodos asignar pasajero, que reside como parámetro un pasajero y lo asigna entonces. Desasignar silla, que lo que hace es decir que el objeto pasajero que tiene la instancia silla queda en null, diciendo que ya no hay ningún pasajero asignado. Método que verifica si una silla está asignada, es decir, si el pasajero no es null. La otra es que si una silla está asignada a un pasajero específico P, si el pasajero tiene la misma cédula del que está asignado, entonces este método retorna verdadero. De lo contrario, retorna falso. Y los métodos que dan el valor del número, clase, ubicación y el pasajero Habiendo visto esto, vamos a la clase avión.