Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Objetivos:
Introducción a objetos
Así la POO, permite que se describan los problemas en términos del problema y no en
términos de la maquina donde la solución funcionara, sin embargo aun existe una
relación con la computadora muy estrecha y se da en los fragmentos de código que
representan los estados, las operaciones, las funciones, las relaciones y el
comportamiento de cada objeto.
Alan Kay resumió cinco características básicas Smalltalk, la primera lengua orientada
al objeto y una de los idiomas sobre los cuales se basa Java. Estas características
representan un acercamiento puro a la programación orientada al objeto:
1. Todo es un objeto. Pensar en un objeto como una variable que; almacena datos, se le
puedan solicitar estas variables, se le pueda pedir realizar operaciones, etc. En teoría,
puedes tomar cualquier componente conceptual en el problema que estás intentando
solucionar (los perros, los edificios, los servicios, etc.) y representar como objeto en tu
programa.
2. Un programa es un conjunto de objetos que se envían mensajes entre sí. Para hacer una
petici n a un objeto, “envías un mensaje” a ese objeto. Más concreto, puedes pensar en
un mensaje como una petición de llamado a un método que pertenezca a un objeto
particular.
3. Cada objeto tiene su propia memoria compuesta de otros objetos. Viéndolo de otra
manera, creas una nueva clase de objeto haciendo un paquete que contiene objetos ya
existentes. Así, puedes construir un programa complejo involucrando objetos de
complejidad simple.
4. Cada objeto tiene un tipo, es decir, cada objeto es una instancia de una clase,
entendiendo que clase es sin nima de “tipo.”
5. Todos los objetos de un tipo o clase en particular pueden recibir los mismos mensajes.
Un objeto del tipo “círculo” es también un objeto del tipo “forma,” *1+
Definición de algunos conceptos claves en la programación orientada a objetos
Interface, Interface: Una conducta que debe ser seguida por un juego de objetos.
Protocolo, Protocol: Lenguajes y reglas que se utilizaran por los mensajes en una
red.
¿Qué es un objeto?
Como se dijo anteriormente, todo es un objeto, Si damos una mirada a nuestro alrededor
encontraremos muchos ejemplos de objetos del mundo real: el perro, el escritorio, el
televisor, la bicicleta.
Los objetos del mundo real tienen dos características: Todos tienen un estado y un
comportamiento (state and behavior).
Un objeto es una cosa, una entidad, un sujeto, un sustantivo, las características principales
de los objetos son:
• Los perros por ejemplo pueden tener estados como (el nombre, color, hijos, hambre) y
comportamientos como (gruñir, menear la cola, ladrar).
• Las bicicletas por ejemplo tienen estados como (engranaje actual, cadencia actual del
pedal, velocidad actual) y comportamientos como (cambiar engranaje, cambiar
cadencia del pedal, aplicar frenos).
Identificar los estados y los comportamientos para los objetos del mundo real es una
muy buena manera de comenzar a pensar en términos de la programación orientada
al objeto.
Actividad: observar los objetos del mundo real que nos rodean y hacer dos
preguntas: “¿Cuales son los posibles estados que posee el objeto?” y “ ¿cuáles son los
posibles comportamientos que este objeto puede realizar?”.
Un ejemplo:
Un Taxi es un vehículo que puede tener los siguientes atributos: color, modelo,
kilometraje, cilindraje, cantidad de pasajeros. Un taxi tiene relaciones estáticas y directas
con otros objetos como son Alejandro, el conductor del taxi y Mario, el dueño del taxi.
¿Idénticos o iguales?
Existe una diferencia entre ser idénticos o iguales, cuando dos objetos tienen los mismos
comportamientos, el mismo estado o valores en sus atributos y participan en las mismas
relaciones se considera que los objetos son iguales.
Dentro de la programación cada objeto recibe una identidad única, si dos objetos tiene la
misma identidad los objetos se consideran idénticos.
Dentro del lenguaje UML un objeto se representa con una caja que contiene 3 secciones.
Su nombre, atributos, operaciones (comportamiento).
Las operaciones se escriben con paréntesis y en ellos van los parámetros si fuese el caso.
Ejemplo aCar, aDog, maquinaVenta
Un objeto en software.
Los objetos de un software son conceptualmente similares a los objetos del mundo real:
consisten también en relaciones de objetos que tienen estados y comportamientos.
Un objeto almacena sus estados en campos (variables en algunos lenguajes de
programación) y expone su comportamiento con los métodos (funciones en algunos
lenguajes de programación). Los métodos funcionan internamente dentro de un
objeto y sirven como el mecanismo primario para la comunicación de objeto-a-
objeto, o medio para el cambio de los estados (variables). Los estados (variables)
internos que son ocultados y son necesarios para realizar una interacción de un
método dentro del objeto se conoce como “ encapsulaci n de datos” - un principio
fundamental de la programación orientada al objeto.
Aun si tuviésemos control sobre los estados o variables (velocidad actual, cadencia
actual del pedal, y engranaje actual) por medio de los métodos para cambiar estos
estados o variables (comportamiento), el objeto sigue contando con la posibilidad de
restringir el uso de estos comportamientos dentro del mismo objeto. Por ejemplo, si
la bicicleta tiene solamente 6 engranajes, un método para cambiar los engranajes podría
rechazar cualquier valor que sea menor de 1 o mayo que 6 implementando código de
validación.
Clases
Una clase como ya hemos estudiado se puede definir el modelo del cual se crean los
objetos individuales.
Esto significa que una clase encapsula un grupo común de objetos que comparten los
mismosatributos, operaciones, relaciones y estructura.
Aunque la sintaxis es nueva, lo que se quiere mostrar son los conceptos de objetos que se
están tratando, Los campos cadencia, la velocidad, y el engranaje representan el
estado del objeto, y los métodos (cambiarCadencia, cambiarEngranaje,
incrementarVelocidad etc.) definen su interacción con el mundo exterior.
Aquí está una clase “BicycleDemo” que crea dos objetos separados de la bicicleta e invoca
sus métodos, esta clase si contiene un método principal y es una aplicación:
class BicycleDemo {
public static void main(String[] args) {
¿Qué es la herencia?
A cada uno de los tipos de bicicletas se les puede también definir las características
adicionales que las hacen diferentes: las bicicletas dobles tienen dos asientos y dos
sistemas de volantes; las bicicletas de ruta tienen volantes especiales; algunas
bicicletas de montaña tienen un anillo de cadena adicional, brindándoles un cociente
más bajo de engranaje.
Con esto la clase MountainBike obtiene todos campos y métodos que la clase
bicicleta, permitiendo así que el código de MountainBike se centre exclusivamente en las
características que lo hacen único. El código de las subclases escritas se vuelve fácil
de leer. Sin embargo, se debe tener cuidado al documentar correctamente los
estados y los comportamientos definidos en cada superclase, porque ese código no
aparecerá en el archivo de fuente de cada subclase y se debe conocer muy bien
realmente cual es su uso.
¿Qué es una interfaz?
Como se ha visto, los objetos definen su interacción con el mundo exterior con los
métodos que exponen o se definen. Los métodos forman el interfaz del objeto con el
mundo exterior; por ejemplo, los botones en el frente de un televisor, son el interfaz
entre el televidente y el cableado eléctrico en el otro lado de la cubierta plástica. Se
presiona el bot n de “encendido” para la funci n de encender o apagar y comenzar
o detener las demás funciones.
En su forma más común, un interfaz es un grupo de métodos relacionados con los cuerpos
de código para cada método vacíos. El comportamiento de una bicicleta, si se hubiese
especificado como una interfaz, pudo parecerse a lo siguiente:
interface Bicicleta {
void cambiarCadencia (int newValue);
void cambiarEngranaje(int newValue);
void aumentarVeocidad(int incremento);
void apliqueFrenos(int disminucion);
}
Para poner este interfaz en ejecución, el nombre de tu clase cambiaría (por ejemplo
a ACMEBicycle), y utilizarías la palabra clave implements en la declaración de la clase.
class ACMEBicycle implements Bicicleta {
// Recordemos la clase Bicicleta vista anteriormente
}
Poner una interfaz en ejecución permite que una clase llegue a ser más formal
sobre el comportamiento que promete proporcionar. Las interfaces forman un
contrato entre la clase y el mundo exterior, y est e contrato es realizado a fin de cumplir
la estructura y verificado en tiempo compilación. Si tu clase demanda poner un
interfaz en ejecución, todos los métodos definidos por esa interfaz deben aparecer en el
código fuente antes de que la clase se compile con éxito.
¿Qué es un paquete?
La especificación del API de la plataforma Java contiene el listado completo para todos
los paquetes, interfaces, clases, campos, y métodos proveídos por la plataforma
sobre la cual se quiera trabajar 6. Esta es la documentación más importante a
mantener como referencia. [2]
REFERENCIAS