Ocultamiento
Elocultamientodeinformacinsebasaenlaposibilidadquetienenlosobjetos,de restringirelaccesoasuconocimiento,porpartedeotrosobjetos,odeotraforma,definir culessonloscriteriosylosmecanismosparagarantizardichoaccesoaquienesaslo requieran. Sedefinentresnivelesdevisibilidad,quepuedendefinirseparaelconocimientoyel comportamientodeunobjeto.Lainformacindeunobjetopuedeser: Pblica:Cualquierobjetopuedeteneraccesoaunmtodoounatributo directamente,sinningunarestriccin.EnJava,unmtodoounatributopblicose representaanteponiendoasudefinicinlapalabrareservadapublic. Protegida:Cualquierobjetodealgunasubclase,odeunaclasedelmismopaquete puedeteneraccesoalainformacin.EnJava,unmtodoounatributoprotegidose representaanteponiendoasudefinicinlapalabrareservadaprotected. Privada:Soloobjetosdelamismaclasepuedenteneraccesoalainformacin.EnJava, unmtodoounatributoprivadoserepresentaanteponiendoasudefinicinla palabrareservadaprivate.
Estasdefinicionespermitenqueunaclasedefinalaformaenquequierequelosobjetos modeladosaccedanasuinformacin.Usualmente,loquesedefineesquetodoel conocimientodeunobjetoseaprivado.Estotienesentido,dadoquelainformacindeun objetosolodeberaimportarlealmismoobjeto. Porejemplo,sihablamosdelaclase public class Estudiante { private float quiz1; Estudiante,quedefinecomopartedesu private float quiz2; conocimientosusnotasparciales,esta private float examenParcial1; informacinsololeconciernealyporlo private float examenParcial2; tantodeberaserprivada. }
Accesoalconocimientodeunaclase
Siluegodelprocesodediseo,esnecesarioaccederalainformacindefinidaenlaclase estudiante,relacionadaconsusnotasparciales,esposiblehacerlodefiniendomtodos queretornenestainformacinyas,formalizarunmecanismoparaqueestosuceda.En estecaso,laclasesemodificara,paraincluirmtodosquepermitanaccederalos atributosexamenParcial1yexamenParcial2:
public float getExamenParcial1() { return examenParcial1; } public float getExamenParcial2() { return examenParcial2; }
En Java, los mtodos que permiten acceder a los atributos de una clase, se llaman getters y comienzanporelverbogeteningles,quesignificaobtener.
Modificacindelconocimientodeunaclase
Ahora,sinonosinteresarevelarnuestrasnotasparciales,tampocodeberainteresarnos quealguiensinautorizacinlasmodificara.Sinembargo,siesnecesario,deacuerdoal procesodediseo,esposiblehacerloatravsdeladefinicindemtodos.Siserequiere porejemplo,modificarlainformacindecadaunadelascuatronotas,esnecesariodefinir unmtodoparacadauna:
public void setExamenParcial1(float examenParcial1) { this.examenParcial1 = examenParcial1; } public void setExamenParcial2(float examenParcial2) { this.examenParcial2 = examenParcial2; } public void setQuiz1(float quiz1) { this.quiz1 = quiz1; }
Heredandoconocimiento
Elconocimientonotienequesersiempreprivado;encasosenlosqueseestablecen relacionesdeherenciaentreclasesdeobjetos,elconocimientoquesepretendeheredar, debeserporlomenos,protegido,paragarantizarquelassubclasestenganaccesoaesta informacin.
Representacindenivelesdeaccesoendiagramasdeclases
Esposiblerepresentarelniveldeaccesoquedefineunatributoounmtodoenun diagramadeclases,anteponiendoasudefinicinun+paradefinirqueespblico,un paradefinirqueesprivado,y#paradefinirqueesprotegido.