86
Capítulo 3 Introducción a las clases y los objetos
Buena práctica de programación 3.2
Coloque una línea en blanco entre las declaraciones de los métodos, para separarlos y mejorar la legibilidad del
programa.
El proceso de declarar variables de instancia con el modifi cador de acceso
private
se conoce como
oculta-
miento de datos
. Cuando un programa crea (instancia) un objeto de la clase
LibroCalificaciones
, la variable
nombreDelCurso
se encapsula (oculta) en el objeto, y sólo está accesible para los métodos de la clase de ese objeto.
En la clase
LibroCalificaciones
, los métodos
establecerNombreDelCurso
y
obtenerNombreDelCurso
mani-
pulan a la variable de instancia
nombreDelCurso
.
El método
establecerNombreDelCurso
(líneas 10 a la 13) no devuelve datos cuando completa su tarea, por
lo que su tipo de valor de retorno es
void
. El método recibe un parámetro (
nombre
), el cual representa el nom-
bre del curso que se pasará al método como un argumento. La línea 12 asigna
nombre
a la variable de instancia
nombreDelCurso
.
El método
obtenerNombreDelCurso
(líneas 16 a la 19) devuelve un
nombreDelCurso
de un objeto
Libro-
Calificaciones
específi co. El método tiene una lista de parámetros vacía, por lo que no requiere información
adicional para realizar su tarea. El método especifi ca que devuelve un objeto
String
; a éste se le conoce como el
tipo de valor de retorno
del método. Cuando se hace una llamada a un método que especifi ca un tipo de valor
de retorno, y éste completa su tarea, devuelve un resultado al método que lo llamó. Por ejemplo, cuando usted
va a un cajero automático (ATM) y solicita el saldo de su cuenta, espera que el ATM le devuelva un valor que
representa su saldo. De manera similar, cuando una instrucción llama al método
obtenerNombreDelCurso
en un
objeto
LibroCalificaciones
, la instrucción espera recibir el nombre del curso de
LibroCalificaciones
(en este
caso, un objeto
String
, como se especifi ca en el tipo de valor de retorno de la declaración del método). Si tiene
un método
cuadrado
que devuelve el cuadrado de su argumento, es de esperarse que la instrucción
int
resultado = cuadrado(
2
);
devuelva
4
del método
cuadrado
y asigne
4
a la variable
resultado
. Si tiene un método
maximo
que devuelve el
mayor de tres argumentos enteros, es de esperarse que la siguiente instrucción
int
mayor = maximo(
27
,
114
,
51
);
devuelva
114
del método
maximo
y asigne 114 a la variable
mayor
.
Observe que cada una de las instrucciones en las líneas 12 y 18 utilizan
nombreDelCurso
, aun cuando esta
variable no se declaró en ninguno de los métodos. Podemos utilizar
nombreDelCurso
en los métodos de la clase
LibroCalificaciones
, ya que
nombreDelCurso
es un campo de la clase. Observe además que el orden en el que
se declaran los métodos en una clase no determina cuándo se van a llamar en tiempo de ejecución. Por lo tanto,
el método
obtenerNombreDelCurso
podría declararse antes del método
establecerNombreDelCurso
.
El método
mostrarMensaje
(líneas 22 a la 28) no devuelve datos cuando completa su tarea, por lo que su
tipo de valor de retorno es
void
. El método no recibe parámetros, por lo que la lista de parámetros está vacía. Las
líneas 26 y 27 imprimen un mensaje de bienvenida, que incluye el valor de la variable de instancia
nombreDel-
Curso
. Una vez más, necesitamos crear un objeto de la clase
LibroCalificaciones
y llamar a sus métodos para
poder mostrar en pantalla el mensaje de bienvenida.
La clase
PruebaLibroCalificaciones
que demuestra a la clase
LibroCalificaciones
La clase
PruebaLibroCalificaciones
(fi gura 3.8) crea un objeto de la clase
LibroCalificaciones
y demuestra
el uso de sus métodos. La línea 11 crea un objeto
Scanner
, que se utilizará para obtener el nombre de un curso
del usuario. La línea 14 crea un objeto
LibroCalificaciones
y lo asigna a la variable local
miLibroCalificacio-
nes
, de tipo
LibroCalificaciones
. Las líneas 17-18 muestran el nombre inicial del curso mediante una llamada
al método
obtenerNombreDelCurso
del objeto. Observe que la primera línea de la salida muestra el nombre
“
null”
. A diferencia de las variables locales, que no se inicializan de manera automática, cada campo tiene un
valor inicial predeterminado
: un valor que Java proporciona cuando el programador no especifi ca el valor inicial
del campo. Por ende, no se requiere que los campos se inicialicen explícitamente antes de usarlos en un programa,
a menos que deban inicializarse con valores distintos de los predeterminados. El valor predeterminado para un
campo de tipo
String
(como
nombreDelCurso
en este ejemplo) es
null
, de lo cual hablaremos con más detalle
en la sección 3.6.
03_MAQ_CAP_03.indd86
4/19/081:19:51AM