You are on page 1of 45

Volumen 1

Principios de la Programacin Orientada a Objetos

Copyright 2004

Unidad 1

Revisin de los Conceptos de la Orientacin a Objetos

Copyright 2004

Objetivos

Objetivos de Aprendizaje
Explicar la necesidad de la orientacin a objetos Describir la tecnologa orientada a objetos Definir encapsulamiento y sealar sus beneficios Discutir la abstraccin, agregacin, herencia y polimorfismo Describir los beneficios de la tecnologa orientada a objetos

Copyright 2004

Paradigmas de Programacin

Paradigmas de Programacin
Programacin orientada a procedimientos: o Los programas son estructurados con base a sus funciones Programacin orientada a objetos: o Los programas son implementados y organizados como una coleccin cooperativa de entidades, cada una representando algn elemento (entidad) en el mundo real o La programacin orientada a objetos persigue simular o representar las entidades del mundo real y su uso en forma natural en la resolucin de un problema de computacin
Copyright 2004

Programacin orientada a objetos

El paradigma de la programacin orientada a objetos usualmente tiene las siguientes caractersticas: o Simula actividades del mundo real o Tiene tipos de datos definidos por los usuarios o Esconde los detalles de la implementacin o Re-usa cdigos a travs de la herencia o Permite el mismo funcionalidades nombre para diferentes

Copyright 2004

Programacin orientada a objetos

Pilares de la Programacin Orientada a Objetos: o Abstraccin o Encapsulamiento o Modularidad o Herencia

Copyright 2004

Pilares: Abstraccin

Abstraccin
Las entidades del mundo real tienen un sin nmero de caractersticas y funciones asociadas de las cuales no todas son de relevancia para la solucin de un problema La abstraccin es la tcnica que permite reconocer los elementos esenciales para la solucin de un problema dejando de lado los detalles irrelevantes La abstraccin consiste en crear un simplificado de una entidad del mundo real modelo

Copyright 2004

Pilares: Abstraccin

Elementos de una entidad


Interfaz El mtodo adoptado en la presentacin de una entidad en el mundo real

Implementacin El procedimiento adoptado para facilitar a una entidad la ejecucin de sus funciones
Copyright 2004

Pilares: Encapsulamiento

Encapsulamiento
El encapsulamiento es el concepto que ayuda a mantener juntos los datos y las funciones (procedimientos) que operan sobre stos Las funciones y procedimientos que pertenecen a una entidad cualquiera se conocen como funciones miembro o mtodos El encapsulamiento complementa el concepto de abstraccin, mediante el ocultamiento de informacin

Copyright 2004

Pilares: Encapsulamiento

El Paradigma Procedural
Definicin de Datos y Estructuras Implementacin de Operaciones sobre Datos y Estructuras

En el paradigma procedural, los operaciones permanecen separados

datos

y las

Copyright 2004

Pilares: Encapsulamiento

El Paradigma de la orientacin a objetos


Definicin de Datos y Estructuras Implementacin de Operaciones sobre Datos y Estructuras

En el paradigma de la orientacin a objetos, tanto los datos como las operaciones que actan sobre ellos estn envueltos en una cpsula

Copyright 2004

Pilares: Modularidad

Modularidad
La Modularidad involucra la divisin de un sistema completo de software en partes ms pequeas y manejables denominadas mdulos Encapsulacin y Modularidad se complementan El encapsulamiento esconde los detalles de la implementacin y la Modularidad permite el agrupamiento lgico de entidades relacionadas La Encapsulacin y la Modularidad aseguran que una interfaz limpia est disponible para los usuarios de la entidad

Copyright 2004

Pilares: Herencia - Jerarqua

Jerarqua
La jerarqua se refiere a la clasificacin u ordenamiento de abstracciones Las abstracciones que conforman un sistema completo estn basadas en un orden particular Las estructuras es un y tiene un, estn asociadas con la jerarqua La herencia pertenece a la jerarqua es un mientras que la Agregacin pertenece a la jerarqua tiene un

Copyright 2004

Pilares: Herencia

Herencia
La herencia implica que una entidad B comparte la estructura y conducta de una entidad A En este contexto, la entidad A es llamada la superclase (o la clase base), y la entidad B es llamada la subclase (o la clase derivada)
Superclase Vehculo

es-un Subclase Automvil

Herencia entre las entidades Vehculo y Automvil


Copyright 2004

Pilares: Herencia

Herencia
Las subclases pueden especializar algunas caractersticas heredando las caractersticas de la entidad original y re-definiendo dichas caractersticas. La herencia se refiere as a una relacin generalizacin-especializacin entre entidades

Copyright 2004

Herencia y Jerarqua

Jerarqua en la Herencia
Humano

Europeo

Asitico

Francs

Italiano

Hind

Coreano

Siciliano

Napolitano

Copyright 2004

Herencia Mltiple

Ejemplos de Herencia Mltiple


Animal
Profesor Estudiant e

Animal Terrestre

Animal Acutico

Preparador

Animal Anfibio

Es posible para una subclase heredar de mas de una superclase


Copyright 2004

Agregacin

Agregacin
Es posible para una entidad contener a otra entidad Esto es denominado como una relacin tiene un entre entidades

Automvil

Puerta

Asiento

Maletero

Copyright 2004

Ocultamiento de Informacin

Ocultamiento de Informacin
Debido al encapsulamiento, los datos y la implementacin de las operaciones son escondidas al usuario Teniendo los datos miembros y sus operaciones encapsuladas, el usuario slo necesita saber cmo acceder a las operaciones El ocultamiento de informacin y las interfases se unen para garantizar la seguridad de los datos y el cumplimiento de las reglas y validaciones en el uso de las entidades

Copyright 2004

Polimorfismo

Polimorfismo
Polimorfismo es la tcnica de usar una interfaz para mltiples implementaciones Permite a las entidades tener diferentes estructuras internas para compartir la misma interfaz externa Polimorfismo significa un nombre y mltiples funciones

Copyright 2004

Polimorfismo

Polimorfismo
Figura_Geomtrica Atributos: Funciones: area()

es-un

es-un

es-un

Crculo Atributos: radio = 3.6 Funciones: area()= pi*radio*radio

Tringulo Atributos: base = 2.0 altura = 4.0 Funciones: area()= base*altura/2.0

Rectngulo Atributos: lado1 = 3.5 lado2 = 2.5 Funciones: area()= lado1*lado2

Copyright 2004

Desarrollo de Sistemas Orientados a Objetos

Ventajas
Reusabilidad Cuando el comportamiento es heredado desde otra entidad, no se necesita reescribir el cdigo Esto ahorra costos de mantenimiento Proporciona una forma eficiente de compartir el mismo cdigo Desarrollo Rpido de Prototipos Cuando un sistema de software se disea bsicamente con componentes reutilizables, el tiempo de desarrollo se puede usar para comprender el nuevo sistema
Copyright 2004

Desarrollo de Sistemas Orientados a Objetos

Beneficios
Promete elevar los niveles de productividad de los programadores, software de mejor calidad y menor costo de mantenimiento Los programas se pueden construir desde mdulos de trabajo estndares que se comunican unos con otros. Permite ahorrar tiempo de desarrollo e incrementar la productividad Facilita dividir el trabajo en proyectos basados en entidades Es posible tener mltiples instancias de una entidad coexistiendo sin interferencias

Copyright 2004

Desarrollo de Sistemas Orientados a Objetos

Beneficios
Los programadores pueden construir programas ms seguros que no puedan ser invadidos por cdigo de otras partes del sistema La herencia elimina el cdigo redundante y extiende el uso de las entidades existentes El enfoque centrado en los datos permite capturar ms detalles del modelo para la implementacin

Copyright 2004

Sumario

Resumen
Explicar la necesidad de la orientacin a objetos Describir la tecnologa orientada a objetos Definir encapsulamiento y sealar sus beneficios Discutir la abstraccin, agregacin, herencia y polimorfismo Describir los beneficios de la tecnologa orientada a objetos

Copyright 2004

Unidad 2

Clases y Objetos

Copyright 2004

Objetivos

Objetivos de Aprendizaje
Describir las clases y objetos, y su uso en los sistemas orientados a objetos Discutir el uso de mensajes y mtodos Explicar la tcnica de depuracin de sustantivos para la identificacin de clases

Copyright 2004

Entidades del Mundo Real

Entidades
Las entidades son los objetos, conceptos e ideas del mundo real La lista de entidades en el mundo real es infinita Algunos ejemplos de entidades en el mundo real son:
Florista Estudiante Libro Tarjeta de registro Formato de reservacin Cliente Cuenta de ahorros Taln de retiro Reloj Tabla Miembro de biblioteca Tarjeta de biblioteca Flor
Copyright 2004

Entidades del Mundo Real

Podemos agrupar algunas de las entidades de la lista anterior en las siguientes categoras: o Estudiantes, Tarjeta de registro o Miembro de biblioteca, Tarjeta de biblioteca, Libro o Cliente, Taln de retiro, Cuenta de ahorros o Florista, Flor Las entidades se agrupan de acuerdo a su conducta Por conducta entendemos las responsabilidades de una entidad en el mundo real Los trminos conducta y responsabilidades son normalmente usados indistintamente cuando se discute la tecnologa orientada a objetos

Copyright 2004

Clases en la Orientacin a Objetos

Clases
En el anlisis existen entidades que representan elementos del mundo real. En el entorno de la solucin existen las clases como tipos de datos definidos por el usuario Las clases son la descripcin de un tipo de dato Las variables creadas a partir de un tipo de dato clase, son denominadas instancias u objetos de la clase Las clases son tipos de datos agregados definidos por el usuario

Copyright 2004

Clases en la Orientacin a Objetos

Clases vs. Entidades


Cliente del Banco

Cliente
Cuenta de Ahorros

Cuenta de Ahorros Cuenta Corriente Planilla de Deposito

Cuenta Corriente

Planilla de Deposito

Relacin entre el Mundo Real y el Mundo Orientado a Objetos - (Escenario Bancario)


Copyright 2004

Clases en la Orientacin a Objetos

Las clases contienen tanto los datos miembros representando los tipos, como las funciones miembros que implementan operaciones en esos tipos Una clase es similar a una estructura en C Para describir el tipo de dato Estudiante definido por el usuario, podemos identificar los siguientes datos miembros: o Nombre del estudiante o Edad del estudiante o Direccin del estudiante o Disciplinas en las que el estudiante fue admitido o Cursos registrados por el estudiante en un semestre
Copyright 2004

Clases en la Orientacin a Objetos

Vistas de una Clase


Conducta (Funciones miembro) Atributos (Datos miembro)

Clase con datos y operaciones

Implementacin (Privada, escondida)

Interfaz (Pblica, revelada)

Clase con Interfaz e Implementacin


Copyright 2004

Clases en la Orientacin a Objetos

Definicin de la clase Crculo


1.// Declaracin de clase Crculo (Entidad) 2. public class Circulo{ 3. private float radio; // Atributos privados 4. private final float pi= 3.14159f; 5. // Interfaz 6. public float area(){ // No recibe parmetros 7. return(pi * radio * radio); //retorna el rea 8. } 9. public float getRadio(){ // Para leer el radio 10. return radio; // Retorna el valor del radio 11. } 12. public void setRadio(float rad){ // Para modificar el radio 13. if (rad > 0.0) // Radio debe ser mayor que cero 14. radio= rad; // Establece el valor del radio 15. else return; 16. }

Copyright 2004

Clases en la Orientacin a Objetos

Definicin de la clase Crculo


16. 17. 18. 19. 20. 21. 22. } // Funcin main public static void main(String args[]){ Circulo objCirc_1= new Circulo(); //Instancia de objeto Crculo objCirc_1.setRadio(3.6f); // Establece el radio en 3.6 System.out.println("El Area del Circulo de radio 3.6 es: "+ objCirc_1.area()); //Impresin por pantalla }

Copyright 2004

Objetos en la Orientacin a Objetos

Objetos
Una definicin simple de un objeto es que constituye una instancia de una clase Los objetos interactan unos con otros para proveer una solucin a un problema La clase es slo la descripcin del tipo de dato, el objeto es el que ocupa memoria en el computador Al momento de crear instancias o variables de la clase, el compilador reserva la cantidad de memoria adecuada para el tipo de dato solicitado

Copyright 2004

Objetos en la Orientacin a Objetos

Objetos
De un objeto puede decirse que tiene lo siguiente: o Estado, en un momento dado o Identidad, que es nica entre objetos del sistema o Conducta, que usualmente son las operaciones sobre los datos de esa clase La estructura y conducta de objetos similares son definidas en su clase comn

Copyright 2004

Objetos en la Orientacin a Objetos

Estado: El estado de un objeto son las propiedades y los valores que estas propiedades toman en un momento dado Identidad: La identidad de un objeto se refiere a la manera nica por la cual el objeto es conocido, referido, y distinguido de todos los dems objetos del sistema Conducta: La conducta se refiere a las responsabilidades que el objeto ofrece asumir y cumplir. Es tambin la forma cmo un objeto reacciona a los cambios de estado
Copyright 2004

Objetos en la Orientacin a Objetos

Mtodos: Los mtodos son los algoritmos usados por la clase para implementar las tareas ofrecidas por la interfase Tambin se usa el trmino funcin miembro Mensajes: Un mensaje es el mecanismo usado por un objeto para tomar una tarea llevada a cabo por otro objeto Un mensaje puede cambiar el estado del objeto receptor Un mensaje puede tomar ninguno o ms argumentos especficos Cuando un mensaje es enviado, el nombre del objeto es asociado con el mensaje
Copyright 2004

Clases Abstractas

Clases Abstractas
Existen circunstancias en las que se necesita crear clases que encapsulen el comportamiento general de ciertas entidades Estas clases por si mismas no pueden ser instanciadas como objetos Ellas simplemente proporcionan una interfaz que la clase derivada hereda e implementa Estas clases son tiles para describir a un nivel ms alto el comportamiento general de las entidades del mundo real Se conocen como clases abstractas
Copyright 2004

Ejemplo de Clases Abstractas

Clases Abstractas
Vehculo Clases abstractas Vehculo Terrestre Vehculo Areo Vehculo Acutico

Vehculo de dos Ruedas

Vehculo de cuatro Ruedas

Aeroplano

Bicicleta

Automvil

Clases concretas

Copyright 2004

Clases y Objetos

Identificacin de Clases
El primer paso en la construccin de un modelo de objetos es identificar las clases relevantes del dominio de la aplicacin Al identificar las clases es posible establecer los limites del problema a resolver Todas las clases deben tener significado en el dominio de la aplicacin Se debe establecer un esquema para agrupar objetos en clases

Copyright 2004

Clases y Objetos

Identificacin de Clases
Los pasos bsicos de la tcnica de depuracin de sustantivos son los siguientes: o Establecer la lista inicial de sustantivos que formaran las clases candidatas o Depurar la lista inicial de clases de clases candidatas o Identificar los atributos de las clases o Asignar responsabilidades a las clases

Copyright 2004

Sumario

Resumen
Describir las clases y objetos, y su uso en los sistemas orientados a objetos Discutir el uso de mensajes y mtodos Explicar la tcnica de depuracin de sustantivos para la identificacin de clases

Copyright 2004

Unidad 3

Laboratorio de Clases y Objetos

Copyright 2004

You might also like