Mi objetivo es enseñarle los conceptos de programación orientada a objeto, modelo de objeto, clases y responsabilidades.
Si comienzas en la programación orientada a objeto, primero deberías saber un poco de historia.
Los orígenes intelectuales de la
programación orientada a objetos nacen con el desarrollo del lenguaje
Simula (Dahl y Nygaard 1966), pero surgió como una tecnología de
software significativa durante la década de 1980 con los lenguaje
Smalltalk y C++.
Smalltalk-80 fue una manifestación pionera de la importancia y la utilidad de un área naciente de la informática. La programación orientada a objetos surgió cuando se desarrolló Smalltalk.
La década de 1990 vio el surgimiento del lenguaje de programación Java orientado a objetos. En 1992 la programación orientada a objetos realmente comienza el auge de la programación orientada a objetos.
Smalltalk-80 fue una manifestación pionera de la importancia y la utilidad de un área naciente de la informática. La programación orientada a objetos surgió cuando se desarrolló Smalltalk.
La década de 1990 vio el surgimiento del lenguaje de programación Java orientado a objetos. En 1992 la programación orientada a objetos realmente comienza el auge de la programación orientada a objetos.
Si desean profundizar sobre el tema del comienzo de la Programación
Orientada a Objetos (POO) o Object-oriented programming (OOP) pueden
leer “The emergence of object-oriented technology: the role of community” por Hugh Robinson y Helen Sharp.
Comencemos a conceptualizar.
Qué significa la programación orientada a objeto?
La programación orientada a objetos es un
paradigma de programación. Los objetos manipulan los datos de entrada y
salida e interactúan entre ellos. Un paradigma de programación es un
modelo de diseño y desarrollo de programas que posee un conjunto de
reglas.
El modelo orientado a objetos
(OO) es una colección de objetos o clases que permite que un programa
pueda examinar y manipular elemento de su entorno. Es modelar un
problema existente con entidades independientes que interactúan entre
sí.
Estas entidades son llamadas objetos con
similitud de un objeto del mundo real. Pero es importante no confundir
que todo objeto del entorno informático tiene que ser exactamente un
objeto del mundo real. Pueden existir objetos en informática que no
existan físicamente en el mundo real.Ejemplo: Una fecha se pude
considerar un objeto y no es un objeto del mundo real físicamente.
Qué es un objeto y una clase?
En lenguajes de programación como Java y
C# (por citarlos) una clase es la definición de las características
concretas de un determinado tipo de objetos.
Los objetos son instancias de una clase.
Por ende los objetos de una misma clase poseen las mismas
responsabilidades siendo las clases abstracciones que generalizan
dominios de objetos.
Qué es una responsabilidad?
Las responsabilidades de un objeto se dividen en dos grupos: atributos y métodos.
Hay autores que lo llaman a los atributos: campos o fields, propiedade o
variables; a los métodos: rutinas o funciones miembro. Los atributos
son valores almacenados por los objetos de una clase mientras que los
métodos son secuencias de pasos para determinar un comportamiento.
Imagine una tienda que se dedica a vender
alimentos tales como manzanas y arroz. La tienda posee un vendedor. El
vendedor debe ser capaz de informar al cliente acerca de precio, color,
fecha de vencimiento de un producto.
¿Identifique cuáles son las clases y objetos?
¿Identifique cuáles son las clases y objetos?
En esta situación podemos decir que
nuestro modelo orientado a objeto o nuestro entorno del problema son
todos los objetos que intervienen en esta tienda.
Primero Identificar los objetos:
N cantidad de manzanas y arroz
Un vendedor
N cantidad de clientes.
Un vendedor
N cantidad de clientes.
Se preguntarán por qué pongo la variable N? Si analizan el problema nunca mencionan la cantidad de manzanas y arroz
que hay por ende asumimos que pueden ser cualquier cantidad.
Hasta este paso ya tenemos los objetos ahora debemos agruparlos en clases.
Los objetos N manzanas pertenecen a la clase Manzana.
Los objetos N arroz pertenecen a la clase Arroz.
Pero a la vez las clases Manzana y Arroz son alimentos por ende pertenecen tambien a la clase Alimentos.
El objeto Vendedor pertence a la clase Vendedor
El objeto Cliente pertence a la clase Cliente.
Y la clase Vendedor y Cliente son personas que aunque el problema no lo diga se debe deducir y se crea la clase Persona.
Los objetos N manzanas pertenecen a la clase Manzana.
Los objetos N arroz pertenecen a la clase Arroz.
Pero a la vez las clases Manzana y Arroz son alimentos por ende pertenecen tambien a la clase Alimentos.
El objeto Vendedor pertence a la clase Vendedor
El objeto Cliente pertence a la clase Cliente.
Y la clase Vendedor y Cliente son personas que aunque el problema no lo diga se debe deducir y se crea la clase Persona.
¿Cuáles son sus responsabilidades?
La clase Alimentos, Manzana y Arroz tienen los atributos: precio, color y fecha de vencimiento.
La clase Persona tiene los atributos: RUT, nombre y apellido....
Vendedor y Cliente poseen las misma responabilidades de la clase Persona.
Vendedor también posee un método que es Informar encargado de darle información de los productos de la tienda a los clientes.
Cliente aunque no lo diga el problema para poder recibir información debe tener el método Consultar.
La clase Persona tiene los atributos: RUT, nombre y apellido....
Vendedor y Cliente poseen las misma responabilidades de la clase Persona.
Vendedor también posee un método que es Informar encargado de darle información de los productos de la tienda a los clientes.
Cliente aunque no lo diga el problema para poder recibir información debe tener el método Consultar.
Espero que les hay gustado
Tengan un buen día
Yeiniel Alfonso
Tengan un buen día
Yeiniel Alfonso