CLASE_Y_OBJETO
DEFINICIÓN MAS DETALLADA - CLASE Y
OBJETO
TEMAS Y SUBTEMAS POR CUBRIR
1.2
DEFINICIÓN MAS DETALLADA
1.2.1
CLASE Y OBJETO
1.2.2
EJEMPLAR DE CLASE, INSTANCIA DE CLASE, EJEMPLARIZAR UNA CLASE, INSTANCIAR UNA
CLASE
1.2.3 MODULARIZACIÓN
1.2.4 ENCAPSULAMIENTO
/ ENCAPSULACIÓN
1.2.1 CLASE Y OBJETO
Las clases y los objetos son los conceptos más
importantes de la Programación Orientada por Objetos (POO), y están fuertemente
relacionados. Los objetos se crean a partir de clases, y las clases sirven como
plantillas para crear objetos. A los objetos también se les llama instancias de
clase.
1.2.1.1 ¿Qué es una clase?
1.2.1.1.2 Clase
1.2.1.2 ¿Qué es un objeto?
1.2.1.2.2 Objeto
1.2.1.3
Relación entre la clase y los objetos
1.2.1.1 ¿Qué es una clase?
El
concepto clase está íntimamente relacionado con el concepto objeto.
Podemos
definir informalmente una clase como una plantilla (o esqueleto o plano) a
partir de la cual se crean los objetos.
Por ejemplo, en el mundo hay
millones de televisores de la misma marca y modelo. Cada uno de esos
televisores ha sido montado a partir de un mismo plano/esqueleto/plantilla y,
consecuentemente, todos ellos tienen los mismos componentes, conexiones y
funcionalidades. Ese plano/esqueleto/plantilla es, en términos de programación
orientada a objetos, una clase.
Por
consiguiente, una clase describe las características y el comportamiento de un
conjunto de objetos similares en un contexto determinado.
1.2.1.1.2 Clase
Una
clase está formada por los métodos y las variables que
definen las características cómunes a todos los objetos de esa clase.
Precisamente la clave de la OOP está en abstraer los métodos y los datos
comunes a un conjunto de objetos y almacenarlos en una clase.
Una clase equivale a la generalización de un tipo específico de objetos.
Una instancia es la concreción de una clase.
Clase
X
Cada uno de los objetos tiene su propia copia de las variables definidas
en la clase de la cual son instanciados y comparten la misma implementación de
los métodos.
1.2.1.2 ¿Qué es un objeto?
Un
objeto en POO representa alguna entidad de la vida real, es decir, alguno de
los objetos únicos que pertenecen al problema con el que nos estamos
enfrentando, y con el que podemos interactuar.
Cada
objeto, de igual modo que la entidad de la vida real a la que representa, tiene
un estado (es decir, unos atributos con unos valores concretos) y un
comportamiento (es decir, tiene funcionalidades o sabe hacer unas acciones
concretas).
1.2.1.2.2 Objeto
Un
objeto es una encapsulación genérica de datos y de los procedimientos para
manipularlos.
Al igual que los objetos del mundo real, los objetos de software tienen un
estado y un comportamiento. El estado de los objetos se determina a partir de
una o más variables y el comportamiento con la implementación
de métodos.
La siguiente figura muestra la representación común de los objetos de software
1.2.1.3 Relación entre la clase y los objetos
Hacemos
referencia a una estructura que hay en un momento determinado de la ejecución
del programa, mientras que cuando hablamos de clase hacemos referencia a una
estructura que representa a un conjunto de objetos. Esto implica que:
El tipo de un objeto, en vez de ser de un tipo
básico (por ejemplo, int, char, float,
etc.), es una clase concreta definida por el programador.
1.2.2 EJEMPLAR DE CLASE, INSTANCIA DE CLASE, EJEMPLARIZAR UNA CLASE, INSTANCIAR UNA CLASE
Las clases se utilizan para contener
(o compartir) los atributos de clase o para crear instancias de clase.
Para crear una instancia de una clase, debe llamar a la clase como si fuera una
función.
Instanciar
objetos es el proceso de generar un ejemplar de una clase, es decir, la clase
es como una declaración de una forma y el objeto es un caso o elemento concreto
que responde a esa forma.
Los
objetos se crean a partir de una clase. Con el nombre del objeto (o la variable
que va a contener ese objeto que deseamos crear), seguido de un signo igual y
luego la palabra new seguida del nombre de la clase y unos paréntesis.
1.2.2.1
Instancia
1.2.2.2
¿Cuáles son los miembros de una clase?
1.2.2.3
¿Qué significa instanciar una clase *?
1.2.2.4
¿Cómo saber si un objeto es una instancia de una clase?
1.2.2.1 Instancia
Una instancia (en inglés,
instance) es la particularización, realización específica u ocurrencia de una
determinada clase, entidad (modelo entidad-relación) o prototipo.
... Esto es, un miembro de una clase que tiene atributos en lugar
de variables.
1.2.2.2 ¿Cuáles son los miembros de una clase?
Los miembros
de una clase incluyen todos los miembros declarados
en la clase, junto con todos los miembros (excepto
constructores y finalizadores) declarados en todas las clases de
su jerarquía de herencia.
1.2.2.3 ¿Qué significa instanciar una clase *?
Instanciar objetos
es el proceso de generar un ejemplar de una clase, es decir,
la clase es como una declaración de una forma y el objeto es
un caso o elemento concreto que responde a esa forma. ...
Podemos crear infinitos objetos a partir de una clase, cada uno
sería una instancia de la clase o un ejemplar de esa clase.
1.2.2.4 ¿Cómo saber si un objeto es una instancia de una clase?
En
un lenguaje en el que cada objeto es creado a
partir de una clase, un objeto es llamado
una instancia de esa clase. Cada objeto pertenece
a un tipo y dos objetos que pertenezcan a la misma clase tendrán
el mismo tipo de dato. Crear una instancia de una clase es
entonces referido como instanciar la clase.
1.2.3 MODULARIZACIÓN
Diagrama de flujo ☞ 〈Modularizacion
〉
¿Qué es Modularizar?
La palabra modularización proviene de módulo, cuya
definición textual es: «Elemento con función propia concebido para poder ser
agrupado de distintas maneras con otros elementos constituyendo una unidad
mayor.»
La modularización es el proceso por el cual seleccionamos y
agrupamos instrucciones de programación que cumplen una función específica.
La modularidad
consiste en dividir un programa en módulos que puedan compilarse por separado,
sin embargo tendrá conexiones con otros módulos.
1.2.3.1 Proceso de modularizacion
1.2.3.2
La modularidad también tiene principios y
son los siguientes:
1.2.3.2.1
Capacidad de descomponer un sistema complejo.
1.2.3.2.2
Capacidad de componer a través de sus módulos.
1.2.3.2.3
Comprensión de sistema en partes.
1.2.3.1 Proceso de modularizacion
Estructura
y separación de las tareas que realiza en métodos (herramientas que ayuda a
modularizar un programa).
Java:
Metodo
C++:
Funcion
Basic:
Subrutina o procedimiento
En
general, en cualquier lenguaje de programación (bajo o alto nivel) estos
métodos se conocen como Subrutinas.
1.2.3.2.1 Capacidad de descomponer un sistema complejo.
Recuerdas
el principio de «Divide y Vencerás», en este procedimiento se realiza algo similar,
ya qué descompones un sistema en subprogramas (recuerda llamarlos módulos), el
problema en general lo divides en problemas más pequeños.
1.2.3.2.2 Capacidad de componer a través de sus módulos.
Indica
la posibilidad de componer el programa desde los problemas más pequeños
completando y resolviendo el problema en general, particularmente cuando se
crea software se utilizan algunos módulos existentes para poder formar lo que
nos solicitan, estos módulos que se integran a la aplicación deben de ser diseñados
para ser reusables.
1.2.3.2.3 Comprensión de sistema en partes.
El
poder tener cada parte separada nos ayuda a la comprensión del código y del
sistema, también a la modificación del mismo, recordemos que si el sistema
necesita modificaciones y no hemos trabajado con módulos definitivamente eso
será un caos.
1.2.4 ENCAPSULAMIENTO / ENCAPSULACIÓN
Es el proceso de almacenar en una misma sección los
elementos de una abstracción que constituyen su estructura y su comportamiento;
sirve para separar el interfaz contractual de una abstracción y su
implantación.
1.2.4.1
Qué es encapsulamiento en programación orientada a objetos.
1.2.4.2
Niveles de encapsulamiento
1.2.4.3
Niveles de acceso para el encapsulamiento
1.2.4.1
Qué es encapsulamiento en programación orientada a objetos.
Decimos
que el encapsulamiento en la programación orientada a objetos es cuando
limitamos el acceso o damos un acceso restringido de una propiedad a los
elementos que necesita un miembro y no a ninguno más.
El
elemento más común de encapsulamiento son las clases, donde encapsulamos y
englobamos tanto métodos como propiedades.
Otro
ejemplo muy común de encapsulamiento son los getters y setters de las
propiedades dentro de una clase. Por defecto nos dan el valor “normal” pero
podemos modificarlos para que cambie.
1.2.4.2
Niveles de encapsulamiento
Ø Nivel
cerrado: los atributos y métodos del objeto sólo
es accesible desde la misma clase.
Ø Nivel
protegido: los atributos y métodos del objeto sólo es
accesible desde la clase y las clases que heredan
Ø Nivel
abierto: los atributos y métodos del objeto puede
ser accedido desde cualquier clase.
Estos
niveles se manejan mediante los modificadores de acceso: privado (privated), protegido (protected)
y público (public).
1.2.4.3 Niveles de acceso para el encapsulamiento
Existen tres niveles de acceso para el encapsulamiento, los
cuales son:
Ø Público
(Public): Todos pueden acceder a los datos o
métodos de una clase que se definen con este nivel, este es el nivel más bajo,
esto es lo que tu quieres que la parte externa vea.
·
El modificador de acceso privated, corresponde al nivel cerrado de acceso.
Ø Protegido
(Protected): Podemos decir que estás no son de
acceso público, solamente son accesibles dentro de su clase y por subclases.
·
El modificador de acceso protected corresponde al nivel protegido.
Ø Privado
(Private): En este nivel se puede declarar miembros accesibles
sólo para la propia clase.
·
El modificador de acceso public corresponde
al nivel abierto.
Fuentes:
Creación de una
instancia de clase - Documentación de IBM https://www.ibm.com/docs/es/spss-modeler/saas?topic=programming-creating-class-instance
Instanciar y
trabajar con objetos de clases creadas con Mootools (desarrolloweb.com)
https://desarrolloweb.com/articulos/instanciar-trabajar-con-objetos-clases-mootools.html
¿qué es una
instancia de una clase? (aleph.org.mx) https://aleph.org.mx/que-es-una-instancia-de-una-clase
III - Clases y
objetos (unam.mx) http://profesores.fi-b.unam.mx/carlos/java/java_basico3_1.html
Objeto y clase (uoc.edu)
http://cv.uoc.edu/annotation/cb7a0462407a23d1f3fc46cb1d4e01f8/645413/PID_00249622/PID_00249622.html
Clases y Objetos - Programación Orientada por Objetos en Ruby
(gitbook.io) https://makeitrealcamp.gitbook.io/programacion-orientada-por-objetos-en-ruby/clases-y-objetos
Programación
Orientada a Objetos – Encapsulación (POO Parte 3) – RJ Code Advance https://rjcodeadvance.com/programacion-orientada-a-objetos-encapsulacion-poo-parte-3/
Encapsulamiento en la programación orientada a objetos – Styde.net https://styde.net/encapsulamiento-en-la-programacion-orientada-a-objetos/
Encapsulamiento en programacion orientada a objetos (netmentor.es) https://www.netmentor.es/entrada/encapsulamiento-poo
Programación 1: modularización (slideshare.net) https://es.slideshare.net/angenio2/programacin-1-modularizacin
La importancia de saber este tipo de programación es importante ya que de ahí se podrá obtener los mejores resultados con acuerdo a lo que se requiere
ResponderBorrarEntender el concepto de las clases y objetos como métodos en conjunto a los lenguajes de programación POO, Y como estos se relacionan a los demás temas abarcados en este blog.
Cambien puede funcionar para relacionar los temas y obtener un mejor entendimiento de las clases y objetos.