SlideShare una empresa de Scribd logo
1 de 3
Encapsulamiento
De manera general, se hace teniendo las propiedades como privadas y métodos
que la controlan públicos. Comúnmente, se crean un grupo de métodos llamados
getters (se encargan de obtener el valor de la propiedad) y setters (se encargan de
setearla).
Mantener las clases con el principio de encapsulamiento nos permite controlar el
cambio de valor que pueda producirse en ellas añadiendo validaciones. De
cualquier manera, es una convención dentro de la programación orientada a
objetos, aunque no se esté realizando una operación adicional al cambio de valor.
Veamos un ejemplo:
Public class Gato {
public String nombre;
public int patas;
}
//Mi método main...
Gato g = new Gato();
g.nombre = "Nemo";
g.patas = 4;
System.out.println("Mi gato se llama: " + g.nombre);
System.out.println("El número de patas de mi gato es: " + g.patas);
En este caso, no se ha aplicado el principio de encapsulamiento, puede cambiar las
propiedades del mismo tan sólo con acceder a ellas, de manera muy simple.
Veamos la misma clase, con el principio de encapsulamiento
public class Gato {
private String nombre;
private int patas;
public getNombre(){ return nombre;}
public getPatas(){ return patas;}
public setNombre(String nuevoNombre){ nombre = nuevoNombre;}
public setPatas(int numeroPatas){ patas = numeroPatas;}
}
//Mi método main...
Gato g = new Gato();
g.setNombre("Nemo");
g.setPatas(3);
System.out.println("Mi gato se llama: " + g.getNombre());
System.out.println("El número de patas de mi gato es: " +
g.getPatas());
Tras aplicar el principio de encapsulamiento, ya no tenemos acceso a las
propiedades directamente, por lo que tenemos que usar los métodos (que son
públicos y sí tenemos acceso a ellos) para poder acceder a las variables, tanto para
modificarlas como para obtenerlas. El comportamiento es el mismo, aunque lleve
un código adicional
Abstracción
Una clase abstracta es una superclase (clase principal) que no puede ser instanciada. Debe
crear una instancia de una de sus clases secundarias si desea crear un nuevo objeto. Las
clases abstractas pueden tener métodos tanto abstractos como concretos. Los métodos
abstractos contienen solo la firma del método, mientras que los métodos concretos
también declaran un cuerpo del método. Las clases abstractas se definen con la abstract
palabra clave.
En el siguiente ejemplo, puede ver una clase abstracta llamada Animal con dos métodos
abstractos y uno concreto.
abstract class Animal {
// abstract methods
abstract void move();
abstract void eat();
// concrete method
void label() {
System.out.println("Animal's data:");
}
}
Amplíe la clase Animalclase abstracta con dos clases secundarias: Birdy Fish. Ambos
establecieron su propia funcionalidad para las move()y eat()abstractos métodos.
class Bird extends Animal {
void move() {
System.out.println("Moves by flying.");
}
void eat() {
System.out.println("Eats birdfood.");
}
}
class Fish extends Animal {
void move() {
System.out.println("Moves by swimming.");
}
void eat() {
System.out.println("Eats seafood.");
}
}
Ahora, vemos con las clases TestBirdy TestFish. Ambos llaman al método concreto ( label())
y los dos métodos abstractos ( move()y eat()).
class TestBird {
public static void main(String[] args) {
Animal myBird = new Bird();
myBird.label();
myBird.move();
myBird.eat();
}
}
class TestFish {
public static void main(String[] args) {
Animal myFish = new Fish();
myFish.label();
myFish.move();
myFish.eat();
}
}
En la consola, el método concreto ha sido llamado desde la clase Animalclase abstracta,
mientras que los dos métodos abstractos han sido llamados desde Bird()y Fish(),
respectivamente.
[Console output of TestBird]
Animal's data:
Moves by flying.
Eats birdfood.
[Console output of TestFish]
Animal's data:
Moves by swimming.
Eats seafood.

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Conceptos POO PV
Conceptos POO PVConceptos POO PV
Conceptos POO PV
 
Array List
Array ListArray List
Array List
 
Metodos Get y Set, finalmente revelados.
Metodos Get y Set, finalmente revelados.Metodos Get y Set, finalmente revelados.
Metodos Get y Set, finalmente revelados.
 
06 diagrama de clases1
06 diagrama de clases106 diagrama de clases1
06 diagrama de clases1
 
Poo 4 arraylist
Poo 4 arraylistPoo 4 arraylist
Poo 4 arraylist
 
Acceso a datos
Acceso a datosAcceso a datos
Acceso a datos
 
Introduccio al Java
Introduccio al JavaIntroduccio al Java
Introduccio al Java
 
Constructores con el parámetro this
Constructores con el parámetro thisConstructores con el parámetro this
Constructores con el parámetro this
 
TRABAJO N°1
TRABAJO N°1 TRABAJO N°1
TRABAJO N°1
 
Elementos de una clase
Elementos de una claseElementos de una clase
Elementos de una clase
 
Leguaje de programacion C#
Leguaje de programacion C#Leguaje de programacion C#
Leguaje de programacion C#
 
Programacion
ProgramacionProgramacion
Programacion
 
Matrices en php
Matrices en phpMatrices en php
Matrices en php
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
Funciones
FuncionesFunciones
Funciones
 
5.1 estructura de una clase.
5.1 estructura de una clase.5.1 estructura de una clase.
5.1 estructura de una clase.
 
Array list en java, con ejemplos jarroba
Array list en java, con ejemplos   jarrobaArray list en java, con ejemplos   jarroba
Array list en java, con ejemplos jarroba
 
Colecciones
ColeccionesColecciones
Colecciones
 
SCJP, Clase 2: Ejemplos De Enum, Poo
SCJP, Clase 2: Ejemplos De Enum, PooSCJP, Clase 2: Ejemplos De Enum, Poo
SCJP, Clase 2: Ejemplos De Enum, Poo
 
Programación Orientada a Objetos para Python
Programación Orientada a Objetos para PythonProgramación Orientada a Objetos para Python
Programación Orientada a Objetos para Python
 

Similar a Encapsulamiento

Similar a Encapsulamiento (20)

Leccion 9 Java
Leccion 9 JavaLeccion 9 Java
Leccion 9 Java
 
Conceptos basicos POO
Conceptos basicos POOConceptos basicos POO
Conceptos basicos POO
 
Clases abstractas java metodos abstract class api ejemplo ejercicio
Clases abstractas java metodos abstract class api ejemplo ejercicioClases abstractas java metodos abstract class api ejemplo ejercicio
Clases abstractas java metodos abstract class api ejemplo ejercicio
 
Clases en Java y todo lo relacionado
Clases en Java y todo lo relacionadoClases en Java y todo lo relacionado
Clases en Java y todo lo relacionado
 
Cap.10 - El paradigma Orientado a Objetos
Cap.10 - El paradigma Orientado a ObjetosCap.10 - El paradigma Orientado a Objetos
Cap.10 - El paradigma Orientado a Objetos
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
 
La programación orientada a objetos con JavaScript ES6
La programación orientada a objetos con JavaScript ES6La programación orientada a objetos con JavaScript ES6
La programación orientada a objetos con JavaScript ES6
 
Sesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clasesSesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clases
 
9.herencia en java
9.herencia en java9.herencia en java
9.herencia en java
 
Tarea 5
Tarea 5Tarea 5
Tarea 5
 
Unidad 2 poo_clases_y_objetos
Unidad 2 poo_clases_y_objetosUnidad 2 poo_clases_y_objetos
Unidad 2 poo_clases_y_objetos
 
Tutorial 3
Tutorial 3Tutorial 3
Tutorial 3
 
Introduccionjava
IntroduccionjavaIntroduccionjava
Introduccionjava
 
Laboratorio clase abstract
Laboratorio clase abstractLaboratorio clase abstract
Laboratorio clase abstract
 
02 tda1 t2018
02 tda1 t201802 tda1 t2018
02 tda1 t2018
 
Lp2docclases
Lp2docclasesLp2docclases
Lp2docclases
 
Cesar adrian barrios alarcon unidad 2
Cesar adrian barrios alarcon      unidad 2       Cesar adrian barrios alarcon      unidad 2
Cesar adrian barrios alarcon unidad 2
 
Poo Java
Poo JavaPoo Java
Poo Java
 
Herencia en java
Herencia en javaHerencia en java
Herencia en java
 
10.herencia en c++
10.herencia en c++10.herencia en c++
10.herencia en c++
 

Último

Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscaeliseo91
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 

Último (20)

Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fisca
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 

Encapsulamiento

  • 1. Encapsulamiento De manera general, se hace teniendo las propiedades como privadas y métodos que la controlan públicos. Comúnmente, se crean un grupo de métodos llamados getters (se encargan de obtener el valor de la propiedad) y setters (se encargan de setearla). Mantener las clases con el principio de encapsulamiento nos permite controlar el cambio de valor que pueda producirse en ellas añadiendo validaciones. De cualquier manera, es una convención dentro de la programación orientada a objetos, aunque no se esté realizando una operación adicional al cambio de valor. Veamos un ejemplo: Public class Gato { public String nombre; public int patas; } //Mi método main... Gato g = new Gato(); g.nombre = "Nemo"; g.patas = 4; System.out.println("Mi gato se llama: " + g.nombre); System.out.println("El número de patas de mi gato es: " + g.patas); En este caso, no se ha aplicado el principio de encapsulamiento, puede cambiar las propiedades del mismo tan sólo con acceder a ellas, de manera muy simple. Veamos la misma clase, con el principio de encapsulamiento public class Gato { private String nombre; private int patas; public getNombre(){ return nombre;} public getPatas(){ return patas;} public setNombre(String nuevoNombre){ nombre = nuevoNombre;} public setPatas(int numeroPatas){ patas = numeroPatas;} } //Mi método main... Gato g = new Gato(); g.setNombre("Nemo"); g.setPatas(3); System.out.println("Mi gato se llama: " + g.getNombre()); System.out.println("El número de patas de mi gato es: " + g.getPatas()); Tras aplicar el principio de encapsulamiento, ya no tenemos acceso a las propiedades directamente, por lo que tenemos que usar los métodos (que son públicos y sí tenemos acceso a ellos) para poder acceder a las variables, tanto para modificarlas como para obtenerlas. El comportamiento es el mismo, aunque lleve un código adicional
  • 2. Abstracción Una clase abstracta es una superclase (clase principal) que no puede ser instanciada. Debe crear una instancia de una de sus clases secundarias si desea crear un nuevo objeto. Las clases abstractas pueden tener métodos tanto abstractos como concretos. Los métodos abstractos contienen solo la firma del método, mientras que los métodos concretos también declaran un cuerpo del método. Las clases abstractas se definen con la abstract palabra clave. En el siguiente ejemplo, puede ver una clase abstracta llamada Animal con dos métodos abstractos y uno concreto. abstract class Animal { // abstract methods abstract void move(); abstract void eat(); // concrete method void label() { System.out.println("Animal's data:"); } } Amplíe la clase Animalclase abstracta con dos clases secundarias: Birdy Fish. Ambos establecieron su propia funcionalidad para las move()y eat()abstractos métodos. class Bird extends Animal { void move() { System.out.println("Moves by flying."); } void eat() { System.out.println("Eats birdfood."); } } class Fish extends Animal { void move() { System.out.println("Moves by swimming."); } void eat() { System.out.println("Eats seafood."); } } Ahora, vemos con las clases TestBirdy TestFish. Ambos llaman al método concreto ( label()) y los dos métodos abstractos ( move()y eat()). class TestBird { public static void main(String[] args) { Animal myBird = new Bird(); myBird.label(); myBird.move(); myBird.eat(); } } class TestFish { public static void main(String[] args) { Animal myFish = new Fish();
  • 3. myFish.label(); myFish.move(); myFish.eat(); } } En la consola, el método concreto ha sido llamado desde la clase Animalclase abstracta, mientras que los dos métodos abstractos han sido llamados desde Bird()y Fish(), respectivamente. [Console output of TestBird] Animal's data: Moves by flying. Eats birdfood. [Console output of TestFish] Animal's data: Moves by swimming. Eats seafood.