Está en la página 1de 11

Programa Java

Un programa o aplicacin Java se compone de un conjunto de clases que contienen variables de diversos tipos utilizadas para almacenar datos, y mtodos que implementan cdigo capaz de manipular dichas variables y crear objetos o instancias de clase, que permitan la interaccin con otros mtodos y variables de esas clases. El punto de inicio de todo programa Java es el cdigo asociado al mtodo main (principal en ingls), es como la puerta de entrada del programa, lo primero que se ejecuta. A la clase que contiene al mtodo main se la llama clase principal. Las clases y mtodos van entre llaves {} y al final de una instruccin o declaracin de variable debe escribirse un punto y coma (;). Se utilizan tabuladores para sangrar las lneas de cdigo con el fin de facilitar su legibilidad, aunque si se omiten no pasa nada. Ejemplo:

Vdeo explicativo del programa. Este programa consta de una clase de nombre PrimerSaludo, no declara ninguna variable y cuenta con dos mtodos de nombres main y mostrarMensaje. En programas ms complejos, se tendrn varias clases, en cada clase habr muchos mtodos y declaraciones de variables, dentro de los mtodos se declararn tambin variables, etc. Por el momento, con esta sencilla clase nos conformaremos. Se va a explicar ahora cada una de sus lneas. La primera lnea es la definicin de una clase, la segunda es el mtodo main o punto de entrada del programa (siempre se define de esta forma), la tercera es una instruccin o sentencia que muestra por la consola del DOS el mensaje entrecomillado, la cuarta sirve para crear un objeto de la clase llamado ps mediante el que se llama o invoca a otros mtodos de la clase, la quinta es la llamada mediante el objeto ps al mtodo mostrarMensaje(), la sexta muestra por consola el mensaje entrecomillado. Luego aparece la definicin del mtodo mostrarMensaje() cuyo cdigo hace que se muestre por consola el mensaje entrecomillado. Despus de compilar y ejecutar este programa va a mostrarse por consola lo siguiente: Por consola: Hola Jesus Primera clase del curso de Java FIN DEL PROGRAMA A continuacin se van a explicar qu son los mtodos: Es una de las herramientas fundamentales de cualquier lenguaje orientado a objetos. Contienen cdigo que persigue una serie de objetivos. En el ejemplo anterior, la clase contena dos mtodos y sus objetivos eran: Objetivos del mtodo main: mostrar un mensaje por consola, crear un objeto de la clase PrimerSaludo, invocar al mtodo mostrarMensaje mediante el objeto anterior y mostrar otro mensaje por consola. Aparte de estos objetivos, el fundamental y ms importante es servir como punto de inicio de la ejecucin del programa.

Objetivos del mtodo mostrarMensaje: mostrar un mensaje por consola.

El programador, aparte de crear sus propios mtodos como en el cdigo anterior, puede utilizar los que forman parte de la API (Application Programming Interface) estndar de Java. La API se estudiar en siguiente seccin. DECLARACIN GENRICA DE UN MTODO: tiene la siguiente estructura <modificadores de acceso> <tipo de dato de retorno> <nombre del mtodo>(tipo1 arg1,tipo2 arg2,...){ Cuerpo del mtodo; } Explicacin de cada uno de los componentes de un mtodo: Nombre del mtodo: el que desee el programador. Nmero y tipo de argumentos asociados al mtodo (tipo1 arg1,tipo2 arg2,...): constituye su firma. Los argumentos pueden ser tanto variables primitivas como variables referenciadas. Ms adelante se estudiarn estos dos tipos de variables. Por el momento, basta saber que las variables primitivas se emplean para almacenar nmeros, caracteres o valores lgicos, mientras que las referenciadas estn asociadas a objetos de clases. Tipo de dato de retorno o tipo de dato que devuelve el mtodo: Dato asociado a una variable primitiva. Dato asociado a una variable referenciada.

void. Es lo que debe ponerse cuando el mtodo no devuelve nada y, por ejemplo, simplemente muestra por consola un mensaje. Es el caso del mtodo "void mostrarMensaje()" del cdigo anterior. Modificadores de acceso: public, private, protected y sin modificador. Sirven para fijar el grado de accesibilidad de un mtodo. Adems de los de acceso, se tienen otros como static, synchronized, final, abstract, etc. que afectan de un determinado modo al mtodo. Todos se irn estudiando a lo largo del curso. Cuerpo del mtodo: cdigo asociado al mtodo.

NOTA 1: los argumentos asociados a un mtodo se consideran variables locales, es decir, accesibles slo desde el cuerpo del mtodo. NOTA 2: la palabra clave o reservada return se emplea para truncar la ejecucin de un mtodo cuando el tipo de dato que devuelve es void o para obtener lo que devuelve en el caso de que no sea void. Suele aparecer al final del mtodo. En Java, las palabras clave tienen un significado especial para el compilador y no pueden utilizarse como nombres de clases, mtodos o variables. Se irn viendo durante el curso. Hay unas 50. A ttulo de ejemplo, todos los nombres de variables primitivas como byte, short, int, long, etc. son palabras clave. Tambin los modificadores de acceso, la palabra class, etc.

Escribir un programa Java


Se usar un editor de texto cualquiera que no aplica ningn formato al texto escrito. Para seguir el curso se recomienda el Bloc de Notas

(Inicio/Programas/Accesorios/Bloc de notas). Su ejecutable es notepad.exe y se encuentra en la carpeta Windows tanto en W98 como en WXP. Se crear una carpeta cursojava colgando del disco duro para guardar todos los ejemplos y ejercicios. Colgando de cursojava se crear, para este primer tema, una subcarpeta tema1 donde se almacenarn los cdigos fuente de este tema. Ms adelante se explicar cmo utilizar un IDE (Integrated Development Environment o Entorno de Desarrollo Integrado), que facilita la escritura de cdigo, adems de su compilacin y ejecucin. Se emplear JCreator. Como digo, se introducir ms adelante. 1) Escritura del cdigo asociado al programa usando el editor: Luego, se guarda con el mismo nombre que la clase principal, si dicha clase va precedida del modificador de acceso "public" o con el que se quiera, si la clase principal no tiene modificador de acceso. Despus del nombre se le aade la extensin java. Al fichero de extensin java guardado se le llama cdigo fuente. 2) Compilacin del cdigo fuente: Desde la consola del DOS y estando en la carpeta o directorio donde se ha guardado el cdigo fuente se teclea javac <nombre del cdigo fuente incluyendo su extensin> Ejemplo: si el cdigo fuente est guardado en C:\cursojava\tema1 C:\cursojava\tema1>javac PrimerSaludo.java Despus de compilar hay dos posibilidades: Se producen errores de compilacin: en este caso aparecen por consola todos los errores indicando el nombre del cdigo fuente, el nmero de lnea donde se ha producido el error, el mensaje asociado al error y la lnea de cdigo causante del mismo (el indicador ^ seala el lugar exacto del error). Qu se hace? Se vuelve al cdigo fuente, se tratan de subsanar todos los errores y se recompila hasta que no se produzca ningn error. No se producen errores de compilacin: en este caso el cdigo fuente est disponible para ser ejecutado. Se habrn generado en la misma carpeta donde se ha guardado el cdigo fuente tantos ficheros de extensin class como clases tenga dicho cdigo y con el mismo nombre (estos class constituyen el cdigo de bytes o Java bytecode). De estos ficheros class se nutre la JVM o mquina virtual de Java para generar el cdigo mquina nativo del procesador de trabajo. El class ms importante es el asociado a la clase principal, es decir, aquella que contiene el mtodo main, ya que se utiliza para la ejecucin del cdigo 3) Ejecucin del cdigo compilado: Desde la consola del DOS y estando en la misma carpeta en la que se guard el cdigo fuente (en ella tambin estn todos los class) se teclea java <nombre de la clase principal sin incluir su extensin> En el caso del ejemplo anterior: C:\cursojava\tema1>java PrimerSaludo Justo despus de hacer esto, se genera el cdigo nativo, el procesador lo interpreta y procesa y se obtiene el resultado de la ejecucin. Esquema grfico del proceso:

Si, despus de haber compilado un cdigo fuente sin errores y obtener los correspondientes ficheros class, se ejecuta y aparece por consola el siguiente mensaje: Exception in thread main java.lang.NoClassDefFoundError significa que se ha producido un error de ejecucin. A la mquina virtual no le llega el class asociado a la clase principal del cdigo fuente Posibles causas: Nombre del fichero class que debe ejecutarse no tiene el mismo nombre que la clase principal (aquella que contiene al mtodo main, es decir, al punto de entrada al programa). Se ha escrito la extensin class a continuacin del nombre de la clase principal al tratar de ejecutar el programa. El fichero class que se pretende ejecutar no tiene clase principal.

Notas bsicas de Java


NOTA 1 BSICA

Un cdigo fuente Java slo puede tener una clase con el modificador de acceso public. Si el modificador de la clase es public, el cdigo fuente debe tener el mismo nombre que la clase. Todos los cdigos se guardarn en c:\cursojava\tema1 Ejemplo 1:

Si se guarda el cdigo Java en un fichero con un nombre distinto al de la clase y se intenta compilar, se produce error. Ejemplo 2:

Si se guarda el cdigo Java en un fichero con el nombre de una de las clases y se intenta compilar, se produce error.

NOTA 2 BSICA
Si un cdigo fuente Java tiene varias clases, lo habitual es que slo una de ellas cuente con mtodo main. Se ver en el tema de sockets que, a veces, puede resultar cmodo contar con dos mtodos main en dos clases de un mismo cdigo fuente. Por el momento, se trabajar con un slo mtodo main. Si hubiera varios definidos en clases del mismo cdigo fuente, slo se ejecuta uno de ellos; el resto no se ejecuta. La pregunta es: qu mtodo main va a ejecutarse? La respuesta es: el asociado a la clase principal; esta clase principal la define el programador cuando ejecuta el cdigo con: java <clase_principal>. Ejemplo:

El fichero donde se guarda el cdigo Java debe llamarse "Primera.java" pues es la clase pblica del cdigo. El programador puede controlar qu clase va a ser la principal, es decir, qu clase va a contener el mtodo main, desde la consola del DOS . El resto de mtodos main no se tendrn en cuenta. Si desde la consola, y despus de compilar con "javac Primera.java" se ejecuta con: java Primera =>Por consola: Esta es la clase Primera

Si java Segunda => Por consola: Esta es la clase Segunda Si java Tercera => Por consola: Esta es la clase Tercera

NOTA 3 BSICA
Un cdigo fuente Java no tiene por qu tener clase principal (aquella que contiene el mtodo main o punto de entrada del programa). Ocurrir lo siguiente: se podr compilar pero no ejecutar (error de ejecucin). El programa carece de punto de entrada. Se utilizan para recibir llamadas de otras clases, mediante la creacin desde la clase llamante de un objeto de la clase a la que se invoca. Ejemplo:

NOTA 4 BSICA
Una clase Java puede comunicarse con clases que no se encuentran en su cdigo fuente mediante la creacin de objetos adecuados. Lo que debe hacerse es crear un objeto de la clase a la que se quiere acceder utilizando el nombre de la clase y la palabra reservada new. Mediante este objeto se tiene acceso a los mtodos y variables de instancia no privadas de esa clase. Se ver en los siguientes temas las caractersticas de una "variable de instancia" y el modificador de acceso aplicable a variables y mtodos "private". Por el momento, sobre las variables de instancia, bastar con saber que se declaran despus de la clase y fuera de cualquier mtodo, y que tienen alcance global. Ejemplo: cada clase se guardar en un cdigo fuente distinto.

Cdigo fuente

Por consola: 225 Has calculado el cuadrado de un numero

FIN DEL PROGRAMA

NOTA 5 BSICA
Para acceder a los mtodos y variables de instancia definidos en una clase desde su metodo main se hace lo mismo que en la nota anterior, es decir, se crea un objeto de esa clase y mediante ese objeto se llama a los mtodos y variables de instancia que interesen. No importa que sean privados. Ejemplo:

Por consola: 225 Has calculado el cuadrado de un numero FIN DEL PROGRAMA

NOTA 6 BSICA
El anterior programa tambin se puede codificar utilizando nicamente el mtodo main: Ejemplo:

Por consola: 225 Has calculado el cuadrado de un numero FIN DEL PROGRAMA Esta ltima forma de programar se emplea cuando el programa es sencillo. Lo habitual es que un programa se componga de varias clases en distintos cdigos fuente y que cada clase tenga varios mtodos y variables de instancia. Para explicar tipos de variables, bucles, estructuras condicionales y conceptos bsicos de programacin se emplear una clase y slo el mtodo main. Cuando se hagan programas ms complejos se emplearn varias clases y varios mtodos en cada clase. El enfoque ms orientado a objetos del programa desarrollado en las notas 4, 5 y 6 es, sin duda, el de la nota 4. La clase SinMetodoMain, mediante el mtodo

"int calcularCuadrado(int numero)" calcula un entero siempre y cuando reciba a travs de su argumento otro. Esta clase puede ser utilizada por cualquier programador Java en el momento que lo necesite el desarrollo de su programa. Es una prctica habitual en el diseo de una aplicacin Java utilizar clases creadas por otros programadores. SUN (Standford University Network), empresa creadora de Java, pone a disposicin de los programadores, con el objetivo de que les sirva de apoyo para el desarrollo de sus propias aplicaciones, una biblioteca de clases e interfaces, estructuradas en paquetes (packages), con multitud de mtodos y variables de campo estticas. Esta biblioteca recibe el nombre de API (Application Programming Interface o Interfaz de programacin para crear aplicaciones), y todo programador tiene que aprender a trabajar con ella porque es fundamental para poder desarrollar aplicaciones en Java. A continuacin, tres vdeos en los que se explican la descarga e instalacin de la API, la estructura y manejo de la API y el uso de mtodos y variables de campo estticas de la API. Respecto a la descarga de la API, los pasos a seguir son los mismos que cuando se descarga el SDK Acceder a http://java.sun.com y pulsar el enlace J2SE (Core/Desktop) de la seccin central

A continuacin, Core Java de

Despus, se selecciona la versin ms moderna que no sea beta

Luego, el enlace indicado en rojo

Finalmente, seccin Documentation, enlace DOWNLOAD, se acepta el contrato y se descarga el .zip asociado a la API

Este zip se suele descomprimir en el directorio de instalacin del SDK, j2sdk_home, a partir de ahora. Hecho esto, aparecer un directorio docs colgando de j2sdk_home. Dentro de docs, abrir el index.html, luego enlace "API & Language" y, a continuacin, enlace "Java 2 Platform API Specification (NO FRAMES)". Finalmente, se agregar a Favoritos una entrada que apunte al htm anterior. Esto mismo, es lo que se cuenta en el vdeo "Descarga e Instalacin de la API". Este vdeo es muy importante. Se recomienda reproducirlo ntegramente Este otro tambin.

NOTA 7 BSICA
Reglas para los nombres de clases, mtodos y variables: El primer carcter debe ser una letra, el carcter subrayado (_) o el smbolo $ y no otra cosa. Tras el primer carcter, el nombre puede estar compuesto de letras o de nmeros pero no de espacios en blanco ni tabuladores. En las clases, por convenio, el nombre comienza con mayscula. Si tiene varias palabras la primera letra de cada palabra ser tambin mayscula. En los mtodos y variables, por convenio, el nombre comienza con minscula. Si tienen varias palabras la primera letra de la segunda, tercera... palabras llevar mayscula. Java diferencia entre maysculas y minsculas, es case-sensitive. No pueden usarse como nombre palabras reservadas o clave de Java (Java las emplea para los tipos de variables, instrucciones, modificadores de acceso, operadores, etc. propios del lenguaje). Tampoco se permite la . No suelen utilizarse acentos (provocan error de ejecucin). Los nombres deben ser lo mas representativos de las tareas que ejecutan y de los valores que almacenan, para que resulte cmoda la lectura del cdigo a otras personas o incluso a los propios programadores creadores del cdigo una vez transcurrido un cierto tiempo.

NOTA 8 BSICA
Dentro de una clase, para acceder a un mtodo desde otro que no es el main o no es un mtodo esttico, basta con llamar al mtodo directamente. No es necesario crear un objeto o instancia de la clase. Ejemplo:

Por consola: Estas en el mtodo mostrarSaludo Estas en el mtodo saludoBienvenida Bienvenido amig@ Has vuelto al mtodo mostrarSaludo FIN DEL PROGRAMA

Empleo del operador +


Ejemplo 1: en este cdigo, una cadena de texto se concatena con un nmero entero almacenado en una variable primitiva de tipo int. Internamente lo que ocurre es que el nmero 10 asociado a la variable entera se convierte automticamente en la cadena de texto "10", y lo que hace el + es sumar dos cadenas de texto

Por consola: El valor de entero1 es 10 Ejemplo 2: las lneas 5 y 6 habitualmente se escriben en una sola lnea. Aqu se ha optado por desdoblarla en dos por cuestiones de diseo del formato interno del curso. As, la lnea que se muestra a continuacin equivale a las dos citadas: System.out.println("El valor de entero1 es "+entero1+" y el de entero2 es "+entero2);

Por consola: El valor de entero1 es 10 y el de entero2 es 25 Ejemplo 3: las lneas en verde son comentarios. Se utilizan para explicar y aclarar lneas de cdigo. Se analizarn en temas posteriores. El compilador no los tiene en cuenta.

Por consola: La suma de 10 y 25 es 35

También podría gustarte