Download M. en C. Erika Vilches
Document related concepts
no text concepts found
Transcript
Sintaxis y Convenciones de Java M. en C. Erika Vilches Estructura del Código en Java Hay una clase en un archivo fuente Hay métodos en una clase Hay enunciados en un método Anatomía de una Clase Cuando la JVM empieza a correr, busca la clase que se le da en la línea de comandos. Posteriormente, busca a un método especialmente escrito que se vea exactamente así: Después, la JVM corre todo lo que se encuentre entre las llaves { } del método main. Escribiendo una clase con un main En java TODO va dentro de una clase Cuando corres tu programa, realmente estas corriendo una clase Correr un programa → Decirle a la JVM que cargue la clase en memoria y después ejecute su método main. Seguir ejecutando hasta que todo el código en main se haya terminado. El método main() es donde el programa comienza a ejecutarse. ¿Qué se puede decir en el método main? El código le puede decir a la JVM que: Haga algo... Enunciados → Declaraciones, asignaciones, llamadas a métodos, etc. Que haga algo una y otra vez... Ciclos → for y while Que haga algo bajo cierta condición Pruebas if/else Sintaxis Cada enunciado TIENE que terminar con punto y coma. Un comentario de una sola línea comienza con dos diagonales. La mayor parte de los espacios en blanco no tienen importancia. Las variables se declaran con un nombre y un tipo. Las clases y métodos deben ser definidos dentro de un par de llaves. Otra aplicación en Java: Sumando Enteros Nuestra siguiente aplicación lee (input) dos enteros (Ej: 2, 76, 194) que el usuario escribe en el teclado, calcula la suma de los valores y despliega el resultado. Los programas recuerdan números y otros datos en la memoria de la computadora y acceden a esa información a través de elementos del programa llamados VARIABLES. Addition.java Salida: Las lineas 1 y 2 indican el número de la figura (libro Deitel), el nombre del archivo y el propósito del programa. La línea 3 es una declaración import que ayuda al compilador a localizar una clase que se utiliza en el programa. Una gran fortaleza de Java es su vasto conjunto de clases predefinidas que los programadores pueden reutilizar en lugar de “reinventar la rueda” Dichas clases estan agrupadas en paquetes llamados colecciones de clases. De manera colectiva, los paquetes de Java son referidos como: Java class library o la Java Application Programming Interface (Java API). Los programadores utilizan declaraciones import para identificar las clases predefinidas que se utilizan en un programa de Java. La declaración import de la línea 3 indica que este ejemplo utiliza la clase predefinida de Java Scanner, del paquete java.util. El compilador se asegura de que se utilice la clase Scanner correctamente. Todas las declaraciones import deben aparecer ANTES de la declaración de la clase. Si olvidamos incluir una declaración import de alguna clase que utilizamos en nuestro programa, habrá un error de compilación con un mensaje como: “cannot resolver symbol” Verificar que se utilizaron las declaraciones import apropiadas Verificar que los nombres en las declaraciones import se hayan escrito correctamente (incluyendo mayúsculas y minúsculas) Por convención, todos los nombres de clases en Java inician con una letra mayuscula y llevan mayuscula en la primera letra de cada palabra que incluyan (Ej: SimpleClassName). Un nombre de clase es un identificador. Identificador → serie de caracteres que consiste de letras, dígitos o guiones bajos (_) y signos de pesos ($), que NO comienza con un dígito y NO contiene espacios. Identificadores válidos: Welcome1, $value, _value, m_inputField1 y button7 Identificadores inválidos: 7button y input field Java es case-sensitive: a1 y A1 son DIFERENTES, pero ambos son válidos. Siempre debe indentarse el cuerpo de una clase (lo que va dentro de las llaves) un “nivel” de indentación. Este formato enfatiza la estructura de la clase y la hace más facil de leer. Utilice siempre la misma indentación, ya sea un tab, 3 espacios en blanco, etc... La línea 5 (public class Addition) inicia la declaración de la clase Addition. El nombre del archivo para esta clase debe ser Addition.java Recuerde que el cuerpo de una declaración de clase inicia con una llave que abre { y termina con una llave que cierra } La ejecución de la aplicación inicia con el método main (línea 8). El cuerpo del main inicia { y termina } con llaves. Note que el método main esta indentado un nivel en el cuerpo de la clase Addition y que el cuerpo del main esta indentado otro nivel para mejorar la legibilidad. La línea 11 (Scanner input = new Scanner( System.in);) es un enunciado de declaración de variable, también llamado declaración. Variable → es el lugar en la memoria de la computadora donde un valor puede ser almacenado para su uso mas tarde en un programa. Todas las variables deben declararse con un nombre y tipo antes de que puedan ser utilizadas. El tipo de una variable especifica que tipo de información se almacena en esa localidad de memoria. La declaración de la línea 11 especifica que la variable llamada input es de tipo Scanner. Un Scanner le permite a un programa leer datos (Ej: numeros) para utilizarlos en un programa. El signo = en la línea 11 indica que la variable input debe ser inicializada con el resultado de la expresión new Scanner(System.in). Dicha expresión crea un objeto tipo Scanner que lee datos escritos por el usuario en el teclado. Recuerde que el objeto de salida standard, System.out permite a las aplicaciones de Java desplegar caracteres en la línea de comando. De manera similar, el objeto de entrada standard, System.in permite a las aplicaciones de Java leer información escrita por el usuario en el teclado. La declaración de variables en las líneas 13 a 15 declara las variables number1, number2 y sum, de tipo int Esas variables contendrán valores enteros (Ej: 2, 74, 26) El rango de valores para un entero es -2,147,483,648 a +2,147,483,647 Las líneas 13 a 15 también podrían escribirse: int number1, number2, sum; Por convención, los nombres de variables empiezan con minúscula y cada palabra en el nombre después de la primera empieza con una mayuscula. Ej: firstNumber La línea 17 (System.out.print( "Enter first integer: " );) utiliza System.out.print para desplegar el mensaje "Enter first integer:". La clase System es parte del paquete java.lang Note que la clase System no es importada con un import al inicio del programa Por default, el paquete java.lang se importa en todos los programas Java. Es el único paquete del Java API que no requiere un import. La línea 18 (number1 = input.nextInt();) utiliza el el método nextInt() del objeto input de la clase Scanner para obtener un entero del usuario desde el teclado. En este momento el programa espera a que el usuario teclee un número y presione Enter. Técnicamente, el usuario puede teclear lo que desee, pero si no es un número ocurrirá un error lógico en la ejecución y el programa terminara. Programa tolerante a fallas → utiliza manejo de excepciones para manejar este tipo de errores (lo veremos más adelante). En la línea 18 (number1 = input.nextInt();), el resultado de la llamada al método nextInt() (un valor int) se pone en la variable number1 utilizando un operador de asignación, el =. El operador = es llamado operador binario porque tiene dos operandos, number1 y el resultado de input.nextInt(). Este enunciado es llamado enunciado de asignación porque asigna un valor a una variable. Cualquier cosa a la derecha de un operador de asignación = es siempre evaluado antes de que la asignación tenga lugar. La línea 23 (sum = number1 + number2;) es un enunciado de asignación que calcula la suma de las variables number1 y number2 y asigna el resultado a la variable sum por medio del operador de asignación =. El operador + es un operador binario. Sus operandos son number1 y number2. Expresiones → Porciones de los enunciados que contienen calculos. Después de que se llevó a cabo el cálculo, en la línea 25 (System.out.printf( "Sum is %d\n", sum );) se utiliza el método System.out.printf para desplegar la suma. El especificador de formato %d, es un “placeholder” para un valor entero. La letra d significa “decimal integer”. Los cálculos también pueden ser hechos dentro de printf. Podríamos tener: System.out.printf( "Sum is %d\n", ( number1 + number2 ) ); El paréntesis de number1 + number2 no es requerido. Se incluye para legibilidad. Documentación del Java API Para cada clase del Java API que utilizamos, indicamos el paquete en el que se localiza. El paquete es importante porque nos ayuda a localizar la descripción de cada paquete y clase en la documentación del Java API. La versión web de esta documentación se encuentra en: http://java.sun.com/javase/6/docs/api/ También puede bajar a su computadora esta documentación desde: http://java.sun.com/javase/downloads/index.jsp El download es de aproximadamente 40 MBs.