Sunteți pe pagina 1din 33

PARADIGMA ORIENTADO

A OBJETOS
AGENDA

• Que es Programación Orientada a Objetos (POO).


• Conceptos Fundamentales:
• ABSTRACCION.
• ENCAPSULAMIENTO.
• HERENCIA.
• POLIMORFISMO.
• Que es un Clase?
• Que es un Objeto?
• Como hacer Herencia?
AGENDA

• Cuando se usa el Polimorfismo?


• Diseño e implementación de Polimorfismo.
PROGRAMACIÓN ORIENTADA A
OBJETOS (POO)
• La POO es un paradigma de programación, la cual permite
relacionar los objetos del mundo real y de alguna manera
llevar estos conceptos a la programación.
• Y como se puede relacionar los objetos del mundo real con la
programación?
• Loque se intenta es crear sistemas basados no sólo en
código sino más bien pensar en objetos que se comuniquen
entre sí, reutilizar código y de alguna manera modularizar un
programa.
PROGRAMACIÓN ORIENTADA A
OBJETOS (POO)
Para entender mejor, imagina el cuerpo humano……….

• ….. tiene un conjunto de partes internas que necesita para


funcionar, estas partes están agrupadas en sistemas……..
• Sistema Nervioso.
• Sistema Digestivo.
• Sistema linfático.
• Sistema Respiratorio
PROGRAMACIÓN ORIENTADA A
OBJETOS (POO)
• Eso mismo es lo que trata de simular la POO en la
programación, agrupar características similares
llamadas clases (que pertenezcan a un mismo tipo), a
partir de esas clases crear a objetos y que esos objetos se
comuniquen entre sí mismo a través de mensajes, de tal
manera que la unión de todos esos objetos forme un
programa.
CONCEPTOS FUNDAMENTALES

• Para
entender mejor este paradigma vamos a revisar cuatro
conceptos fundamentales.

• ABSTRACCION.
• ENCAPSULAMIENTO.
• HERENCIA.
• POLIMORFISMO.
ABSTRACCION

• Eltérmino abstracción consiste en ver a algo como un


todo sin saber cómo está formado internamente.
• Sedice que las personas gestionan la complejidad a través
de la abstracción, que quiere decir esto, por ejemplo para
alguien es difícil entender todos los componentes, circuitos
de un televisor y como trabajan, sin embargo es más fácil
conocerlo como un todo, como un televisor, sin pensar en sus
detalles o partes internas.
ABSTRACCION
ABSTRACCION

• En conclusión el concepto de abstracción trata la


descomposición de sistemas complejos en partes sencillas,
las cuales se pueden describir fácilmente.
• Un ejemplo de abstracción en Java es una clase, ya que
se la define como un todo.
• Elobjetivo es que el usuario pueda crear objetos de esa
clase, que utilice sus métodos, y que no se preocupe por
su implementación o como está diseñada.
ENCAPSULAMIENTO

• Cuando se habla de encapsulamiento, hablamos de ocultar


la información, este concepto es un poco más claro que la
abstracción.
• Estetema significa que sólo se debe mostrar los detalles
esenciales de un objeto, mientras que los detalles no
esenciales se los debe ocultar.
ENCAPSULAMIENTO
ENCAPSULAMIENTO

• Elencapsulamiento en Java lo tenemos en una clase, en la


que se puede ocultar o restringir los datos (variables) o el
código (métodos) utilizando palabras reservadas del
lenguaje.
HERENCIA

• El
concepto fundamental de la herencia es el proceso en el
que un objeto adquiere características de otro objeto.
• Siguiendocon el ejemplo anterior del celular, un celular  es
un equipo con características básicas.
• Ahora pensemos en un Smartphone…..
HERENCIA

• Elproblema anterior se soluciona utilizando la herencia, con


lo que ya no crearía uno nuevo si no que heredaría del objeto
celular (reutilización) y lo que haría simplemente es añadir
solo las nuevas características y tendría el nuevo modelo que
es el Smartphone.
• Laherencia también ayuda a la reutilización, puesto que si
ya tengo algo creado lo puedo reutilizar y no perder tiempo
creando algo de nuevo.
POLIMORFISMO

• El polimorfismo es una palabra de origen griego que significa


“muchas formas”, es un término un poco complejo de
entender, que a veces sólo se lo entiende con la práctica.
• Elconcepto dice que es la capacidad de un objeto
para comportarse de diferentes formas de acuerdo al
mensaje enviado
POLIMORFISMO

• Estetérmino está relacionado con la herencia. Podemos


hacer una analogía con el celular……….

• Lafunción hacer llamada se comporta de forma diferente


para cada número marcado, que este caso sería el mensaje
que le envías a la función hacer llamada.
QUE ES UNA CLASE?

• Las clases son la base de la programación orientada a


objetos, una clase es una plantilla, molde o modelo para
crear objetos.
• Una clase está compuesta por características, propiedades o
atributos (variables) y por su
comportamiento (métodos) que trabajan sobre las
propiedades.
SINTAXIS  DE UNA CLASE
QUE ES UNA CLASE?

• Considera una clase como un molde…..


• Comparemos con una plantilla para crear una solicitud de permiso….
• Estas plantillas tienen toda la información, lo único que se cambia son
ciertos datos.
• Y con una sola plantilla yo podría crear varias solicitudes.
• De qué sirve esto, esto ayuda a no crear de nuevo una solicitud si no
sólo adaptarla a un nombre específico de acuerdo al solicitante.
• Así mismo son las clases, a partir de una clase se pueden crear muchos
objetos, cada objeto tendrá sus propias características.
QUE ES UNA CLASE?

• Ejemplo: Voy a crear una clase celular, con sus atributos:


color, modelo, marca, con dos constructores y
los métodos llamar, cortar llamada, informar características
y  los métodos getters y setters que permiten acceder a los
atributos de la clase.

• Celular.java
QUE ES UNA CLASE?

• Con esta clase tenemos dos de los cuatro conceptos


vistos anteriormente: 
• Abstracción.
• Encapsulamiento.
QUE ES UNA CLASE?

• Abstracción: Cuando creamos la clase Celular, estamos haciendo


abstracción puesto que cuando creemos un objeto de tipo Celular, al
usuario le interesa el objeto celular,  no le interesa que es lo que tiene
dentro la clase ni como está implementada, si no utilizar los métodos
del objeto, llamar y cortar llamada e informar características.
• Encapsulamiento: Las palabras reservadas private, public,
default, dan cierto grado de visibilidad del contenido de la clase, por
ejemplo la palabra reservada private solo permite acceder a ese
atributo desde dentro de la misma clase, si intentas acceder desde el
objeto creado, por ejemplocelular.marca te lanzará un error.
QUÉ ES UN OBJETO?

• Unobjeto es una instancia de una clase, una instancia


es un ejemplar, un caso específico de una clase, por
ejemplo yo puedo crear varios objetos de tipo clase y cada
uno es diferente, por ejemplo el primero objeto es de color
negro, el segundo objeto es de color blanco.
• Como cada objeto es diferente se le conoce como instancia,
entonces cuando escuches el término “hay que instanciar “,
se refiere a crear un nuevo objeto y que cada objeto es
diferente.
CÓMO CREAR UTILIZAR UN OBJETO
DE TIPO CELULAR?

• Test.java

• Hasta ahora hemos visto


la Abstracción y Encapsulamiento de la Programación
Orientada a Objetos.
CÓMO HACER HERENCIA?

• La sintaxis de la herencia utiliza la palabra


reservada extends luego el nombre de la clase que se quiere
heredar:
• La sintaxis para una clase con herencia viene dado de la
siguiente manera:
CÓMO HACER HERENCIA?

• Hay que tener en cuenta que sólo se puede heredar de una sola clase y
que a la clase de la que se hereda se le llama clase base, superclase o
clase padre, mientras a la clase que hereda se le llama subclase.
• Ejemplo: Digamos que quiero crear un objeto SmartPhone. Un
SmartPhone además de las características propias de un celular,
aumenta las siguientes características:
• Cámara y debo saber el número de megapíxeles que tiene.
• Memoria ram y debo saber su capacidad en GB.
• Almacenamiento para fotos, documentos y debo saber cuándo tiene de
almacenamiento en GB.
CÓMO HACER HERENCIA?

• Dado lo anterior necesitamos crear una nueva clase para el objeto


SmartPhone, pero si nos damos cuenta estamos duplicando código ya
que un SmartPhone tiene algunas características que las tiene la clase
Celular por ejemplo, color, modelo marca etc.
• Aquí es cuando aparece la herencia y optimiza la creación de clases y la
duplicación de código, con la herencia podemos crear nuevas clases,
sólo añadir las nuevas características y heredar de otra clase lo que
necesitemos.

• SmartPhone.java
CREAR UN OBJETO DE TIPO
SMARTPHONE
• TestSmart.java

• Con la herencia se ha utilizado atributos definidos en la clase


Celular, y el método informarCaracterísticas () se ha
sobrescrito, la sobrescritura es el proceso de modificar el
código al método de la clase padre.
CUANDO SE UTILIZA EL
POLIMORFISMO?
• Digamos que estamos creando un programa que simule un peaje,
por un peaje pasan distintos tipos de vehículos: una moto, un
camión, un bus y un auto, cada uno paga impuestos diferentes.
• Lo que queremos hacer es que la clase Peaje, implemente el cobro
para los distintos tipos de vehículos.
• Para este ejemplo vamos a crear varias clases de manera que
podamos entender el polimorfismo.
• Creamos la clase vehículo,  auto, vehículo, camión, bus y moto.
DISEÑO E IMPLEMENTACIÓN
SIN POLIMORFISMO
• Vehiculo.java
• Auto.java
• Moto.java
• Camion.java
• Bus.java
• Peaje.java
• TestPolimorfismo.java
DISEÑO E IMPLEMENTACIÓN CON
POLIMORFISMO
• Semodifica la clase Peaje, para que en vez de tener un
método por cada tipo de Vehículo, se reduzca a sólo a un
método y que este método identifique el tipo de vehículo.
• Elmétodo recibe un parámetro que es un objeto de tipo
Vehículo, puesto que cada tipo de vehículo hereda de
Vehículo, el compilador en tiempo de ejecución identificará a
cual pertenece.
DISEÑO E IMPLEMENTACIÓN CON
POLIMORFISMO
• Peaje.java
• Test.java

• Como se puede observar a esto se refiere el polimorfismo,


diferente forma de comportarse de acuerdo al mensaje
enviado.

S-ar putea să vă placă și