Atributos y métodos constructores

Atributos y Métodos: Los Ladrillos de la POO

En la programación orientada a objetos (POO), los atributos representan las características o propiedades de un objeto, mientras que los métodos definen su comportamiento o acciones que puede realizar.

  • Atributos: Son variables que almacenan datos asociados a un objeto. Por ejemplo, en una clase Persona, los atributos podrían ser nombre, edad, altura, etc.
  • Métodos: Son funciones que operan sobre los datos de un objeto. Por ejemplo, en la clase Persona, los métodos podrían ser caminar(), hablar(), comer(), etc.

Constructores, Set y Get

  • Constructores: Son métodos especiales que se utilizan para inicializar los objetos cuando se crean. Su nombre es el mismo que el de la clase y no tienen tipo de retorno. Se encargan de asignar valores iniciales a los atributos.
  • Métodos Set: Se utilizan para modificar el valor de un atributo. Suelen recibir como parámetro el nuevo valor que se quiere asignar.
  • Métodos Get: Se utilizan para obtener el valor de un atributo. No reciben parámetros y devuelven el valor del atributo.

Ejemplos en Diferentes Lenguajes

C++

C++
#include <iostream>

class Persona {
public:
    // Constructor
    Persona(std::string nombre, int edad) {
        this->nombre = nombre;
        this->edad = edad;
    }

    // Métodos set y get
    void setNombre(std::string nuevoNombre) {
        nombre = nuevoNombre;
    }

    std::string getNombre() {
        return nombre;
    }

private:
    std::string nombre;
    int edad;
};

int main() {
    Persona persona1("Juan", 30);
    std::cout << persona1.getNombre() << std::endl;
    persona1.setNombre("Pedro");
    std::cout << persona1.getNombre() << std::endl;
    return 0;
}

C#

C#
class Persona {
    public string Nombre { get; set; }
    public int Edad { get; set; }

    public Persona(string nombre, int edad) {
        Nombre = nombre;
        Edad = edad;   
    }
}

class Program {
    static void Main(string[] args) {
        Persona persona1 = new Persona("Ana", 25);
        Console.WriteLine(persona1.Nombre);
        persona1.Nombre = "María";
        Console.WriteLine(persona1.Nombre);
    }
}

Java

Java
public class Persona {
    private String nombre;
    private int edad;

    public Persona(String nombre, int edad) {
        this.nombre = nombre;
        this.edad = edad;
    }

    public    String getNombre() {
        return nombre;
    }

    public    void setNombre(String nuevoNombre) {
        this.nombre = nuevoNombre;
    }
}

public class Main {
    public static void main(String[] args) {
        Persona    persona1 = new Persona("Luis", 35);
        System.out.println(persona1.getNombre());
        persona1.setNombre("Carlos");
        System.out.println(persona1.getNombre());
    }
}

Python

Python
class Persona:
    def __init__(self, nombre, edad):
        self.nombre = nombre
        self.edad = edad

    def getNombre(self):
        return self.nombre

    def setNombre(self,    nuevoNombre):
        self.nombre = nuevoNombre

if __name__ == "__main__":
    persona1 = Persona("Sofía", 28)
    print(persona1.getNombre())
    persona1.setNombre("Laura")
    print(persona1.getNombre())

Como puedes observar:

  • C++: Ofrece un control más granular sobre los atributos y métodos, permitiendo especificar si son públicos, privados o protegidos.
  • C#: Utiliza propiedades (get y set) de forma más concisa para acceder y modificar los atributos.
  • Java: Similar a C++, pero con una sintaxis más simplificada.
  • Python: Utiliza el método __init__ como constructor y no tiene una sintaxis específica para los métodos set y get, aunque se suelen utilizar con nombres convencionales como get_nombre y set_nombre.

En todos los casos:

  • Los constructores se utilizan para inicializar los objetos.
  • Los métodos set se utilizan para modificar el valor de los atributos.
  • Los métodos get se utilizan para obtener el valor de los atributos.


Comentarios

Entradas más populares de este blog

Tratamiento de excepciones

Agregación

Composición