Elementos básicos de Java

4

Click here to load reader

description

Estas notas son material alterno al programa del curso de Programación Avanzada y Métodos Numéricos

Transcript of Elementos básicos de Java

Page 1: Elementos básicos de Java

Elementos básicos de Java

2 de octubre de 2010

Declaración de clases, atributos y métodos.El lenguaje Java es orientado a objetos, por lo tanto, la estructura básica del código fuente de un programa

es una serie de descripciones de objetos o clases. La declaración de una clase en Java se hace de la siguientemanera:

c l a s s Ob je to {/ / Dentro se d e f i n e n l o s a t r i b u t o s y l o s métodos .

}

La declaración de atributos y métodos en Java es similar a la de variables y funciones en el lenguaje Crespectivamente. Por ejemplo, si tenemos un objeto Persona con un atributo Edad y un método getEdad(), ladeclaración de la clase que lo describe sería así:

c l a s s P e r s o n a {p r i v a t e i n t edad ; / / El a t r i b u t o

p u b l i c i n t ge tEdad ( ) {re turn Edad ; / / El método

}}

Nótese que antes de cada atributo se coloca la palabra private, y antes de cada método la palabra public: unpar 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 archivodebe 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 esuna 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étodoestá compuesto por dos palabras, después de la primera cada palabra inicia con mayúscula (ejemplos: claseBicicletaMontaña, atributo tiempoAntiguedad, método imprimirLista(), clase CuboDeRubik).

Declaración del método main()Al igual que en lenguaje C, en Java la ejecución comienza en un método que se llama main; este método debe

estar unicamente en una de las clases de las que componen todo el programa. El método debe estar declaradode la siguiente manera:

p u b l i c c l a s s Ob je to { / / Note que a n t e s de c l a s s va e l m o d i f i c a d o r p u b l i c

/ / A s í t i e n e que d e c l a r a r s e d i c h o método , l o s m o d i f i c a d o r e s/ / l o s t i e n e que l l e v a r o b l i g a t o r i a m e n t ep u b l i c s t a t i c vo id main ( S t r i n g [ ] a r g s ) {

/ / Con ten ido d e l método main}

}

1

Page 2: Elementos básicos de Java

Instanciación de objetosAl 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 lamemoria al objeto. Para ello se hace uso de un método que se llama constructor, y que por defecto todas lasclases tienen.

En el caso de la clase Objeto, si queremos instanciar un objeto de esa clase, hacemos:

Ob je to x = new Ob je to ( ) ;

new Objeto() es el constructor de la clase Objeto, cada constructor se llama igual que la clase a laque pertenece (ejemplos: el constructor de la clase Computadora es new Computadora(); el constructorde la clase Lapiz es new Lapiz()). x es una referencia a un objeto de la clase Objeto; es como si fuera unapuntador a Objeto.

La referencia contiene la dirección de memoria en donde se encuentra un determinado objeto. Hasta elmomento de declarar una referencia a un objeto de cierta clase, el objeto no ha sido instanciado; para ello serequiere invocar al constructor de su clase. Las referencias puede apuntar a ningún objeto, en ese caso se usa lapalabra reservada null que indica que apunta a ninguna parte. Dos o más referencias pueden apuntar hacia elmismo objeto.

Ob je to x ; / / Dos r e f e r e n c i a s , h a s t a e l momento no se ha i n s t a n c i a d oOb je to y ; / / n ingún o b j e t o .

x = new Ob je to ( ) ; / / por 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 a s i g n a a l a 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/ / ahora x y y r e f e r e n c i a n e l mismo o b j e t o

y = new Ob je to ( ) ; / / Cuando queramos podemos i n s t a n c i a r o t r o o b j e t ox = n u l l ; / / o hacer que una l a s r e f e r e n c i a s no ap un t e a

/ / n ingún o b j e t o

Supongamos que instanciamos un objeto, se lo asignamos a una referencia y por último asignamos a esareferencia otro objeto: el primer objeto estaría en memoria y ya no sería posible acceder a su contenido, yaque ninguna referencia apunta hacia él. ¿Qué sucederá con ese objeto? La máquina virtual de Java tiene unasubrutina denominada recolector de basura que elimina de la memoria los objetos desreferenciados. Esta rutinaes periódica, pero uno puede forzar su invocación mediante la instrucción System.gc().

Acceso a atributos y métodos.Una vez instanciado un objeto de cierta clase, al igual que en las estructuras en C, se puede acceder a sus

atributos y métodos de la siguiente manera: referencia.atributo o referencia.método.

P e r s o n a alumno ; / / R e f e r e n c i a a un o b j e t o de l a c l a s e per sonaalumno = new P e r s o n a ( ) ; / / I n s t a n c i a c i ó n

alumno . edad = 2 7 ; / / Accedemos a un a t r i b u t o de e s t e o b j e t o Persona

i n t i ;i = alumno . ge tEdad ( ) ; / / 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. Éstotiene que ver con la propiedad de encapsulación: los datos dentro de un objeto tienen que estar ocultos delexterior, la única manera para acceder a ellos tiene que ser a través de los métodos. Esta práctica ayuda a que elcódigo sea más modular, y cuando se desee implementar una clase de manera distinta, estos cambios no llevena reescribir todo el código.

2

Page 3: Elementos básicos de Java

Por convención, se agregan dos métodos por cada atributo que se desee modificar en el objeto: set y get. setsirve para asignar un valor al atributo, get para obtener su valor. La clase Persona quedaría como sigue:

c l a s s P e r s o n a {p r i v a t e i n t edad ; / / El a t r i b u t o

p u b l i c i n t ge tEdad ( ) {re turn edad ; / / El método g e t para 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 vo id s e t E d a d ( i n t x ) { / / El método s e t para e l a t r i b u t o edadedad = x ; / / As igna 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 ( ) ; / / I n s t a n c i a c i ó n

alumno . s e t E d a d ( 2 7 ) ; / / Asignamos un v a l o r a l a t r i b u t o edad de/ / per sona

i n t i ;i = alumno . ge tEdad ( ) ; / / 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étodosset y get.

Compilación de un programa en JavaPara programar en Java, es necesario ir a una página de descargas dentro el sitio de Sun Microsystems1 y

descargar el Java Developer Kit (JDK). Este paquete incluye las librerías estandar de Java y el Java RuntimeEnvironment (JRE), que es la máquina virtual. Seleccionen la versión que corresponda a su sistema operativo.En el caso de Linux, varias distribuciones tienen en sus repositorios este paquete, así que solo hace falta queabran su manejador de repositorios y desde allí busquen el JDK.

JDK instala dos comandos de consola, java y javac: el primero es la máquina virtual, el segundo es elcompilador. Después de instalar el JDK, en Linux y MacOS no es necesario hacer otra configuración adicional;en Windows si es necesario configurar en el sistema la localización del compilador.

En el explorador de archivos hay que buscar la ubicación de la instalación de Java. Usualmente dentrola carpeta Archivos de programas se encuentra dicha instalación. Dentro de esa carpeta hay que buscar unallamada bin; después de encontrarla, hay que copiar la ruta de esa carpeta (ejemplo: C:\Archivos deprograma\java123_45\bin).

En el explorador sobre Mi PC hacemos click con el botón derecho, y en el menú contextual seleccionamosPropiedades: aparece la ventana de la figura 1a. En la pestaña Opciones avanzadas de dicha ventana hacemosclick sobre el botón Variables de entorno. En la segunda ventana que aparece (figura 1b), buscamos en la listade abajo una variable que se llama Path; hacemos click sobre ella y luego presionamos el botón Modificar.Por último, en el cuadro de dialogo que aparece (figura 1c) agregamos al final de la linea un punto y coma(;) y después la ruta de la instalación de Java. (ejemplo: [lo que vaya antes];C:\Archivos deprograma\java123_45\bin). Después le damos click en aceptar a todo. Hay que tener cuidado con estepaso, todo lo que esté previamente en la variable Path no debe ser modificado, unicamente hay que agregar laruta de la instalación.

Una vez instalado el JDK, para compilar un programa, hay que abrir una ventana de consolo o de símbolo desistema; en dicha interfaz hay que cambiarse a la carpeta en donde están los archivos del código del programa.Para compilar hay que ejecutar:

javac lista de archivos1http://java.sun.com/javase/downloads/index.jsp

3

Page 4: Elementos básicos de Java

(a) Propiedades del sistema (b) Variables de entorno

(c) Modificar variables de entorno

Figura 1

Ejemplo, supongamos que tenemos tres archivos, los compilamos de la siguiente manera:

javac Biblioteca.java Libro.java Persona.java

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:

java -classpath . nombre de la clase que contiene al método main()

Supongamos que Persona es la clase que contiene a main, entonces ejecutariamos el programa así:

java -classpath . Persona

4