Subido por gioer21

Paradigmas de programación

Anuncio
MATERIA:
Paradigmas de
Programacion
UNIVERSIDAD DE EL SALVADOR
Facultad Multidisciplinaria de Occidente
Departamento de Ingeniería y Arquitectura
Docente:
Paradigma Orientados a
Objetos
Ing. Luis A. Barrera
Grupo:
01 al 05
Modulo:
Conceptos del Modelo Orientado a Objetos
Ahora que la demanda de software nuevo y más poderoso va en aumento, crear
software en forma rápida, correcta y económica sigue siendo un objetivo difícil de
alcanzar.
Los objetos, o dicho en forma más precisa, las clases de las que provienen los objetos,
son en esencia componentes de software reutilizable.
Conceptos del Modelo Orientado a Objetos
Los grupos de desarrollo de software pueden usar una metodología de diseño e
implementación orientada a objetos y modular para ser mucho más productivos de lo
que era posible con las técnicas populares anteriores, como la “programación
estructurada”. Por lo general los programas orientados a objetos son más fáciles de
comprender, corregir y modificar.
Conceptos del Modelo Orientado a Objetos
Casi cualquier sustantivo se puede representar de
manera razonable como un objeto de software en
términos de sus atributos (como el nombre, color y
tamaño) y comportamientos (por ejemplo, calcular,
moverse y comunicarse).
Ejemplo: El automóvil como un objeto
Diseño de Software
Clase
Objeto
Atributos
Métodos
Ejemplo: El automóvil como un objeto
Diseño de Software
Clase
Color
Dimensiones
Número de llantas
Número de Puertas
Número de asientos
Velocidad máxima
etc
Objeto
Atributos
Diseño del Automóvil
Clase Automóvil
Objeto Automóvil que
nace de la clase
Automovil
Métodos
Acelerar
Frenar
Encender
Apagarse
Abrir puerta
Objetos – Clases
Los objetos pueden ser organizados en
categorías y una clase describe, en forma
abstracta, todos los objetos de un tipo
en particular.
Objetos – Clases
Podemos aclarar estas nociones abstractas mediante un ejemplo. Suponga que
desea modelar una simulación de tráfico. Un tipo de entidad con la que tendrá
que trabajar es autos. ¿Qué es un auto en nuestro contexto? ¿Es una clase o es
un objeto? Algunas preguntas nos ayudarán a tomar una decisión.
¿De qué color es un auto?
¿Cuán rápido puede marchar?
¿Dónde está en este momento?
Objetos – Clases
Observará que no podemos responder estas preguntas a menos que hablemos de un
auto específico. La razón es que, en este contexto, la palabra «auto» refiere a la
clase auto puesto que estamos hablando de los autos en general y no de uno en
particular
Si digo «Mi viejo auto se encuentra estacionado en el garaje de
casa», podemos responder todas las preguntas anteriores: este auto
es rojo, no marcha demasiado rápido y está en mi garaje. Ahora
estoy hablando de un objeto, un ejemplo particular de un auto.
Métodos y Mensajes
Para realizar una tarea en una aplicación se requiere un método.
Ese método aloja las instrucciones del programa que se
encargan de realizar sus tareas. El método oculta al usuario
estas instrucciones, de la misma forma que el pedal del
acelerador de un auto oculta al conductor los mecanismos para
hacer que el auto vaya más rápido.
Métodos y Mensajes
Por ejemplo, una clase que representa a una cuenta bancaria podría
contener un método para depositar dinero en una cuenta, otro para retirar
dinero de una cuenta y un tercero para solicitar el saldo actual de la
cuenta. Una clase es similar en concepto a los dibujos de ingeniería de un
auto, que contienen el diseño de un pedal acelerador, volante de dirección,
etcétera.
Métodos y Mensajes
Cuando usted conduce un auto, al presionar el pedal del acelerador envía un
mensaje al auto para que realice una tarea: aumentar la velocidad. De manera
similar, es posible enviar mensajes a un objeto. Cada mensaje se implementa
como llamada a método, para indicar a un método del objeto que realice su
tarea. Por ejemplo, un programa podría llamar al método depositar de un objeto
cuenta de banco para aumentar el saldo de esa cuenta.
Constructores y Destructores
Las variables que guardarán los atributos propios de cada objeto, también
llamadas variables de instancia o miembros dato.
int numeroPuertas;
String placa;
Los constructores la clase recibirán el valor del atributo para asignarlo a las
variables de instancia de la clase.
¿Qué es un destructor de clase?
Un destructor es un método que se invoca automáticamente cuando el objeto
se destruye. Java no posee destructores, porque tiene recolección de basuras.
Encapsulamiento
Las clases y sus objetos encapsulan (envuelven) sus atributos y métodos. Los
atributos y métodos de una clase (y sus objetos) están muy relacionados entre sí.
Los objetos se pueden comunicar entre sí, pero por lo general no se les permite saber
cómo están implementados otros objetos; los detalles de implementación están
ocultos dentro de los mismos objetos.
Herencia
Mediante la herencia es posible crear con rapidez y de manera conveniente una
nueva clase de objetos. La nueva clase (conocida como subclase) comienza con las
características de una clase existente (conocida como superclase), con la posibilidad
de personalizarlas y agregar características únicas propias.
En nuestra analogía del auto, sin duda un objeto de la clase “convertible” es un
objeto de la clase más general llamada “automóvil” pero, de manera más específica,
el toldo puede ponerse o quitarse.
Herencia
Este lenguaje sólo soporta la herencia simple, en donde cada clase se deriva sólo de
una superclase directa. A diferencia de C++, Java no soporta la herencia múltiple
(qué ocurre cuando una clase se deriva de más de una superclase directa).
Polimorfismo
El polimorfismo nos permite “programar en forma general ”, en vez de
“programar en forma específica”. En particular, nos permite escribir programas
que procesen objetos que compartan la misma superclase (ya sea de manera
directa o indirecta) como si todos fueran objetos de la superclase; esto puede
simplificar la programación.
Polimorfismo
Ejemplo: Cuadriláteros
Si la clase Rectangulo se deriva de la clase Cuadrilátero, entonces un objeto Rectángulo es
una versión más específica de un objeto Cuadrilátero. Cualquier operación (por ejemplo,
calcular el perímetro o el área) que pueda realizarse en un objeto Cuadrilátero también
puede realizarse en un objeto Rectángulo. Estas operaciones también pueden realizarse en
otros objetos Cuadrilátero, como Cuadrado, Paralelogramo y Trapezoide.
Polimorfismo
Ejemplo: Cuadriláteros Cont…
El polimorfismo ocurre cuando un programa invoca a un método a través de una variable de
la superclase Cuadrilátero; en tiempo de ejecución, se hace una llamada a la versión
correcta del método de la subclase, con base en el tipo de la referencia almacenada en la
variable de la superclase.
Descargar