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.