No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripción 🔥

Aprende todo un fin de semana sin pagar una suscripción 🔥

Regístrate

Comienza en:

3D
7H
31M
40S

Encapsulamiento

31/37
Recursos

El Encapsulamiento es hacer que un dato sea inviolable, inalterable cuando se le asigne un modificador de acceso.

Aportes 126

Preguntas 10

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

El encapsulamiento es hacer que un dato sea inviolable, inalterable cuando se le asigne un modificador de acceso (no se trata solo de ocultar el dato sino también de protegerlo). Un modificador de acceso define el alcance y visibilidad de un miembro de clase.
La encapsulacion es también llamada ocultamiento de información.
//
Algunos beneficios de encapsulación son:

  • Controlar la manera en que los datos son accedidos o modificados
  • El código es mas flexible y fácil de cambiar a partir de nuevos requerimientos
  • Poder modificar una parte del código sin afectar otras partes del mismo
  • Ayuda a mantener la integridad de los datos
    //
    Nota: esta información la obtuve de la app SoloLearn (en donde puedes aprender diferentes lenguajes de programación).

Public: Todas las Clases.
Protected: En la misma Clase, paquetes, subclases.
Default: En la misma Clase y paquetes internos.
Private: Solo en la misma Clase

Encapsulamiento:

Es hacer que los datos sean inviolables, inalterable o hacer que se esconda, cuando se le asigne un Modificador de Acceso.
.
Modificadores de Acceso:

  1. Public: Es el mas permisivos de todos, Accede a todo.
  2. Protected: Podrá ser accedido por la clase, paquetes y subclases.
  3. Default: Permite el acceso a nivel de clses de internas y paquetes (No podremos ver las herencias si ha detener (Osea subclases))
  4. Private: Solo podrá ser modificado dentro de la clase.

Se puede encapsular: elementos o atributos, clases o incluso métodos; El encapsulamiento nos permite tener dicho elemento inalterable en la POO.

Encapsulamiento
Esta idea no solo es para mantener agrupado el código, es una capa de seguridad para proteger al mismo.
Pero te preguntaras si he definido mi clase por que debo ocultar las propiedades de esa clase dentro de mi propio código, y en realidad no se trata de hacer algo en secreto, lo que realmente se busca es reducir las dependencias de otras partes del código, para que un cambio en un lugar no caiga en cascada y me toque hacer cambios en múltiples partes del código.

Hay que saber muy bien cómo encapsular nuestros atributos y métodos, por ejemplo, si queremos que un método pueda ser llamado por cualquier otro código, tendría que ser public, pero si queremos que solo esté disponible dentro de nuestra clase o clases heredadas podría ser protected, y si solo quieres que esté en la clase podoría ser private.

Usualmente los atributos suelen ser protected, ya que a veces queremos que las clases que nos hereden tengan acceso a esos atributos, pero que no puedan ser accedidos desde afuera. ¿Pero qué pasa si quieres que sean accedidos desde fuera? Entonces se usan unos métodos getters y setters que nos permitiran manipularlos ^^

📦 La encapsulación nos permitirá tener un mayor control sobre el acceso a las propiedades y comportamientos de un objeto determinado.

Símbolos de encapsulamiento para diagramas UML

  • private " - "
  • public " + "
  • protected " # "
  • default " ~ "

No solo existen los modificadores de acceso public, protected default y private. C# tiene las siguientes variaciones.
Pueden especificarse los siguientes seis niveles de accesibilidad con los modificadores de acceso:

public: El acceso no está restringido.

protected: El acceso está limitado a la clase contenedora o a los tipos derivados de la clase contenedora.

internal: El acceso está limitado al ensamblado actual.

protected internal: El acceso está limitado al ensamblado actual o a los tipos derivados de la clase contenedora.

private: El acceso está limitado al tipo contenedor.

private protected: El acceso está limitado a la clase contenedora o a los tipos derivados de la clase contenedora que hay en el ensamblado actual.

Niveles de acceso:
Public: Todas las clases.
Protected: A nivel de Clases, paquetes, subclases.
Default: A nivel de Clases y paquetes internos.
Private: A nivel de Clases

Apuntes de esta Clase:

Encapsulamiento

Permite hacer que un dato permanezca inviolable, inalterable; esto se consigue asignándole un modificador de acceso. Al encapsulamiento también se le conoce como ocultación de información .Los modificadores de acceso son los siguientes:

  • public: es el más permisivo de todos. Puede ser accedido por cualquier elemento.
  • protected: puede ser accedido a nivel de la Clase, los paquetes de la Clase y las subclases.
  • default: permite el acceso a nivel de Clases internas y paquetes. No puede ser accedido a nivel de herencia.
  • private: es el más restrictivo de todos. Sólo puede ser accedido a nivel de Clases. Sólo puede ser modificado y accedido dentro de la misma Clase.

Estos modificadores se pueden aplicar a Clases, atributos y métodos.

Con el encapsulamiento se consigue no sólo ocultar un dato sino también protegerlo.

Entre los beneficios del encapsulamiento estas los siguientes:

  • Permite controlar como se acceden y modifican los datos.
  • Se puede crear un código más flexible y fácil de cambiar frente a futuros requerimientos.
  • Se pueden modificar partes del código sin que esto afecte al resto del software.
  • Permite mantener la integridad de los datos.

Mis apuntes #31

Acá hay información sobre Programación Orientada a Objetos en Python desde qué es OOP, hasta herencia, encapsulation y Polymorphism.

Concepto de Encapsulamiento

No se ve verde, :V se ve amarillo

Definicion:
Es la capacidad de poder hacer privado o publico codigo, para que dependiendo de quien lo llame, este ultimo tenga el permiso o no de usarlo.
Puede ser asignado a funciones o metodos, a variables, etc. Colocandolo al inicio (Kotlin)

Ventajas:
Te permite ordenar mejor tu codigo para que asi tengas acceso a clases o metodos solo cuando lo necesites, evitando errores.
Te permite “esconder” valores de otros(private) para que no puedan ser modificados.

La profesora habla a la ligera. Dice cosas a veces que parecen sin sentido, que solo ella sabe. Ahora lo que hizo es repetir lo mismo que está en el cuadro. No explica qué quiere decir con acceso a “nivel de clases”. No dice si solo se puede acceder desde la misma clase que lo contiene o de otras clases.

En JavaScript no existen los modificadores de acceso. Por ejemplo, si quiero dar a entender que cierto atributo es privado, pongo un “_” precediendo a su nombre. Esto es solo una práctica para que las personas que lean nuestro código comprendan que no deben cambiar directamente ese atributo; para cambiarlo deberían usar setters, que es un concepto que imagino veremos en cursos posteriores. También existen los getters.

En Golang, el encapsilamiento se hace mediente el nombramiento de las variables, métodos, atributos, etc. Si el nombre inicia con mayúscula es “public”, si es con minúscula es “private”:

cuando hablamos de encapsularse trata se saber el alcance que va tener un atributo o metodo, si será pública lo pueden acceder, desde otra clase o si método o atributo va ser privado solo puede ser alcanzado por la misma clase no puede se utilizada en otra clase,

Muy bien explicado y en solo unos minutos

Encapsulamiento consiste en ocultar los datos, que sean inviolables e inalterables asignándolos un modificador de acceso.
public: accesible para todas las clases.
protected: accesible para clases, paquetes y subclases.
default: accesible para clases y paquetes.
private: accesible solo para la clase.
Se pueden encapsular atributos, clases o métodos.

muy buena la clase, solo el detalle de la pronunciacion de public… https://www.youtube.com/watch?v=9PQVbDSiaAM

Modificadores de acceso: *public *protected *default *private

Encapsulamiento:

Es el que nos permite que un dato permanezca inviolable, inalterable, se le asigna un modificador de acceso.

Tipos de modificadores de acceso:

Public: Visible en todas las clases.
**Protected:**Visible en clases, paquetes y subclases.
Default: Visibles en clases y paquetes.
Private: Visible en clases.

Encapsulamiento = esconder algo (atributo)

El encapsulamiento es hacer que un dato sea inviolable, inalterable cuando se le asigne un modificador de acceso (no se trata solo de ocultar el dato sino también de protegerlo). Un modificador de acceso define el alcance y visibilidad de un miembro de clase.
La encapsulacion es también llamada ocultamiento de información.
////
Beneficios:
Controlar la manera en que los datos son accedidos o modificados
El código es mas flexible y fácil de cambiar a partir de nuevos requerimientos
Poder modificar una parte del código sin afectar otras partes del mismo
Ayuda a mantener la integridad de los datos

Basicamente el encapsulamiento nos permite tener el control de ciertas variables o metodos de nuestro codigo, permitiendo asi que solo puedan terner acceso a ciertas caracteristicas. Esto se puede ver como una caja negra donde colocas ciertos parametros de entrada, el ejecutara un proceso interno y nos dara un resultado sin que nosotros nos preocupemos de como lo hace.

He visto muchos ejemplos y explicaciones del encapsulamiento, pero es la primera vez que alguien lo explica con un ejemplo real, consistente y coherente, de tal manera que sí se ve la necesidad de utilizarlo en el código. Gracias Anncode!!!

El modificador de acceso public es el más permisible de todos. Permite ser accedido por cualquier elementos. Por cualquier clase. Modificador de acceso protected. Puede ser accedido a nivel de los paquetes de la clase Modificador de acceso default. Acceso a nivel de clases interas y paquetes. En la herencia no podremos ver este atributo. Modificador de acceso private. Es el mmás restrictivo. Solo puede ser accedido a nivel de clases.

Principio de ocualtación: Cada objeto esta aisaldo del exterior. Cada objetos expone una “interfaz” a otros objetos, que especifica como puede interactuar con otros objetos.
El aisaliemto protege a ñas propiedades de un objeto contra la modificación de quien no tenga derecho a aaceder a ellas.
Solamente los propios métodos internos del objetos pueden acceder a su estado. Esto asegura que otros objetos no puedan cambiar el estado internos de un objeto de manera inesperada.

Encapsulamiento: Reunir todos los elementos que se concideren pertenencientes a una misma entidad, con el mismo nivel de abstracción.

Encapsulamiento: Hacer que un dato sean inviolable o inalterable cuando se le asigna un modificador de acceso.

En java, una correccion:
El modificador de acceso default, es a nivel de paquete que funciona, no necesitas realizar herencia, si las clases estan en el mismo paquete, puedes utilizar sus propiedades y metodos, si son default. AUNQUE SE HEREDE, puedes tener acceso a los mismos, verificar para eso el caso que hemos estado haciendo, todas nuestras propiedades son default

Un pequeño aporte:

ENCAPSULAR Es una palabra que indica “…encerrar, introducir o incluir algo dentro de una capsula. “ (RAE).
En POO “…es el mecanismo para enlazar los datos (atributos) y métodos (operaciones) en objetos y limitar el acceso directo a su interior. La encapsulación se refiere al empaquetamiento de datos y funciones en un contenedor Programable| (clases/*objetos) ” (https://scoutapm.com/blog/what-is-encapsulation)


no entiendo porque querer hacer eso en estos programas

Muy bueno está clase y hace rato estaba buscando está información

Información resumida de esta clase
#EstudiantesDePlatzi

  • Al momento de entender nuestro problema debo tener claro que posibles inconsistencias puedo tener para así prevenirlas

  • En la POO puedo esconder un parámetro

  • Encapsulamiento = Es lograr que un dato permanezca inviolable, inalterable y para esto se le asigna un modificador de acceso

  • Encapsulamiento es sinónimo de esconder

  • Para esconder un dato usaremos los modificadores de acceso: Public, Protected, default y private

  • Cada uno de estos tiene un nivel de acceso a los datos

  • Public es el más permisivo de todos

  • Protected puede ser accedido a nivel de clases, paquete de clases y sub clases

  • Default nos permite el acceso a nivel de clases internas y paquetes

  • Private es el más restrictivo, ya que solamente nos permite el acceso a nivel de clases

Hay que saber muy bien cómo encapsular nuestros atributos y métodos, por ejemplo, si queremos que un método pueda ser llamado por cualquier otro código, tendría que ser public, pero si queremos que solo esté disponible dentro de nuestra clase o clases heredadas podría ser protected, y si solo quieres que esté en la clase podoría ser private. Usualmente los atributos suelen ser protected, ya que a veces queremos que las clases que nos hereden tengan acceso a esos atributos, pero que no puedan ser accedidos desde afuera. ¿Pero qué pasa si quieres que sean accedidos desde fuera? Entonces se usan unos métodos getters y setters que nos permitiran manipularlos ^^

RESUMEN CLASE 31:
ENCAPSULAMIENTO

I. Para que un dato permanezca:

  • Inviolable

  • Inalterable, se le asigna un modificador de acceso

II. Modificadores de acceso:

  • public: Todas la clases

  • protected: Clases, Paquetes y Subclases

  • default: Clases y paquetes

  • private: Clases

Genial 😄.

Encapsulamiento

  • Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesión de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultación, principalmente porque se suelen emplear conjuntamente.

  • La encapsulación: Se refiere a la capacidad de agrupar y condensar en un entorno con límites bien-definidos distintos elementos. Cuando hablemos de encapsulación en general siempre nos referiremos, pues, a encapsulación abstracta.

  • Hay que poner límites (la encapsulación), y dentro de esos límites vamos a meter, a saco, todo lo relacionado con lo abstraído: no sólo datos, sino también métodos, comportamientos, etc.

  • La encapsulación define los niveles de acceso para elementos de esa clase. Estos niveles de acceso definen los derechos de acceso para los datos, permitiéndonos el acceso a datos a través de un método de esa clase en particular, desde una clase heredada o incluso desde cualquier otra clase. Existen tres niveles de acceso:

  • · público: funciones de toda clase pueden acceder a los datos o métodos de una clase que se define con el nivel de acceso público. Este es el nivel de protección de datos más bajo

  • · protegido: el acceso a los datos está restringido a las funciones de clases heredadas, es decir, las funciones miembro de esa clase y todas las subclases

  • · privado: el acceso a los datos está restringido a los métodos de esa clase en particular. Este es nivel más alto de protección de datos

🤖🤖🤖
El encapsulamiento es hacer que un dato sea inviolable, inalterable cuando se le asigne un modificador de acceso (no se trata solo de ocultar el dato sino también de protegerlo). Un modificador de acceso define el alcance y visibilidad de un miembro de clase.

Algunos beneficios de encapsulación son:
Controlar la manera en que los datos son accedidos o modificados
El código es mas flexible y fácil de cambiar a partir de nuevos requerimientos
Poder modificar una parte del código sin afectar otras partes del mismo.

En C#, si no especificas en modificador de acceso, será de tipo Private

  • Modificadores de acceso

Naranja: Alcanze
Gris: Restriciones

Public

Protected

Default

Private

Hace rato que no usaba Java pero le tengo cariño fue el primer lenguaje serio que aprendi por que me interesaba Android.

class Car{
    Integer id;
    Account driver;
    String license;
    private Integer passengers;

    public Car(String license , Account driver){
        this.license = license;
        this.driver = driver;
    }
    public void setPassengers(Integer passengerValue){
            this.passengers =  passengerValue;
    }

    public Integer getPassenger(){
        return this.passengers;
    }
    
    void printDataCar(){
        System.out.println("License: " + this.license + " conductor: " + this.driver.name + " Passengers: " + this.passengers);
    }

}

El encapsulamiento es hacer que un dato sea inviolable, inalterable cuando se le asigne un modificador de acceso (no se trata solo de ocultar el dato sino también de protegerlo). Un modificador de acceso define el alcance y visibilidad de un miembro de clase.
La encapsulacion es también llamada ocultamiento de información.
//
Algunos beneficios de encapsulación son:

Controlar la manera en que los datos son accedidos o modificados
El código es mas flexible y fácil de cambiar a partir de nuevos requerimientos
Poder modificar una parte del código sin afectar otras partes del mismo
Ayuda a mantener la integridad de los datos
//
Nota: esta información la obtuve de la app SoloLearn (en donde puedes aprender diferentes lenguajes de programación).

A mi me pasa que cuando se nombran varibles en ingles se me hace mas dificil entender ya que confundo esas variables con posibles palabras reservadas del programa.

Encapsulamiento


El encapsulamiento es hacer que un dato se inviolable, o inalterable cuando se le asigne un modificador de acceso. Es nos ayudará a que no puedan meter datos que alteren la lógica de nuestro negocio.

Para esconder datos vamos a utilizar los modificadores de acceso:

  • Public → Puede ser accedido por todos, o seá por cualquier elemento o clase.
  • Protected → Podrá ser accedido a nivel de la clases, paquetes y Subclases (las clases hijas ← clases padres).
  • Defaulf → Este nos permite el acceso a nivel de clases y paquetes. O sea, que a nivel de herencia no puede ser accedido.
  • Private → Solo puede ser accedido a nivel e clases, esto quiere decir, que solo puedes ser modificado a nivel e la clase.

Modificadores de acceso

que es encapsulamiento

Modificadores de Acceso:

  • Public: Es el mas permisivos de todos, Accede a todo.
  • Protected: Podrá ser accedido por la clase, paquetes y subclases.
  • Default: Permite el acceso a nivel de clses de internas y paquetes (No podremos ver las herencias si ha detener (Osea subclases))
  • Private: Solo podrá ser modificado dentro de la clase.

La encapsulacion es también llamada ocultamiento de información.

encapsulamiento en sus propiedades que no sea modificable en el proceso de ejecución

“Constant” tambien puede servir para el encapsulamiento?, por que ya no se cambia el valor despues de haberlo asignado y es una manera de protegerlo, Corriganme si me equivoco

  • Public: Todas las Clases.
  • Protected: En la misma Clase, paquete y subclases.
  • Default: En la misma Clase y paquetes internos.
  • Private: Solo en la misma Clase.
    💚

Encapsulamiento en Python

class Coche:
    #Estado inicial de la clase. Metodo constructor
    def __init__(self):
        # el "__" hace que el atributo no sea accesible desde fuera de la clase
        self.__largoChasis = 250
        self.__anchoChasis = 120
        self.__ruedas = 4
        self.__enmarcha = False

    def arrancar(self, arrancamos):
        self.__enmarcha = arrancamos

        if self.__enmarcha:
            chequeo = self.__chequeo_interno()

        if self.__enmarcha and chequeo:
            return "El coche esta en marcha"
        elif self.__enmarcha and chequeo == False:
            return "Algo ha ido mal en el chequeo"
        else:
            return "El coche esta detenido"

    def estado(self):
        print(
            "El coche tiene ", self.__ruedas, 
            " ruedas. Un ancho de ", self.__anchoChasis, 
            " y un largo de ", self.__largoChasis
            )

    #usar"__" para encapsular el metodo, igual que una variable
    def __chequeo_interno(self):
        print("realizando chequeo interno")

        self.gasolina = "ok"
        self.aceite = "ok"
        self.puertas = "cerradas"
        
        if self.gasolina == "ok" and self.aceite == "ok" and self.puertas == "cerradas":
            return True
        else:
            return False

#Instanciando la clase Coche
miCoche = Coche()
print(miCoche.arrancar(True))
miCoche.estado()

print("........A continuacion creamos el segundo objeto.......")

miCoche2 = Coche()
print(miCoche.arrancar(False))
miCoche2.estado()

Encapsulamiento en python: Se utiliza “__” mas el atributo, de esta manera los valores de este atributos estaran encapsulados y no pueden ser modificados por fuera es decir pasarian a ser estaticos. Este encapsulamiento tambien aplica para los metodos.
|
IMPORTANTE Debera estar mencionada en todos los lugares donde se declare el atributo o metodo

La técnica de Getter y Setters que se explican en el video 31, se pueden usar en JavaScript o en Python?

Encapsulamiento en pocas palabras Tu no has Visto nada...

Encapsulamiento

Hacer que un dato permanezca inviolable, inalterable, se le asigne un modificador de acceso.

Modificadores de acceso:

  • Public: Todos
  • Protected: Clases, paquetes y subclases
  • Default: Clases y paquetes
  • Private: Clases

Encapsular es proteger un dato para que no sea corrompido.

Existen tres niveles de acceso para el encapsulamiento, los cuales son:
Público (Public): Todos pueden acceder a los datos o métodos de una clase.
Protegido (Protected): son accesibles dentro de su clase y por subclases.
Privado (Private): sólo para la propia clase.

Concepto de Modificadores de Acceso.

El rol que juega el encapsulamiento es muy importante en poo.

Magistraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaal

Vaya!!!

pasenme el diagrama final uml por fa.

Veo mas pragmática (y menos pretenciosa) esta solución, en vez de usar encapsulamiento. Aunque entiendo que pueda ser útil en circunstancias concretas dependiendo del proyecto.

void printCarResults()
    {   
        if(passenger > 4 || passenger < 4)
        {
            passenger = null;
            System.out.println("Para uberX no puede ser mayor ni menor a 4 pasajeros. " + passenger);
        }
        else
        {
        System.out.println("El nombre del conductor es : " + driver.name + 
        ".\nSu numero de licencia es: " + license + " the passengers: "+ passenger);
        }
    }

😃

Encapsulamiento: hacer que un dato sea inviolable e inalterable cuando se le asigna un modificador de acceso (public, protected, default, private).

Encapsulamiento

Explicación sobre modificadores de acceso

genial

Interesante!

Encapsulamiento
Un dato sea inalterable cuando se le asigne un modificador de acceso.
Restricciones de las clases.
Parametros, atributos, métodos, clases: escondidos.
public ,protected, default, private.

dos puntos por terminar de ver el video :v

Genial explicación

Encapsulamiento: Permisos de acceso a los atributos, método o clases.

Genial, me quedo claro el termino.

El encapsulamiento permite esconder los detalles de implementación de nuestra clase (atributos y métodos) hacia el exterior. Estaría mal si un objeto permite cambiar los datos escribiendo directamente sobre sus atributos.

cuando hago run en Java me aparaece en el DEBUG CONSOLE Error: no se ha encontrado o cargado la clase principal Main

El encapsulamiento

Excelente, este encapsulamiento nos permite también que para cuando cambien cosas poder modificar solamente la clase donde este atributo se encuentra

Definicion del encapsulamiento minuto 4:00.

Clase muy importante para poder controlar quien puede o no acceder/pueda ver a los atributos de una clase.

Definición de encapsulamiento.

El default rompe el concepto de herencia,
el private el más restrictivo solo puede ser accedido a nivel de clases, el protected, accedido a nivel de clases y paquetes

Estupenda clase instructora Anahí, entonces el encapsulamiento va abarcar tanto el grado de visibilidad como el de acceso que posee un elemento de la aplicación y este elemento puede ser una clase, método o un atributo.

Encapsulamiento, existen 4 tipos:
+ PUBLIC - Todas las clases (accedido por todos)
+ PROTECTED - Solo en la clase, Paquete de la clase y Subclases (clases hijas) de la clase
+ DEFAULT - Solo en la clase y Paquete de la clase
+ PRIVATE - Solo en la clase

Oh tremendo, mi pregunta es, si se encapsula un dato de manera “private” solo rompe la herencia en las clases hijas?

Ya aprendí la diferencia entre public, protected, default and private.

No se si alguien me pueda ayudar.
Cuando trabajamos con la familia de car en la clase Car.java heredamos driver de la clase Account.java pero en la clase Car.java no esta declarado ese driver no me quedo claro esa parte y de esto nace otra interrogante en la clase Account.java tengo declarado email y cuando creo la clase Paypal.java tengo que declarar email o tambien lo puedo heredar de Account.java.
Por favor si me podrian ayudar.
Gracias

Tan necesario para evitar la trampa.

Clara explicación.

gracias quedo super entendido con el diagrama

En Python no hay variables/métodos privados. En su lugar, por estándar de PEP8, se agrega uno o dos caractéres de espaciado para indicarle a otros desarrolladores que no debería utilizar esa variable/función:
_foo = 0

def __foo_function():