Vous êtes sur la page 1sur 22

TIPS DE PROGRAMACION JAVA

Las variables son para guardar cosas.


Las clases son moldes (de galletas) que crean objetos.
Las funciones son dispensadores, etc.
La herencia es combinar moldes para que den otra forma.
El polimorfismo permite hacer un objeto con varios moldes en comn, de
forma que encaje con cualquiera de los moldes usados.

Un tutorial de java que muestra porque programar en Java (o cualquier


programacin orientada a objetos) es como escribir una simple novela
del Oeste.

Como comprender Java mirando colores bonitos.


La analoga de ste tutorial es simple: piensa en un programador de java como un
escritor que escribe una novela de accin. Todos los personajes y escenarios son
los usuales, y necesitan ser modificados un poco para que se acomoden a un
nuevo libro. Todo lo que falta para escribir un bestseller es crear una trama que
junte todos los elementos.
Lo anterior, en general, es programacin en java. Piensa en ello como Dean
Koontz (escritor) para personas inteligentes. Ahora, puede que eso sea todo lo que
quieres saber. S es as, Gracias por venir! Si aun necesitas ms detalles (quizs
una docena de pginas con ejemplos), Entonces continua leyendo!
Cuando comenc a aprender cmo programar en Java, qued
totalmente confundido acerca de lo que significa "orientado a objetos".
Los libros que tena, explicaban los conceptos pobremente y despus se
saltaban directamente a tips avanzados de programacin. Me senta
frustrado y perdido. Como no soy muy orientado a las matemticas,
necesitaba una buena analoga que me ayudara a entender la
naturaleza de Java.Cre ste pequeo tutorial, no para que sea un
recurso exaustivo de Java, sino mas bien, para introducir a los lectores
el concepto de programacin orientada a objetos de una manera menosamenazante. Si todo va bien, los tendremos a todos en una bolsa
protectora antes de una hora.
Hay tres niveles diferentes en ste tutorial, codificados en colores. Verde
es para aquellos lectores que quieren la ms bsica introduccin. Est
orientado a aquellos que no saben que es programacin orientada a
objetos y pueden usar sta analoga para hacer las cosas un poco mas
claras. Amarillo es para aquellos que quieren entender la programacin
orientada a objetos solo lo suficiente para leerla y seguirla, pero aun no
estn listos aun para aprender las complejidades de la codificacin en
Java. Y finalmente, el tercer nivel, rojo, es para ustedes los temerarios
que quieren programar en Java, pero quieren que el proceso sea fcil y
poco a poco.
En resumen, el texto en verde da una versin en "simple espaol" del cdigo
que ser necesario, el amarillo usa el espaol de la forma que mas se parece al
formato del cdigo, y el rojo es el cdigo que ser necesario para que el
programa funcione. Lectores de todos los niveles son invitados a leer entre los

colores que mas se acerquen a su conocimiento. Finalmente, aunque ste


tutorial funciona mayormente por analoga, insinuaciones e intriga, aquellas
palabras que aparecen en negritas son los trminos usados por los
programadores de Java (ooooh!), as que trata de recordarlos mientras vayas
avanzando.

Conozcan a Eunice. Eunice escribe novelas del viejo oeste. Sus


libros acerca de la vida en el salvaje oeste de los Estados
Unidos se han vuelto tan populares que todo el mundo corre a
comprarlos. Sus lectores nunca son desilusionados por que los
libros de Eunice son muy consistentes. Cmo lo logra?Bueno,
antes escribir cualquier cosa, Eunice se sienta en su escritorio,
limpia el desorden, y pone una sola hoja de papel en su
escritorio. Es en sta hoja de papel ella escribe toda su historia.
Cmo puede escribir Eunice toda la historia en un solo papel?
Simple. Todo lo que escribe en la pgina es solo una secuencia
de eventos, o trama. Los escenarios, el desarrollo de los
personajes y como los personajes interactuan es escrito en otro
lado. Cmo hace eso? Descubrmoslo.
Vern, Eunice, mas que nada, es ordenada y consistente. sto
es lo que ha vuelto sus libros tan populares. Digamos que se
acaba de sentar a escribir "Balacera en la cantina Viejo Oeste",
su trigsimo quinto libro.
Lo primero que Eunice necesita es un escenario, as que saca
una carpeta que ha marcado como "Pueblos del Oeste", abre la
primera pgina y lee las primeras lneas:

Cada Pueblo del Oeste tiene varios componentes: establos, cantinas,


comisarios, y un par de alborotadores. Un pueblo estandar tendra tres
establos y estara localizado al oeste del Mississippi en alguna fecha al
rededor de 1850.

sta descripcin de un Pueblo del Oeste, aunque no es muy detallada, ha


hecho dos cosas importantes:
1) Estableci los principales ingredientes para un Pueblo del Oeste y
2) Defini varios valores que puede tener un Pueblo del Oeste. (Ms de tres
establos y el lugar comienza a apestar)

PuebloDelOeste
tiene un cierto nmero de establos
tiene un cierto nmero de cantinas
tiene un cierto nmero de comisarios
tiene un cierto nmero de alborotadores
est localizado en algn lado
existe en cierto ao
un tpico PuebloDelOeste tendr
nmero de establos = 3
localizacin = Oeste de los Estados Unidos
ao = 1850
Podra parecer que Eunice tiene una forma extraa de escribir, pero para
ella, el escrito es directo. La primera lnea de la pgina dice que Eunice est
definiendo un Pueblo del Oeste. Puedes notar que cuando Eunice debe
escribir dos palabras, no usa un espacio. Hay una razn. Si pone espacios,
su editor en Nueva York, un detallista quisquilloso, se confunde.
El siguiente paso, lgicamente, es declarar todo tipo de variables (esas
cosas que definen cmo es) que una clase de Pueblo del Oeste puede
tener: Comisarios, establos, alborotadores, etc. Con eso dicho, solo falta
hacer un constructor, un pueblo de muestra, con valores por defecto para
sus variables. Whew!

public class PuebloDelOeste


{
int establos;
int cantinas;
int comisarios;
int alborotadores;
String locacion;
int tiempo;

public PuebloDelOeste()
{
establos = 3;
locacion = "Oeste de los Estados Unidos";
tiempo = 1850;
}
}
Al hacer su Pueblo del Oeste, Eunice est definiendo una clase, no al
pueblo en s mismo (sto sera un objecto). Una clase es como
(mezclando metforas aqu) una receta sin cantidades. Dice qu elementos
debe haber en un Pueblo del Oeste, pero no dice en qu cantidad.
ste es el proceso de declarar cmo las variables sern llamadas, y que
tipo de valores tendrn. Por ahora, slo preocupense por los "int"s y
"String"s. "int" significa entero (integer), y"String" es para las cadenas
(string) de letras.
El punto y coma es la forma que Eunice tiene de decirle a su editor que ha
terminado con cada declaracin (enunciado, sentencia) y que puede seguir
con la siguiente. En general, puedes pensar en el punto y coma (;) como un
punto (.).
Finalmente, ya notaron que cada vez que Eunice quiere agrupar un
conjunto de declaraciones, usa llaves , "{". Aunque Eunice conoce sus
personajes muy bien, sto le dice a su editor dnde un grupo de
declaraciones comienzan y dnde terminan. Cualquier clase siempre va a
terminar con todas las llaves cerradas.
Si Eunice no crea (o instanca) un objeto pueblo en su libro, su editor va a
ver la clase Pueblo del Oeste para determinar como debe ser el objeto
pueblo (Eunice va a mandar el folder junto con el manuscrito). Pero, Cmo
va a saber el editor el nmero de establos y dems? Aqu es donde vemos
el constructor.
El constructor viene despus que todas las variables han sido declaradas.
Comienza con PuebloDelOeste(). Los enunciados que siguen son los
valores por defecto para sus variables; As es como lucira el objeto pueblo
si ella solamente lo instanciara en su trama sin especificar ningn valor.
Ahora que hemos visto un poco en uno de los folders de Eunice. Ella ha
revisado la seccin de Pueblo del Oeste y cree que ste libro debe estar
localizado, no es de sorpdenderse, en un Pueblo del Oeste. As que ella
est lista para escribir la primera parte de la trama. Eunice regresa al papel

principal (main) que est esperando en la mitad de su escritorio y comienza


a escribir la historia.

Balacera en la cantina Viejo Oeste


sta historia comienza en un Pueblo
del Oeste llamado Sweaty Post
(Poste Sudoroso). Sweaty Post tiene
un comisario, dos cantinas y cinco
alborotadores.
Slo son un par de lneas, pero Eunice, ha dicho bastante. Cuando ella
enve la historia a su editor, l va a ver el folder "Pueblo del Oeste" que ella
mande junto con la historia y va a poner la fecha, locacin y el nmero de
establos. Adems, Eunice ha agregado informacin sobre el comisario, las
cantinas y los alborotadores. Pero no hay problema, por que el editor ya
estaba esperando stos datos. Por que la informacin en el folder, dice que
cada Pueblo del Oeste debe tener cierto nmero de cada uno, pero no dice
cuntos, su editor est muy feliz de verlos especificados en la trama.
Incluso cuando la trama principal (main) tiene solamente dos lneas, por la
referencia a su folder, la historia ya contiene mucha informacin.

Balacera Principal (main)


Pueblo del Oeste sweatyPost es un nuevo
Pueblo del Oeste.
el nmero de cantinas en
sweatyPost es dos.
el nmero de comisarios es uno.
el nmero de alborotadores es cinco.
Eunice toma dos pasos muy importantes en su trama. Primero,
ella instanca un objeto de tipo PuebloDelOeste. Habiendo creado su
primer objeto, Eunice comienza a llenar la informacin que inicialmente
faltaba en la clase PuebloDelOeste: (nmero de catinas, comisarios,
alborotadores)

public class Balacera {


public static void main (String arguments[])
{
PuebloDelOeste sweatyPost = new
PuebloDelOeste;
sweatyPost.cantinas = 2;
sweatyPost.comisarios = 1;
sweatyPost.alborotadores = 5;
}
}
Eunice tiene una extraa manera de decir las cosas, No es as? Es
posible explicar lo que significa cada palabra de las dos primeras lneas,
pero en realidad no tendra mucho sentido hacerlo en ste momento, y
realmente daara mi pequeo cerebro, as que saltmoslo por ahora, Si?
Lo que es importante saber es que esa lnea es como Eunice le hace saber
a su editor que sta hoja es su rutina principal (main), o trama.
Cuando ella decide especificar esas variables (cantinas, etc) que no fueron
especificads en la clase PuebloDelOeste, Eunice primero da el nombre
del objeto (en este caso, sweatyPost. Recuerden que sweatyPost es un
objeto de PuebloDelOeste) seguido por por un punto y luego por el nombre
de la variable. Habiendo hecho esto, Eunice puede entonces asignarle un
valor a la variable, por ejemplo dos.

Bueno, creanlo o no, acaban de ver programacin orientada a objetos en


accin. Nuestro autor Eunice primero cre una clase (que estaba en el
folder) que vagamente describa un Pueblo del Oeste, luego fue a su trama
principal main y cre (instanci) un objeto Pueblo del Oeste al que llam
sweatyPost.
Ahora,
para
su"Pueblo
villano, del
Eunice
necesita
un nuevo
folder. un
Pone elfolder.
folder
Oeste"
en la ttulos
repisa,
y agarra
nuevo
Su mano
pasa
por varios
diferentes,
como:
"Animales",
"Armas",
"Clima",
"Musica",
todo
lo al fin
esencial
para
un
buen
libro
del
viejo
oeste,
hasta
que
encuentra el folder que quiere: "Humanos".
Ella abre la introduccin
"Todos los humanos comienzan teniendo dos
piernas, dos brazos, dos ojos, una nariz y
una boca. Pueden ser hombre o mujer,

tienen nombre, tienen un caballo que tiene


nombre y tienen diferentes preferencias de
whiskey. Si alguien pregunta, los humanos
pueden responder con su nombre."
Humanos
tienen cierto nmero de piernas
tienen cierto nmero de brazos
tienen cierto nmero de ojos
tienen cierto nmero de narices
tienen cierto nmero de bocas
tienen nombre
tienen cierto sexo
tienen un caballo con nombre
tienen una fuerte preferencia por el whiskey

Un humano estandar comienza con


dos piernas
dos brazos
dos ojos
una nariz
una boca

Cuando alguien les pregunte por su nombre


dicen su nombre

Ustedes,
siendo
los expertos
que son,
notan
quepreguntar
el humano
de
Eunice
tiene cierta
interactividad.
Ella
puede
por
sus nombres,
stos
respondern.
sto
esdiversin.
llamado
mtodo
yyes
tupginas.
llave
para un poco
de
Iremos ah
en algunas

public class Humanos {


int piernas;
int brazos;
int ojos;
int nariz;
int boca;
String nombre;

String sexo;
String nombreCaballo;
String preferenciaWhiskey;

public Humanos() {
piernas = 2;
brazos = 2;
ojos = 2;
nariz = 1;
boca = 1;
}
public String comoTeLlamas() {
return nombre;
}
}
Mira,
todo tiene sentido, excepto la parte de "public String
comoTeLlamas()",
unos momentos. Si? No se preocupen. Veremos eso en

Por muy interesante que la descripcin de los humanos pueda ser, no es


muy especfica. Eunice le prometi a su editor una nueva historia para el
viernes, as que decide ponerse a trabajar. Buscando en el el folder
"Humanos", se encuentra con el primer captulo, llamado "Villanos".

Los villanos estn basados en la idea de los


humanos. Son idnticos, excepto que tienen
algunas cualidades adicionales, llmense un
bigote, un sombrero, cierto "aspecto", un nivel de
ebriedad y una cierta cantidad de demiselas
secuestradas. Tu villano estandar va a verse
"malo", va a comenzar el da sobrio y sin

damiselas secuestradas.
Nada nuevo aqu, solo que hemos profundizado en los folders de Eunice
(clases) para ver una subseccin (subclase). sta subseccin,
villanos, extiende la idea de humanos.

Villanos extiende la idea de Humanos.


Un Villano
tiene bigote.
tiene sombrero.
tiene aspecto.
tiene algn grado de ebriedad.
tiene cierto nmero de damiselas
secuestradas.
Cada Villano,
Va a verse malo.
Va a comenzar sobrio.
Va a comenzar el da sin damiselas
secuestradas.

public class Villanos extends Humanos {


String colorBigote;
String colorSombrero;
String aspecto;
int ebriedad;
int numeroDeDamiselas;
Humanos damisela;
public Villanos() {
aspecto = "Malo";
ebriedad = 0;
numeroDeDamiselas = 0;
}
}

Hemos introducido aqu la idea de subclases. "Humanos" es una clase, y


"Villanos" una subclase de sta.
Pueden preguntarse por qu Eunice declar "Humanos damisela" en sta
clase. Mralo de sta manera. Si el villano va a secuestrar una damisela, el
editor de Eunice debe saber que es una damisela. Al declarar "Humanos
damisela", su editor sabe que damisela es un tipo de humano.

Despus que Eunice ha descrito como luce su villano, decide comenzar


algunos de sus mtodos (Los recuerdas de hace algunas pginas?) que
los villanos emplean para sus viles fechoras. Siendo abstemia, Eunice
quiere enfocarse en como toman los villanos. As que escribe:

Siempre que la trama principal (main) diga que un


villano bebe whiskey, su grado de ebriedad va a
subir uno.

Aunque sto no luzca diferente de lo que hemos hecho antes, deben notar
que Eunice est especificando como uno de sus personajes actua, no nada
mas como ste/sta/eso luce. Deben tambin notar que ella est alterando
una de sus variables, la variable "ebriedad". Como sus folders (clases)
pueden contener informacin sobre como sus personajes actuan, Eunice
puede desarrollar mucho sus personajes sin siquiera tocar la hoja de la
trama principal (main).

tomarWhiskey
ebriedad se incrementa por uno
Noten que el patrn ha comenzado a emerger en el escrito de Eunice. Lo
que ha hecho con ste mtodo llamado tomarWhiskey es similiar a como

ella trat las variables en el pasado. Primero, ella nota que es lo que va a
describir (en ste caso un mtodo llamado tomarWhiskey) y despus, en la
siguiente lnea, que va a hacer el mtodo cuando lo llame en su
trama principal (main)(rutina).

public void tomarWhiskey() {


ebriedad++;
}
Aunque Eunice us una gran cantidad de smbolos extraos, su enfoque
fue directo y consistente. La primera cosa que hizo fue anotar el nombre del
mtodo "tomarWhiskey". Como el nombre del mtodo es tomarWhiskey,
Eunice se da cuenta que debe modificar el grado de ebriedad, en ste caso
agregando uno al grado. sto es lo que "++" despus de "ebriedad" hace.

Ahora, los villanos de las historias de Eunice son famosos por poder
aguantar mucho licor. Por lo tanto, es muy difcil para un observador el
evaluar que tan ebrio realmente est el villano. Eunice decide que es buena
idea el permitirle al villano decir que tan alcoholizado est, as que escribe
un nuevo mtodo:

Si alguien le pregunta al villano que tan ebrio est,


el villano va a responder siempre con su grado de
ebriedad.

queTanEbrioEstoy
decirle que tan ebrio estoy

public int queTanEbrioEstoy() {


return ebriedad;
}
Si te ests preguntando por el "int" en frente que "queTanEbrioEstoy()",
Eunice lo ha puesto por que ste mtodo regresa (return) un valor. Para
que el editor sepa que clase de valor est siendo regresado, ella especifica
el "int" (entero) antes del nombre del mtodo. Recuerden que a su editor no
le gustan las sorpresas, y si ella no le dice que clase de variables va a
regresar el mtodo, se va a enojar y poner nervioso. (Y no queremos eso,
Verdad?)

Para ste punto, Eunice est muy orgullosa de ella misma, ha creado un
villano que puede experimentar casi todo el rango de viles actividades que
ellos hacen. Pero, solo para cerrar con broche de oro, Eunice decide que el
villano debe tener la habilidad de secuestrar damiselas. Se prepara para
escribir un mtodo mas. Lo que diferenca ste mtodo de los otros, es que
necesita informacin de alguien que no es un villano, para ser secuestrada,
le vamos a llamar damisela. Para hacerla flexible (y para varias damiselas),
Eunice deja la identidad de la damisela en blanco por ahora.

Si se supone que el villano secuestre una


damisela, que secuestre a la damisela especfica,
luego que aumente el nmero de damiselas que
ha secuestrado. Luego que imprima: "Oh Dios
mio (damisela especfica) ha sido secuestrada!"
Ahora que ya pueden ver la flexibilidad que Eunice tiene al escribir sus
historias; ella puede especificar ciertas cosas solo cuando la trama sea
escrita. Y al escribir que la damisela va a tener cierto nombre, pero sin decir
cual, podemos ver esa flexibilidad. Tambin ha usado un enunciado de
impresin que va a mostrar la informacin que ha reunido el mtodo con el
un evento. Qu fcil!

secuestrarDamisela (nombre)
agregar una al nmero de damiselas que el
villano ha secuestrado.
imprimir "Oh Dios mio (la damisela
especfica) ha sido secuestrada!
No tengo nada que decirles. Si se sienten mal por entender todo hasta
ahorita, entonces pueden leer la seccin roja para ste.

public void secuestrarDamisela (Humanos


damisela) {
this.damisela = damisela;
numeroDeDamiselas++;
System.out.println("El Villano ha
secuestrado a " +
damisela.comoTeLlamas());
}
}
Quizs se estarn diciendo: "Geez! Me deb haber quedado en la parte
verde" No se preocupen. Se ve mucho peor de lo que en realidad es, y
probablemente ya entendieron la mayor parte.
Primero, tenemos el nombre del mtodo: "secuestrarDamisela". Sin
sorpresas hasta aqu. Entonces, entre esos parntesis, tenemos "Humanos
damisela". Lo que est entre los parntesis se llama argumento. Nos ayuda
a hacer el mtodo mas especfico. Cuando Eunice comienza a escribir la
trama, en algn punto va a querer que su villano secuestre a una damisela
(Qu clase de libro del viejo oeste sera sin una damisela secuestrada?).
Pero si ella escribe en la trama: "villano.secuestrarDamisela()", no sera
muy divertido para el lector. Quin ha sido secuestrada? Cul es su
nombre?. Sintindose orgullosa de siempre tener personajes femeninos
fuertes, Eunice quiere ponerle nombre a la damisela que es secuestrada.
Entonces, cuando la trama dice "secuestrarDamisela", siempre va a decir el
nombre de la damisela que est siendo secuestrada como un argumento.
"Humanos", que viene antes de "damisela", le dice al editor que la cosa que
va a ser secuestrada es una humano. A su editor no le gustan las
sorpresas, asi que saber que es una humano la secuestrada, y no una
oveja por ejemplo, reduce el tiempo de conjeturas al final.

La siguiente lnea es otro intento de Eunice de complacer a su quisquilloso


editor, Qu es incluso mas exigente que ella! Incluso cuando ella ha
mandado el nombre de la damisela como argumento, su editor no la va a
dejar usarla en el mtodo hasta que haya anotado que la "damisela"
que declar como una variable de "Villanos" sea igual al valor dado en el
argumento del mtodo.
Cumpliendo al fin todas las peripecias de su editor (no esperen entenderlo
todo de inmediato, A Eunice le tom un par de semanas!"), Eunice se pone
a terminar su mtodo. Una vez que el villano ha secuestrado a la damisela,
la variable "numeroDeDamiselas" va a aumentar por uno, as que Eunice
pone el mismo "++" despus de numeroDeDamiselas que haba puesto
despus de "ebriedad" en el ejemplo "tomarWhiskey".
Con el escenario preparado, Eunice decide que es tiempo de hacer saber a
sus lectores lo que sigue. Entonces, el enunciado "System.out.println". Un
poco verboso, pero le hace saber a su editor que lo que viene entre los
parntesis va en el texto final de el libro; todo el texto que ella ponga entre
comillas.
Pero, porqu la variable 'damisela.comoTeLlamas' no est entre comillas
entonces? Por que no es una literal, es mas bien un mtodo del objeto. Al
no poner las comillas, Eunice le hace saber a su editor que debe ir a buscar
el objeto damisela (va a descubir que es parte de la clase "Humanos"),
entonces va a buscar por el mtodo "comoTeLlamas" (va a ver que regresa
el nombre de la damisela). Todo sto para el nombre de la damisela!!
Si ella hubiera escrito: damisela.comoTeLlamas dentro de comillas, el editor
hubiera impreso el libro: "El villano ha secuestrado +
damisela.comoTeLlamas!"... No hay Premio Pulitzer para eso.
Para que el editor substituya la variable del nombre por la palabra nombre,
Eunice cierra las comillas antes de escribirlo. El signo "+" le dice al editor
que ella quiere concatenar los dos enunciados.
Por suerte para ustedes, la siguiente pgina es de revisin.

En est punto, puede ser buena idea revisar como luce la descripcin
global de un villano de Eunice. Nada de lo que vamos a ver es nuevo, es
solo una compilacin de las pginas anteriores.

Los villanos estn basados en la idea de los

humanos. Son idnticos, excepto que tienen


algunas cantidades adicionales, como un bigote,
un sombrero, cierto aspecto, algo de ebriedad y
cierta cantidad de damiselas en su haber. Tu
villano estandar se ver malo, comenzar el da
sobrio y sin haber secuestrado aun a ninguna
damisela.
Cuando el villano tome whiskey en la trama
principal, su grado de ebriedad subir por uno.
Si alguien le pregunta al villano que tan ebrio est,
el villano siempre responder con su grado de
ebriedad.
Si el villano debe secuestrar una damisela, va a
secuestrar a una en especfico, va a agregar una
mas a su nmero de damiselas secuestradas.
Luego va a imprimir "Oh Dios mio (el nombre de
la damisela en especfico) ha sido secuestrada!"

Villanos extiende la idea de Humanos.


Cada villano tiene bigote.
Cada villano tiene sombrero.
Cada villano tiene cierto aspecto.
Cada villano va a tener cierto grado de
ebriedad.
Cada villano va a secuestrar cierto nmero
de damiselas.
Cada villano,
Va a verse malo.
Va a comenzar sobrio el da.
Va a comenzar el da sin damiselas
secuestradas.
tomarWhiskey
ebriedad se incrementa en uno

queTanEbrioEstoy
decirle que tan ebrio estoy
secuestrarDamisela (nombre)
agregar una al nmero de damiselas que el
villano ha secuestrado.
imprimir "Oh Dios mio (la damisela
especfica) ha sido secuestrada!"

public class Villanos extends Humanos {


String colorBigote;
String colorSombrero;
String aspecto;
int ebriedad;
int numeroDeDamiselas;
Humanos damisela;
public Villanos() {
aspecto = "malo";
ebriedad = 0;
numeroDeDamiselas = 0;
}
public void tomarWhiskey() {
ebriedad ++;
}
public int queTanEbrioEstoy() {
return ebriedad;
}
public void secuestrarDamisela (Humanos
damisela) {
this.damisela = damisela;

numeroDeDamiselas++;
System.out.println("El villano ha
secuestrado a " +
damisela.comoTeLlamas());
}
}

Todo ste trabajo con damiselas y trenes, hizo a Eunice sentirse un poco
cansada, as que decide dejar de trabajar en sus personajes por un
momento y trabajar un poco en la trama principal.
Toma su pluma y la coloca en la hoja llamada rutina principal (main).
Aqu es donde est lo de la balacera en la cantina
Old West: Hay un Pueblo del Oeste llamado
Sweaty Post. Sweaty Post tiene dos cantinas, un
comisario y cinco alborotadores. Hay un villano
hombre llamado Maurice. Maurice tiene un
sombrero negro, bigote rojo y un caballo llamado
"Beer Gut". Maurice prefiere el whiskey Jack
Daniels. Mary es una mujer humano. Ella tiene un
caballo llamado "Midnight" y ella prefiere su
whiskey solo. En nuestra historia, Maurice
comienza tomando whiskey. Entonces les dice a
todos que tan ebrio est, y luego secuestra una
mujer llamada Mary.

Aqu est la trama principal de la balacera en la


cantina Old West;
En la novela Balacera;
Hay un pueblo llamado sweatyPost;
sweatyPost tiene dos cantinas;
sweatyPost tiene un comisario;
sweatyPost tiene cinco alborotadores;
Hay un nuevo villano llamado maurice;
maurice tiene sombrero negro;

maurice tiene bigote rojo;


maurice es hombre;
maurice tiene un caballo llamado "Beer
Gut";
maurice prefiere el whiskey Jack Daniels;
Hay un nuevo humano llamado Mary;
mary es mujer;
mary tiene un caballo llamado "Midnight";
mary prefiere su whiskey solo;
maurice toma algo de whiskey;
maurice dice que tan ebrio est;
maurice secuestra una damisela llamada
Mary

public class Balacera {


public static void main(String arguments[]) {
PuebloDelOeste sweatyPost = new PuebloDelOeste();
sweatyPost.cantinas = 2;
sweatyPost.comisarios = 1;
sweatyPost.alborotadores = 5;
Villanos maurice = new Villanos();
maurice.colorSombrero = "negro";
maurice.colorBigote = "rojo";
maurice.sexo = "hombre";
maurice.nombreCaballo = "Beer Gut";
maurice.preferenciaWhiskey = "Jack Daniels";
Humanos mary = new Humanos();
mary.sexo = "mujer";
mary.nombreCaballo = "Midnight";
mary.preferenciaWhiskey = "solo";
mary.nombre = "Mary";
maurice.tomarWhiskey();
System.out.println(maurice.queTanEbrioEstoy());
maurice.secuestrarDamisela(mary);
}

"Te preguntars: ste es su libro?". "Diez penosas pginas de texto


amarillo para esto?"
Entonces, Qu es tan especial acerca de sta trama? Bueno, no es todo
lo que pasa en la trama principal, sino lo que pasa tras bambalinas. Cuando
Eunice cre un pueblo llamado Sweaty Post, ella cre (instanci)
un objeto del tipo Pueblo del Oeste. ste objeto tiene todas las
caractersticas de un Pueblo del Oeste estandard (recuerdas los folders?).
Lo mismo pasa con el objeto Maurice y el (perdn por sto) objeto Mary.
Mientras que algunos de los rasgos de stos objetos fueron especificados
al momento de su creacin, la mayora de los rasgos fueron especificados
en los folders, o clases. sto permiti a Eunice decir mucho, cuando solo
deca un poco en su rutina principal (main).
As, la trama principal (rutina principal) de Eunice result ser solamente una
coleccin de referencias a objetos, que a su vez, son referencias a clases.
Esto es, para mezclar metforas de nuevo, federalismo literario, con todo
tratado en el menor nivel posible.
Y, Cules son los beneficios de sto? Bueno, imagina que en lugar de una
pgina, el editor de Eunice quiere un libro de quinientas pginas. O
digamos que Eunice decide que el villano Maurice no debe ser tan cruel. En
lugar de regresar a la laboriosa tarea de cambiar todas las apariciones de
Maurice comiendo gatitos y disparndole a ancianos (o lo que sea que los
malos hagan), Eunice podra solamente hacer algunos cambios al objeto
Maurice en el momento de su instanciacin (creacin). O puede cambiar la
clase Villanos, para que sea mas amistosa. O puede crear una *nueva*
clase llamada VillanosAmistosos con el aspecto del personaje de Samuel L.
Jackson en Tiempos Violentos (Pulp Fiction). Tiene muchas opciones, el
punto es que ella solo necesita hacer los cambios en un lugar.
Pero esa no es la nica razn de Eunice para escribir sus libros en Java.
Ella tiene una clara idea del futuro de los libros del Oeste. Ella ve
interactividad. Y si, en lugar de estar limitada a pginas, sus personajes
vivieran en objetos y clases, Eunice sera libre de crear un Sweaty Post
virtual. Los lectores (en su pgina web) podran incluir sus propias acciones
y sus personajes podran responder de muchas maneras, de acuerdo a lo
que est escrito en sus clases. Usando Java, Eunice pudo al fin traer de
nuevo a la vida el Viejo Oeste. Y claro, estoy seguro que ella no es la nica
que aora los das de las letrinas, la sangre y el polvo.
Y bueno, Quin es nuestro amigo el editor?

Han visto varias referencias al editor de Eunice en Nueva York. Quin es


nuestro amigo? Bueno, l conoce el mundo de los libros del Oeste de arriba
a abajo, y sabe que algunas cosas simplemente no funcionan en un libro
del Oeste. Por esto, el editor toma todos los escritos de Eunice, los lee y
luego le regresa todos los errores que ella ha cometido (recuerden que les
dije que es un muy quisquilloso). En la computadora, es llamado
el compilador. Todos los programas de Java, deben ser compilados antes
de que puedan funcionar. El compilador pacientemente (y repetidamente)
va a decirles todo lo que hicieron mal. Y luego ustedes van a regresar a
corregirlo y compilar de nuevo. Y bueno, as es la vida literaria.

Y bueno, A dnde seguimos de aqu?

Ahora, estn preparados para salir y hacer su carrera en el excitante mundo


de programacin en Java. Probablemente dirn: "No, aun no se lo
suficiente!" No se preocupen, Java es tan exagerado que los empleadores
que no tienen idea de lo que es lo tienen listado como "requerido" en los
anuncios laborales. As que denles lo que se merecen. Pongan "java" en
sus curriculums. Si les hablan y preguntan sobre ello, digan algo como:
"Pero claro, justo sta maana estaba instanciando unos objetos". Luego
pregunten algo que los haga sentir estpidos, como: "Digamos, si tengo un
problema con vectores de la clase awt (clase de java), T sers con el que
hablo de ello?" Ellos nunca te preguntarn de nuevo, y tu estars bebiendo
Odwalla (jugo de frutas) para el lunes. Confa en mi.
S, por el contrario, simplemente no te sientes cmodo mintindole a un
empleador potencial, entonces quizs quieras intentar algunos ejercicios.
Quizs notaste que ste tutorial tiene algunas variables que no utilic. Roba
mi cdigo. Hazlo tuyo. Escribe nuevos comandos en la rutina principal. Crea
nuevos personajes. Escribe una secuela. Usa esas variables.
Claro, t querrs conseguir un libro decente de java antes de iniciar en sto,
pero por favor, sientete libre de regresar a tu casa aqu en No temas la
POO y aumenta mi cdigo cuando quieras.
sto es todo. Y si te consigues un trabajo, trata de recordar a toda la gente
que te ayud en tu camino.

sta es una traduccin del trabajo de Johannes Claerbout, para ver el


artculo original, ir a Don't fear the OOP!, cualquier error en la traduccin

favor de enviarlo a ruben.rojas[@]gmail.com


Espero que a alguien mas le pueda ayudar el trabajo que tanto me ayud, y
aunque Jos ya est en otro lado, aqu dejo mi agradecimiento en forma de
traduccin.

Vous aimerez peut-être aussi