Escolar Documentos
Profissional Documentos
Cultura Documentos
INTRODUCCIÓN A LA PROGRAMACIÓN
SEMANA 8
Introducción a la Programación
Orientada a Objetos. Parte II
Todos los derechos de autor son de la exclusiva propiedad de IACC o de los otorgantes de sus licencias. No está
permitido copiar, reproducir, reeditar, descargar, publicar, emitir, difundir, poner a disposición del público ni
utilizar los contenidos para fines comerciales de ninguna clase.
IACC
1
SEMANA 8 – INTRODUCCIÓN A LA PROGRAMACIÓN
APRENDIZAJE ESPERADO
Analizar propiedades fundamentales, modos de acceso y
sobrecarga de métodos y operadores en la Programación
Orientada a Objetos.
IACC
2
SEMANA 8 – INTRODUCCIÓN A LA PROGRAMACIÓN
APRENDIZAJE ESPERADO..................................................................................................................... 2
INTRODUCCIÓN ................................................................................................................................... 4
1. PROPIEDADES FUNDAMENTALES DE LA POO ............................................................................. 5
1.1. INTERFACES ......................................................................................................................... 5
1.2. POLIMORFISMO .................................................................................................................. 9
1.3. HERENCIA .......................................................................................................................... 10
1.4. ABSTRACCIÓN.................................................................................................................... 12
1.5. MODULARIDAD ................................................................................................................. 15
1.6. ENCAPSULAMIENTO .......................................................................................................... 15
2. MODOS DE ACCESO................................................................................................................... 16
2.1 MODO PÚBLICO (PUBLIC).................................................................................................. 18
2.2 MODO PRIVADO (PRIVATE) ............................................................................................... 18
2.3 MODO PROTEGIDO (PROTECTED) ..................................................................................... 18
3. SOBRECARGA DE MÉTODOS Y DE OPERADORES .......................................................................... 19
3.1. CONCEPTO ......................................................................................................................... 19
3.2. UTILIDAD ........................................................................................................................... 21
3.3. OPERADORES UNARIOS Y BINARIOS ................................................................................. 22
COMENTARIO FINAL.......................................................................................................................... 24
IACC
3
SEMANA 8 – INTRODUCCIÓN A LA PROGRAMACIÓN
INTRODUCCIÓN
La Programación Orientada a Objetos tiene Es importante reconocer las funcionalidades
un conjunto de pilares que establecen la de la POO tal como los modos de acceso, las
base y la robustez de este paradigma de sobrecargas y todos los elementos que
programación. permitirán que el programador pueda
modelar y realizar programas con
Estos pilares o características de la POO abstracciones de datos y definiendo
deben conocerse y utilizarse como una entidades asociadas a la realidad del
filosofía de trabajo a la hora de programar en problema que resuelve por medio del
lenguajes que trabajen con la orientación a
computador.
objetos.
IACC
4
SEMANA 8 – INTRODUCCIÓN A LA PROGRAMACIÓN
1.1. INTERFACES
Antes de definir una interfaz se debe tener en claro que en la Programación Orientada a Objetos
una interfaz no se refiere a “entorno grafico”, sino representa una descripción de uno o más
métodos que una clase puede implementar. A continuación, se plantea un ejemplo que permite
reconocer este concepto:
EJEMPLO
Una persona es salvavidas. Se entenderá entonces que, de acuerdo con su oficio, este
individuo es capaz de responder ante una emergencia en el agua.
En este caso se está describiendo una función de lo que hace un salvavidas, pero además
se debe considerar que una persona es quien tiene implementada esta condición.
IACC
5
SEMANA 8 – INTRODUCCIÓN A LA PROGRAMACIÓN
Microsoft (2015) menciona que una interfaz corresponde a una agrupación de métodos abstractos
y constantes cuyo objetivo es determinar cómo funciona una clase, es decir, la interfaz es una
plantilla o molde. La interfaz como tal no tiene ningún uso, solo se definen su tipo, argumento y
tipo de retorno.
IACC
6
SEMANA 8 – INTRODUCCIÓN A LA PROGRAMACIÓN
IACC
7
SEMANA 8 – INTRODUCCIÓN A LA PROGRAMACIÓN
IACC
8
SEMANA 8 – INTRODUCCIÓN A LA PROGRAMACIÓN
http://slideplayer.es/slide/10779589/
1.2. POLIMORFISMO
De acuerdo con Canchala (s. f.) puede ocurrir en la programación orientada a objetos que un
método o una acción corresponda o coincida en diferentes clases o incluso en una misma clase
pero realizando una función diferente. El polimorfismo da la posibilidad que dos métodos
implementen distintas acciones a pesar de tener el mismo nombre y esto dependerá del objeto
que ejecute el método.
IACC
9
SEMANA 8 – INTRODUCCIÓN A LA PROGRAMACIÓN
Forma
- Área
- CalcularÁrea ()
A pesar que el método es CalculaÁrea (), para cada objeto el cálculo es diferente y ejecuta
diferentes ecuaciones para determinar esta área.
Con esto se define que el polimorfismo representa la capacidad que tienen los objetos de una
clase para actuar o responder al mismo mensaje en función de los parámetros utilizados cuando
fueron invocados.
1.3. HERENCIA
De acuerdo con Roldán (2016), la herencia destaca como una propiedad de la POO que permite
que a partir de una clase se creen nuevas clases atributos y métodos de la clase madre. La ventaja
de esta propiedad radica en que se tiene la capacidad de definir nuevos atributos y métodos para
la subclase creada. La herencia permite definir una estructura jerárquica entre clases que va
especializando a las mismas dentro del programa.
Otra ventaja para el programador es que no debe empezar de cero la creación de clases, puede
disponer de una biblioteca de clases y a partir de allí generar las que le sean útiles de acuerdo con
los atributos o métodos que se requieran.
En la siguiente imagen se observa cómo a partir de una clase se heredan métodos o atributos a
dos subclases diferentes.
IACC
10
SEMANA 8 – INTRODUCCIÓN A LA PROGRAMACIÓN
La siguiente imagen muestra el caso en el que una clase tiene herencia múltiple, es decir, hereda
de dos clases madres diferentes:
Finalmente, la imagen muestra la propiedad de herencia de la clase vehículo en las subclases taxi y
autobús, heredando métodos y campos comunes:
IACC
11
SEMANA 8 – INTRODUCCIÓN A LA PROGRAMACIÓN
Fuente: https://goo.gl/A4n6eT
1.4. ABSTRACCIÓN
De acuerdo con Canchala (s. f.), la abstracción es una propiedad que consiste en que un objeto
tiene características propias que lo hacen diferente y lo distinguen de otros tipos de objetos. La
abstracción se enfoca con la visión externa del objeto.
Las abstracciones se pueden dar en diferentes niveles de acuerdo con Canchala (s. f.):
IACC
12
SEMANA 8 – INTRODUCCIÓN A LA PROGRAMACIÓN
De acuerdo con Álvarez (2014) la Programación Orientada a Objetos puede definir jerarquías por
medio de la herencia. Por ejemplo la clase animal puede tener subclases como animales
mamíferos, invertebrados, etc., dentro de la subclase mamíferos se puede representar una vaca,
un perro, etc.
En este sentido, siguiendo el planteamiento anterior, un animal puede abarcar desde un zancudo
hasta una ballena incluso un ser humano. Todas estas representaciones de los animales son
admitidas por el cerebro humano que de forma genérica define “los seres vivos de un reino”. En
este sentido, para describir o definir lo que es un animal en general, se debe ser muy genérico ya
que las especificaciones no aplican para todos los animales, por ejemplo no se puede decir “los
animales nacen de huevos” ya que esto no aplica para todos los animales.
Ahora bien, esto conlleva a definir que una abstracción es justamente utilizar palabras o
descriptores sin mucho detalle para poder generalizar y tener una abstracción de las clases.
“¿en el mundo real hay un “animal” como tal? No, ni tan siquiera hay un “mamífero”. Lo
pero no “animal” en plan general. Es cierto que un perro es un animal, pero el concepto
Por tanto “animal”, en términos del lenguaje común, podemos decir que es un concepto
IACC
13
SEMANA 8 – INTRODUCCIÓN A LA PROGRAMACIÓN
animal concreto”.
Así, una clase abstracta tiene definidos métodos abstractos sobre los que no se pueden instanciar
objetos. Entonces, la abstracción se centra en definir las características esenciales de un objeto, en
relación a la perspectiva del programador.
IACC
14
SEMANA 8 – INTRODUCCIÓN A LA PROGRAMACIÓN
1.5. MODULARIDAD
Canchala (s. f.), define que la modularidad se basa en descomponer un programa o dividirlo en
módulos que se puedan compilar por separado, pero conectados entre sí. La POO debe permitir:
La siguiente figura representa los módulos que se deben programar para trabajar con el objeto
perro:
1.6. ENCAPSULAMIENTO
Roldán, Á. (2016) define el encapsulamiento como un mecanismo de organización de atributos y
métodos del objeto que se implementa, esto, con el fin de garantizar la integridad de los datos
que contiene el objeto.
Esta capacidad permite agrupar datos en un entorno con límites definidos de elementos distintos.
Para encapsular en POO primero se debe generalizar la abstracción y a partir de allí se definen los
límites que es lo que hace el encapsulamiento.
Un ejemplo real es cuando una persona decide ir a ver televisión: esta persona se preocupa solo
por cambiar de canal y subir o bajar el volumen. El funcionamiento de la televisión y la forma en
que los canales se muestran se mantienen ocultas al usuario ya que esto no le importa.
IACC
15
SEMANA 8 – INTRODUCCIÓN A LA PROGRAMACIÓN
Una clase y un método funcionan como una cápsula. Un ejemplo es un programa de televisión, el
usuario solo ve lo que se reproduce en la pantalla pero no conoce cómo se realizó el proceso ya
que está encapsulado.
2. MODOS DE ACCESO
Al declarar una clase en POO con sus atributos y métodos, se debe definir un rango de acción de
las mismas o una forma de acceso. Estos ámbitos de acción pueden ser principalmente de tres
tipos:
Público
Privado
Protegido
De acuerdo con Canchala (s. f.) las clases deben declararse públicas y los atributos deben
declararse como privados. Al definir los atributos privados no se puede ingresar a ellos desde otras
clases, al menos que se utilicen métodos getters y setters.
IACC
16
SEMANA 8 – INTRODUCCIÓN A LA PROGRAMACIÓN
IACC
17
SEMANA 8 – INTRODUCCIÓN A LA PROGRAMACIÓN
De esta forma, se deben generar métodos set y get para los atributos que sean necesarios.
Esto implica que si una clase hereda de otra, tendrá acceso a sus variables y funciones protegidas
de la súper clase.
IACC
18
SEMANA 8 – INTRODUCCIÓN A LA PROGRAMACIÓN
En el siguiente ejemplo se define una clase con 3 métodos y se muestra la sobrecarga, creando
una diferencia en el tipo de parámetro y el método que llamará a cada uno de ellos:
IACC
19
SEMANA 8 – INTRODUCCIÓN A LA PROGRAMACIÓN
class Sobrecarga {
objeto.prueba();
objeto.prueba(30);
objeto.prueba(−3.5,20.0,18.6);
}
}
IACC
20
SEMANA 8 – INTRODUCCIÓN A LA PROGRAMACIÓN
3.2. UTILIDAD
De acuerdo con EcuRed (s. f.), un método con sobrecarga se utiliza para reutilizar el nombre de un
método pero con argumentos distintos. Para utilizar la sobrecarga, el autor plantea las siguientes
reglas:
IACC
21
SEMANA 8 – INTRODUCCIÓN A LA PROGRAMACIÓN
Luego de implementar el método, se muestra una clase en la cual se aplica o se hace un llamado a
la sobrecarga del método:
IACC
22
SEMANA 8 – INTRODUCCIÓN A LA PROGRAMACIÓN
De acuerdo con EcuRed (s. f.), los operadores unarios actúan sobre un solo argumento. Un ejemplo
de operadores unarios son: el NOT o negación y los operadores ++ o – que incrementan o
decrementan el valor de un argumento.
Los operadores binarios actúan sobre dos argumentos, por ejemplo, el signo + se utiliza para
realizar la suma de dos valores, por lo tanto, se requieren de esos dos elementos (números) para
generar un resultado.
1) No se puede construir sus propios operadores. Se pueden sobrecargar solo los operadores
definidos en el lenguaje.
2) La sobrecarga de operadores funciona solo cuando se aplica a objetos de una clase.
3) No se puede cambiar la precedencia o asociatividad de los operados en C++ (idéntica a las
reglas de C ANSI).
4) No se puede cambiar un operador binario para funcionar con un único objeto o unario.
5) No se puede cambiar un operador unario para funcionar con dos objetos.
IACC
23
SEMANA 8 – INTRODUCCIÓN A LA PROGRAMACIÓN
COMENTARIO FINAL
La programación orientada a objetos representa un cambio radical en el estilo tradicional de
programar. La complejidad de los sistemas hace día a día que el programador deba hacer su
código más rentable y por tanto tener una mirada del mundo real.
Esta composición del mundo real en objetos es uno de los legados de la POO, pero se deben
conocer sus pilares y características que la distinguen de otros paradigmas para lograr dominar
esta forma de programar y de reflejar la realidad, tal como lo es el manejo de la herencia, el
polimorfismo, la abstracción y el encapsulamiento. Con esto el estudiante – programador tendrá
herramientas actualizadas y robustas en la forma en que se desarrollan sistemas informáticos en
un contexto actual.
IACC
24
SEMANA 8 – INTRODUCCIÓN A LA PROGRAMACIÓN
REFERENCIAS
Álvarez M. (2014). Qué es la Programación Orientada a Objetos. Recuperado de:
https://www.desarrolloweb.com/articulos/499.php
https://www.ecured.cu/Sobrecarga_de_operadores
Rodríguez, A. (s. f.). Tipos de modificadores de acceso en java: conceptos public, private y
IACC
25
SEMANA 8 – INTRODUCCIÓN A LA PROGRAMACIÓN
IACC
26