Bienvenida e Introducci贸n

1

驴Por qu茅 aprender Programaci贸n Orientada a Objetos?

2

驴Qu茅 resuelve la Programaci贸n Orientada a Objetos?

3

Paradigma Orientado a Objetos

4

Lenguajes Orientados a Objetos

5

Instalando Visual Studio Code

6

Diagramas de Modelado

7

Qu茅 es UML

Orientaci贸n a Objetos

8

Objetos

9

Abstracci贸n y Clases

10

Modularidad

11

Analizando Uber en Objetos

12

Reto 1: identificando objetos

Programaci贸n Orientada a Objetos. An谩lisis

13

Clases en UML y su sintaxis en c贸digo

14

Modelando nuestros objetos Uber

15

驴Qu茅 es la herencia?

16

Aplicando Herencia a nuestro proyecto Uber

17

Reto 2: analicemos un problema

Clases, Objetos y M茅todo Constructor

18

Creando nuestras carpetas iniciales para el curso

19

Definiendo clases en Java y Python

20

Definiendo Clases en JavaScript

21

Objetos, m茅todo constructor y su sintaxis en c贸digo

22

Objetos. Dando vida a nuestras clases en Java y Python

23

Declarando un M茅todo Constructor en Java y JavaScript

24

JavaScript orientado a objetos, lo m谩s nuevo

25

Declarando un m茅todo constructor en Python

Herencia

26

Aplicando herencia en lenguaje Java y PHP

27

Soluci贸n del reto de herencia en PHP

28

Aplicando herencia en lenguaje Python y JavaScript

29

Otros tipos de Herencia

30

Reto 4

Encapsulamiento

31

Encapsulamiento

32

Encapsulando atributos en Java

Polimorfismo

33

Generando polimorfismo en Java

34

Generando polimorfismo en PHP

Cierre del curso

35

El Diagrama UML de Uber

36

Conclusiones

37

Bonus: Qu茅 es la Programaci贸n Orientada a Objetos

No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Curso de Programaci贸n Orientada a Objetos: POO

Curso de Programaci贸n Orientada a Objetos: POO

Anah铆 Salgado D铆az de la Vega

Anah铆 Salgado D铆az de la Vega

Encapsulamiento

31/37
Recursos

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

Aportes 135

Preguntas 11

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

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.

Ac谩 hay informaci贸n sobre Programaci贸n Orientada a Objetos en Python desde qu茅 es OOP, hasta herencia, encapsulation y Polymorphism.

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

Concepto de Encapsulamiento

En Golang, el encapsilamiento se hace mediente el nombramiento de las variables, m茅todos, atributos, etc. Si el nombre inicia con may煤scula es 鈥減ublic鈥, si es con min煤scula es 鈥減rivate鈥:

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 鈥渆sconder鈥 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 鈥渘ivel 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.

Interesante, aunque no entend铆 bien porque Passengers si se supone que puede ser de 1 a 4, ser铆a para que no fuera mayor que ese n煤mero.

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

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!!!

Para lograr un buen nivel de encapsulamiento, se recomienda seguir el principio de 鈥渕inimizar la accesibilidad鈥, es decir, hacer privados los atributos de una clase y proporcionar m茅todos p煤blicos para acceder (getters) y modificar (setters) esos atributos si es necesario.

Public: Es como un parque p煤blico. Todo el mundo puede entrar y disfrutar de sus instalaciones. 隆Incluso los perros callejeros pueden entrar y hacer sus necesidades en el c茅sped!

Protected: Es como una piscina privada en un club exclusivo. Solo los miembros del club y sus invitados pueden entrar y disfrutar de la piscina. 隆Los perros callejeros no son bienvenidos!

Default (sin modificador): Es como una fiesta en casa. Solo los amigos y vecinos est谩n invitados. 隆Los extra帽os no son bienvenidos, a menos que traigan pizza!

Private: Es como un diario personal con candado. Solo t煤 puedes leerlo y escribir en 茅l. 隆Ni siquiera tu mejor amigo puede echarle un vistazo!

31. Encapsulamiento

  • Para que un dato permanezca inviolable, inalterable, se le asigna un modificador de acceso.

Un sinonimo de modificador de acceso tambien es Esconder Algo

Encapsulamiento: Hacer que un dato permanezca inviolable, inalterable, se le asigna un modificador de acceso.

encapsulamiento:
encapsulamiento --> hacer que un dato sea inviolable o inalterable cuando se le asigna un modificador de acceso
encapsulamiento --> esconder

modificadores de acceso:
#public --> permite total acceso
#protected --> podra ser accedido a nivel de la clase y nivel de acceso subclases y paquetes
#default --> permite el acceso a nivel de clases y paquetes
#private --> permite acceso a clases

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

Los modificadores de acceso

son palabras clave que se utilizan en la programaci贸n orientada a objetos para definir el nivel de acceso que tienen los miembros de una clase (atributos, m茅todos y clases internas) desde otras clases.

Existen cuatro tipos de modificadores de acceso:

  1. Public: los miembros p煤blicos pueden ser accedidos desde cualquier parte del programa, ya sea desde la propia clase, desde otras clases del mismo paquete o desde cualquier otra clase que importe la clase que define el miembro p煤blico.
  2. Private: los miembros privados s贸lo pueden ser accedidos desde dentro de la misma clase en la que se han definido. No son accesibles desde ninguna otra clase, incluso aunque pertenezcan al mismo paquete.
  3. Protected: los miembros protegidos son accesibles desde dentro de la misma clase en la que se han definido, desde las subclases (herencia) y desde otras clases del mismo paquete.
  4. Default: tambi茅n conocido como 鈥渁mistoso鈥 o 鈥渟in especificar鈥, los miembros que no tienen ning煤n modificador de acceso se consideran 鈥渄efault鈥 y s贸lo son accesibles desde dentro del mismo paquete.

En el ejemplo de Uber, podr铆amos definir que los atributos de la clase Car sean privados para que no puedan ser modificados desde fuera de la clase, mientras que los m茅todos de la clase Route sean p煤blicos para que puedan ser accedidos desde cualquier otra parte del programa.

En Java, por ejemplo, los modificadores de acceso se definen de la siguiente manera:


public class Car {
   private String model;
   public int year;

   private void startEngine() {
      // c贸digo para arrancar el motor
   }

   public void accelerate() {
      // c贸digo para acelerar
   }
}


En este ejemplo, el atributo 鈥渕odel鈥 y el m茅todo 鈥渟tartEngine鈥 son privados, mientras que el atributo 鈥測ear鈥 y el m茅todo 鈥渁ccelerate鈥 son p煤blicos. De esta manera, s贸lo se puede acceder al atributo 鈥測ear鈥 y al m茅todo 鈥渁ccelerate鈥 desde fuera de la clase, mientras que los otros miembros s贸lo son accesibles desde dentro de la misma clase.

En Python, los modificadores de acceso no existen como tal, pero se puede simular su comportamiento mediante el uso de convenciones de nomenclatura. Por ejemplo, se puede usar un gui贸n bajo al principio del nombre de un atributo para indicar que es privado:


class Car:
   def __init__(self, model, year):
      self._model = model
      self.year = year

   def start_engine(self):
      # c贸digo para arrancar el motor

   def accelerate(self):
      # c贸digo para acelerar


En este ejemplo, el atributo 鈥淿model鈥 se considera privado y s贸lo deber铆a ser accedido desde dentro de la misma clase, mientras que el atributo 鈥測ear鈥 es p煤blico y puede ser accedido desde fuera de la clase.

El encapsulamiento es uno de los principios fundamentales de la programaci贸n orientada a objetos. Consiste en ocultar la complejidad de una clase detr谩s de una interfaz que permita a otros objetos interactuar con ella sin necesidad de conocer los detalles internos de su implementaci贸n. En otras palabras, se trata de proteger los atributos y m茅todos de una clase para que no sean accesibles desde fuera de la misma, salvo a trav茅s de los m茅todos p煤blicos definidos en la interfaz.

En el ejemplo de Uber, podemos aplicar el encapsulamiento en varias clases. Por ejemplo, en la clase Driver podr铆amos tener un atributo password que no queremos que sea accesible desde fuera de la clase, ya que es un dato privado que no deber铆a ser visible para otros objetos. Para proteger este atributo, lo definimos como private y proporcionamos un m茅todo p煤blico getPassword() que permita a otros objetos acceder a su valor sin tener que conocer directamente el atributo.

Otro ejemplo de encapsulamiento en Uber podr铆a ser la clase Car. En este caso, podr铆amos tener varios atributos como model, year, licensePlate, entre otros, que tambi茅n queremos proteger para que no sean accesibles desde fuera de la clase. En este caso, los definimos como private y proporcionamos m茅todos p煤blicos getModel(), getYear() y getLicensePlate() para acceder a sus valores.

Es importante destacar que la encapsulaci贸n no es una medida de seguridad absoluta, ya que en algunos lenguajes de programaci贸n como Java o Python, a煤n es posible acceder a los atributos y m茅todos privados de una clase utilizando la t茅cnica de reflexi贸n. No obstante, se considera una buena pr谩ctica utilizar la encapsulaci贸n como una herramienta de dise帽o para crear clases m谩s robustas y f谩ciles de mantener.

En cuanto a la sintaxis, en Java la definici贸n de atributos privados se hace mediante la palabra clave private, mientras que en Python se utiliza un gui贸n bajo como prefijo para indicar que un atributo es privado. Los m茅todos p煤blicos se definen con la palabra clave public en Java y no hay una palabra clave espec铆fica para ellos en Python, ya que todo m茅todo que no empiece con un gui贸n bajo se considera p煤blico por defecto.

En JavaScript, la encapsulaci贸n se logra a trav茅s del uso de closures, que permiten definir funciones dentro de otras funciones para crear un 谩mbito privado donde se pueden ocultar los datos de una clase. Sin embargo, el lenguaje no tiene una sintaxis espec铆fica para definir atributos y m茅todos privados o p煤blicos, ya que todo se basa en la convenci贸n de usar ciertos nombres para indicar la visibilidad de un atributo o m茅todo.

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 鈥渋nterfaz鈥 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: 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 鈥溾ncerrar, introducir o incluir algo dentro de una capsula. 鈥 (RAE).
En POO 鈥溾s 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

鈥淐onstant鈥 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

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