Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/06/2012, 15:12
alexg88
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 6 meses
Puntos: 344
Respuesta: Iniciando en Java

Buenas,

1. La POO (Programación orientada a objetos) es una forma más natural de programar, más cercana al mundo real.

Te voy a poner un ejemplo muy sencillo y que siempre se pone para entender esto.

Imagina que tienes una cuenta bancaria. Una cuenta tiene una serie de elementos que lo diferencian de otras cuentas, a saber: pertenece a un usuario, tiene un saldo, etc.

Estos elementos son lo que se llaman atributos (en POO).

Sobre una cuenta tu puedes realizar una serie de operaciones, por ejemplo:
- Sacar dinero
- Meter dinero
- Realizar una transferencia a otra cuenta
etc.

Estas operaciones son los métodos que tendría un objeto cuenta.

Como ves es una forma natural de ver el mundo, donde existen objetos (o entidades, como una persona) y operaciones que puedes hacer con estos.

Además, en esta forma de programar los datos y las funciones a realizar con estos datos están unidas (no como en la programación no OO, en la que estan separados).

2. Además de esta razón, la POO favorece la reutilización de código: mediante la herencia y el polimorfismo te ahorras repetir muchísimo código.

Puedes imaginarte como con el ejemplo de la cuenta anterior. Imagina que tienes distintos tipos de cuentas: cuentas corrientes y cuentas de ahorro. La primera te permite sacar dinero mediante crédito y la segunda no, pero el hecho de sacar dinero en realidad es el mismo. En el primer caso, al sacar dinero con crédito, se te cargarán una serie de intereses.

Podrías modelar este tipo de cuentas mediante POO de la siguiente manera:

- Una clase Cuenta (abstracta, es decir, que no puede crearse objetos de ellas), con los atributos compartidos de todas las cuentas que existen y los métodos (operaciones) que toda cuenta permite (sacar dinero, meter dinero, ...)
- Una clase CuentaCorriente que herede de Cuenta y redefina las operaciones que hereda de Cuenta.
- Una clase CuentaAhoroo que herede de Cuenta y redefina las operaciones que hereda de Cuenta.

Luego, mediante polimorfismo, podrías utilizar todas las cuentas como si fueran la misma, aunque en realidad una cuenta puede ser corriente y otra de ahorros.

3. Favorece la ocultación de datos (esta es una característica interesante desde el punto de vista del programador). Esto permite que ciertos atributos que tiene un objeto no sean visibles fuera de la propia clase y sólo puedan accederse a través de las operaciones que pueden realizarse en el objeto (de esta manera, te aseguras que el estado del objeto sea siempre correcto).

Hay muchas más razones, pero estas son algunas de ellas.

Espero no haber tenido muchas equivocaciones y que te sirva.

Saludos.