Clases y Abstracción en Programación Orientada a Objetos
Resumen
La Abstracción se trata de analizar objetos de forma independiente, sus propiedades, características y comportamientos, para abstraer su composición y generar un modelo, lo que traducimos a código como clases.
Las Clases son los modelos sobre los cuales construimos nuestros objetos, es decir, las clases son los "moldes" que nos permiten generar objetos. Cada clase debe tener identidad (con un nombre de clase único usando Upper Camel Case), estado (con sus atributos) y comportamiento (con sus métodos y operaciones).
Por ejemplo:
El ejemplo de clase más típico en Internet:
Nombre de la clase: Person
Atributos: Name, Age
Operaciones: Walk()
Para entender qué es un diagrama de clases, lo primero que se debe tener claro es qué es una clase, pues bien, una clase es un elemento importante dentro del contexto de un sistema, que puede tener información o datos valiosos y realizar acciones que sean necesarias dentro del funcionamiento del sistema.
Por ejemplo, en un software para un supermercado, seguramente los elementos más importantes sobre los cuales sea significativo mantener información son los productos, los clientes, las ventas y los pedidos, en este caso se han encontrado las clases PRODUCTO, CLIENTE, VENTA y
PEDIDO.
Estas clases a su vez tienen atributos (datos) y métodos (funciones), porejemplo, la clase PRODUCTO tiene como uno de sus atributos, el atributo precio y uno de sus métodos puede ser incrementarPrecio. De esta forma, a través de los atributos se puede acceder a la información de la clase y a través de los métodos se pueden ejecutar acciones sobre la clase. Estas clases se unen a otras clases a través de relaciones y así se conforma el diagrama de clases.
Toda clases se compone de 3 elementos importantes así: Nombre de la clase, Atributos o propiedades también denominados miembros de la clase y los métodos (operaciones) o
acciones propias de la clase. (Estas acciones se identifican con verbos en infinitivo).
Atributos:
Los atributos o características de una Clase pueden ser de tres tipos, definen la visibilidad:
•Public (+): Indica que el atributo será visible tanto dentro como fuera de la clase, es decir, es accesible desde todos lados.
• Private(-): Indica que el atributo sólo será accesible desde dentro de la clase (sólo sus métodos lo pueden acceder).
• Protected (#): Indica que el atributo no será accesible desde fuera de la clase, pero si podrá ser accedido por métodos de la clase además de las subclases que se deriven (herencia).
• Sin modificador de acceso ( ): Indica que el atributo será accesible desde cualquier clase que se encuentre en el mismo paquete de la clase que contiene al atributo sin modificador de acceso.
Métodos:
Los métodos u operaciones de una clase son la forma en cómo ésta interactúa con su entorno, éstos pueden tener las características:
• Public (+): Indica que el método será visible tanto dentro como fuera de la clase, es decir, es accesible desde todos lados.
• Private (-): Indica que el método sólo será accesible desde dentro de la clase (sólo otros métodos de la clase lo pueden acceder).
• Protected (#): Indica que el método no será accesible desde fuera de la clase, pero si podrá ser accedido por métodos de la clase además de métodos de las subclases que se deriven (herencia).
• Sin modificador de acceso ( ): Indica que el método será
accesible desde cualquier clase que se encuentre en el mismo
paquete de la clase que contiene al método sin modificador de
acceso.
Excelente aportación, muy detallada.
Gracias por el aporte!
👇 APUNTES DE LA CLASE 😊
Muchas gracias
gracias x el aporte
Clase vs Objeto
Representación gráfica
Good example.
Muy buena clase, ni pensar que aunque tengo experiencia, hace poco fui corchado con un conceptos como estos, que aunque manejemos diaramente pero que algunas veces olvidamos, gracias por recorderme estas cosas tan importantes!
Teniendo claro qué es un objeto, gracia a Anahí, podermos entender qué es una clase. Para ello primero definiremos a la programación como el proceso por el cual se manejan o administran datos, agruparlos y hacer operaciones sobre los mismos, y con esto se entenderá mejor qué es una clase.
😃
Clase: es un modelo o plantilla sobre el cual se agrupan datos (campos o atributos) y funciones (métodos) que operan sobre esos datos para crear objetos.
Absracción: es el proceso mental que se realiza para extraer un elemento de su contexto, luego eliminar u ocultar sus detalles innecesarios para luego definir sus características que lo distinguen de los demás.
Buen resumen de lo visto en la clase. Gracias :D
🤔 Tu nivel de abstracción determina la calidad de la solución.
Interesante
Mis apuntes de esta Clase:
Abstracción: ¿Qué es una Clase?
Son el modelo sobre el cuál se construirá un objeto. Se puede decir que de cierta forma una Clase es un especie de molde que se usa para construir Objetos.
Abstracción
Es un concepto en el que se analiza un Objeto para extraer sus composición y en base a eso crear una Clase. En resumidas cuentas, la abstracción es ese proceso de analizar los objetos para identificar sus atributos y métodos comunes para en base a eso crear un molde llamando Clase.
El flujo de trabajo con POO es el siguiente:
Analizar el problema y extraer los Objetos que lo componen.
Abstraer dichos Objetos en Clases.
Gráficar las Clases en UML
Implementar con código el diagrama UML.
#### Graficar Clases en UML
!Clases en UML
Nota: si quieren graficar con UML les recomiendo este programa
StarUML
Excelente aporte!
Abstracción: Proceso en el cual se puede separar o aislar partes de un problema muy complejo en pequeños problemas mas sencillos de resolver y que al unir estos procesos pequeños se pueda llegar a solucionar el problema general.
La abstracción se basa en la frase de Maquiavelo "Divide y vencerás" porque como la frase lo dice se divide o separa un problema grande en partes mas simples de solucionar
Existen 2 corrientes de abstracción o tambien llamadas flujos. Estos son Top botton y Botton top.
El primero Top botton se basa en ir de lo general a lo especifico y en este se analiza el problema desde el aspecto global o general y se va separando en probleas mas pequeños a medida que se va analizando.
El segundo Botton top es al contrario, se parte de la premisa de crear pequeñas soluciones para ir integrandolas y así resolver un problema mas grande. Esta es usada cuando no se tiene un conocimiento del problema general o cuando se parte de una idea simple que se va evolucionando para generar una mas compleja
Gracias!
Genial
Muy buen aporte. Gracias!
Excelente clase, para resumirla tenemos tres puntos clave que son clase, abstracción y la forma de organizar la clase:
La clase es aquel molde o modelo que será utilizado para poder crear objetos como el ejemplo de Anahí vemos un molde de estrella para crear estrellas.
Respecto a la abstracción es uno de los pilares de la POO, que consiste en analizar los objetos del problema, extraer sus propiedades y comportamientos principales y crear una clase a partir de ellos.
Por medio de los diagramas de UML podemos mantener una mejor presentación de la clase en tres partes: Identidad, estado y comportamiento
Comparto mis apuntes de esta clase.
¡Saludos!
CLASES
-Modelo sobre el cual se construirá nuestro objeto
ABSTRACCIÓN
-Analizar un objeto para generar un molde
Un ejemplo sencillo sobre la generación de objetos desde una clase (instancia).
Woow, siempre he tenido problemas para entender lo que es la abstracción, me queda mas claro, es muy buena profesora, 5 stars je
Haciendo un resumen:
Objeto: Son todas las cosas físicas o conceptuales que tienen propiedades(Atributos) y comportamientos(Métodos).
Clase: Es el modelo donde nuestros objetos se construyen y nos permiten generar más objetos.
**Abstracción: **Separación de los datos del objeto (propiedades y comportamientos) para generar un modelo (Clase).
Clase: Son los modelos o plantillas sobre los cuales contruiremos objetos
Abstracción: Es el analisis de objetos, abstrayendo los datos para crear plantillas.
Propiedad es la caracteristica de objeto y el estado es el valor de la propiedad.
¿Abstraer es igual a decir Instanciar en POO?
Hola.
Yo lo entiendo de la siguiente forma:
Abstraccion: abstraer los componentes de un objeto para generar un molde.
Ejemplo: crear una clase Persona con sus atributos y métodos (archivo Persona.java);
Instanciar: definir una variable no inicializada.
Ejemplo: Persona a;
Inicializar: definir una variable inicializada.
Ejemplo: Persona a = new Persona(); o
Persona a; a = new Persona();
Yo entendí que Instanciar es crear un objeto de una clase
++Ejemplo:++ myDoctor = new Doctor();
Una buena herramienta online para crear UML es esta pagina