2. Programación Orientada a Objetos:
Es un paradigma de programación que ha innovado la forma de obtener resultados. Los
objetos manipulan los datos de entrada para la obtención de datos de salida específicos,
donde cada objeto ofrece una funcionalidad especial.
Paradigma: Modelo, ejemplo o patrón. Se puede definir como conjunto de creencias,
prácticas y conocimientos que guían el desarrollo de una disciplina durante un período de
tiempo.
Paradigma de programación: Es un estilo de desarrollo de programas, es decir, un modelo
para resolver problemas computacionales
3. Principales paradigmas de programación
Imperativo: Secuencias de comandos que ordenan acciones a la computadora.
Declarativo: Opuesto al imperativo, describen los resultados esperados sin listar los pasos
a llevar a cabo para alcanzarlos.
Lógico: El problema se modela con enunciados de lógica de primer orden. Paradigma:
Modelo, ejemplo o patrón. Se puede definir como conjunto de creencias, prácticas y
conocimientos que guían el desarrollo de una disciplina durante un período de tiempo.
4. Funcional: Se componen de funciones, es decir, implementaciones de comportamiento que
reciben un conjunto de datos de entrada y devuelven un valor de salida.
Orientado a objetos: El comportamiento del programa es llevado a cabo por objetos,
entidades que representan elementos del problema a resolver y tienen atributos y
comportamiento
5. Características de la POO (Objetos = base del paradigma)
Propiedades: Son las características de los objetos que son: las variables donde se almacenan los
datos relacionados a los objetos.
Métodos: Son las funcionalidades asociadas a los objetos
Estados de los objetos: Son los posibles valores que toman las propiedades de los objetos.
Mensajes en objetos: Es la acción que se efectúa con la llamada a un método o función
6. Principios de la POO:
Para disfrutar de las bondades y de todas las características que nos brindan la POO de una
manera eficiente son necesarios algunos principios que nos ayudarán a reducir la
complejidad, ser más eficientes y evitar problemas. Estos son los principios o pilares
fundamentales de la POO, estos son:
1. Herencia
2. Polimorfismo
3. Abstracción
4. Encapsulamiento
7. Herencia:
Es una forma de reutilización de software en la que se crea una nueva clase absorbiendo
los miembros de una clase existente, y se mejoran con nuevas capacidades, o con
modificaciones en las capacidades ya existentes.
Con la herencia, los programadores ahorran tiempo durante el desarrollo, al reutilizar
software probado y depurado de alta calidad. Esto también aumenta la probabilidad de
que un sistema se implemente con efectividad.
8. Al crear una clase, en vez de declarar miembros completamente nuevo, el programador
puede designar que la nueva clase herede los miembros de una clase existente.
Esta clase existente se conoce como superclase, y la nueva clase se conoce como subclase.
Cada subclase puede convertirse en la superclase de futuras subclases.
Una subclase generalmente agrega sus propios campos y métodos/funciones. Por lo tanto,
una subclase es mas específica que su superclase y representa a un grupo más
especializado de objetos.
Generalmente, la subclase exhibe los comportamientos de su superclase junto con
comportamientos adicionales específicos de esta subclase. Es por ello que a la herencia se
le conoce algunas veces como especialización.
9. En el caso de la herencia simple, una clase se deriva de una clase superclase directa. Java a
diferencia de C++ no permite la herencia multiple.
Superclases y sublcases:
Un objeto de una clase “es un” objeto de otra clase también. Las súper clases tienden a ser
“más generales” y las subclases “más específicas”.
Un problema con la herencia es que una subclase puede heredar métodos que no necesita,
o que no debe tener. A pesar de que un método de superclase sea apropiado para una
subclase, a menudo una subclase requiere una versión personalizada del método.
En dichos casos, la subclase puede sobreescribir (redefinir) el método de la superclase con
una implementación apropiada.
11. Ejercicio:
• Una compañía editorial produce tanto libros impresos como audio-
libros en discos compactos. Diseñe una clase denominada Publicación
que almacene el título (cadena) y el precio (numérico real) de una
publicación. A partir de esta clase, derive dos clases: Libro a la cual le
agregue el número de páginas (entero) y CD, a la cual le agregue el
tiempo de reproducción en minutos (numérico real). Cada una de las
clases debe tener propiedades para acceder a sus respectivos datos.
• Desarrolle un programa en el cuál exista una clase figura y
adicionalmente tres clases: Figura, cubo, cilindro. Cree un método
común que le permita calcular el volumen de cada una de las figuras
antes mencionadas.
12. • Una agencia vendedora de autos desea un sistema computacional para
administrar los datos de sus vehículos y clasificarlos por tipo. Todos los
autos tienen los siguientes datos:
Número de serie del motor.
Marca.
Año.
Precio.
Los vehículos se clasifican en autos compactos, autos de lujo, camionetas y
vagonetas. Para los autos y vagonetas, también es importante almacenar la
cantidad de pasajeros; mientras que para las camionetas se debe controlar la
capacidad de carga en kgs. y la cantidad de ejes y de rodadas.
Instancie cada una de las clases, asignándole datos mediante sus respectivas
propiedades. Agregue un constructor con parámetros a cada clase para
inicializar sus datos e invoque el constructor de la clase base desde el
constructor de cada clase derivada (no utilice constructores default).
Implemente la sobrescritura del método ToString() para mostrar los datos de
cada tipo de auto.
13. Miembros protected:
A diferencia de los miembros public de una clase que son accesibles en cualquier parte en
donde el programa tenga una referencia a un objeto de esa clase o una de sus sublcases.
Los miembros private de una clase son accesibles sólo dentro de la misma clase.
Por el contrario los métodos protected ofrecen un nivel intermedio de acceso entre public
y private. Los miembros de una clase de tipo protected pueden ser utilizados por los
miembros de esa superclase, por los miembros de sus subclases y por miembros de otras
clases en el mismo paquete.
14. Todos los miembros public y protected de una superclase retienen su modificador de
acceso original cuando se convierten en miembros de la subclase.
La palabra clave extends de la declaración de la clase indica herencia en Java.
Sintaxis de llamada al constructor de la superclase: con la palabra clave super, seguida de
un conjunto de paréntesis que contienen los argumentos del constructor de la superclase.