Você está na página 1de 4

Los objetos:

Los objetos son clave para la comprensión de la tecnología orientada a objetos. Mira a tú
alrededor en este momento y encontrarás muchos ejemplos de objetos del mundo real: tu
perro, tu escritorio, tu televisor, tu bicicleta. Los objetos del mundo real comparten dos
características:

Todos tienen estado y comportamiento. Los perros tienen (el nombre del estado, el
color, la raza, el hambre) y el comportamiento (ladridos, ir a buscar, meneando la cola).

Las bicicletas también tienen (diseño actual, la cadencia de pedaleo actual, la


velocidad actual) y comportamiento (el cambio de marchas, el cambio de la cadencia
de pedaleo, la aplicación de los frenos).

Identificar el estado y el comportamiento de objetos del mundo real es una gran manera de
empezar a pensar en términos de programación orientada a objetos.

Tome un minuto en estos momentos para observar los objetos del mundo real que están en su
área inmediata. Para cada objeto que ve, se haga dos preguntas:

"¿Qué estados posibles puede ser en este objeto?"

"¿Qué posible comportamiento puede llevar a cabo este objeto?".

Asegúrese de anotar sus observaciones y al hacerlo, notará que objetos del mundo real varían
en complejidad, su lámpara de escritorio puede tener sólo dos posibles estados (encendido y
apagado) y dos posibles comportamientos (encender, apagar), pero su radio de escritorio
podrían tener otros estados (encendido, apagado, volumen actual, la estación actual) y
comportamiento (encender, apagar, aumentar volumen, disminuir el volumen, buscar, explorar,
y sintonizar). Usted también puede notar que algunos de los objetos, a su vez, también
contienen otros objetos. Estas observaciones del mundo real, se traducen en el mundo de la
programación orientada a objetos.

Un objeto de software

Los objetos de software son conceptualmente similares a los objetos del mundo real: también
consisten de estado y relacionadas con el comportamiento. Un objeto almacena su estado en
los campos (variables en algunos lenguajes de programación) y expone su comportamiento a
través de métodos (funciones en algunos lenguajes de programación). Los métodos actúan
sobre el estado interno de un objeto y sirve como mecanismo principal de comunicación entre
objetos, es decir, definen su comportamiento y la forma de comunicarse entre ellos. El
ocultamiento del estado interno de un objeto y su necesidad de interacción con otros se
conoce como encapsulación de datos, que es un principio fundamental de la programación
orientada a objetos.

Considere la posibilidad de una bicicleta, por ejemplo:

Una bicicleta modelada como un objeto de software.

Al atribuir estado (velocidad actual, la cadencia de pedaleo actual, y el equipamiento actual) y


proporcionar métodos para cambiar ese estado, el objeto permanece en el control de cómo el
mundo exterior se le permite usarlo. Por ejemplo, si la bicicleta sólo tiene 6 velocidades, un
método para cambiar de marcha, podría rechazar cualquier valor que sea menor que 1 o mayor
que 6.

Al agrupar código en objetos individuales de software, se proporciona una serie de beneficios,


incluyendo:

Modularidad: El código fuente para un objeto puede ser escrito y mantenido de forma
independiente del código fuente de otros objetos. Una vez creado, un objeto puede
transmitirse fácilmente en el interior del sistema.

Ocultando información: Al interactuar sólo con los métodos de un objeto, los detalles de
su implementación interna permanecen ocultos del mundo exterior.

Re-uso de código: Si un objeto que ya existe (tal vez escrito por otro desarrollador de
software), puede reutilizar ese objeto en su programa.

Esto permite a los especialistas aplicar complejos escenarios de test / debug, de las
tareas especificas de los objetos, Para aplicarlos a procesos particulares de su lógica
de negocios que requieren ejecutar.

Conectividad y la facilidad de depuración: Si un objeto en particular resulta ser


problemático, simplemente puede quitarlo de su aplicación y conectar un objeto
diferente como su reemplazo. Esto es análogo a la fijación de los problemas mecánicos
en el mundo real. Si se rompe un tornillo, que se sustituya, no toda la máquina.

¿Qué es una clase?

En el mudo real frecuentemente encontramos objetos individuales del mismo tipo. Pueden
existir miles de bicicletas y todas se hacen en base a un mismo modelo y tipo. Cada bicicleta,
fue construida de la misma plantilla (blueprint), por que contienen los mismos componentes. En
términos de programación orientada a objetos, podemos decir que su bicicleta es una instancia
de una clase, conocida como bicicletas. En consecuencia, una clase es la plantilla de la cual se
crean los objetos (bicicleta) y les define sus características, comportamiento y la forma de
comunicarse entre ellos.

El siguiente ejemplo nos muestra una posible implementación de una clase llamada Bicicletas.

class Bicicletas {

int cadencia = 0;
int velocidad = 0;
int cambios = 1;

void cambiodeCadencia(int nuevoValor) {


cadencia = nuevoValor;
}

void cambiodeVelocidades(int nuevoValor) {


cambios = nuevoValor;
}

void incrementodeVelocidad(int incremento) {


velocidad = velocidad + incremento;
}

void aplicarFrenos(int decremento) {


velocidad = velocidad - decremento;
}

void imprimeEstado() {
System.out.println("Cadencia: "+ cadencia+" velocidad :
"+velocidad+" cambios: "+ cambios);
}
}

Ahora tomando en cuenta la sintaxis del lenguaje de programación en java, y basados en la


definición de la clase discutida previamente. Los campos cadencia, velocidad y cambios,
representan el estado del objeto y los métodos cambiodeCadencia, cambiodeVelocidades,
incrementodeVelocidad, aplicarFrenos e imprimeEstado, definen las interacciones con el
mundo externo.

Podrá observar que la clase Bicicletas, no contiene un método main, esto es porque no es una
aplicación completa, debido a que el ejemplo muestra solo una plantilla Bicicletas, que puede
ser usada dentro de una aplicación, mas compleja. La responsabilidad de crear o instanciar los
objetos de la clase Bicicletas, pueden pertenecer a otra clase dentro de su misma aplicación

En el siguiente ejemplo podrá ver la creación de dos objetos de la clase Bicicletas, para poder
invocar a los métodos.

class BicicletasDemo {
public static void main(String[] args) {

// Se crean dos diferentes objetos de la clase Bicicletas


Bicicletas bike1 = new Bicicletas();
Bicicletas bike2 = new Bicicletas ();
// Invocando a los métodos por medio de los objetos
bike1.cambiodeCadencia(50);
bike1.incrementodeVelocidad(10);
bike1.cambiodeVelocidades(2);
bike1.imprimeEstado();
}
}

La salida de esta prueba sería la siguiente

Cadencia:50 Velocidad:10 Cambios:2


Cadencia:40 Velocidad:20 Cambios:3

El programa completo se muestra a continuación

public class BicicletasDemo {

public static void main(String[] args) {

// Se crean dos diferentes objetos de la clase Bicicletas


Bicicletas bike1 = new Bicicletas();
Bicicletas bike2 = new Bicicletas ();

// Invocando a los métodos por medio de los objetos


bike1.cambiodeCadencia(50);
bike1.incrementodeVelocidad(10);
bike1.cambiodeVelocidades(2);
bike1.imprimeEstado();
}
}

class Bicicletas {

int cadencia = 0;
int velocidad = 0;
int cambios = 1;

void cambiodeCadencia(int nuevoValor) {


cadencia = nuevoValor;
}

void cambiodeVelocidades(int nuevoValor) {


cambios = nuevoValor;
}

void incrementodeVelocidad(int incremento) {


velocidad = velocidad + incremento;
}

void aplicarFrenos(int decremento) {


velocidad = velocidad - decremento;
}

void imprimeEstado() {
System.out.println("Cadencia: "+ cadencia+" Velocidad :
"+velocidad+" Cambios: "+ cambios);
}
}

Você também pode gostar