No tienes acceso a esta clase

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

Encapsulamiento

12/19
Recursos

Aportes 12

Preguntas 1

Ordenar por:

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

# Encapsulamiento: Se refiere a la idea de ocultar los detalles internos de un objeto y proporcionar una interfaz pública bien definida para interactuar con él. El encapsulamiento permite controlar el acceso a los atributos y métodos de un objeto, lo que ayuda a mantener la integridad de los datos y facilita la gestión y el mantenimiento del código. En el encapsulamiento, los atributos de un objeto se declaran como privados, lo que significa que solo pueden accederse y modificarse desde dentro de la propia clase a la que pertenece el objeto. Para permitir que otros objetos interactúen con estos atributos, se proporcionan métodos públicos, también conocidos como métodos de acceso o **getters y setters,** que permiten obtener y establecer los valores de los atributos de manera controlada. Los beneficios del encapsulamiento son: 1. Control de acceso: Se puede especificar quién tiene acceso a los datos y quién no. Esto ayuda a prevenir modificaciones no deseadas o inconsistentes en los datos. 2. Ocultamiento de detalles internos: Los detalles de implementación de una clase se mantienen ocultos, lo que facilita el cambio de la implementación sin afectar a los objetos que la utilizan. 3. Facilita la mantenibilidad: Al tener una interfaz pública bien definida, es más fácil identificar y corregir problemas en el código, ya que se sabe dónde se realizan las interacciones con el objeto. En C# el encapsulamiento se logra utilizando modificadores de acceso como "***<u>private</u>", "<u>public</u>" y "<u>protected</u>"*** para controlar el acceso a los atributos y métodos de una clase. *<u>Fuente: Chat GPT</u>*

Microsoft Define “Encapsulación” como

ocultar el estado interno y la funcionalidad de un objeto y permitir solo el acceso a través de un conjunto público de funciones.

Gran ejemplo en la clase con los get; y set;

Hasta al momento me ha gustado el curso 😃

La encapsulación en programación, especialmente en lenguajes como C#, se refiere a la práctica de ocultar los detalles internos de una clase y proporcionar una interfaz pública para interactuar con la clase. Esto se logra utilizando modificadores de acceso como private, protected, public, entre otros, para controlar el acceso a los miembros de la clase (campos y métodos). Aquí tienes un ejemplo sencillo en C# que ilustra la encapsulación:


using System;

public class Persona
{
    // Campos privados (encapsulados)
    private string nombre;
    private int edad;

    // Constructor
    public Persona(string nombre, int edad)
    {
        this.nombre = nombre;
        this.edad = edad;
    }

    // Propiedades públicas para acceder a los campos privados
    public string Nombre
    {
        get { return nombre; }
        set { nombre = value; }
    }

    public int Edad
    {
        get { return edad; }
        set
        {
            if (value >= 0)
            {
                edad = value;
            }
            else
            {
                Console.WriteLine("La edad no puede ser un número negativo.");
            }
        }
    }

    // Método público
    public void Presentarse()
    {
        Console.WriteLine($"Hola, soy {nombre} y tengo {edad} años.");
    }
}

class Program
{
    static void Main()
    {
        // Crear una instancia de la clase Persona
        Persona persona = new Persona("Juan", 30);

        // Acceder a las propiedades públicas y llamar al método público
        Console.WriteLine($"Nombre: {persona.Nombre}");
        Console.WriteLine($"Edad: {persona.Edad}");
        persona.Presentarse();

        // Intentar establecer una edad negativa (esto mostrará el mensaje de error)
        persona.Edad = -5;

        // Cambiar la edad válida
        persona.Edad = 35;

        // Mostrar la nueva edad
        Console.WriteLine($"Nueva Edad: {persona.Edad}");
    }
}

En este ejemplo, la clase Persona encapsula los campos nombre y edad al hacerlos privados y proporciona propiedades públicas (Nombre y Edad) para acceder a estos campos de manera controlada. También tiene un método público llamado Presentarse que permite mostrar información sobre la persona. Esto es un ejemplo básico de encapsulación en C#.

Así llevo mi clase persona, con validaciones. use el string.IsNullOrWhiteSpace: * Este método verifica si una cadena es nula (null), una cadena vacía ("") o si contiene solo espacios en blanco. * Devuelve true si la cadena es nula, una cadena vacía o contiene solo espacios en blanco. * Devuelve false si la cadena contiene al menos un carácter distinto de un espacio en blanco. * ![](https://static.platzi.com/media/user_upload/encapsulamiento%20y%20validaciones-5d9e59b1-6cc4-4b1a-9279-9d71623aaf17.jpg)

Creoq ue hubiese sido chido mostrar como funciona el Get y el Set con métodos ya que ese permite explicar un poquito el tema de por qué se denomina así y como funciona el tema del scope en este caso. Pese a eso, la explicación de la propiedad pública y privada del Nombre en conjunto con el set y el get es brillante!

Muy buena clase!

![](https://static.platzi.com/media/user_upload/Snap-24df0437-1428-41bb-b17f-474213b1dd57.jpg)
Para entender completamente el concepto de encapsulamiento en la programación orientada a objetos, hay algunos conceptos adicionales que podrían ser útiles: 1. **Modificadores de Acceso**: En C#, los modificadores de acceso como `public`, `private`, `protected` y `internal` controlan la visibilidad de las propiedades y métodos de una clase. Por ejemplo, al declarar una variable como `private`, solo los métodos dentro de la misma clase pueden acceder a esa variable, lo que ayuda a encapsular y ocultar los detalles internos de la implementación. 2. **Propiedades y Métodos Getters y Setters**: En muchos lenguajes de programación orientados a objetos, incluido C#, se utilizan métodos de acceso (getters) y de modificación (setters) para interactuar con las propiedades de un objeto. Esto permite un control más preciso sobre cómo se acceden y modifican los datos internos de un objeto, lo que facilita el encapsulamiento. 3. **Encapsulamiento de Datos**: El encapsulamiento no solo se refiere a ocultar los detalles de implementación de una clase, sino también a garantizar que los datos se manejen de manera segura y coherente. Esto se logra mediante el uso de métodos de acceso controlado, validaciones de datos y la aplicación de reglas de negocio dentro de la clase. 4. **Mantenimiento de la Invariabilidad**: El encapsulamiento también implica mantener la invariabilidad de los objetos, es decir, garantizar que el estado interno de un objeto se mantenga consistente y válido en todo momento. Esto se logra mediante la restricción del acceso directo a los datos internos y la realización de operaciones de validación en métodos específicos. fuente chatgpt

La encapsulación se usa cuando queremos hacer una transformación de nuestras propiedades, o cuando queremos crear nuevas variables a partir de una de nuestras propiedades

**Beneficios del Encapsulamiento:** * Evita la manipulación incorrecta de datos por parte del usuario. * Mejora la legibilidad del código al ocultar detalles de implementación. * Facilita la adición de comportamientos específicos en nuevas propiedades.
private string _nombreSuperHeroe;
public string nombreSuperHeroe { get { return _nombreSuperHeroe; } set { _nombreSuperHeroe = value.Trim(); } }