Professional Documents
Culture Documents
2 de octubre de 2010
public i n t getEdad ( ) {
r e t u r n Edad ; / / E l método
}
}
Nótese que antes de cada atributo se coloca la palabra private, y antes de cada método la palabra public: un
par de clases más adelante se explicará que significa esto.
El código fuente de un programa en Java se divide en varios archivos, una clase por archivo. El archivo
debe llamarse igual que la clase; por ejemplo, para la clase Persona, el archivo se llamaría Persona.java.
Se siguen ciertas convenciones para nombrar a las clases, atributos y métodos. El nombre de una clase es
una palabra en minúsculas que comienza con una letra mayúscula (ejemplos: Bicicleta, Disco, Computadora),
el de los atributos y los métodos son palabras en minúsculas, sustantivos y verbos respectivamente (ejemplos:
atributos disponibilidad y precio; métodos obtener() e imprimir() ). Si el nombre de una clase, atributo o método
está compuesto por dos palabras, después de la primera cada palabra inicia con mayúscula (ejemplos: clase
BicicletaMontaña, atributo tiempoAntiguedad, método imprimirLista(), clase CuboDeRubik).
1
Instanciación de objetos
Al igual que con las estructuras en C, hasta el momento de la definición de una clase no se ha declarado
ningún objeto de esa clase. Para hacer uso del objeto hay que instanciarlo, instanciar se refiere a colocar en la
memoria al objeto. Para ello se hace uso de un método que se llama constructor, y que por defecto todas las
clases tienen.
En el caso de la clase Objeto, si queremos instanciar un objeto de esa clase, hacemos:
O b j e t o x = new O b j e t o ( ) ;
new Objeto() es el constructor de la clase Objeto, cada constructor se llama igual que la clase a la
que pertenece (ejemplos: el constructor de la clase Computadora es new Computadora(); el constructor
de la clase Lapiz es new Lapiz()). x es una referencia a un objeto de la clase Objeto; es como si fuera un
apuntador a Objeto.
La referencia contiene la dirección de memoria en donde se encuentra un determinado objeto. Hasta el
momento de declarar una referencia a un objeto de cierta clase, el objeto no ha sido instanciado; para ello se
requiere invocar al constructor de su clase. Las referencias puede apuntar a ningún objeto, en ese caso se usa la
palabra reservada null que indica que apunta a ninguna parte. Dos o más referencias pueden apuntar hacia el
mismo objeto.
Objeto x ; / / Dos r e f e r e n c i a s , h a s t a e l momento no s e ha i n s t a n c i a d o
Objeto y ; / / ningún o b j e t o .
x = new O b j e t o ( ) ; / / p o r medio d e l c o n s t r u c t o r , s e i n s t a n c i a un o b j e t o
/ / y se asigna a la r e f e r e n c i a x
y = x ; / / Se a s i g n a l a d i r e c c i ó n d e l o b j e t o en x a l a r e f e r e n c i a y
/ / a h o r a x y y r e f e r e n c i a n e l mismo o b j e t o
alumno . e d a d = 2 7 ; / / Accedemos a un a t r i b u t o de e s t e o b j e t o P e r s o n a
int i ;
i = alumno . g e t E d a d ( ) ; / / Accedemos a un método de e s t e o b j e t o
/ / Persona
Se recomienda no acceder de manera directa a los atributos de un objeto, sino a través de sus métodos. Ésto
tiene que ver con la propiedad de encapsulación: los datos dentro de un objeto tienen que estar ocultos del
exterior, la única manera para acceder a ellos tiene que ser a través de los métodos. Esta práctica ayuda a que el
código sea más modular, y cuando se desee implementar una clase de manera distinta, estos cambios no lleven
a reescribir todo el código.
2
Por convención, se agregan dos métodos por cada atributo que se desee modificar en el objeto: set y get. set
sirve para asignar un valor al atributo, get para obtener su valor. La clase Persona quedaría como sigue:
class Persona {
p r i v a t e i n t edad ; / / El a t r i b u t o
public i n t getEdad ( ) {
return edad ; / / E l método g e t p a r a e l a t r i b u t o edad
} / / O b t i e n e l a edad
p u b l i c v o i d s e t E d a d ( i n t x ) { / / E l método s e t p a r a e l a t r i b u t o edad
edad = x ; / / A s i g n a l a edad
}
}
El código de ejemplo anterior quedaría como sigue:
P e r s o n a alumno = new P e r s o n a ( ) ; // Instanciación
alumno . s e t E d a d ( 2 7 ) ; / / A s i g n a m o s un v a l o r a l a t r i b u t o edad de
/ / persona
int i ;
i = alumno . g e t E d a d ( ) ; / / Obtenemos e l v a l o r de l a edad
De esta manera podemos acceder al atributo edad de los objetos de la clase Persona: a través de sus métodos
set y get.
3
(a) Propiedades del sistema (b) Variables de entorno
Figura 1
Ejemplo, supongamos que tenemos tres archivos, los compilamos de la siguiente manera:
Después de ejecutar esta instrucción en la carpeta aparecen unos archivos .class: éstos son las clases compi-
ladas. Para ejecutar el programa, hay que ejecutar la siguiente instrucción:
Supongamos que Persona es la clase que contiene a main, entonces ejecutariamos el programa así: