Sei sulla pagina 1di 16

Conceptos que se deben tener en

cuenta sobre este paradigma

Por : Italo Alexander Morales Zamora


 La Programación Orientada a Objetos (POO u OOP
según sus siglas en inglés) es un paradigma de
programación que usa objetos y sus interacciones para
diseñar aplicaciones y programas de computadora.
Está basado en varias técnicas, incluyendo herencia,
polimorfismo, y encapsulamiento. Su uso se popularizó
a principios de la década de 1990. Actualmente son
muchos los lenguajes de programación que soportan la
orientación a objetos. (VB.Net, Java, C++,C#,Power
Builder y Otros..)
 Es un paradigma de programación que define los programas en
términos de "clases de objetos", La programación orientada a
objetos (POO), expresa un programa como un conjunto de estos
objetos, que colaboran entre ellos para realizar tareas. Esto
permite hacer los programas y módulos más fáciles de escribir,
mantener y reutilizar.

 La POO hace que los problemas sean más sencillos, al permitir


dividir el problema. Está división se hace en objetos, de forma
que cada objeto funcione de forma totalmente independiente.
Un objeto es un elemento del programa que posee sus propios
datos y su propio funcionamiento. Es decir un objeto está
formado por datos (propiedades) y funciones que es capaz de
realizar el objeto (métodos).
 Las clases son las plantillas para
hacer objetos. Una clase sirve para Clase
definir una serie de objetos con
propiedades (atributos), Propiedades
comportamientos (operaciones o (Atributos)
métodos), y semántica comunes.
Hay que pensar en una clase como
un molde. A través de las clases se Comportamiento
obtienen los objetos en sí. Es decir (Métodos)
antes de poder utilizar un objeto se
debe definir la clase a la que
pertenece, esa definición incluye:
 a) Sus atributos. Es decir, los datos miembros de esa clase.
Los datos pueden ser públicos (accesibles desde otra clase)
o privados (sólo accesibles por código de su propia clase.
También se las llama campos.
 b) Sus métodos. Las funciones miembro de la clase. Son las
acciones (u operaciones) que puede realizar la clase.
 c) Código de inicialización. Para crear una clase
normalmente hace falta realizar operaciones previas (es lo
que se conoce como el constructor de la clase).
 d) Otras clases. Dentro de una clase se pueden definir
otras clases (clases internas, son consideradas como
asociaciones dentro de UML).
 Para crear una clase bien diseñada, utilizaremos la
Abstracción, Al implementar la Abstracción, definiremos
un concepto con un mínimo conjunto de funcionalidades
pensadas cuidadosamente que proporcione el
comportamiento fundamental de la clase de un modo
fácil de utilizar.

 Sabemos que la Abstracción, es la capacidad del ser


humano para definir una clase, con el podemos
proveer de imagen mental o conceptual.
 Se les llama instancias de clase. Son un elemento
en sí de la clase, un objeto se crea utilizando el Clase
llamado constructor de la clase. El constructor
es el método que permite iniciar el objeto.

 Un objeto contiene en sí mismo la información


y los métodos o funciones necesarios para
manipular esa información. Lo más importante
de los objetos es que permiten tener un control
total sobre 'quién' o 'qué' puede acceder a sus
miembros, es decir, los objetos pueden tener Objeto
miembros públicos a los que podrán acceder
otros objetos o miembros privados a los que
sólo puede acceder él. Estos miembros pueden
ser tanto variables como funciones.
Clase Objeto
Una representación Una instancia de una
simbólica de un objeto. clase.
Analogía: Un Plano. Analogía: Un edificio
basado en el plano.

Ejemplo
Cada formulario en un proyecto Visual Basic es un
objeto.
Cada formulario es una instancia de la clase Form.
 Podemos decir que un lenguaje está orientado a objetos si
soporta objetos como una característica fundamental del
mismo. Pero, ¿qué significa soportar objetos?
Fundamentalmente consiste en que el lenguaje permita las
siguientes características:

Encapsulamiento
Herencia
Polimorfismo
 Es la cualidad de unificar los datos y la forma de
manipularlos, de esta forma podemos ocultar el
funcionamiento de una clase y exponer solo los
datos que manipula (mediante propiedades), así
como proveer de medios para poder manipular
dichos datos (mediante métodos). De esta forma
solo exponemos al mundo exterior la
información y la forma de manipularla, ocultando
los detalles usados para manejar esos datos y, lo
que es más importante, evitando que nadie
manipule de una forma no controlada dicha
información.
 La esencia del encapsulamiento es que
cuando un objeto trae consigo su
funcionalidad esta ultima se oculta, por
ejemplo: por lo general la mayoría de
gente que ve televisión no sabe, o no
se preocupa de la complejidad
electrónica que hay de detrás de la
pantalla ni de todas las operaciones
que tienen que ocurrir para mostrar
una imagen en la pantalla es decir la
televisión hace lo que tiene que hacer
sin mostrarnos el proceso necesario
para ello.
 Es la cualidad de poder crear nuevas clases (o
tipos) basadas en otras clases, de forma que la
nueva clase obtenga todas las características de la
clase que ha heredado, tanto los datos que
contiene como la forma de manipularlos,
pudiendo añadir nuevas características e incluso
cambiar el comportamiento de algunas de las
incluidas en la clase base, (siempre que así se
haya previsto). Mediante la herencia podemos
crear de forma fácil una jerarquía de clases que
comparten un mismo comportamiento básico
pero que cada nueva generación puede tener (y
de hecho tiene) un nuevo comportamiento.
 Visto lo anterior podemos ya intuir que las clases pueden
organizarse jerárquicamente. Esta jerarquía viene
determinada por el uso realizado de la herencia. Con esta
organización empezamos a tener términos como: clase
padre, clase hija, superclase (o clase raíz) y clase final. A
continuación vamos a explicarlos:

 Clase padre o superclase: se dice que una clase es padre


de otra cuando sirve como punto de partida para crear a
esta última.
 Clase hija o subclase: es aquella clase que hereda de otra,
y es hija con respecto a su clase padre o su superclase.
 Clase final: toda aquella clase que no puede tener hijas.
 En el grafico anterior se representa una
jerarquía de clases de figuras geométricas. En la
cima de la jerarquía tenemos la clase “Figura”, y
es la clase padre de las clases “Circulo” y
“Poligono”. La clase “Circulo” es una clase hija de
la clase “Figura” y también es una clase final.
 La clase “Poligono” es clase hija de la clase
“Figura” y clase padre de las clases “Rectangulo”
y “Triangulo”. El resto de relaciones que faltan
serían similares a las ya explicadas

 La herencia puede ser de dos tipos:. simple y


compuesta La diferencia entre ambas es que en
el caso de herencia compuesta se permite
heredar de más de una clase. En otras palabras,
se trata de que una clase hija pueda tener más de
una clase padre.
 Consiste en la posibilidad de tener métodos con el
mismo nombre en distintas clases. Al hablar de
métodos en distintas clases nos estamos refiriendo a
métodos distintos y por tanto con comportamientos
distintos a pesar de que tengan el mismo nombre.

 El polimorfismo permite poder enviar un mismo


mensaje (recordemos que un mensaje es una invocación
a un método) a objetos de clases diferentes. Estos
objetos recibirán el mismo mensaje pero responderán a
él de formas diferentes. Por ejemplo, un mensaje “+”
para un objeto entero significaría una suma, mientras
que para un objeto string (cadena de caracteres)
significaría la concatenación.
 En él grafico podemos ver una jerarquía de
clases en la que todas las clases que la
componen tienen un método llamado
“dibujar()”. Todos tienen el mismo nombre
pero cada uno de ellos podrá tener una
funcionalidad distinta. En este ejemplo
concreto, una posible interpretación podría
ser que tenemos dos clases hijas que
redefinen el método “dibujar()” de su clase
padre. Probablemente el método
“dibujar()” de la clase padre sea un
método abstracto (no se ha implementado,
sólo se ha definido) ya que para dibujar un
polígono es necesario saber el tipo de
polígono del que se trata. Por tanto, las
clases hijas de la clase “Polígono” se ven
obligadas a implementar el método
“dibujar()” que será distinto en cada caso.
Esto es un claro ejemplo de polimorfismo.

Potrebbero piacerti anche