En la programación orientada a objetos (POO), los métodos get y set se utilizan para acceder a las propiedades de un objeto que se han declarado como privadas. Estos métodos permiten encapsular los objetos y evitar el mantenimiento de las aplicaciones cuando el modo de implementar esos objetos se transforma. En este artículo, explicaremos con detalle qué hace el método get y set en diferentes lenguajes de programación.
¿Qué son los métodos get y set?
Antes de entrar en detalles, es importante que comprendamos qué son los métodos get y set. A una propiedad de un objeto podemos asociarle un método llamado set en el momento que se le asigne un valor y otro método llamado get cuando se acceda al contenido de la propiedad. Estos métodos son opcionales y nos permiten validar el dato a asignar a la propiedad o el valor de retorno.
¿Cuál es la diferencia entre set y get?
La principal diferencia entre ambos es que el método set se utiliza para establecer un valor a una propiedad del objeto, mientras que el método get se encarga de mostrar un valor de una propiedad del objeto.
En otras palabras, podemos pensar en el método set como un verbo transitivo que se puede traducir como “poner”, mientras que el método get es un verbo transitivo que se puede traducir como “conseguir”.
Métodos get y set en JavaScript
Empecemos por JavaScript. En este lenguaje, los métodos get y set permiten encapsular los objetos y evitar el mantenimiento de las aplicaciones cuando el modo de implementar esos objetos se transforma. Veamos un ejemplo:
Supongamos que queremos implementar el valor de una propiedad computada utilizando un método tradicional y luego utilizando el método get de JavaScript:
- Implementación tradicional:
obj.propiedad = obj.calcularValor();
- Implementación con método get:
obj.propiedad = obj.valorCalculado;
get valorCalculado() { return this.calcularValor(); }
Como podemos ver, la segunda implementación es mucho más clara y fácil de entender. Además, nos permite reducir el código redundante.
Los métodos set, por su parte, nos permiten asignar valores a las propiedades de un objeto. Por ejemplo:
set valorNuevo(valor) { this._valor = valor * 2; }
Métodos get y set en Kotlin
Ahora, hablemos de Kotlin. En este lenguaje, como en muchos otros, podemos asociar métodos set y get a una propiedad para validar el dato a asignar o el valor de retorno. Si no se implementan estos métodos, el compilador crea estos métodos por defecto.
Veamos un ejemplo de cómo declarar una clase Persona con propiedades de nombre y edad, y cómo controlar el ingreso de valores inválidos en la propiedad edad:
class Persona(var nombre: String, var edad: Int) {
var edad: Int
get() = field
set(value) {
if (value < 0) throw IllegalArgumentException(“La edad no puede ser negativa”)
field = value
}
}
Cuando se asigna un valor a la propiedad edad, en realidad se ejecuta un método set. Además, en la implementación anterior, se utiliza la variable field para obtener el valor de la propiedad.
Otros ejemplos en Kotlin
En Kotlin, también podemos utilizar los métodos set y get en otros datos como el sueldo de un empleado, un dado con valores al tirar, entre otros.
Métodos get y set en Java
En Java, los métodos get se utilizan para mostrar el valor de un atributo y los métodos set para modificarlo. Los nombres de los métodos siempre comienzan con “get” o “set” seguido del nombre del atributo. La sintaxis de los métodos es: “public tipo_dato_atributo getAtributo (){ return atributo; } public void setAtributo (tipo_dato_atributo variable){ this.atributo = variable; }”.
Es posible generar los métodos automáticamente utilizando Eclipse. Por ejemplo, podemos crear una clase “Empleado” con atributos como nombre, apellido, edad y salario. La clase también tiene métodos como plus y compruebaNombre. Veamos cómo utilizar los métodos get y set para modificar y mostrar valores en la clase “Empleado”:
public class Empleado{
private String nombre;
private String apellido;
private int edad;
private float salario;
public Entidad(){}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getApellido() {
return apellido;
}
public void setApellido(String apellido) {
this.apellido = apellido;
}
public int getEdad() {
return edad;
}
public void setEdad(int edad) {
this.edad = edad;
}
public float getSalario() {
return salario;
}
public void setSalario(float salario) {
this.salario = salario;
}
public void plus(float plus){
this.salario+=plus;
}
public boolean compruebaNombre(){
if(nombre.length()<3){
return false;
}
return true;
}
}
El código de esta implementación se presenta en una clase ejecutable llamada “EmpleadoApp”. Al utilizar los métodos get y set, podemos establecer y mostrar valores de los atributos de la clase, sin necesidad de acceder directamente a ellos.
Conclusión
En resumen, los métodos get y set en la programación orientada a objetos nos permiten acceder a los datos de un objeto de una forma adecuada y controlada. Al encapsular los objetos, evitamos que los cambios en la implementación de los objetos afecten a la aplicación. Además, estos métodos nos permiten validar los datos que se asignan o se muestran.
Es importante destacar que la utilización de estos métodos es cada vez más común en multitud de áreas de las aplicaciones. Por ello, es fundamental que comprendamos su uso y sepamos cómo implementarlos en diferentes lenguajes de programación.
Si tienes alguna duda o pregunta, no dudes en preguntarnos. Estamos aquí para ayudarte.