El paradigma
de la Programación Orientada a Objetos
¿Qué es un paradigma?
Un paradigma es una metodología que intenta unificar y simplificar la manera en que se resuelve un cierto grupo de problemas. En el contexto de la programación, un paradigma es un conjunto de principios y métodos que sirven para resolver los problemas a los que se enfrentan los desarrolladores de software al construir sistemas grandes y complejos.
Tipos de paradigmas
Estructurado
Se basa en estructuras de control de flujo de programa (por
ejemplo, si/entonces/si no, para y mientras). No se hacen "saltos" de un lugar a otro dentro de una rutina. De esta manera, los programas son más fáciles de entender.
Funcional
Se programa con funciones y sus llamados correspondientes. El código con funciones pequeñas queda muy claro y promueve la reutilización.
Orientado a objetos
Los programas trabajan con base en unidades llamadas
objetos, los cuales siguen una serie de principios que veremos más adelante.
¿Que son los objetos?
un objeto es una entidad virtual (o entidad de software), con datos y funciones que simulan las propiedades del objeto. Los objetos con los que se construyen los programas se ven como si fueran máquinas, las cuales están formadas por un conjunto de elementos autónomos. Las propiedades individuales de estos elementos y las relaciones entre sí definen el funcionamiento general de la máquina.
Propiedades esenciales
Estado
Son los datos asociados con el objeto, los cuales indican su situación interna en un momento dado, por ejemplo: velocidad, calificación, color, capacidad, encendido/apagado, saldo, etc.
Comportamiento
Es la manera en la que el objeto responde a estímulos
del exterior, por ejemplo, lo que sucede cuando se oprime el botón “inicio”, lo que sucede cuando se hace un retiro de una cuenta bancaria o cuando se oprime el botón “reiniciar” en un contador.
Propiedades computacionales
Métodos
Definen el comportamiento del objeto y son funciones que se
pueden invocar desde otros objetos. Los métodos pueden modificar el estado del objeto cuando cambian el valor de alguno de los atributos.
Ejemplo
double obtenerSaldo();
float calcularPromedio();
boolean seOprimioOnOff();
Atributos
Son los datos que pertenecen al objeto y que representan el
estado de éste, en función de los valores que tienen.
Ejemplo
double saldo;
float calificacion;
boolean on;
Ejemplos de objetos
Modelando una lámpara (luz) como objeto
luz es un objeto con los métodos encender(), con el que se enciendela luz; apagar(), con el que se apaga la luz; estaPrendida(), con el que se verifica si la luz está encendida; setIntensidad(), con el que se establece la intensidad, y getIntensidad(), con el que se obtiene el valor actual de intensidad. El estado del objeto está compuesto por su intensidad actual y si está encendido o apagado y se conoce sólo a través de los métodos estaPrendida() y getIntensidad().
Ejemplo 2. Modelando un contador como objeto
contador es un objeto con los métodos incrementar(), con el
que se incrementa el contador; setValor(), con el que se establece el valor actual del contador, y getValor(), con el cual se recupera el valor actual del contador.
El estado del objeto es el valor actual de conteo, que se conoce solamente a través del método getValor().
Ejemplo 3. Modelando una lista como objeto
lista es un objeto con los métodos insertar(), con el que se
agrega un nuevo elemento en la lista; remover(), con el que se elimina el elemento en la posición indice de la lista; getElemento(), con el que se obtiene el elemento en la posición indice de la lista, y getTamanio(), con el que se obtiene el número de elementos de la lista.
Ejemplo 4. Modelando una tarjeta de crédito como objeto
tarjetaDeCredito es un objeto con los métodos getLimi-
teCredito(), getSaldoDeudor(), efectuarCargo(), el cual es positivo para un abono y negativo para un retiro; calcularIntereses(), con el que se calculan los nuevos intereses generados; calcularPagoMinimo(), que calcula el pago mínimo que debe efectuarse entre la fecha de corte y la fecha de pago, y generarEstadoDeCuenta(), que genera toda la información producida al momento del corte.
¿Qué es un paradigma?
Ventajas
1.-El paradigma orientado a objetos es útil cuando el sistema se modela de forma casi análoga a la realidad, porque así se simplifica el diseño de alto nivel. Esta analogía permite que los programadores tengan más claro cuál es el papel de cada porción del programa y de los datos, lo que facilita la creación y el mantenimiento del sistema.
2.-El mantenimiento se facilita con el paradigma orientado a objetos, porque el software queda bien organizado y protegido. De esta manera, un programador entiende mejor el código de otro y hay menor riesgo de que sus cambios afecten el trabajo de los demás.
3.-Podemos, por ejemplo, diseñar el código para un botón virtual genérico que detecta el "click" del mouse y llama a una función. El código del botón se reutiliza cada vez que queremos crear un botón, pero con características particulares para cada caso.
4.-Se mejora el desarrollo de software a gran escala.
Caracteristicas
Desarrollo de aplicaciones web y otros sistemas
que se presten al modelado de objetos.
Se basa en objetos, que tienen un estado y un
comportamiento.
Hay interacciones entre los objetos
Clases
Una clase es un tipo de dato definido por el programador específicamente para crear
objetos. Se dice que cada objeto es una instancia particular de alguna clase de objetos.
La clase define las propiedades comunes de un conjunto de objetos. El programador define una clase como lo hace con un tipo de dato compuesto y le da un nombre.
b
Nota
Cada objeto en la POO tiene propiedades definidas por su clase de objeto.
En la POO, un objeto es una entidad virtual (o entidad de software), con datos y funciones que simulan las propiedades del objeto.
El concepto clase está íntimamente relacionado con el concepto objeto.
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.