Vous êtes sur la page 1sur 3

12/10/2015

ApuntesLenguajeJavaModificadoresdeacceso

13.Modificadoresdeacceso
13.1.Modificadores
13.2.Modificadoresdeacceso
13.3.Modificadoresdeaccesoparaclases
13.4.Sonimportanteslosmodificadoresdeacceso?

13.1.Modificadores
Losmodificadoressonelementosdellenguajequesecolocandelantedeladefinicindevariables
locales,datosmiembro,mtodosoclasesyquealteranocondicionanelsignificadodelelemento.En
captulosanterioressehadescritoalguno,comoeselmodificadorstaticqueseusaparadefinirdatos
miembrosomtodoscomopertenecientesaunaclase,enlugardeperteneceraunainstancia.En
captulosposterioressetratarnotrosmodificadorescomofinal,abstractosynchronized.En
estecaptulosepresentanlosmodificadoresdeacceso,quesonaquellosquepermitenlimitaro
generalizarelaccesoaloscomponentesdeunaclaseoalaclaseensimisma.

13.2.Modificadoresdeacceso
Losmodificadoresdeaccesopermitenaldiseadordeunaclasedeterminarquienaccedealosdatosy
mtodosmiembrosdeunaclase.
Losmodificadoresdeaccesoprecedenaladeclaracindeunelementodelaclase(yaseadatoo
mtodo),delasiguienteforma:
[modificadores]tipo_variablenombre
[modificadores]tipo_devueltonombre_Metodo(lista_Argumentos)
Existenlossiguientesmodificadoresdeacceso:
publicTodoelmundopuedeaccederalelemento.Siesundatomiembro,todoelmundopuede
verelelemento,esdecir,usarloyasignarlo.Siesunmtodotodoelmundopuedeinvocarlo.
privateSlosepuedeaccederalelementodesdemtodosdelaclase,oslopuedeinvocarse
elmtododesdeotromtododelaclase.
protectedSeexplicarenelcaptulodedicadoalaherencia.
sinmodificadorSepuedeaccederalelementodesdecualquierclasedelpackagedondesedefine
laclase.
Puedenutilizarseestosmodificadoresparacualquiertipodemiembrosdelaclase,incluidoslos
http://www.arrakis.es/~abelp/ApuntesJava/ModificadoresAcceso.htm

1/3

12/10/2015

ApuntesLenguajeJavaModificadoresdeacceso

constructores(conloquesepuedelimitarquienpuedecrearinstanciasdelaclase).
EnelejemplolosdatosmiembrosdelaclasePuntosedeclarancomoprivate,yseincluyenmtodosque
devuelvenlascoordenadasdelpunto.Deestaformaeldiseadordelaclasecontrolaelcontenidodelos
datosquerepresentanlaclaseeindependizalaimplementacindelainterface.
classPunto{
privateintx,y
staticprivateintnumPuntos=0
Punto(inta,intb){
x=ay=b
numPuntos++
}
intgetX(){
returnx
}
intgetY(){
returny
}
staticintcuantosPuntos(){
returnnumPuntos
}
}
Sialguien,desdeunaclaseexternaaPunto,intenta:
...
Puntop=newPunto(0,0)
p.x=5
...
obtendrunerrordelcompilador.

13.3.Modificadoresdeaccesoparaclases
Lasclasesensimismaspuedendeclararse:
publicTodoelmundopuedeusarlaclase.Sepuedencrearinstanciasdeesaclase,siemprey
cuandoalgunodesusconstructoresseaaccesible.
sinmodificadorLaclasepuedeserusadaeinstanciadaporclasesdentrodelpackagedondese
define.
Lasclasesnopuedendeclararseniprotected,niprivate.

http://www.arrakis.es/~abelp/ApuntesJava/ModificadoresAcceso.htm

2/3

12/10/2015

ApuntesLenguajeJavaModificadoresdeacceso

13.4.Sonimportanteslosmodificadoresdeacceso?
Losmodificadoresdeaccesopermitenaldiseadordeclasesdelimitarlafronteraentreloquees
accesibleparalosusuariosdelaclase,loqueesestrictamenteprivadoy'noimporta'anadiemsqueal
diseadordelaclaseeinclusoloquepodrallegaraimportaraotrosdiseadoresdeclasesquequisieran
alterar,completaroespecializarelcomportamientodelaclase.
ConelusodeestosmodificadoresseconsigueunodelosprincipiosbsicosdelaProgramacin
OrientadaaObjetos,queeslaencapsulacin:Lasclasestienenuncomportamientodefinidoparaquienes
lasusanconformadoporloselementosquetienenunaccesopblico,yunaimplementacinoculta
formadaporloselementosprivados,delaquenotienenquepreocuparselosusuariosdelaclase.
Losotrosdosmodificadores,protectedyelaccesopordefecto(package)complementanalosotrosdos.
Elprimeroesmuyimportantecuandoseutilizanrelacionesdeherenciaentrelasclasesyelsegundo
establecerelacionesde'confianza'entreclasesafinesdentrodelmismopackage.As,lapertenenciade
lasclasesaunmismopackageesalgomsqueunaclasificacindeclasesporcuestionesdeorden.
Cuandosediseanclases,esimportantepararseapensarentrminosdequiendebeteneraccesoaque.
Qucosassonpartedelaimplantacinydeberanocultarse(yenquegrado)yquecosasformanpartede
lainterfaceydeberanserpblicas.

Ultimaactualizacin17Junio2001
AntonioBelPucholabelp@arrakis.es

http://www.arrakis.es/~abelp/ApuntesJava/ModificadoresAcceso.htm

3/3

Vous aimerez peut-être aussi