viernes, 8 de octubre de 2010

Semana 3 - Herencia y Polimorfismo

Herencia

Una característica clave en la programación orientada a objetos es la reutilización de software, ya que esto es muy útil, porque si se pudiera reutilizar algo de software que ya existe, que fue probado, depurado y utilizado muchas veces, nos ahorraríamos tiempo y esfuerzo para desarrollar y probar de nuevo.

La herencia es cuando una clase (subclase) se deriva de otra (superclase), de manera que extiende su funcionalidad.

Una subclase hereda todos los miembros (campos, métodos y clases anidadas) de su superclase, como por ejemplo:



Si tenemos una clase Vehículo, esta es una superclase, ya que hereda 2 subclases y además contiene 3 campos. Las subclases Automóvil y Camión heredan a Vehículo, quiere decir que estas también tendrán los 3 campos de Vehículo y además sus campos propios.


Fuentes:

Me apoyé en tutoriales Java para la consulta de la definición herencia:

En este link, se explica otro ejemplo utilizando bibicletas, que también está entendible:

(Imagen) Con este ejemplo me quedó más clara la definición de herencia:



Polimorfismo

Es la capacidad de que una acción o método realice diferentes cosas en el objeto del que está actuando. Es decir, que varias subclases utilicen un mismo método pero de forma distinta.

Por ejemplo:




En la figura anterior se tiene la clase FiguraGeo en donde se tienen las funciones de Área y Perímetro. Las clases Triángulo, Círculo y Cuadrado, heredan de la clase FiguraGeo sus métodos. Y en la clase Main es donde se calcula el área y perímetro según la figura que corresponda, y es aquí en donde se aplica el polimorfismo, ya que se está utilizando el método CalculaAP de manera distinta según la subclase que la utilice.


Fuentes:

Al igual que en la herencia, en el polimorfismo me auxilié de tutoriales Java, en :

En este link, se continúa el ejemplo de las bicicletas pero con el polimorfismo:

(Imagen) Con este ejemplo me quedó más clara la definición de polimorfismo:



VIDEOS

Este video explica de manera muy básica las definiciones de herencia y polimorfismo utilizando ejemplos básicos como animales, figuras geométricas y autos.




En este otro video explican herencia y polimorfismo en Python 3:





________________________________________



Herencia y Polimorfismo aplicado al tema de reservaciones y vuelos en una aerolínea



*** HERENCIA ***

Superclase:
  • Tripulación

Subclases:
  • Capitan
  • Auxiliar_de_vuelo
  • Sobrecargo



* TRIPULACION

Atributos:
Métodos:

·          idCrew
·          Nombre
·          ApellidoPaterno
·          ApellidoMaterno
·          Dirección
·          Teléfono
·          RFC
·          Alta de tripulación
·          Baja de tripulación
·          Modificación de tripulación

* CAPITAN

Atributos:
Métodos:

  TRIPULACION
·          Licencia


* AUXILIAR_DE_VUELO

Atributos:
Métodos:

  TRIPULACION
·          Licencia
·          Categoria (copiloto o auxiliar)


* SOBRECARGO

Atributos:
Métodos:

  TRIPULACION
·          Categoria




*** POLIMORFISMO ***

Al dar de alta a un capitán, un auxiliar de vuelo o un sobrecargo, se utilizan los mismos métodos pero con parámetros diferentes:

AltaCapitan(idCrew, Licencia)
AltaAuxiliar(idCrew, Licencia, Categoria)
AltaSobrecargo(idCrew, Categoria)

...


domingo, 3 de octubre de 2010

Semana 2 - Sistema de reservaciones y vuelos programados de una aerolínea

Clases, Atributos y Métodos:

* PASAJERO

Atributos:
Métodos:

·          idPasajero
·          Nombre
·          ApellidoPaterno
·          ApellidoMaterno
·          Edad
·          Telefono
·          CorreoElectronico
·          Alta pasajero
·          Modificación pasajero

* TRIPULACION

Atributos:
Métodos:

·          idCrew
·          Nombre
·          ApellidoPaterno
·          ApellidoMaterno
·          Dirección
·          Teléfono
·          RFC
·          Alta de tripulación
·          Baja de tripulación
·          Modificación de tripulación

* CAPITAN

Atributos:
Métodos:

  TRIPULACION
·          Licencia


* AUXILIAR_DE_VUELO

Atributos:
Métodos:

  TRIPULACION
·          Licencia
·          Categoria (copiloto o auxiliar)


* SOBRECARGO

Atributos:
Métodos:

  TRIPULACION
·          Categoria


* ORIGEN

Atributos:
Métodos:

·          idOrigen
·          Aeropuerto
·          Puerta
·          Cuidad
·          Pais
·          Alta de origen
·          Baja de origen
·          Modificación de origen

* DESTINO

Atributos:
Métodos:

·          idDestino
·          Aeropuerto
·          Puerta
·          Ciudad
·          Pais
·          Alta de destino
·          Baja de destino
·          Modificación de destino

* AVION

Atributos:
Métodos:

·          idAvion
·          Placas
·          TipoAvion
·          NumAsientos
·          idCrew
·          Alta de avión
·          Baja de avión
·          Modificación de avión

* ASIENTO

Atributos:
Métodos:

·          idAsiento
·          Tipo (1ª o 2ª clase)
·          Ubicación (Ventanilla, Pasillo, Central)
·          Tarifa
·          Alta de asiento
·          Baja de asiento
·          Modificación de asiento

* VUELO

Atributos:
Métodos:

·          idVuelo
·          id_avion
·          id_origen
·          id_destino
·          Fecha
·          HoraSalida
·          HoraLlegada
·          Alta de vuelo
·          Baja de vuelo
·          Modificación de vuelo

* RESERVACION

Atributos:
Métodos:

·          idReservacion
·          id_pasajero
·          id_vuelo
·          id_asiento
·          Alta de reservación
·          Baja de reservación
·          Modificación de reservación

...