SlideShare uma empresa Scribd logo
1 de 6
Encapsulamiento en Java 
Presentado por León Arenas Rivera 
Ing Sistemas y Telecomunicaciones Universidad Católica de Pereira 
Fundación centro de 
investigación 
Docencia y consultoría 
Administrativa 
Facultad Ntic’s e ingenierías
Encapsulamiento de Clases 
Definición previa: un paquete es una colección de clases que se encuentran en el mismo directorio. Las clases permiten implementar tipos de datos abstractos. El problema que 
se presenta es que desde cualquier clase se puede accesar los campos de un objeto perteneciente a otra clase. Esto es una violación al principio de abstracción que dice que un 
tipo de datos abstracto sólo puede ser manipulado a través de las operaciones que se definen para éste. 
Visibilidad de Campos y Métodos 
En java al definir una clase se puede controlar la visibilidad que tendrán sus campos y métodos al exterior de la clase. Este control se efectúa de la siguiente forma: 
class A 
{ 
private int privx; 
protected int protb; 
public int pubc; 
int paqd; 
private void MetPriv() { ... } 
protected void MetProt() { ... } 
public void MetPub(A a) 
{ 
// Un campo siempre es visible 
// en la clase en donde se define 
... privx ... a.privx ... 
... protb ... a.protb ... 
... pubc ... a.pubc ... 
// Un método siempre es visible 
// en la clase en donde se define 
MetPriv(); a.MetPriv(); 
} 
void MetPaq() { ... } 
}
Las palabras private, protected y public son atributos de un campo o un método y su significado es el siguiente: 
private: El campo o método sólo es visible dentro de la clase donde se define. 
protected: El campo o método es visible en la clase en donde se define y en cualquiera de sus subclases. 
public: El campo o método es visible en cualquier clase. 
Ninguna de las anteriores: El campo o método es visible en cualquiera de las clases pertenecientes al paquete en donde se define. 
Ejemplo: 
class B 
{ 
public void MetB() 
{ 
A a= new A(); 
a.pubc= 1; // Ok 
a.priva= 2; // error, privado 
a.protb= 3; // error, B no es 
// subclase de A 
a.MetPub(); // Ok 
a.MetPriv(); // error, privado 
} 
} 
Visibilidad de Clases 
Al declarar una clase se puede especificar que es pública usando el atributo public. De este modo la clase podrá ser usada por cualquier otra clase. Si la clase 
no es pública entonces la clase sólo puede ser usada dentro del paquete que la contiene. 
public class Box extends GraphObj 
{ ... } 
Podemos hacer un resumen de los atributos que pueden tener campos, métodos o clases: 
Campo: {private | public | protected} {final} {static} 
Método: {private | public | protected} {final | abstract} {static} 
Clase: {public} {final | abstract} 
Sólo se puede especificar uno de los atributos puestos en la misma llave. 
El nombre de archivo 
Un archivo puede contener a lo más una clase pública, en cuyo caso el nombre del archivo debe ser el mismo de la clase pública, más la extensión .java. 
El resto de las clases del archivo sólo serán visibles dentro del paquete. Es usual que los archivos contengan una sola clase, pero también a veces se 
agregan otras clases al archivo cuando éstas son usadas sólo dentro de ese mismo archivo.
Encapsulamiento 
Como se puede observar de los diagramas, las variables del objeto se localizan en el centro o núcleo 
del objeto. Los métodos rodean y esconden el núcleo del objeto de otros objetos en el programa. Al 
empaquetamiento de las variables de un objeto con la protección de sus métodos se le llama 
encapsulamiento. Típicamente, el encapsulamiento es utilizado para esconder detalles de la puesta 
en práctica no importantes de otros objetos. Entonces, los detalles de la puesta en práctica pueden 
cambiar en cualquier tiempo sin afectar otras partes del programa. 
El encapsulamiento de variables y métodos en un componente de software ordenado es, todavía, 
una simple idea poderosa que provee dos principales beneficios a los desarrolladores de software: 
Modularidad: esto es, el código fuente de un objeto puede ser escrito, así como darle 
mantenimiento, independientemente del código fuente de otros objetos. Así mismo, un objeto puede 
ser transferido alrededor del sistema sin alterar su estado y conducta. 
Ocultamiento de la información: es decir, un objeto tiene una "interfaz publica" que 
otros objetos pueden utilizar para comunicarse con él. Pero el objeto puede mantener información y 
métodos privados que pueden ser cambiados en cualquier tiempo sin afectar a los otros objetos que 
dependan de ello. Los objetos proveen el beneficio de la modularidad y el ocultamiento de la 
información. Las clases proveen el beneficio de la reutilización. Los programadores de software 
utilizan la misma clase, y por lo tanto el mismo código, una y otra vez para crear muchos objetos. En 
las implantaciones orientadas a objetos se percibe un objeto como un paquete de datos y 
procedimientos que se pueden llevar a cabo con estos datos. Esto encapsula los datos y los 
procedimientos. La realidad es diferente: los atributos se relacionan al objeto o instancia y los 
métodos a la clase. ¿Por qué se hace así? Los atributos son variables comunes en cada objeto de 
una clase y cada uno de ellos puede tener un valor asociado, para cada variable, diferente al que 
tienen para esa misma variable los demás objetos. Los métodos, por su parte, pertenecen a la clase 
y no se almacenan en cada objeto, puesto que sería un desperdicio almacenar el mismo 
procedimiento varias veces y ello va contra el principio de reutilización de código.
Encapsulamiento 
•El encapsulamiento es la propiedad que permite envolver atributos (datos) y métodos (comportamiento) en un unidad lógica, el 
objeto 
•Se encapsulan (envuelven) atributos y métodos de una clase 
•El radio de un auto encapsula sus datos y el comportamiento que le permiten al conductor seleccionar una estación de radio, 
reproducir CD’s, entre otras acciones. 
•Los componentes del radio están encapsulados en su caja 
•El encapsulamiento permite a los objetos ocultar su implementación de otros objetos, este principio se conoce como ocultamiento 
de la información 
•Aunque los objetos se pueden comunicar entre si a través de interfaces, no están conscientes de cómo se implementan otros 
objetos 
•Los detalles de implementación se ocultan dentro de los mismos objetos (buena ingeniería de software!!!) 
•Cómo se logra encapsular atributos y métodos en Java? 
•Utilizando modificadores de acceso
Referencias 
http://eisc.univalle.edu.co/~oscarbed/interactiva/claseEncapsulamiento.pdf 
https://sites.google.com/site/conceptosdejava/home/encapsulamiento-en-java 
http://profesores.fi-b.unam.mx/carlos/java/java_basico3_3.html

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Sesion 13 paquetes
Sesion 13 paquetesSesion 13 paquetes
Sesion 13 paquetes
 
Programacion Orientada A Objetos
Programacion Orientada A ObjetosProgramacion Orientada A Objetos
Programacion Orientada A Objetos
 
7-Unidad 2. Elementos de una Clase
7-Unidad 2. Elementos de una Clase7-Unidad 2. Elementos de una Clase
7-Unidad 2. Elementos de una Clase
 
Poo
PooPoo
Poo
 
Paradigma Programación Orientada a Objetos (POO)
Paradigma Programación Orientada a Objetos (POO)Paradigma Programación Orientada a Objetos (POO)
Paradigma Programación Orientada a Objetos (POO)
 
Programaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetosProgramaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetos
 
Trabajo investigativo sobre la programación orientada a objetos y java
Trabajo investigativo sobre la programación orientada a objetos y javaTrabajo investigativo sobre la programación orientada a objetos y java
Trabajo investigativo sobre la programación orientada a objetos y java
 
S2-Representación Gráfica
S2-Representación GráficaS2-Representación Gráfica
S2-Representación Gráfica
 
Herencia informatica
Herencia informaticaHerencia informatica
Herencia informatica
 
Trabajo de diceño y realizacion
Trabajo de diceño y realizacionTrabajo de diceño y realizacion
Trabajo de diceño y realizacion
 
Benita ppp unidad 1
Benita ppp unidad 1Benita ppp unidad 1
Benita ppp unidad 1
 
Conceptos poo
Conceptos pooConceptos poo
Conceptos poo
 
Programacion
ProgramacionProgramacion
Programacion
 
3- Clases y Objetos
3- Clases y Objetos3- Clases y Objetos
3- Clases y Objetos
 
Base de datos orientada a objetos
Base de datos orientada a objetosBase de datos orientada a objetos
Base de datos orientada a objetos
 
Programación orientada a objetos presentacion
Programación    orientada    a objetos presentacionProgramación    orientada    a objetos presentacion
Programación orientada a objetos presentacion
 
Clasesyobjetos
ClasesyobjetosClasesyobjetos
Clasesyobjetos
 
Encapsulamiento
EncapsulamientoEncapsulamiento
Encapsulamiento
 
Presentación poo
Presentación pooPresentación poo
Presentación poo
 
Base De Datos Orientados A Objetos
Base De Datos Orientados A ObjetosBase De Datos Orientados A Objetos
Base De Datos Orientados A Objetos
 

Destaque

Sistemas Fotovolraicos
Sistemas FotovolraicosSistemas Fotovolraicos
Sistemas FotovolraicosEstelags
 
Tecnologias y vino en navarra guia de soluciones tic para el sector del vino
Tecnologias y vino en navarra   guia de soluciones tic para el sector del vinoTecnologias y vino en navarra   guia de soluciones tic para el sector del vino
Tecnologias y vino en navarra guia de soluciones tic para el sector del vinoCein
 
Tecnologias y vino en navarra sofisticada tradicion 2
Tecnologias y vino en navarra   sofisticada tradicion 2Tecnologias y vino en navarra   sofisticada tradicion 2
Tecnologias y vino en navarra sofisticada tradicion 2Cein
 
Resultados atletismo Aguascalientes 2014
Resultados atletismo Aguascalientes 2014Resultados atletismo Aguascalientes 2014
Resultados atletismo Aguascalientes 2014agssports.com
 
Plano de Continuidade de Negócios
Plano de Continuidade de NegóciosPlano de Continuidade de Negócios
Plano de Continuidade de NegóciosInformaGroup
 
Improved access and use of mechanization in the tef value chain
Improved access and use of mechanization in the tef value chainImproved access and use of mechanization in the tef value chain
Improved access and use of mechanization in the tef value chainessp2
 
Inteligencia Artificial Clase 4
Inteligencia  Artificial  Clase 4Inteligencia  Artificial  Clase 4
Inteligencia Artificial Clase 4UNEFA
 
Como criar um plano de continuidade de negócios
Como criar um plano de continuidade de negóciosComo criar um plano de continuidade de negócios
Como criar um plano de continuidade de negóciosGerson Rodrigues Junior
 
2011 and Beyond - 5 Strategies for Survival in the Digital Media World
2011 and Beyond - 5 Strategies for Survival in the Digital Media World2011 and Beyond - 5 Strategies for Survival in the Digital Media World
2011 and Beyond - 5 Strategies for Survival in the Digital Media WorldDay Software
 
Plano de Continuidade de dos Serviços de TI
Plano de Continuidade de dos Serviços de TIPlano de Continuidade de dos Serviços de TI
Plano de Continuidade de dos Serviços de TICompanyWeb
 
Economía ambiental
Economía ambientalEconomía ambiental
Economía ambientaldanny
 
Ley general de sociedades mercantiles
Ley general de sociedades mercantilesLey general de sociedades mercantiles
Ley general de sociedades mercantilesDasSaef CR
 
Trabalho(RelaçãO Entre Pais E Filhos)
Trabalho(RelaçãO Entre Pais E Filhos)Trabalho(RelaçãO Entre Pais E Filhos)
Trabalho(RelaçãO Entre Pais E Filhos)Liliana
 
Article Review:What Makes a Good Principal?How Teachers Assess the Performanc...
Article Review:What Makes a Good Principal?How Teachers Assess the Performanc...Article Review:What Makes a Good Principal?How Teachers Assess the Performanc...
Article Review:What Makes a Good Principal?How Teachers Assess the Performanc...Azreen5520
 

Destaque (20)

Sistemas Fotovolraicos
Sistemas FotovolraicosSistemas Fotovolraicos
Sistemas Fotovolraicos
 
Informatica
InformaticaInformatica
Informatica
 
Tecnologias y vino en navarra guia de soluciones tic para el sector del vino
Tecnologias y vino en navarra   guia de soluciones tic para el sector del vinoTecnologias y vino en navarra   guia de soluciones tic para el sector del vino
Tecnologias y vino en navarra guia de soluciones tic para el sector del vino
 
Informatica
InformaticaInformatica
Informatica
 
Tecnologias y vino en navarra sofisticada tradicion 2
Tecnologias y vino en navarra   sofisticada tradicion 2Tecnologias y vino en navarra   sofisticada tradicion 2
Tecnologias y vino en navarra sofisticada tradicion 2
 
Resultados atletismo Aguascalientes 2014
Resultados atletismo Aguascalientes 2014Resultados atletismo Aguascalientes 2014
Resultados atletismo Aguascalientes 2014
 
Plano de Continuidade de Negócios
Plano de Continuidade de NegóciosPlano de Continuidade de Negócios
Plano de Continuidade de Negócios
 
Improved access and use of mechanization in the tef value chain
Improved access and use of mechanization in the tef value chainImproved access and use of mechanization in the tef value chain
Improved access and use of mechanization in the tef value chain
 
Inteligencia Artificial Clase 4
Inteligencia  Artificial  Clase 4Inteligencia  Artificial  Clase 4
Inteligencia Artificial Clase 4
 
Como criar um plano de continuidade de negócios
Como criar um plano de continuidade de negóciosComo criar um plano de continuidade de negócios
Como criar um plano de continuidade de negócios
 
2011 and Beyond - 5 Strategies for Survival in the Digital Media World
2011 and Beyond - 5 Strategies for Survival in the Digital Media World2011 and Beyond - 5 Strategies for Survival in the Digital Media World
2011 and Beyond - 5 Strategies for Survival in the Digital Media World
 
Anuario
AnuarioAnuario
Anuario
 
Plano de Continuidade de dos Serviços de TI
Plano de Continuidade de dos Serviços de TIPlano de Continuidade de dos Serviços de TI
Plano de Continuidade de dos Serviços de TI
 
Economía ambiental
Economía ambientalEconomía ambiental
Economía ambiental
 
Proyecto de aprendizaje 1er Año 1er Lapso
Proyecto de aprendizaje 1er Año 1er LapsoProyecto de aprendizaje 1er Año 1er Lapso
Proyecto de aprendizaje 1er Año 1er Lapso
 
Chap18
Chap18Chap18
Chap18
 
Ley general de sociedades mercantiles
Ley general de sociedades mercantilesLey general de sociedades mercantiles
Ley general de sociedades mercantiles
 
Trabalho(RelaçãO Entre Pais E Filhos)
Trabalho(RelaçãO Entre Pais E Filhos)Trabalho(RelaçãO Entre Pais E Filhos)
Trabalho(RelaçãO Entre Pais E Filhos)
 
Article Review:What Makes a Good Principal?How Teachers Assess the Performanc...
Article Review:What Makes a Good Principal?How Teachers Assess the Performanc...Article Review:What Makes a Good Principal?How Teachers Assess the Performanc...
Article Review:What Makes a Good Principal?How Teachers Assess the Performanc...
 
Labeigrp
LabeigrpLabeigrp
Labeigrp
 

Semelhante a Encapsulamiento

secme-23192.pdf
secme-23192.pdfsecme-23192.pdf
secme-23192.pdf202100941c
 
01. MODIFICADORES DE ACCESO EN JAVA.pptx
01. MODIFICADORES DE ACCESO EN JAVA.pptx01. MODIFICADORES DE ACCESO EN JAVA.pptx
01. MODIFICADORES DE ACCESO EN JAVA.pptxJuanCarlosRomanPerez1
 
8 Mecanismos-de-abstraccion-en-Java.pptx
8 Mecanismos-de-abstraccion-en-Java.pptx8 Mecanismos-de-abstraccion-en-Java.pptx
8 Mecanismos-de-abstraccion-en-Java.pptxjuan gonzalez
 
Lenguaje de Programación Orientada a Objetos
Lenguaje  de  Programación  Orientada  a Objetos Lenguaje  de  Programación  Orientada  a Objetos
Lenguaje de Programación Orientada a Objetos Marielena Lujano
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaAngel Vázquez Patiño
 
java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )brayan0015
 
[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con java[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con javaEudris Cabrera
 
Encapsulamiento
EncapsulamientoEncapsulamiento
EncapsulamientoFRAYRINCON
 
Teoria-de-la-unidad-2
Teoria-de-la-unidad-2Teoria-de-la-unidad-2
Teoria-de-la-unidad-2Nequiztron
 
Porafolio unidad 1
Porafolio unidad 1Porafolio unidad 1
Porafolio unidad 1bchrmz
 
Porafolio unidad 1
Porafolio unidad 1Porafolio unidad 1
Porafolio unidad 1bchrmz
 
Historia java ruben rodriguez
Historia java ruben rodriguezHistoria java ruben rodriguez
Historia java ruben rodriguezcoruniversitec
 
Lenguaje de programacion unidad 2 clases y objetos
Lenguaje de programacion unidad 2 clases y objetosLenguaje de programacion unidad 2 clases y objetos
Lenguaje de programacion unidad 2 clases y objetosAndres Herrera Rodriguez
 
encapsulamiento
encapsulamientoencapsulamiento
encapsulamientozeta2015
 

Semelhante a Encapsulamiento (20)

secme-23192.pdf
secme-23192.pdfsecme-23192.pdf
secme-23192.pdf
 
01. MODIFICADORES DE ACCESO EN JAVA.pptx
01. MODIFICADORES DE ACCESO EN JAVA.pptx01. MODIFICADORES DE ACCESO EN JAVA.pptx
01. MODIFICADORES DE ACCESO EN JAVA.pptx
 
8 Mecanismos-de-abstraccion-en-Java.pptx
8 Mecanismos-de-abstraccion-en-Java.pptx8 Mecanismos-de-abstraccion-en-Java.pptx
8 Mecanismos-de-abstraccion-en-Java.pptx
 
Lenguaje de Programación Orientada a Objetos
Lenguaje  de  Programación  Orientada  a Objetos Lenguaje  de  Programación  Orientada  a Objetos
Lenguaje de Programación Orientada a Objetos
 
Programación 3: Clases y objetos en Java
Programación 3: Clases y objetos en JavaProgramación 3: Clases y objetos en Java
Programación 3: Clases y objetos en Java
 
Clases y objetos en Java
Clases y objetos en JavaClases y objetos en Java
Clases y objetos en Java
 
java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )
 
[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con java[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con java
 
metodos de clases
metodos de clasesmetodos de clases
metodos de clases
 
Cap3.0
Cap3.0Cap3.0
Cap3.0
 
Encapsulamiento
EncapsulamientoEncapsulamiento
Encapsulamiento
 
Teoria-de-la-unidad-2
Teoria-de-la-unidad-2Teoria-de-la-unidad-2
Teoria-de-la-unidad-2
 
Porafolio unidad 1
Porafolio unidad 1Porafolio unidad 1
Porafolio unidad 1
 
Porafolio unidad 1
Porafolio unidad 1Porafolio unidad 1
Porafolio unidad 1
 
Historia java ruben
Historia java rubenHistoria java ruben
Historia java ruben
 
Clases
ClasesClases
Clases
 
Historia java ruben rodriguez
Historia java ruben rodriguezHistoria java ruben rodriguez
Historia java ruben rodriguez
 
Lenguaje de programacion unidad 2 clases y objetos
Lenguaje de programacion unidad 2 clases y objetosLenguaje de programacion unidad 2 clases y objetos
Lenguaje de programacion unidad 2 clases y objetos
 
encapsulamiento
encapsulamientoencapsulamiento
encapsulamiento
 
encapsulamiento
encapsulamientoencapsulamiento
encapsulamiento
 

Mais de León Arenas Rivera (20)

Subnetting por VLSM
Subnetting por VLSMSubnetting por VLSM
Subnetting por VLSM
 
Direccionamiento MAC.
Direccionamiento MAC.Direccionamiento MAC.
Direccionamiento MAC.
 
Rangos y fórmulas
Rangos y fórmulasRangos y fórmulas
Rangos y fórmulas
 
Rectificadores y filtros
Rectificadores y filtrosRectificadores y filtros
Rectificadores y filtros
 
Gestión de memoria
Gestión de memoriaGestión de memoria
Gestión de memoria
 
Introducción a excel
Introducción a excelIntroducción a excel
Introducción a excel
 
Sesión I
Sesión ISesión I
Sesión I
 
Curso nivelatorio
Curso nivelatorioCurso nivelatorio
Curso nivelatorio
 
Electricidad básica
Electricidad básicaElectricidad básica
Electricidad básica
 
comunicación por Pstn, red conmutada
comunicación por Pstn, red conmutadacomunicación por Pstn, red conmutada
comunicación por Pstn, red conmutada
 
El arranque de un computador
El arranque de un computadorEl arranque de un computador
El arranque de un computador
 
Ejecuciondeinstrucciones
EjecuciondeinstruccionesEjecuciondeinstrucciones
Ejecuciondeinstrucciones
 
Modelo de referencia osi
Modelo de referencia osiModelo de referencia osi
Modelo de referencia osi
 
Modelo tcpip
Modelo tcpipModelo tcpip
Modelo tcpip
 
Cálculos en tasa de trasferencia
Cálculos en tasa de  trasferenciaCálculos en tasa de  trasferencia
Cálculos en tasa de trasferencia
 
Ancho de banda y tasa de trasferencia
Ancho de banda y tasa de trasferenciaAncho de banda y tasa de trasferencia
Ancho de banda y tasa de trasferencia
 
Modelo entidad relación león
Modelo entidad relación leónModelo entidad relación león
Modelo entidad relación león
 
Instalación de un sistema operativo linux
Instalación de un sistema operativo linuxInstalación de un sistema operativo linux
Instalación de un sistema operativo linux
 
Bases de datos en red
Bases de datos en redBases de datos en red
Bases de datos en red
 
Modelo jerárquico
Modelo jerárquicoModelo jerárquico
Modelo jerárquico
 

Encapsulamiento

  • 1. Encapsulamiento en Java Presentado por León Arenas Rivera Ing Sistemas y Telecomunicaciones Universidad Católica de Pereira Fundación centro de investigación Docencia y consultoría Administrativa Facultad Ntic’s e ingenierías
  • 2. Encapsulamiento de Clases Definición previa: un paquete es una colección de clases que se encuentran en el mismo directorio. Las clases permiten implementar tipos de datos abstractos. El problema que se presenta es que desde cualquier clase se puede accesar los campos de un objeto perteneciente a otra clase. Esto es una violación al principio de abstracción que dice que un tipo de datos abstracto sólo puede ser manipulado a través de las operaciones que se definen para éste. Visibilidad de Campos y Métodos En java al definir una clase se puede controlar la visibilidad que tendrán sus campos y métodos al exterior de la clase. Este control se efectúa de la siguiente forma: class A { private int privx; protected int protb; public int pubc; int paqd; private void MetPriv() { ... } protected void MetProt() { ... } public void MetPub(A a) { // Un campo siempre es visible // en la clase en donde se define ... privx ... a.privx ... ... protb ... a.protb ... ... pubc ... a.pubc ... // Un método siempre es visible // en la clase en donde se define MetPriv(); a.MetPriv(); } void MetPaq() { ... } }
  • 3. Las palabras private, protected y public son atributos de un campo o un método y su significado es el siguiente: private: El campo o método sólo es visible dentro de la clase donde se define. protected: El campo o método es visible en la clase en donde se define y en cualquiera de sus subclases. public: El campo o método es visible en cualquier clase. Ninguna de las anteriores: El campo o método es visible en cualquiera de las clases pertenecientes al paquete en donde se define. Ejemplo: class B { public void MetB() { A a= new A(); a.pubc= 1; // Ok a.priva= 2; // error, privado a.protb= 3; // error, B no es // subclase de A a.MetPub(); // Ok a.MetPriv(); // error, privado } } Visibilidad de Clases Al declarar una clase se puede especificar que es pública usando el atributo public. De este modo la clase podrá ser usada por cualquier otra clase. Si la clase no es pública entonces la clase sólo puede ser usada dentro del paquete que la contiene. public class Box extends GraphObj { ... } Podemos hacer un resumen de los atributos que pueden tener campos, métodos o clases: Campo: {private | public | protected} {final} {static} Método: {private | public | protected} {final | abstract} {static} Clase: {public} {final | abstract} Sólo se puede especificar uno de los atributos puestos en la misma llave. El nombre de archivo Un archivo puede contener a lo más una clase pública, en cuyo caso el nombre del archivo debe ser el mismo de la clase pública, más la extensión .java. El resto de las clases del archivo sólo serán visibles dentro del paquete. Es usual que los archivos contengan una sola clase, pero también a veces se agregan otras clases al archivo cuando éstas son usadas sólo dentro de ese mismo archivo.
  • 4. Encapsulamiento Como se puede observar de los diagramas, las variables del objeto se localizan en el centro o núcleo del objeto. Los métodos rodean y esconden el núcleo del objeto de otros objetos en el programa. Al empaquetamiento de las variables de un objeto con la protección de sus métodos se le llama encapsulamiento. Típicamente, el encapsulamiento es utilizado para esconder detalles de la puesta en práctica no importantes de otros objetos. Entonces, los detalles de la puesta en práctica pueden cambiar en cualquier tiempo sin afectar otras partes del programa. El encapsulamiento de variables y métodos en un componente de software ordenado es, todavía, una simple idea poderosa que provee dos principales beneficios a los desarrolladores de software: Modularidad: esto es, el código fuente de un objeto puede ser escrito, así como darle mantenimiento, independientemente del código fuente de otros objetos. Así mismo, un objeto puede ser transferido alrededor del sistema sin alterar su estado y conducta. Ocultamiento de la información: es decir, un objeto tiene una "interfaz publica" que otros objetos pueden utilizar para comunicarse con él. Pero el objeto puede mantener información y métodos privados que pueden ser cambiados en cualquier tiempo sin afectar a los otros objetos que dependan de ello. Los objetos proveen el beneficio de la modularidad y el ocultamiento de la información. Las clases proveen el beneficio de la reutilización. Los programadores de software utilizan la misma clase, y por lo tanto el mismo código, una y otra vez para crear muchos objetos. En las implantaciones orientadas a objetos se percibe un objeto como un paquete de datos y procedimientos que se pueden llevar a cabo con estos datos. Esto encapsula los datos y los procedimientos. La realidad es diferente: los atributos se relacionan al objeto o instancia y los métodos a la clase. ¿Por qué se hace así? Los atributos son variables comunes en cada objeto de una clase y cada uno de ellos puede tener un valor asociado, para cada variable, diferente al que tienen para esa misma variable los demás objetos. Los métodos, por su parte, pertenecen a la clase y no se almacenan en cada objeto, puesto que sería un desperdicio almacenar el mismo procedimiento varias veces y ello va contra el principio de reutilización de código.
  • 5. Encapsulamiento •El encapsulamiento es la propiedad que permite envolver atributos (datos) y métodos (comportamiento) en un unidad lógica, el objeto •Se encapsulan (envuelven) atributos y métodos de una clase •El radio de un auto encapsula sus datos y el comportamiento que le permiten al conductor seleccionar una estación de radio, reproducir CD’s, entre otras acciones. •Los componentes del radio están encapsulados en su caja •El encapsulamiento permite a los objetos ocultar su implementación de otros objetos, este principio se conoce como ocultamiento de la información •Aunque los objetos se pueden comunicar entre si a través de interfaces, no están conscientes de cómo se implementan otros objetos •Los detalles de implementación se ocultan dentro de los mismos objetos (buena ingeniería de software!!!) •Cómo se logra encapsular atributos y métodos en Java? •Utilizando modificadores de acceso