Atributos
La
información de un objeto se almacena en atributos. Los atributos pueden ser de
tipos primitivos de Java o de tipo objeto. Por ejemplo, para el catálogo de
vehículos de una empresa de alquiler, es necesario conocer la matrícula del
coche, su marca, modelo, color, la tarifa del alquiler y su disponibilidad.
public class
Vehiculo {
String
matricula;
String
marca;
String
modelo;
String
color;
double
tarifa;
boolean
disponible;
}
En
este ejemplo, los atributos matricula,
marca, modelo y
color son cadenas de caracteres, tarifa
es un número real y disponible es
un valor lógico.
Métodos
y constructores
Además
de definir los atributos de un objeto, es necesario definir los métodos que
determinan su comportamiento. Toda clase debe definir un método especial
denominado constructor para instanciar los objetos de la clase. Este método
tiene el mismo nombre de la clase. Por ejemplo, para la clase Vehiculo,
el identificador del método constructor es Vehiculo.
El método constructor se ejecuta cada vez que se instancia un objeto de la clase.
Este método se utiliza para inicializar los atributos del objeto que se instancia.
Para
diferenciar entre los atributos del objeto y los identificadores de los parámetros
del método constructor, se utiliza la palabra this.
De esta forma, los parámetros del método pueden tener el mismo nombre que los atributos
de la clase. Esto permite hacer una asignación como la que se muestra a
continuación, donde this.marca se
refiere al atributo del objeto y
marca al parámetro del método.
this.marca
= marca;
En
el siguiente ejemplo el método constructor inicializa los atributos matricula,
marca, modelo,
color y tarifa.
public class
Vehiculo {
String
matricula;
String
marca;
String
modelo;
String
color;
double
tarifa;
boolean
disponible;
// el método
constructor de la clase Vehiculo
public
Vehiculo(String matricula,
String
marca,
String
modelo,
String
color,
double
tarifa) {
this,matricula
= matricula;
this.marca =
marca;
this.modelo
= modelo;
this.color =
color;
this.tarifa
= tarifa;
this.disponible
= false;
}
}
La
instanciación de un objeto se realiza ejecutando el método constructor
de
la clase.
Vehiculo
vehiculo1 = new Vehiculo("4050 ABJ",
"VW",
"GTI",
"Blanco",
100.0);
En
este ejemplo se instancia el objeto vehiculo1.
El método constructor crea el objeto vehiculo1 con
la matrícula “4050 ABJ”, marca “VW”, modelo “GTI”, color “Blanco” y tarifa
100.0 dolares.
Vehiculo
vehiculo2 = new Vehiculo("2345 JVM",
"SEAT",
"León",
"Negro",
80.0);
En
este ejemplo se instancia el objeto vehiculo2.
El método constructor crea el objeto vehiculo2 con
la matrícula “2345 JVM”, marca “SEAT”, modelo “León”, color “Negro” y tarifa
80.0 dolares.
La
instanciación de un objeto consiste en asignar un espacio de memoria al que se
hace referencia con el nombre del objeto. Los identificadores de los objetos
permiten acceder a los valores almacenados en cada objeto. En estos ejemplos,
los objetos vehiculo1 y vehiculo2
almacenan valores diferentes y ocupan espacios de memoria
distintos.
Para
acceder a los atributos de los objetos de la clase Vehiculo
se definen los métodos ‘get’ y ‘set’. Los métodos ‘get’
se utilizan para consultar el estado de un objeto y los métodos ‘set’ para
modificar su estado. En la clase Vehiculo es
necesario definir un método ‘get’ para cada uno de sus atributos: getMatricula(),
getMarca(), getModelo(),
getColor(), getTarifa()
y getDisponible().
Los métodos ‘set’ solo se definen para los atributos que pueden ser modificados
después de que se ha creado el objeto. En este caso es necesario definir setTarifa(double
tarifa) y setDisponible(boolean
disponible) para modificar la tarifa del alquiler del
vehículo y su disponibilidad, respectivamente.
public class
Vehiculo {
String
matricula;
String
marca;
String
modelo;
String
color;
double
tarifa;
boolean
disponible;
// los
métodos ‘get’ y ‘set’ de la clase Vehiculo
public
String getMatricula() {
return
this.matricula;
}
public
String getMarca() {
return
this.marca;
}
public
String getModelo() {
return
this.modelo;
}
public
String getColor() {
return
this.color;
}
public
double getTarifa() {
return
this.tarifa;
}
public
boolean getDisponible() {
return
this.disponible;
}
public void
setTarifa(double tarifa) {
this.tarifa
= tarifa;
}
public void
setDisponible(boolean disponible) {
this.disponible
= disponible;
}
}