Ejemplo 2 - Utilización de métodos set() y get()

Objetivo

Comprender como utilizar métodos tipo set() y get() para tener acceso a los atributos privados de una clase.

Enunciado

Se debe crear una clase llamada Punto para representar un punto cartesiano compuesto por dos coordenadas ( x , y )


Los valores de X y Y deben ser privados de manera que solamente sean accesibles desde los métodos que se encuentran dentro de la clase Punto.

Para permitir guardar valores de X y Y desde "fuera de la clase" y para poder acceder a los mismos se debe definir una interfaz compuesta de métodos set() y get()

Escriba instrucciones para crear una instancia de punto y asignarle valores a X y Y mediante los métodos setX( ) y set Y( ).

Posteriormente utilice los métodos getX() y getY() para "obtener" copia de los valores que guarda el punto en sus atributos privados.

Muestre la pantalla con los pasos llevados a cabo.

Solución

El punto cartesiano se compone de dos valores reales por lo que los métodos set y get quedarán definidos tal y como se muestra en el código siguiente.

Note que los atributos X y Y son privados. Además note que todos los métodos set y get son públicos (por lo tanto pueden ser accedidos desde fuera de la clase Punto)

Observe los valores de retorno de los métodos get(), observe que como los atributos X y Y son double entonces getX() y getY() "sacan" valores tipo double.

Note además que los valores que reciben los métodos set() son de tipo double también. No siempre es necesario que todos los atributos tengan métodos set y get, pero esto dependerá de la solución.

// DEFINICION DE LA CLASE PUNTO CON SUS MÉTODOS
public class Punto {
 private double x;  // Es privado.
 private double y;  // Es privado.

 public double getX() {
  return x;
 }
 public double getY(){
  return y;
 }
 public void setX(double valor){
        x = valor;
 }
 public void setY(double valor){
        y = valor;
 }
}

 

A continuación se muestra la salida de la pantalla de interacciones al crear una instancia de Punto. Posteriormente al asignarle valores para X y Y y finalmente al obtener los valores de vuelta.

Es importante notar que en la pantalla de interacciones de Dr.Java si se pone un punto y coma al final de una instrucción esta simplemente se ejecuta.

Pero si no se pone el punto y coma final ";" entonces se puede observar el valor que retorna el evaluador de Java. En el ejemplo se utilizó esto para observar lo que devuelven los métodos get al sacar valores del Punto.

Welcome to DrJava.

> Punto p = new Punto();

> p.setX(10.0);

> p.setY(20.3);

> p.getY()

20.3

> p.getX()

10.0


Código Fuente

El código del Punto está disponible mediante el siguiente enlace.

Punto.java