¿Qué es un objeto?
Los objetos son clave para entender la tecnología orientada a objetos. al mirar alrededor encontrará muchos ejemplos de objetos del mundo real: su perro, su escritorio, su televisor, su bicicleta. Objetos del mundo real comparten dos características: Todos ellos han estado y comportamiento. Los perros tienen caracteristicas (nombre, color, raza, hambre) y el comportamiento (ladridos, obteniendo, meneando la cola). Las bicicletas también lo tienen (actual artes, actual pedal cadencia, velocidad actual) y comportamiento (cambio artes de pesca, el cambio de cadencia de pedal, la aplicación de los frenos). Identificar el estado y el comportamiento de los objetos del mundo real es una gran manera de comenzar a pensar en términos de programación orientado a objetos.
Tome un minuto ahora a observar los objetos del mundo real que están en su área inmediata. Para cada uno de los objetos que ves,surgen dos preguntas: “¿Qué posibles estados pueden estar en este objeto?
“y”¿Qué posible comportamiento puede realizar este objeto? “. Asegúrese de anotar sus observaciones. Como lo hace, usted notará que los objetos del mundo real varían en complejidad, su lámpara de escritorio puede tener sólo dos posibles estados (y fuera) y dos posibles comportamientos (encender, apagar), pero el equipo de escritorio de radio puede tener más estados (ON, OFF, actual volumen, la estación actual) y comportamiento (encender, apagar, aumentar volumen, disminuir el volumen, buscar, explorar, y la melodía). También puede notar
algunos objetos que, a su vez, también contienen otros objetos. Estos del mundo real traducir todas las observaciones en el mundo de los objetos orientadas a la programación.
Un objeto de software.
Objetos de software son conceptualmente similares a los objetos del mundo real: su también consisten en el estado y 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).
Métodos de operar sobre un objeto del estado interno y servir de mecanismo principal para el objeto a objeto de comunicación. Ocultar interior estado y que requieren toda la interacción que se realiza a través de una
métodos del objeto que se conoce como la encapsulación de datos – un principio de la programación orientada a objetos.
Considere la posibilidad de una bicicleta, por ejemplo:
Una bicicleta modelo de software como un objeto.
Atribuyendo estado (velocidad actual, la cadencia actual de pedal, y actual de las artes de pesca) y el suministro de métodos para cambiar ese estado, el sigue siendo objeto de control en la manera en que el mundo exterior es permitido el uso de ello. Por ejemplo, si la bicicleta sólo tiene 6 marchas, la utilización de un método para cambiar artes de pesca podrían rechazar cualquier valor que sea inferior a 1 o superior a 6.
Paquetes de software de código en los objetos proporciona una serie de beneficios, incluyendo:
Modularidad: El código fuente de un objeto puede ser escrito y mantenerse independiente del código fuente para otros objetos. Una vez creado, un objeto puede ser fácilmente superado en todo el interior del sistema.
Ocultamiento de información: Mediante la interacción con un objeto sólo los métodos, la detalles de su implementación interna permanecen ocultas desde el exterior mundo.
Reutilización de código: Si un objeto que ya existe (tal vez escrito por otro desarrollador de software), puede utilizar ese objeto en su programa. Esto permite a los especialistas para aplicar / prueba / debug complejo, en tareas específicas objetos, a los cuales puede confiar para que se ejecute en su propio código.
Pluggability y facilidad de depuración: Si un objeto se convierte en ser problemática, basta con sacarlo de su solicitud y enchufe en un objeto como su reemplazo. Esto es análogo a la fijación de problemas mecánicos en el mundo real. Si un tornillo se rompe, usted sustituirlo, no toda la máquina.
¿Qué es una clase?
En el mundo real, usted a menudo se encuentran numerosos objetos de la misma especie. Puede haber otros miles de bicicletas en existencia, todos de la misma marca y modelo. Cada bicicleta se construyó a partir de la misma serie de planos y, por tanto, contiene los mismos componentes. En términos orientados a objetos, podemos decir que la bicicleta es una instancia de la clase de objetos conocidos como las bicicletas. Una clase es el plan de cada uno de los objetos que se crean.
La siguiente clase de bicicletas es una posible aplicación de una bicicleta:
Class Bicycle {
int cadence = 0;
int speed = 0;
int gear = 1;
void changeCadence(int newValue) {
cadence = newValue;
}
void changeGear(int newValue) {
gear = newValue;
}
void speedUp(int increment) {
speed = speed + increment;
}
void applyBrakes(int decrement) {
speed = speed - decrement;
}
void printStates() {
System.out.println("cadence:"+cadence+" speed:"+speed+" gear:"+gear);
}
}
La sintaxis del lenguaje de programación Java será nuevo para usted, pero el diseño de esta clase se basa en la anterior discusión de bicicleta objetos. Los campos cadencia, la velocidad y el arte representan estado del objeto, y los métodos (changeCadence, changeGear, SpeedUp etc), definir su interacción con el mundo exterior.
Usted podrá notar que la clase de bicicletas no contiene una de las principales método. Eso es porque no es una solicitud completa, es sólo la plan para bicicletas que puedan ser utilizados en una aplicación. El responsabilidad de crear y utilizar las nuevas bicicletas pertenece a los objetos algunos otros de clase en su aplicación.
Aquí hay una clase BicycleDemo crea dos objetos de bicicletas e invoca sus métodos:
class BicycleDemo {
public static void main(String[] args) {
// Create two different Bicycle objects
Bicycle bike1 = new Bicycle();
Bicycle bike2 = new Bicycle();
// Invoke methods on those objects
bike1.changeCadence(50);
bike1.speedUp(10);
bike1.changeGear(2);
bike1.printStates();
bike2.changeCadence(50);
bike2.speedUp(10);
bike2.changeGear(2);
bike2.changeCadence(40);
bike2.speedUp(10);
bike2.changeGear(3);
bike2.printStates();
}
}
La salida de esta prueba se imprime el fin pedal cadencia, la velocidad, y de los artes
para las dos bicicletas:
cadence:50 speed: 10 gear:2
cadence:40 speed:50 gear:3
¿Qué es la herencia?
Diferentes tipos de objetos suelen tener una cierta cantidad en común unos con otros. Bicicletas de montaña, bicicletas de carretera, bicicletas y tándem, por ejemplo, todos comparten las características de las bicicletas (velocidad actual, la cadencia actual de pedal, arte actual). Sin embargo, cada uno define también las características adicionales que los hacen diferentes: las bicicletas tándem tiene dos asientos y dos juegos de manillares, las bicicletas de carretera tienen gota manillar, algunas bicicletas de montaña tienen un anillo de cadena, dándoles una menor relación de desmultiplicación.
La programación orientada a objetos permite heredar a las clases de uso común del Estado y el comportamiento de otras clases. En este ejemplo, ahora se convierte en la de bicicletas de montaña superclase, RoadBike, y TandemBike. En el lenguaje de programación Java, cada clase se le permite tener una superclase directa, y cada superclase tiene el potencial para un número ilimitado de las subclases:

Una jerarquía de clases de bicicleta.
La sintaxis para la creación de una subclase es simple. Al principio de su declaración de clase, se extiende el uso de palabras clave, seguido por el nombre de la clase a la herencia de:
clase de bicicletas de montaña se extiende (
/ / Los nuevos campos y métodos de definición de una bicicleta de montaña irían aquí
)
Esto da a la clase montaña todos los mismos campos y métodos de bicicletas, pero permite que su código para centrarse exclusivamente en las características que lo hacen único. Esto hace que el código para su subclases fácil de leer. Sin embargo, usted debe tener cuidado de documentar adecuadamente el estado y el comportamiento que cada superclase define, ya que ese código no aparecerá en el archivo fuente de cada subclase.
¿Qué es una interfaz?
Como usted ya ha aprendido, los objetos definen su interacción con el mundo exterior a través de los métodos que se exponen. Métodos del objeto de la interfaz con el mundo exterior, los botones de la parte frontal de su televisor, por ejemplo, la interfaz entre usted y el cableado eléctrico en el otro lado de su carcasa de plástico. Pulsar el “poder” para encender la televisión y fuera.
En su forma más común, una interfaz es un grupo de métodos relacionados con los órganos vacía. Una bicicleta del comportamiento, si se especifica como una interfaz, podría aparecer como sigue:
interface Bicycle {
void changeCadence(int newValue);
void changeGear(int newValue);
void speedUp(int increment);
void applyBrakes(int decrement);
}
fuente: http://java.sun.com/docs/books/tutorial/java/concepts/index.html
Diferentes tipos de objetos suelen tener una cierta cantidad en común unos con otros. Bicicletas de montaña, bicicletas de carretera, bicicletas y tándem, por ejemplo, todos comparten las características de las bicicletas (velocidad actual, la cadencia actual de pedal, arte actual). Sin embargo, cada uno define también las características adicionales que los hacen diferentes: las bicicletas tándem tiene dos asientos y dos juegos de manillares, las bicicletas de carretera tienen gota manillar, algunas bicicletas de montaña tienen un anillo de cadena, dándoles una menor relación de desmultiplicación.
La programación orientada a objetos permite heredar a las clases de uso común del Estado y el comportamiento de otras clases. En este ejemplo, ahora se convierte en la de bicicletas de montaña superclase, RoadBike, y TandemBike. En el lenguaje de programación Java, cada clase se le permite tener una superclase directa, y cada superclase tiene el potencial para un número ilimitado de las subclases:
Una jerarquía de clases de bicicleta.
La sintaxis para la creación de una subclase es simple. Al principio de su declaración de clase, se extiende el uso de palabras clave, seguido por el nombre de la clase a la herencia de:
clase de bicicletas de montaña se extiende (
/ / Los nuevos campos y métodos de definición de una bicicleta de montaña irían aquí
)
Esto da a la montaña todos los mismos campos y métodos de bicicletas, pero permite que su código para centrarse exclusivamente en las características que lo hacen único. Esto hace que el código para su subclases fácil de leer. Sin embargo, usted debe tener cuidado de documentar adecuadamente el estado y el comportamiento que cada superclase define, ya que ese código no aparecerá en el archivo fuente de cada subclase.