Encapsulamiento
Encapsulamiento
Encapsulamiento
Cada objeto est� aislado del exterior, es un m�dulo natural, y la aplicaci�n entera
se reduce a un agregado o rompecabezas de objetos. El aislamiento protege a los
datos asociados de un objeto contra su modificaci�n por quien no tenga derecho a
acceder a ellos, eliminando efectos secundarios e interacciones.
�ndice
1 Encapsulamiento
2 Niveles de encapsulamiento
3 V�ase tambi�n
4 Referencias
Encapsulamiento
Las variables de un objeto se localizan en el n�cleo del objeto. Los m�todos rodean
y esconden al n�cleo del objeto de otros objetos en el programa. Al empaquetamiento
de las variables de un objeto con la protecci�n de sus m�todos se le llama
encapsulamiento. T�picamente, el encapsulamiento es utilizado para esconder
detalles de la puesta en pr�ctica no importantes de otros objetos. Entonces, los
detalles de la puesta en pr�ctica pueden cambiar en cualquier tiempo sin afectar
otras partes del programa.
Niveles de encapsulamiento
La programaci�n orientada a objetos (POO, en espa�ol; OOP, seg�n sus siglas en
ingl�s) es un paradigma de programaci�n que viene a innovar la forma de obtener
resultados. Los objetos manipulan los datos de entrada para la obtenci�n de datos
de salida espec�ficos, donde cada objeto ofrece una funcionalidad especial.
�ndice
1 Introducci�n
2 Origen
3 Conceptos fundamentales
4 Caracter�sticas de la POO
5 Resumen
6 Tipos
7 Algunos lenguajes orientados a objetos
8 V�ase tambi�n
9 Notas y referencias
10 Enlaces externos
Introducci�n
Los objetos son entidades que tienen un determinado "estado", "comportamiento
(m�todo)" e "identidad":
La identidad es una propiedad de un objeto que lo diferencia del resto; dicho con
otras palabras, es su identificador (concepto an�logo al de identificador de una
variable o una constante).
Un objeto contiene toda la informaci�n que permite definirlo e identificarlo frente
a otros objetos pertenecientes a otras clases e incluso frente a objetos de una
misma clase, al poder tener valores bien diferenciados en sus atributos. A su vez,
los objetos disponen de mecanismos de interacci�n llamados m�todos, que favorecen
la comunicaci�n entre ellos. Esta comunicaci�n favorece a su vez el cambio de
estado en los propios objetos. Esta caracter�stica lleva a tratarlos como unidades
indivisibles, en las que no se separa el estado y el comportamiento.
Origen
Los conceptos de la POO tienen origen en Simula 67, un lenguaje dise�ado para hacer
simulaciones, creado por Ole-Johan Dahl y Kristen Nygaard, del Centro de C�mputo
Noruego en Oslo. En este centro se trabajaba en simulaciones de naves, que fueron
confundidas por la explosi�n combinatoria de c�mo las diversas cualidades de
diferentes naves pod�an afectar unas a las otras. La idea surgi� al agrupar los
diversos tipos de naves en diversas clases de objetos, siendo responsable cada
clase de objetos de definir sus "propios" datos y comportamientos. Fueron refinados
m�s tarde en Smalltalk, desarrollado en Simula en Xerox PARC (cuya primera versi�n
fue escrita sobre Basic) pero dise�ado para ser un sistema completamente din�mico
en el cual los objetos se podr�an crear y modificar "sobre la marcha" (en tiempo de
ejecuci�n) en lugar de tener un sistema basado en programas est�ticos.
Conceptos fundamentales
La POO es una forma de programar que trata de encontrar una soluci�n a estos
problemas. Introduce nuevos conceptos, que superan y ampl�an conceptos antiguos ya
conocidos. Entre ellos destacan los siguientes:
Clase
Una clase se puede definir de las propiedades y comportamiento de un tipo de objeto
concreto. La instanciaci�n es la lectura de estas definiciones y la creaci�n de un
objeto a partir de ella.
Herencia
Por ejemplo, herencia de la clase C a la clase D, es la facilidad mediante la cual
la clase D hereda en ella cada uno de los atributos y operaciones de C, como si
esos atributos y operaciones hubiesen sido definidos por la misma D. Por lo tanto,
puede usar los mismos m�todos y variables registrados como "p�blicos" (public) en
C. Los componentes registrados como "privados" (private) tambi�n se heredan pero se
mantienen escondidos al programador y s�lo pueden ser accedidos a trav�s de otros
m�todos p�blicos. Para poder acceder a un atributo u operaci�n de una clase en
cualquiera de sus subclases pero mantenerla oculta para otras clases es necesario
registrar los componentes como "protegidos" (protected), de esta manera ser�n
visibles en C y en D pero no en otras clases.
Objeto
Instancia de una clase. Entidad provista de un conjunto de propiedades o atributos
(datos) y de comportamiento o funcionalidad (m�todos), los mismos que
consecuentemente reaccionan a eventos. Se corresponden con los objetos reales del
mundo que nos rodea, o con objetos internos del sistema (del programa).
M�todo
Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecuci�n se
desencadena tras la recepci�n de un "mensaje". Desde el punto de vista del
comportamiento, es lo que el objeto puede hacer. Un m�todo puede producir un cambio
en las propiedades del objeto, o la generaci�n de un "evento" con un nuevo mensaje
para otro objeto del sistema.
Evento
Es un suceso en el sistema (tal como una interacci�n del usuario con la m�quina, o
un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje
adecuado al objeto pertinente. Tambi�n se puede definir como evento la reacci�n que
puede desencadenar un objeto; es decir, la acci�n que genera.
Atributos
Caracter�sticas que tiene la clase.
Mensaje
Una comunicaci�n dirigida a un objeto, que le ordena que ejecute uno de sus m�todos
con ciertos par�metros asociados al evento que lo gener�.
Propiedad o atributo
Contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos),
que hace los datos visibles desde fuera del objeto y esto se define como sus
caracter�sticas predeterminadas, y cuyo valor puede ser alterado por la ejecuci�n
de alg�n m�todo.
Estado interno
Es una variable que se declara privada, que puede ser �nicamente accedida y
alterada por un m�todo del objeto, y que se utiliza para indicar distintas
situaciones posibles para el objeto (o clase de objetos). No es visible al
programador que maneja una instancia de la clase.
Componentes de un objeto
Atributos, identidad, relaciones y m�todos.
Identificaci�n de un objeto
Un objeto se representa por medio de una tabla o entidad que est� compuesta por sus
atributos y funciones correspondientes.
En comparaci�n con un lenguaje imperativo, una "variable" no es m�s que un
contenedor interno del atributo del objeto o de un estado interno, as� como la
"funci�n" es un procedimiento interno del m�todo del objeto.
Caracter�sticas de la POO
Existe un acuerdo acerca de qu� caracter�sticas contempla la "orientaci�n a
objetos". Las caracter�sticas siguientes son las m�s importantes:1?
Abstracci�n
Denota las caracter�sticas esenciales de un objeto, donde se capturan sus
comportamientos. Cada objeto en el sistema sirve como modelo de un "agente"
abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse"
con otros objetos en el sistema sin revelar "c�mo" se implementan estas
caracter�sticas. Los procesos, las funciones o los m�todos pueden tambi�n ser
abstra�dos, y, cuando lo est�n, una variedad de t�cnicas son requeridas para
ampliar una abstracci�n. El proceso de abstracci�n permite seleccionar las
caracter�sticas relevantes dentro de un conjunto e identificar comportamientos
comunes para definir nuevos tipos de entidades en el mundo real. La abstracci�n es
clave en el proceso de an�lisis y dise�o orientado a objetos, ya que mediante ella
podemos llegar a armar un conjunto de clases que permitan modelar la realidad o el
problema que se quiere atacar.
Encapsulamiento
Significa reunir todos los elementos que pueden considerarse pertenecientes a una
misma entidad, al mismo nivel de abstracci�n. Esto permite aumentar la cohesi�n
(dise�o estructurado) de los componentes del sistema. Algunos autores confunden
este concepto con el principio de ocultaci�n, principalmente porque se suelen
emplear conjuntamente.
Polimorfismo
Comportamientos diferentes, asociados a objetos distintos, pueden compartir el
mismo nombre; al llamarlos por ese nombre se utilizar� el comportamiento
correspondiente al objeto que se est� usando. O, dicho de otro modo, las
referencias y las colecciones de objetos pueden contener objetos de diferentes
tipos, y la invocaci�n de un comportamiento en una referencia producir� el
comportamiento correcto para el tipo real del objeto referenciado. Cuando esto
ocurre en "tiempo de ejecuci�n", esta �ltima caracter�stica se llama asignaci�n
tard�a o asignaci�n din�mica. Algunos lenguajes proporcionan medios m�s est�ticos
(en "tiempo de compilaci�n") de polimorfismo, tales como las plantillas y la
sobrecarga de operadores de C++.
Herencia
Las clases no se encuentran aisladas, sino que se relacionan entre s�, formando una
jerarqu�a de clasificaci�n. Los objetos heredan las propiedades y el comportamiento
de todas las clases a las que pertenecen. La herencia organiza y facilita el
polimorfismo y el encapsulamiento, permitiendo a los objetos ser definidos y
creados como tipos especializados de objetos preexistentes. Estos pueden compartir
(y extender) su comportamiento sin tener que volver a implementarlo. Esto suele
hacerse habitualmente agrupando los objetos en clases, y estas en �rboles o
enrejados que reflejan un comportamiento com�n. Cuando un objeto hereda de m�s de
una clase, se dice que hay herencia m�ltiple; siendo de alta complejidad t�cnica
por lo cual suele recurrirse a la herencia virtual para evitar la duplicaci�n de
datos.
Modularidad
Se denomina "modularidad" a la propiedad que permite subdividir una aplicaci�n en
partes m�s peque�as (llamadas m�dulos), cada una de las cuales debe ser tan
independiente como sea posible de la aplicaci�n en s� y de las restantes partes.
Estos m�dulos se pueden compilar por separado, pero tienen conexiones con otros
m�dulos. Al igual que la encapsulaci�n, los lenguajes soportan la modularidad de
diversas formas.
Principio de ocultaci�n
Cada objeto est� aislado del exterior, es un m�dulo natural, y cada tipo de objeto
expone una "interfaz" a otros objetos que especifica c�mo pueden interactuar con
los objetos de la clase. El aislamiento protege a las propiedades de un objeto
contra su modificaci�n por quien no tenga derecho a acceder a ellas; solamente los
propios m�todos internos del objeto pueden acceder a su estado. Esto asegura que
otros objetos no puedan cambiar el estado interno de un objeto de manera
inesperada, eliminando efectos secundarios e interacciones inesperadas. Algunos
lenguajes relajan esto, permitiendo un acceso directo a los datos internos del
objeto de una manera controlada y limitando el grado de abstracci�n. La aplicaci�n
entera se reduce a un agregado o rompecabezas de objetos.
Recolecci�n de basura
La recolecci�n de basura (garbage collection) es la t�cnica por la cual el entorno
de objetos se encarga de destruir autom�ticamente, y por tanto desvincular la
memoria asociada, los objetos que hayan quedado sin ninguna referencia a ellos.
Esto significa que el programador no debe preocuparse por la asignaci�n o
liberaci�n de memoria, ya que el entorno la asignar� al crear un nuevo objeto y la
liberar� cuando nadie lo est� usando. En la mayor�a de los lenguajes h�bridos que
se extendieron para soportar el Paradigma de Programaci�n Orientada a Objetos como
C++ u Object Pascal, esta caracter�stica no existe y la memoria debe desasignarse
expresamente.
Resumen
La POO es un paradigma surgido en los a�os 1970, que utiliza objetos como elementos
fundamentales en la construcci�n de la soluci�n. Un objeto es una abstracci�n de
alg�n hecho o ente del mundo real, con atributos que representan sus
caracter�sticas o propiedades, y m�todos que emulan su comportamiento o actividad.
Todas las propiedades y m�todos comunes a los objetos se encapsulan o agrupan en
clases. Una clase es una plantilla, un prototipo para crear objetos; en general, se
dice que cada objeto es una instancia o ejemplar de una clase.
Tipos
Para realizar programaci�n orientada a objetos existen dos corrientes
principales:2?3?
ABAP4?
ABL5?
ActionScript
ActionScript 3
C Sharp (C#)
Clarion
Clipper6?
D
Object Pascal (Embarcadero Delphi)
Gambas
GObject
Genie
Harbour
Eiffel
Fortran 90/95
Java
JavaScript7?
Lexico8?
Objective-C
Ocaml
Oz
R
Pauscal (en espa�ol)
Perl9?10?
PHP11?
PowerScript
Processing.12?
Python
Ruby
Self
Smalltalk13?
Swift
Magik
Vala
VB.NET
Visual FoxPro14?
Visual Basic 6.0
Visual DataFlex
Visual Objects
XBase++
DRP
Scala15?16?
Muchos de estos lenguajes de programaci�n no son puramente orientados a objetos,
sino que son h�bridos que combinan la POO con otros paradigmas.
Al igual que C++, otros lenguajes, como OOCOBOL, OOLisp, OOProlog y Object REXX,
han sido creados a�adiendo extensiones orientadas a objetos a un lenguaje de
programaci�n cl�sico.
V�ase tambi�n
base de datos orientada a objetos
ingenier�a de software basada en componentes
Notas y referencias
Coad, P; Yourdon, E. (1991). Prentice-Hall International editions, ed. Object-
oriented Design. ISBN 9780136300700.
Clases, instancias, prototipos y herencia en POO. edu4java.com
Detalles del modelo de objetos. Gu�a de JavaScript. Visitado 19 de agosto de 2017
SAP Business Suite (de la empresa SAP AG), lenguaje orientado a eventos.
Lenguaje de programaci�n de OpenEdge de Progress Software.
Versi�n 5.x con librer�a de objetos Class(y).
La herencia se realiza por medio de la programaci�n basada en prototipos.
En espa�ol.
Soporta herencia m�ltiple. La resoluci�n se realiza en estructura de �rbol
(preorden), pero puede modificarse al algoritmo linearization C3 por medio del
m�dulo Class::C3 en CPAN).
Class::C3.
PHP: a partir de su versi�n 5.
Sitio web oficial de Processing (en ingl�s)
Entorno de objetos puro.
Visual FoxPro: en su versi�n 6.
Lenguaje de programaci�n usado por Twitter.
http://www.scala-lang.org/page.jsp
Enlaces externos
Qu� es la programaci�n orientada a objetos.
Control de autoridades
Proyectos WikimediaWd Datos: Q79872Commonscat Multimedia: Object-oriented
programming
IdentificadoresBNE: XX537453BNF: 12115131k (data)GND: 4233947-9LCCN: sh87007503NDL:
00937980Diccionarios y enciclopediasBritannica: url
Categor�as: Programaci�n orientada a objetosParadigmas de programaci�n
Men� de navegaci�n
No has accedidoDiscusi�nContribucionesCrear una
cuentaAccederArt�culoDiscusi�nLeerEditarVer historialBuscar
Buscar en Wikipedia
Portada
Portal de la comunidad
Actualidad
Cambios recientes
P�ginas nuevas
P�gina aleatoria
Ayuda
Donaciones
Notificar un error
En otros proyectos
Wikimedia Commons
Imprimir/exportar
Crear un libro
Descargar como PDF
Versi�n para imprimir
Herramientas
Lo que enlaza aqu�
Cambios en enlazadas
Subir archivo
P�ginas especiales
Enlace permanente
Informaci�n de la p�gina
Elemento de Wikidata
Citar esta p�gina
En otros idiomas
???????
English
??????
Bahasa Indonesia
Bahasa Melayu
Portugu�s
???????
????
??
65 m�s
Editar enlaces
Esta p�gina se edit� por �ltima vez el 29 jul 2019 a las 06:15.
El texto est� disponible bajo la Licencia Creative Commons Atribuci�n Compartir
Igual 3.0; pueden aplicarse cl�usulas adicionales. Al usar este sitio, usted acepta
nuestros t�rminos de uso y nuestra pol�tica de privacidad.
Wikipedia� es una marca registrada de la Fundaci�n Wikimedia, Inc., una
organizaci�n sin �nimo de lucro.
Definici�n significa acci�n y efecto de definir. Definir es fijar con claridad,
exactitud y precisi�n, el significado de una palabra, la naturaleza de una persona
o una cosa, o decidir o determinar la soluci�n de alg�n asunto o cuesti�n.
Etimol�gicamente, la palabra proviene del lat�n definit?o, definiti?nis.
Un 'm�dulo' es cada una de las partes de un programa que resuelve uno de los
subproblemas en que se divide el problema complejo original. Cada uno de estos
m�dulos tiene una tarea bien definida y algunos necesitan de otros para poder
operar. En caso de que un m�dulo necesite de otro, puede comunicarse con �ste
mediante una interfaz de comunicaci�n que tambi�n debe estar bien definida.
V�ase tambi�n