Modificadores de Acceso en POO
Modificadores de Acceso en POO
Los modificadores de acceso definen el nivel de visibilidad de los miembros (atributos y métodos) de una clase. Esto determina qué partes del código pueden acceder a ellos. Los modificadores más comunes son:
- public: El miembro es accesible desde cualquier parte del programa.
- private: El miembro solo es accesible desde dentro de la clase.
- protected: El miembro es accesible desde dentro de la clase y desde las clases derivadas.
C++
class Animal {
public:
void hacerRuido() {
cout << "Hace un ruido" << endl;
}
protected:
string nombre;
private:
int edad;
};
En este ejemplo:
hacerRuidoes público, por lo que cualquier código puede llamarlo.nombrees protegido, así que solo las clases que heredan deAnimalpueden acceder a él.edades privado, solo la claseAnimalpuede manipularlo directamente.
C#
public class Persona {
public string Nombre { get; set; }
private int Edad;
public void Presentarse() {
Console.WriteLine("Hola, soy " + Nombre);
}
}
En C#, los atributos suelen encapsularse en propiedades (como Nombre) para controlar el acceso.
Java
public class Coche {
private String marca;
public void acelerar() {
// Código para acelerar
}
}
Similar a C#, Java utiliza propiedades para encapsular atributos.
Python
class Perro:
def __init__(self, nombre):
self.nombre = nombre
self.__raza = "Desconocida" # Convención para privado
def ladrar(self):
print("Guau!")
En Python, no hay modificadores de acceso formales como en otros lenguajes, pero se utiliza la convención de doble guión bajo (__) para indicar que un atributo es privado.
Otros Modificadores
static
Indica que un miembro pertenece a la clase en sí, no a una instancia de la clase. Se utiliza para variables y métodos que son comunes a todos los objetos de esa clase.
public class Matematicas {
public static int sumar(int a, int b) {
return a + b;
}
}
final
Impide que un atributo sea modificado después de su inicialización o que un método sea sobreescrito en una subclase.
class Circulo {
public:
const float PI = 3.14159; // Constante
void calcularArea() final {
// ...
}
};
friend (C++)
Permite a una función o clase acceder a los miembros privados de otra clase. Se usa con cautela.
class ClaseA; // Declaración adelantada
class ClaseB {
friend void funcionAmiga(ClaseA& obj);
private:
int valorPrivado;
};
Comentarios
Publicar un comentario