Sunteți pe pagina 1din 10

Lesson: Object-Oriented Programming Concepts

Si usted nunca ha usado un lenguaje de programacin orientado a objetos


antes, tendrs que aprender algunos conceptos bsicos antes de empezar a
escribir cdigo. Esta leccin le dar a conocer a los objetos, clases, herencia,
interfaces y paquetes. Cada debate se centra en cmo estos conceptos se
relacionan con el mundo real, y al mismo tiempo proporcionar una
introduccin a la sintaxis del lenguaje de programacin Java.

What Is an Object?
Los objetos son clave para entender la tecnologa orientada a objetos. Mire a
su alrededor en este momento y usted encontrar muchos ejemplos de
objetos del mundo real: su perro, su escritorio, su televisor, su bicicleta.
Objetos del mundo real comparten dos caractersticas: Todos tienen estado y
comportamiento. Los perros tienen estado (nombre, color, raza, hambre) y el
comportamiento (ladridos, ir a buscar, meneando la cola). Las bicicletas
tambin tienen estado (velocidad actual, cadencia de pedaleo actual,
velocidad actual) y comportamiento (el cambio de marchas, el cambio de la
cadencia de pedaleo, la aplicacin de los frenos). Identificar el estado y el
comportamiento de los objetos del mundo real es una gran manera de
empezar a pensar en trminos de la programacin orientada a objetos.
Tome un minuto en este momento para observar los objetos del mundo real
que estn en su rea inmediata. Para cada objeto que se ve, hgase dos
preguntas: "Qu estados posibles este objeto puede estar?" y "Qu posible
comportamiento puede realizar este objeto?". Asegrese de anotar sus
observaciones. Mientras lo haces, te dars cuenta de que los objetos del
mundo real varan en complejidad; su lmpara de escritorio puede tener slo
dos estados posibles (dentro y fuera) y dos comportamientos posibles
(encender, apagar), pero su radio de escritorio podra tener otros estados
(encendido, apagado, volumen actual, la estacin actual) y comportamiento
(encender , apagar, subir el volumen, bajar el volumen, buscar, analizar y
ajustar). Tambin puede observar que algunos de los objetos, a su vez,
tambin contener otros objetos. Estas observaciones del mundo real todo se

traducen en el mundo de la programacin orientada a objetos.

A software object.

Los objetos de software son conceptualmente similares a los objetos del


mundo real: ellos tambin se componen de comportamiento del Estado y
afines. Un objeto almacena su estado en los campos (variables en algunos
lenguajes de programacin) y expone su comportamiento a travs de mtodos
(funciones en algunos lenguajes de programacin). Mtodos operan en el
estado interno de un objeto y sirven como el principal mecanismo para la
comunicacin de objeto a objeto. Cmo ocultar el estado interno y que
requiere toda la interaccin que se realiza a travs de mtodos de un objeto
que se conoce como datos encapsulation- un principio fundamental de la
programacin orientada a objetos.

Considere una bicicleta, por ejemplo:


Una bicicleta modelada como un objeto de software.

Atribuyendo estado (velocidad actual, cadencia de pedaleo actual y la marcha


actual) y proporcionar mtodos para cambiar ese estado, el objeto permanece
en control de cmo se permite que el mundo exterior para usarlo. Por ejemplo,
si la bicicleta tiene slo 6 engranajes, un mtodo para cambiar de marcha
podran rechazar cualquier valor que es menor que 1 o mayor que 6.
Sujecin de cdigo en objetos individuales de software proporciona una serie
de beneficios, incluyendo:
1. Modularidad: El cdigo fuente de un objeto puede ser escrito y mantenido
independientemente del cdigo fuente de otros objetos. Una vez creado, un
objeto puede pasar bien en el interior del sistema.
2.-Informacin escondite: Al interactuar slo con los mtodos de un objeto, los
detalles de su implementacin interna permanecen ocultos del mundo exterior.
3. Cdigo reutilizacin: Si ya existe un objeto (tal vez escrito por otro
desarrollador de software), puede utilizar ese objeto en su programa. Esto
permite a los especialistas para implementar / test / complejo de depuracin,
objetos de tareas especficas, que luego se puede confiar para ejecutar en su
propio cdigo.
4. enchufabilidad y depuracin facilidad: Si un objeto en particular resulta ser
problemtico, slo tiene que quitarlo de su aplicacin y conectar un objeto
diferente como su reemplazo. Esto es anlogo a la solucin de problemas
mecnicos en el mundo real. Si se rompe un perno, que se sustituya, no toda la
mquina.

What Is a Class?
En el mundo real, a menudo encontrar muchos objetos individuales todos los
de la misma clase. Puede haber miles de otras bicicletas en existencia, todas
de la misma marca y modelo. Cada bicicleta se construy a partir del mismo
conjunto de planos y, por tanto, contiene los mismos componentes. En
trminos de orientacin a objetos, se dice que la bicicleta es una instancia de
la clase de objetos conocidos como bicicletas. Una clase es el anteproyecto de
la que se crean los objetos individuales.
La siguiente clase de bicicletas es una posible implementacin 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 programacin Java buscar nuevo para usted, pero
el diseo de esta clase est basado en la discusin previa de los objetos de la
bicicleta. Los campos de cadencia, velocidad y engranajes representan el
estado del objeto, y los mtodos (changeCadence, ChangeGear, aceleracin,
etc) definen su interaccin con el mundo exterior.
Usted puede haber notado que la clase de bicicletas no contiene un mtodo
main. Esto se debe a que no es una aplicacin completa; es slo el modelo
para las bicicletas que pueden beused en una aplicacin. La responsabilidad de
crear y utilizar nuevos objetos de bicicletas pertenece a alguna otra clase en la
aplicacin.
Aqu est una clase BicycleDemo que crea dos objetos de bicicletas separadas
e invoca sus mtodos:
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 la cadencia de pedaleo final, la velocidad,


y el engranaje de las dos bicicletas:
cadence:50 speed:10 gear:2
cadence:40 speed:20 gear:3

What Is Inheritance?
Diferentes tipos de objetos a menudo tienen una cierta cantidad en comn con
cada otro. Las bicicletas de montaa, bicicletas de carretera y bicicletas en
tndem, por ejemplo, todos comparten las caractersticas de las bicicletas
(velocidad actual, cadencia de pedaleo actual, velocidad actual). Sin embargo,
cada uno tambin define caractersticas adicionales que las hacen diferentes:
las bicicletas tndem tienen dos asientos y dos juegos de manillar; bicicletas
de carretera tienen manillar de cada; algunas bicicletas de montaa tienen un
anillo de cadena adicional, dndoles una relacin de transmisin ms baja.
Programacin orientada a objetos permite que las clases hereden estado y el
comportamiento de uso comn de otras clases. En este ejemplo, la bicicleta se
convierte ahora en la superclase ofMountainBike, RoadBike, y TandemBike.
En el lenguaje de programacin Java, se permite que cada clase tiene una
superclase directos, y cada superclase tiene el potencial para un nmero

ilimitado de subclases:
Una jerarqua de clases de bicicleta.

La sintaxis para crear una subclase es simple. Al principio de su declaracin


de la clase, utilice la palabra clave extends, seguido del nombre de la clase a
heredar de:
class MountainBike extends Bicycle {
// new fields and methods defining
// a mountain bike would go here
}

Esto da Mountainbike todos los mismos campos y mtodos como la bicicleta,


sin embargo, permite que su cdigo se centre exclusivamente en las
caractersticas que lo hacen nico. Esto hace que el cdigo para sus subclases
fciles de leer. Sin embargo, se debe tener cuidado para documentar
adecuadamente el estado y el comportamiento que cada superclase define, ya
que el cdigo no aparece en el archivo de origen de cada subclase.

What Is an Interface?
Como ya has aprendido, objetos definen su interaccin con el mundo exterior
a travs de los mtodos que se exponen. Mtodos forman la interfaz del objeto
con el mundo exterior; los botones de la parte frontal de su aparato de
televisin, por ejemplo, son la interfaz entre el usuario y el cableado elctrico
en el otro lado de la carcasa de plstico. Se presiona el botn "Power" para
encender el televisor encendido y apagado.
En su forma ms comn, una interfaz es un grupo de mtodos relacionados
con cuerpos vacos. El comportamiento de una bicicleta, si se especifica como
una interfaz, podra aparecer como sigue:
interface Bicycle {
// wheel revolutions per minute
void changeCadence(int newValue);
void changeGear(int newValue);
void speedUp(int increment);
void applyBrakes(int decrement);
}

Para implementar esta interfaz, el nombre de su clase iba a cambiar (a una


marca en particular de la bicicleta, por ejemplo, como ACMEBicycle), y que
tendra que utilizar el implementskeyword en la declaracin de clase:
class ACMEBicycle implements Bicycle {
int cadence = 0;
int speed = 0;
int gear = 1;

//
//
//
//

The compiler will now require that methods


changeCadence, changeGear, speedUp, and applyBrakes
all be implemented. Compilation will fail if those
methods are missing from this class.

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 implementacin de una interfaz permite una clase para ser ms formal


sobre el comportamiento que se compromete a proporcionar. Interfaces
forman un contrato entre la clase y el mundo exterior, y este contrato se hace
cumplir en tiempo de compilacin por el compilador. Si su clase pretende
implementar una interfaz, todos los mtodos definidos por esa interfaz deben
aparecer en su cdigo fuente antes de la clase se compilar con xito.

What Is a Package?
Un paquete es un espacio de nombres que organiza un conjunto de clases e
interfaces relacionadas. Conceptualmente se puede pensar en paquetes como
algo similar a diferentes carpetas de su ordenador. Es posible guardar las
pginas HTML en una carpeta, las imgenes en otro, y secuencias de
comandos o aplicaciones en otro. Debido a que el software escrito en el
lenguaje de programacin Java puede estar compuesta de cientos o miles de
clases individuales, tiene sentido mantener las cosas organizadas mediante la
colocacin de clases e interfaces relacionadas en paquetes.
La plataforma Java proporciona una biblioteca de clases enorme (un conjunto
de paquetes) adecuado para su uso en sus propias aplicaciones. Esta biblioteca
se conoce como el "Application Programming Interface", o "API" para
abreviar. Sus paquetes representan las tareas ms comnmente asociados con
la programacin de propsito general. Por ejemplo, un objeto String contiene
el estado y el comportamiento de las cadenas de caracteres; un objeto File

permite a un programador para crear, suprimir, revisar, comparar o modificar


un archivo del sistema de archivos; un objeto Socket permite la creacin y el
uso de conectores de red; diversos objetos GUI botones y casillas de control y
cualquier otra cosa relacionada con las interfaces grficas de usuario. Hay
literalmente miles de clases para elegir. Esto permite que usted, el
programador, centrarse en el diseo de su aplicacin en particular, en lugar de
la infraestructura necesaria para hacer que funcione.
La plataforma Java API Especificacin contiene la lista completa de todos los
paquetes, interfaces, clases, campos y mtodos proporcionados por la
plataforma Java SE. Cargue la pgina en el navegador y un marcador. Como
programador, que se convertir en su pieza ms importante de la
documentacin de referencia.
Questions and Exercises: Object-Oriented Programming

Concepts
Questions

1.
2.
3.
4.
5.
6.
7.
8.
9.

Real-world objects contain ___ and ___.


A software object's state is stored in ___.
A software object's behavior is exposed through ___.
Hiding internal data from the outside world, and accessing it only
through publicly exposed methods is known as data ___.
A blueprint for a software object is called a ___.
Common behavior can be defined in a ___ and inherited into a ___
using the ___ keyword.
A collection of methods with no implementation is called an ___.
A namespace that organizes classes and interfaces by functionality is
called a ___.
The term API stands for ___?
1. objetos del mundo real contienen ___ y ___.
2. estado de un objeto de software se almacena en ___.
3. El comportamiento de un objeto de software se expone a travs
___.
4. Ocultacin de datos interna del mundo exterior, y para acceder a l
slo a travs de los mtodos expuestos pblicamente que se conoce
como datos ___.
5. Un modelo para un objeto de software se llama ___.

6. comportamiento comn puede ser definido en un ___ y hered en


un ___ utilizando la palabra clave ___.
7. una coleccin de mtodos sin aplicacin se llama ___.
8. Un espacio de nombres que organiza clases e interfaces de
funcionalidad se llama ___.
9. El trmino API significa ___?
Exercises

1. Create new classes for each real-world object that you observed at the
beginning of this trail. Refer to the Bicycle class if you forget the
required syntax.
2. For each new class that you've created above, create an interface that
defines its behavior, then require your class to implement it. Omit one
or two methods and try compiling. What does the error look like?
1. Crear nuevas clases para cada objeto del mundo real que usted
observ al inicio de esta ruta. Consulte la clase Bicycle si olvida la
sintaxis necesaria.
2. Para cada nueva clase que ha creado anteriormente, crear una
interfaz que define su comportamiento, entonces requieren de su
clase para implementarlo. Omitir uno o dos mtodos y tratar de
compilar. Qu aspecto tiene el error como?

Answers to Questions and Exercises: Object-Oriented


Programming Concepts
Answers to Questions

Real-world objects contain state and behavior.


A software object's state is stored in fields.
A software object's behavior is exposed through methods.
Hiding internal data from the outside world, and accessing it only
through publicly exposed methods is known as data encapsulation.
5. A blueprint for a software object is called a class.
6. Common behavior can be defined in a superclass and inherited into
a subclass using the extends keyword.
7. A collection of methods with no implementation is called an interface.
1.
2.
3.
4.

8. A namespace that organizes classes and interfaces by functionality is


called a package.
9. The term API stands for Application Programming Interface.
1. objetos del mundo real contienen estado y el comportamiento.
2. estado de un objeto de software se almacena en los campos.
3. El comportamiento de un objeto de software se expone a travs de
mtodos.
4. Ocultacin de datos interna del mundo exterior, y para acceder a l
slo a travs de los mtodos expuestos pblicamente se conoce como
encapsulacin de datos.
5. Un modelo para un objeto de software se llama una clase.
6. comportamiento comn puede ser definido en una superclase y
hered en una subclase usando la palabra clave extends.
7. una coleccin de mtodos sin aplicacin se llama una interfaz.
8. Un espacio de nombres que organiza clases e interfaces de
funcionalidad se llama un paquete.
9. El trmino API significa Application Programming Interface.
Answers to Exercises

1. Your answers will vary depending on the real-world objects that you
are modeling.
2. Your answers will vary here as well, but the error message will
specifically list the required methods that have not been
implemented.
1. Sus respuestas pueden variar dependiendo de la-objetos del mundo real que se est
modelando.
2. Sus respuestas variarn aqu tambin, pero el mensaje de error, aparecer una lista
especficamente los mtodos necesarios que no se han aplicado.

S-ar putea să vă placă și