You are on page 1of 13

Cu

Lin

e m a i
m s n :
C
rsodeJ
eageJa
i l : b r u j u
k i m e r a @
f b : k i m
Cu
JavaGr
avapar
K i m
u l a t o @ y a
@ k i m e r a
m e r a k i m
1 2 / 1
urs
ratuito
ralaco

e r a w e b
a h o o . e s
a w e b . e s
e r a w e b
1 0 / 2 0 1 2
od
orient
omunid
Kime
Estasclas
mnimos
encualqu
Lenguaje
Elcursoe
desdelos
programa

de
adoae
addeA
eraweb
sesgratuitas
quehayque
uierlenguaje
Java.Como
estdirigido
squenotien
acinalospr
eJa
emulad
Admins
b
pretendena
econocerpa
eusandocom
modelousar
atodoslosn
enconocimi
rogramadore
ava
doresd
spro.
abarcarlosa
rapoderpro
moherramie
relemulad
nivelesdeus
ientode
eshabituales
a

spectos
ogramar
ntael
dorL2J.
suarios,
s.

CursogratuitodeJavaenemuladoresL2Java
2012
e m a i l : b r u j u l a t o @ y a h o o . e s Pgina1

Elndiceseirmodificandoconformeestemanualseexpanda.
ndice
Tema1,Introduccin.
1.1Conceptosdeprogramacinorientadaaobjetos
1.2Desarrollodeunobjeto
1.3Elcuerpodeunobjeto
1.4Reglasparacrearnombres(nomenclatura)
Tema2,lasclases
2.1Alcancedeunaclase
2.2Reglasdedeclaracindeunaclase
2.3Creandounaclase
2.4Laclaseabstracta

CursogratuitodeJavaenemuladoresL2Java
2012
e m a i l : b r u j u l a t o @ y a h o o . e s Pgina2
S que queremos hacer cosas ya, pero este manual no va indicado para personas con
inquietudes exprs, es decir, lo leo ya y lo quiero ya. Un buen programador, espero que
cuando acabes el manual lo seas, ha de ser meticuloso y usar todas las reglas aceptadas
universalmente por los programadores, muy importante cuando se trabaja en equipo o se
retomaeltrabajodeotrapersona,comoesnuestromodeloL2J.
En este captulo sabremos que es un objeto, como funciona y reglas de programacin. No te
preocupes,empezaremosaprogramartanprontotengaslabasenecesaria.Acurdatedeque
ungiganteconpiesdebarro...

1.1 Conceptosdelaprogramacinorientadaaobjetos
Enprogramacinmoderna,seusaunaestructurallamadaprogramacinorientadaaobjetos.
Estonoes mscomplicadoque decirparaprogramaralgoharemosusodeotroscdigosque
yaexisten.
Entonces, el concepto de objeto: ahora mismo diremos que un objeto es un programa que
podemosincorporaranuestrocdigo.
Enesteobjetoexistenfunciones.
Una funcin, tal como su nombre indica es algo que est destinado a hacer, por ejemplo, las
funcionesdeuncoche?Frenar,acelerar,girar...
Ahoraimaginemosalgoquepodramoscrearenbreve,unformulario.
Funciones de un formulario? Recoger informacin, guardar informacin, recuperar
informacin...
Que podra necesitar el formulario para guardar la informacin al disco? Acceso al disco,
obviamente y... tendremos que crearnos un programa para poder grabar al disco? NO!!
Afortunadamente, todos los lenguajes tienen incluidos objetos bsicos (realmente no son tan
bsicos, se podran escribir miles de pginas... pero de momento lo dejamos aqu) que
usaremos.
Os habis dado cuenta de una cosa? Un objeto que slo sirve para acceder al disco... y nada
ms.

CursogratuitodeJavaenemuladoresL2Java
2012
e m a i l : b r u j u l a t o @ y a h o o . e s Pgina3
1.2 Desarrollodeunobjeto
Losobjetosencualquierlenguaje,yJavanoesunaexcepcin,esquedebenserdebajo
acoplamientoyaltacohesin.
Bueno,yestoparaqusirve?
Ojo,sinoejecutasestapremisaalaperfeccin,tuprogramavaaserunchurro(paraque
hablarconrodeos).
Primero,entremosendetalles,queesbajoacoplamiento?
Unprogramadebajoacoplamientosignifica,quesielprogramasemodifica,noafectaral
objetoquelousa.Porejemplo,imaginemosquetenemosunobjetollamadoSUMADORque
lonicoquehaceessumardosnmeros.Esteobjetoseinvocaporotroobjetollamado
CALCULADORA.SUMADORaceptatomardosnmerosydevolversusuma.Porcualquier
desdichadelanaturaleza,elcdigodeSUMADORtienequeserreescritoporqueseha
descubiertounfalloensuprogramacin.Elbajoacoplamientosignificaqueaunreescribiendo
elcdigodeSUMADOR,CALCULADORAseguirusandoaSUMADORsintenerqueeditarsu
cdigo,resumiendo,SUMADORestotalmenteindependientedeCALCULADORA.
Laaltacohesinsignificaqueelprogramaharexactamenteynicamenteesoparaloquefue
diseado,ynadams;deestamanera,sabemosqueSUMADORsolosuma,ynoharlas
funcionesdeRESTADOR(msadelanteexplicaremosotrasventajas).
Conloexplicadoaqu,seracensurablequeCALCULADORAfueseunobjetoquehicieseotra
tareaquenofuesecalcular,yquesuedicinforzaseaqueotroobjetoqueusase
CALCULADORAtuvieraquesereditadotambin.

CursogratuitodeJavaenemuladoresL2Java
2012
e m a i l : b r u j u l a t o @ y a h o o . e s Pgina4
1.3 Elcuerpodeunobjeto
Unobjetocomn,estcompuestodefuncionesyvariables.Explicadobrevemente,elobjeto
tienecomomisinhaceralgo,ysusfuncionessonlastareasquepuederealizar.
Haytareasquenecesitanguardaralgunainformacinparapoderserrealizada,paraguardar
estainformacinseusanvariables(porquesuvalorvariaalmenos,unavez).
Entonces,resumiendoporqueestonotienems:
Losobjetoscontienenfuncionesycontienenvariables.
Lasfuncionescontienenvariables.
Alprincipiocitobjetocomnporquemsadelanteveremosotraclasedeobjetos.

CursogratuitodeJavaenemuladoresL2Java
2012
e m a i l : b r u j u l a t o @ y a h o o . e s Pgina5
1.4 Reglasparacrearnombres,onomenclatura.
Comosabemoscundoleemosuncdigo,siloqueleemosesunobjeto,unafuncinouna
variable?Esporsunomenclatura(no,novamosahacerqumica...todava).
Lasreglasparacrearnombresson:
Unobjeto(tambinselellamaclase)siemprecomienzasunombrepormaysculas.
Unafuncinsiemprecomienzasunombreporminsculas.
Unavariabledeclaseirantecedidaconelsmbolodeguinbajo_,ejemplo_xPos.
Estetipodevariablessuelenserprivadas.Lasveremosmasadelante.
Lasdemsvariablessernenminsculas.
Apartedelanomenclatura,losnombresdelasclasestienenqueserdescriptivas,esdecir,su
nombredebeintuirloquevaahacer,detalmanera,quecualquierlectorajenoalproyecto,
puedasaber,sinleerelcdigo,queesohacelaclase.
Susmtodosdebensercreadosdeformaverbal,porejemplo,lasfuncionesdeuncochese
llamarnfrenar,acelerarynofrenooaceleracion.
Cuandosequiereobteneroasignarvalores,seusangetyset,seguidosdelnombre,get
significaobtener,yset,seleccionar.Asquesiqueremosobtenerlavelocidaddelcoche,
getVelocidad.
Siloquedeseamosessabersiunaoperacinseestrealizando,usaremosis,quesignificaen
castellano,seroestar.Estfrenando?>isFrenando.
Debodecir,queeningls,quedamejor>isStopping.
Siestasfijndote,cuandoseunendospalabras,lasegundaseponeenmaysculas,aestosele
llamacamelCase,ytambinesotrareglaqueseaplicaatodo.
Ademsdelasclasesyfunciones,lasvariablessivanatrabajarduranteunperiodolargo,
tambinhandeserdescriptivas,porejemplo,fuerzaDeFrenado=100.
Paraterminar,lasconstantesdeclaseenmaysculas,sinusarcamelCase,ysulugar,guion
bajo(constanteesunavariablequeunavezasignadosuvalor,yanovaacambiarlo)ejemplo:
ANCHO_DOCUMENTO.

CursogratuitodeJavaenemuladoresL2Java
2012
e m a i l : b r u j u l a t o @ y a h o o . e s Pgina6
2.1Asignarelalcancedeunaclase
Estosmodificadorestambinsepuedenaplicaralasfuncionesyvariables.
Cuandocreasunobjeto,puedesquererqueeseobjeto,puedaserusadoono,dentrodesu
mbito.PodemosquererquenuestraclaseCALCULADORAseainvisibleparalaclase
INSTRUMENTOMUSICALyqueseavisibleparalaclaseMATEMATICASporrazonesevidentes.

Parapoderhaceresto,aldeclararunaclase,podemoshacerlodediferentesmaneras:
Public
Aldeclararunaclasecomopblica,servisibledesdecualquierotraclasesituadaen
cualquierotraparte.
SinmodificadoroDefault
Pordefecto,unaclaseesvisibleenelpaquetequesecreanicamente.

AligualquecreamosdirectoriosenWindows(uotrosistemaoperativo)paraagruparficheros
quesoncomunesentres,osea,quetienenalgunarelacinentreellos,losficheroscreadosen
Javatambincumplenlamismalgica.EnunpaqueteMusicapodramosencontrarlos
paquetesInstrumentodePercusion,Instrumentodeviento,Instrumentodecuerda,ydentro
decadauno,masdirectorios.Cadadirectoriosedenominapaquete.

CursogratuitodeJavaenemuladoresL2Java
2012
e m a i l : b r u j u l a t o @ y a h o o . e s Pgina7
2.2Reglasdedeclaracindeunaclase
Antes de crear tu primera clase, an tienes que conocer unas reglas ms, si, lo siento, es
pesadoperonecesario,peronotepreocupes,sloconleerlas,teacordarsdeellas,porquea
medidaqueavancemos,versquesonnormasevidentes.
Slopuedeexistirunaclasepblicaporficherofuente.
El nombre de la clase siempre ser el mismo que el nombre del fichero que la
contiene.
Si la clase est dentro de un paquete, el estamento package ser lo primero que
aparezcaenelficherodelaclaseconteniendosuruta.
Losiguientequeaparecedespusdeunpackage,sonloscomandosimport.
Las instrucciones import y package se aplican a todas las clases del fichero, en otras
palabras,nohaymaneradedeclarardiferentespackageparacadaclasedefinidaenel
fichero.
Unficheropuedetenermsdeunaclasenopblica.
Las clases no pblicas del fichero pueden tener un nombre distinto al fichero que las
contiene.

Enunpackageseinsertalarutadelaclase.
Losimportseusanparaimportarotrasclases.

CursogratuitodeJavaenemuladoresL2Java
2012
e m a i l : b r u j u l a t o @ y a h o o . e s Pgina8
2.3Creandounaclase
Bien, ya hemos ledo todas las normas habidas y por haber para crear una clase. En estos
momentos somos unos eruditos en lo que a normas se refiere pero ya vamos a empezar la
accin.
Nuestra primera clase va a hacer poco, ya que, como dije antes, la programacin orientada a
objetos se basa en el uso de otras clases para hacer uso de ellas, y como no hemos visto
ninguna,nopodemoshacernada.Estfueunagranleccin,verdad?Nuncalaolvidars.
Peroaunsinconocerningunaclase,podemoscrearunpseudocdigoquetienecomomisin
introducirosenelmundodelaprogramacinorientadaaobjetos,POO.
Miprimerailustracinvaaconsistirencrearuncocheysusfuncionalidades.
public class Coche {

public void frenar() { }
public void acelerar() { }

public String getAceleracion() {return null; }
public String getFrenada() {return null; }


}

Queestamosviendoaqu?
Primero,alescribirlaclase,seindicasuvisibilidad.Recuerdaquesinoseindica,seobtieneun
alcancepordefecto,esdecir,sloesvisibleenelpaquetequesecrea.
Despustenemoslainstruccinclassyelnombredelaclaseabriendoycerrandollavesalfinal
delcdigo,encerrandosusmtodos.
En sus mtodos podemos ver tres palabras que no habamos visto antes, se trata de void,
Stringyreturn.
Cuandounmtodonodevuelvenada,alnombredelmtodoleprecedelainstruccinvoid.
Cuando un mtodo devuelve algo, le precede el nombre del tipo que devuelve y entre
corcheteslainstruccinreturnseguidodeunavariable(enestecaso,nada).
El tipo se refiere a la clase de objeto que va a ser devuelto. Clases de tipos son por ejemplo,
cadenas(conjuntodeletras),nmeros,nombresdeclasescomoString,Integer,Object,etc...

Curso

ogratuito
2.4La
Eln
tipoy
Nopu
abst






}

Cuan
asimi
Podr
Imag
cread
pero
neces
impre
progr
Extra
como
Al im
para
Si te
mto
cdig
deJavae
aclaseabstr
icopropsit
yfuncionalid
uededuplica
tract clas
private
private
private
public
public
public
docreasun
ilarloatuc
aspensarqu
ina que eres
dosencoche
paraqueel
sitaimpleme
esionarVecin
ramarelprec
polaestoau
ounGMShop
mplementar e
quetuclase
fijas, en cua
odos no imp
godesuinte
nemulado
racta
odeunacla
dadquelacla
arse.
ss Coche {
e double p
e String m
e String y
abstract
abstract
abstract
cochehered
digo.
ue,quutilid
s el program
e.Otroprogr
cdigoyaim
entarlosm
nos...aparte
cio,elmode
unNPCdeLi
p,queneces
esto en tu n
estcorrect
anto heredo
plementados
rior,escosa
oresL2Ja
aseabstracta
aseabstracta
{
precio;
modelo;
year;
void goFa
void goUp
void impr
dandolaclas
dadtieneest
mador de coc
ramador,pod
mplementad
todosquetu
estenuevo
lo,elgoFast
neage,sitie
sitas?UnNPC
nuevo coche,
tamenteimp
CochePlanti
. En cuanto
tuya.
va
e m a i l :
aesladecre
a.
ast();
pHill();
resionarVe
seabstracta
to?
che, y has c
dracrearun
doportifunc
uesperasqu
programado
...queyaest
nesunNPCW
CWalkerven
, inmediatam
plementada.
illa, me exig
pulses ah,
b r u j u l a
earunpatr
ecinos();
Coche,loqu
reado un pr
ncochecom
cionecorrec
ueestnah,
or,haraque
tncreados
Walkerqueq
ndedor,ciert
mente se inc
e Add unim
se impleme
t o @ y a h
nparacrear
uehaceses
ograma que
oeltuyo,qu
ctamenteen
comoelpre
sucochevo
porti.
quisierasala
o?
cluirn los c
mplemented
entarn los
2
o o . e s
rclasesdelm
cogerunpat
e usa los m
ueademsv
elcochevo
ecio,elmode
olasesintene
avezqueven
digos nece
methods, a
mtodos, pe
2012
Pgina9
mismo
trny
todos
volase,
olador,
elo,el
erque
ndiera
sarios

aadir
ero el
Curso

ogratuito
Losm
Si el
abstr
Cuan
esto:
sedic
Mien
mezc
Tamb
tiene
priva
En la
estt
Sin e
mto
Unai
seau
Noco
Cuan
deJavae
mtodosmar
mtodo est
ractoqueten
do una clase
cequeesun
trasqueen
cladas,enun
bin, los mt
s que decla
do,cuandoh
interfaz, las
icas(queno
mbargo, los
odosabstract
interfazpued
unainterfaz.
onfundirher
dosedeclar
nemulado
rcadoscomo
tuviera en u
ngaunaclase
e abstracta,
ainterfaz.
unaclaseab
ainterfazno
todos de un
arar que son
heredasesla
s variables q
cambiansu
s mtodos n
toshayquee
deheredaru
edarconimp
raunainterfa
oresL2Ja
abstractost
na clase no
e,tieneque
lo es al 100
bstractapued
o.
a interfazso
n pblicos y
claseabstra
ue puedes c
valor)yfina
o deben ser
editarlos.Si
unaomsin
plementar,y
ace,debese
va
e m a i l :
terminansie
rmal, es dec
sermarcada
0%, es decir,
destenerfu
on por defec
abstractos.
acta,lassubc
crear tienen
les(quenop
r estticos, y
fueranestt
nterfaces,ad
yaquelainte
rindicadoco
b r u j u l a
empreenpun
cir, con cd
acomoabstr
que no pos
ncionescon
cto pblicos
La razn e
clasesnoten

que ser pb
puedendupl
ya que, cuan
ticos,nosep
ems,nopu
erfaznopue
onelmodific
t o @ y a h
ntoycoma,e
igo, con tan
actatambi
see ningn c

cdigoyfun
y abstracto
s simple, si
ndranacceso
blicas (por lo
icarse).
ndo se hered
podranmodi
edeheredar
deimplemen
cadorinterfa
2
o o . e s
enlugardel
n slo un m
n.
cdigo, algo
ncionesabst
os, por lo tan
el mtodo
oaellos.
o explicado a
da la interfa
ificar.
rotracosaq
ntarnada.
ace.
2012
Pgina10
llaves.
todo
como
ractas
ntono
fuera
antes),
az, los
queno
Curso

ogratuito
Si qu
modi

Aunq
interf

En un
acces

Los m
no va
ningu

Si en
sert
porlo
deJavae
uieres que tu
ficadorpubl
que sea redu
faz.
na interface,
soaesavaria
modificadore
aran su val
unaclaseten
cualquier c
tomadacom
otanto,alqu
nemulado
u interfaz se
ic,sinoelac
undante, pue
, como dije
abledesdec
es que tienes
or, y que n
ngaaccesoa
aso olvidase
mopublicstat
uerermodifi
oresL2Ja
ea accesible
cesopordef
edes usar lo
antes, pued
ualquierclas
s que usar so
o se pueden
lavariabley
es esto, no o
ticfinalirrem
carlavariab
va
e m a i l :
desde cual
fecto(depaq
os modificad
es declarar
se.
on: public st
n duplicar. A
yalteresuva
olvides que,
mediablemen
ble:
b r u j u l a
quier parte
quete,defau
dores public
constantes.
tatic final, es
Al no poder
alor.
aunque no
nte:
t o @ y a h
del cdigo,
ult)serselec
y abstract p
Al hacer est
s decir, que
r duplicarse,
declares la v
2
o o . e s
has de aa
ccionado.
para declara
to, se garant
son pblicas
, te asegura
variable com
2012
Pgina11
adir el
ar una
tiza el
s, que
s que
mo tal,
Curso

ogratuito
obten
VELO
seha
deJavae
nemos un
OCIDAD_MAX
aceevidente
nemulado
error que
XIMA, y com
queJDKnos
oresL2Ja
e nos com
mo veis en la
shadeclarad
va
e m a i l :
munica que
captura ant
dopordefect
b r u j u l a
e borremos
terior, no ex
toqueespu
t o @ y a h
s el modif
xiste tal mod
blic,staticy
2
o o . e s

ficador fina
dificador, es
final.
2012
Pgina12
al de
decir,

You might also like