22.    Campo [field] (concepto)

Son contenedores (variables) para los valores internos de las Clasesy/o Objetos.

·         de objeto: cuando cada objeto de una clase tiene su propia copia; es decir, muchos objetos de la misma clase tienen cada uno su conjunto de campos privado

·         de clase (static): cuando todos los objetos de una clase comparten una copia común

class Circulo

public class Circulo {

  public static final double PI = 3.1416;

  private double radio;

 

  public double area() { return PI * r * r; }       

 

·         "PI" es un campo de clase porque pone "static". Todos los objetos de clase Circulo comparten el mismo valor de "PI".
Además, es público ("public") e inmutable ("final"); es decir, una constante.

·         "radio es un campo de objeto porque no pone "static". Cada objeto de clase Circulo tendrá su propio radio.
Además, es privado ("private").

Cada campo puede declararse como:

1.       public, protected, de paquete o private, según la Visibilidadque se desee

2.       static si es de clase; si no se dice nada es de objeto

3.       final si queremos que su valor sea inmodificable; si no se dice nada, podrá modificarse

Se recomienda que

·         todos los campos de objeto sean private

·         todos los campos de objeto queden inicializados en su construcción

·         los nombre de los campos de objeto empiecen por una letra minúscula

·         los nombres de los campos de clase empiecen por una letra minúscula, salvo que sean constantes (static final) en cuyo caso se escribirán con letras mayúsculas

 

Temas relacionados

Vademécum