Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
10.1 Objetivos
Hemos estudiado como usar las clases existentes de la biblioteca de clases de Java,
ahora estudiaremos como escribir nuestras propias clases.
Donde ,
public, significa que nuestra clase es accesible desde las otras clases, dentro o fuera del
paquete.
Class, es la palabra clave usada para crear una clase en Java.
RegistroEstudiante, es el identificador único que describe nuestra clase
Notas:
1. Pon un nombre apropiado a tu clase.
2. Empieza los nombres de las clases con una letra MAYÚSCULA.
3. El archivo de tu clase debe tener el MISMO NOMBRE que el que tiene tu clase.
10.3 Declarando Atributos
Para declarar un cierto atributo para nuestra clase, escribimos:
<modificador> <tipo> <nombre> [<=valor_por_defecto>];
Nombre -String
direccion -String
edad -int
nota de matemáticas -double
nota de inglés -double
nota de ciencia -double
promedio -double
Donde,
private, significa que las variables sólo son accesibles dentro de la clase. Otros objetos
no pueden acceder a estas variables directamente.
Notas:
1. Declara todas tus variables instancias en la parte de arriba de la declaración de la
clase.
2. Declare una variable por cada línea.
3. Las variables instancia, como cualquier otra variable debe comenzar con una
letra MINÚSCULA.
4. Use un tipo de dato apropiado para cada variable que declares.
5. Declare variables instancia como private para que solo los métodos de la clase
puedan acceder a ellos directamente.
10.3.2 Variables clase o Variables estáticas
Además de las variables instancia, nosotros podemos también declarar variables clase o
variables que pertenecen a la clase como un todo. El valor de estas variables es el
mismo para todos los objetos de la misma clase. Supongamos que queremos conocer el
número total de estudiantes en el registro que tenemos, entonces podemos declarar una
variable estática que contendrá este valor. Llamemos a esta variable
contadorEstudiantes.
Usamos la palabra clave static para indicar que una variable es una variable estática.
Donde,
<modificador> puede ser cualquier modificador: public, private, protected, default
<tipoDeDatoRetorno> puede ser cualquier tipo de dato (incluido void)
<nombre> puede ser cualquier identificador válido
<parametros>::= <tipo de dato del parámetro> <nombre del parámetro> [,]
10.4.1 Métodos de acceso
Para poder implementar encapsulación, esto es, no queremos que cualquier objeto
acceda a nuestros datos todo el tiempo, declaramos los campos o atributos de nuestras
clases como privadas (private) Sin embargo hay momentos en que deseamos que otros
objetos accedan a nuestros datos privados. Para hacer esto, creamos los métodos de
acceso.
Los métodos de acceso son usados para leer valores de las variables de la clase (de
instancia y estáticas). Un método de acceso usualmente comienza así:
get<NombreDeLaVariableInstancia>. Y retorna un valor.
Para nuestro ejemplo, queremos métodos de acceso que puedan leer el nombre, la
dirección, las notas de inglés, matemáticas y ciencias del estudiante.
Donde,
public, significa que el método puede ser llamado por objetos fuera de la clase.
String, es el tipo de dato que retorna el método.
getNombre, es el nombre del método,
(), significa que nuestro método no tiene parámetros
return nombre, significa que retornará el valor de la variable instancia nombre al
método que la llama. El tipo de dato de la variable debe coincidir con el tipo de dato en
la declaración del método.
Donde,
static, significa que el método es estático y debe ser llamado así:
<NombreDeLaClase>.<nombreDelMétodo>. Por ejemplo, en este caso, podemos llamar
al método así: RegistroEstudiante.getContadorEstudiantes()
Por ahora el valor para contadorEstudiantes siempre va a ser 0, luego cuando veamos
constructores veremos como cambiar dicho valor.
Notas:
1. Los métodos deben comenzar con una letra minúscula.
2. Los nombres de los métodos deben ser verbos.
3. Siempre provee documentación antes de declarar un método.
Nota: Solo podemos usar la referencia this para variables instancia y NO para variables
estáticas o clase.
Siempre recuerda que los métodos sobrecargados tienen las siguientes propiedades:
tienen el mismo nombre, diferentes parámetros, pueden retornar tipos diferentes o el
mismo.
public StudentRecord(){
//some initialization code here
}
public StudentRecord(String temp){
this.name = temp;
}
public StudentRecord(){
//some initialization code here
studentCount++; //add a student
}
10.8 Paquetes
Los paquetes en Java significan una agrupación de clases e interfaces juntas en una
unidad. Esta característica provee un mecanismo conveniente para manejar un grupo
grande de clases e interfaces evitando potenciales conflictos de nombrado.
Import<nombreDelPaquete>;
Por ejemplo, si quieres usar la clase Color que se encuentra dentro del paquete awt,
tienes que escribir lo siguiente:
import java.awt.Color;
import. Java.awt.*;
La primera declaración importa la clase específica Color, mientras que la otra importa
todas las clases del paquete java.awt.
Por ejemplo:
En este ejemplo, la variable name y el método getName() pueden ser accedidos por
otros objetos, siempre en cuando pertenezcan al mismo paquete que la clase
StudenRecord.
10.9.2 Acceso público (public)
Este especifica que los miembros de una clase son accesibles por cualquiera, aunque
estén dentro o fuera de la clase o del paquete. Cualquier objeto que interactúe con la
clase puede tener acceso a los miembros públicos de la clase. Por ejemplo:
Nota:
Las variables instancia de una clase deben normalmente ser declaradas privadas, y la
clase solo proveerá métodos de acceso y mutadores para esas variables.