Saltar a contenido

Creación de atributos

Hasta ahora hemos creado variables dentro de un método. A éstas se les llama variables locales porque son propias del método en sí. Y no puedes acceder a ellas desde fuera de ese método. También vimos esto dentro de bloques de código {}, donde las variables creadas en un bloque más interno no eran accesibles en bloques más externos.

public static void sumar(){
    int contador = 0;

    while (contador < 10){
        int suma = 0;
        suma += contador;
        contador ++;
    }

    System.out.println(suma); //esto da error, la variable suma no existe en este punto
}

A diferencia de esto, las clases nos permiten crear variables que pueden ser accesibles desde cualquier lugar dentro de la clase que estamos creando. A estas variables se les conoce con el nombre de variables miembro/instancia, o de manera más común como campos o atributos de la clase.

Para crear un campo de la clase se debe especificar un modificador de acceso(opcional) + tipo de dato + nombre de la variable + inicialización(opcional).

Nota

Si no se pone modificador utiliza el de por defecto en el que la variable es accesible por las clases dentro del mismo paquete.

El modificador de acceso funciona de la misma forma a como lo hemos explicado anteriormente para la creación de una clase.

public class Coche{
    private int puertas;
    private int ruedas;
    private String modelo;
    private String color;
}

Como regla general, cuando definimos campos para la clase el modificador de acceso será privado. Lo que hacemos es ocultar los campos de la clase del acceso público para que nadie pueda acceder y modificar los campos de la clase. Significa que la representación del objeto se ocultará a la vista, es decir, el funcionamiento interno del objeto.

Existen los siguientes tipos de modificadores, ordenados de menor a mayor restricción:

  • public: son accesibles desde cualquier lugar.
  • protected: son accesibles desde dentro del mismo paquete y en clases heredadas.
  • sin modificador: son accesibles desde la propia clase y clases dentro del mismo paquete.
  • private: solo son accesibles desde la propia clase, no son accesibles desde fuera.

Consejos para elegir un nivel de acceso

  • Utiliza el nivel de acceso más restrictivo que tenga sentido para un miembro en particular. Usa private a menos que tengas una buena razón para no hacerlo.
  • Evita los campos públicos a excepción de las constantes.

Si se usa la palabra clave satic en atributos o métodos, se podrán utilizar el miembro de la clase sin definir objeto alguno, utilizando el nombre de la clase como si fuera un objeto.

En el caso de los atributos o variables podemos distinguir dos tipos:

  • Atributos de instancia: son todos los atributos no static. También conocidos como atributos dinámicos. Cada objeto de la clase tiene sus propios valores para estas variables, es decir, cada objeto que se crea incluirá su propia copia de los atributos con sus propios valores.
  • Atributos de clase: son los declarados static. También se llaman atributos estáticos. Un atributo de clase no es específico de cada objeto. Solo hay una copia del mismo y su valor es compartido por todos los objetos de la clase. Podemos considerarlo como una variable global a la que tienen acceso todos los objetos de la clase.

Para acceder a un atributo de clase se escribe: NombreClase.Atributo;.