APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto Tiempo de Compilación Tiempo de Ejecución Java Compilador JAVA JVM Intérprete Programa Fuente Tiempo de Compilación archivo.java archivo.class Tiempo de Ejecución 1
FUNCIONAMIENTO DE UN PROGRAMA JAVA Un programa escrito en java no se ejecuta directamente, el código del programa se guarda en un archivo *.java luego ese achivo debe ser compilado, si no hay errores entonces se genera un archivo *.class, ese archivo contiene el código objeto(código nada entendible, que no es binario) del programa, el archivo *.class es el que se utiliza para ejecutar el programa. En realidad solo se nenecita de los archivos *.class para que el programa funcione. Un programa hecho en java puede funcionar en cualquier sistema operativo que soporte la maquina virtual de java (JVM) sin necesidad de modificar el codigo, el mismo código objeto es interpretado por el interprete de java, tal como lo indica el lema de java Write once run anywhere o lo que seria en castellano, Escribe una vez funciona donde sea. 2
En Pseudocodigo INICIO <instrucciones> FIN ESTRUCTURA DE UN PROGRAMA EN JAVA //Importación de paquetes class <Nombre> //El nombre es a elección { //Inicio de clase public static void main(string args[]) { //INICIO <instrucciones>;.. } //FIN.. } //Fin de clase REGLAS IMPORTANTES Existen palabras reservadas que no se pueden usar en cualquier caso, y que en algunos casos no se las pueden omitir. Tipos de datos. Modificadores de acceso. Nombres de clases. Instrucciones y/o coman que tengan que ver con una estructura de control. Java es sensible a las mayúsculas y minúsculas, no es lo mismo escribir Class que class. Toda instrucción en Java debe tener al final punto y coma ( <instrucción>; ). Las cabeceras de clase, método, y estructura de control nunca llevan ;. Toda llave que se abre debe ser cerrada. NORMAS ESTANDAR (No son obligatorias) Nombres de clase que comiencen con mayúscula (Clase). Nombre de atributo o variable con letra minúscula (variable). Nombre de constante todo con mayúscula (CONSTANTE). Mantener el código identado. Mantener un espacio de cuatro caracteres cada que se comience un bloque de código. 3
VARIABLES Uso: Almacenar datos. Característica: Varia de contenido. Contenido: Valor pertenece a un tipo. Fisco: Ocupa un lugar en la memoria. Semántica (Significado, que es lo que hace) Reserva un espacio de memoria referenciado por identificador para contener un dato del tipo tipo, el tamaño del espacio reservado en la memoria dependerá de tipo. Declaración De Una Variable Reserva espacio físico en la memoria a través de un nombre. Solo lo reserva aun no tiene ningún contenido. tipo identificador; El tipo es el dominio de valores vali a ser almacena en identificador. Definición De Una Variable Establece el contenido de una variable identificador = E; El símbolo igual ( = ) se lo usa para hacer la asignación. Semántica Evalúa E, el resultado lo establece como contenido de nomvar. Aunque también se puede hacer las acciones en la misma línea de código, se puede declarar y asignarle un valor, o hacerlo de manera mixta como se ve en el cuadro., = E tipo identificador ;, Ejemplos: int var1; double var2, var3; float var4 = 7.0f; int var5 = 1, var6 = 12, var7 = 100; double var8 = 343, var9; boolean var10 = true, var11; 4
Identificador Una sola palabra (sin espacios). No puede ser palabra reservada. Debe empezar siempre con una letra. No puede contener caracteres especiales. (., ; : / \ @ Å etc.). CONSTANTES Es similar a una variable solo que a diferencia de la variable la declaración y definición se aconseja que se la debe hacer en uno, y que el nombre sea todo con mayúscula, ej. PI. Además de que se le antepone la palabra reservada final. Una constante solo puede ser definida una sola vez. Se sigue el siguiente procedimiento., = E final tipo identificador ;, TIPOS DE DATOS Keyword Description Size/Format Min Max (Enteros) byte short int long float double char Entero tamaño Byte Entero corto Entero Entero grande Single-precision floating point Doubleprecision floating point Un simple carácter 8-bits -128 127 16-bits -32768 32767 32-bits -2147483648 2147483647 64-bits -9223372036854775808 9223372036854775807 (Numeros real) 32-bits 1.4E-45 3.4028235E38 64-bits 4.9E-324 1.7976931348623157E308 (Otros tipos) 16-bits F V 5
boolean INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA Un valor 1 bit booleano CAMBIO DE TIPO (CASTIN) Es una operación que se hace cuando se requiere almacenar un valor de un tipo en un contenedor de otro tipo, transformando el valor que era de un tipo al tipo del otro siempre y cuando ambos tengan algo de común. No es necesario cuando ambos son equivalentes, en el caso de los tipos numéricos la relación es la siguiente: double long float int short Reales byte Enteros La precedencia de tipos viene dada por lo que seria los conjuntos de números. 1. Puedo guardar de un tipo más pequeño o igual en una variable más grande del mismo dominio. 2. En otro caso hago castin. E Expresiones Expresión es cualquier instrucción que al ser evaluada devuelve un valor. Constante. Variable E op E (E) opu E, E opu OPERADORES Operadores Aritméticos Operador Uso Descripcion + op1 + op2 Suma op1 y op2 - op1 - op2 Resta op2 de op1 * op1 * op2 Multiplica op1 por op2 / op1 / op2 Divide op1 entre op2 % op1 % op2 Calcla el reciduo de dividir op1 entre op2 ++ op++ ++ ++op -- op-- Incrementa op en 1; evalua el valor de op antes de ser incrementado Incrementa op en 1; evalua el valor de op despues de ser incrementado Decrementa op en 1; evalua el valor de op antes de ser decrementado 6
Decrementa op en 1; evalua el valor de op despues de ser -- --op decrementado Operadores Relacionales Operator Use Retorna verdadero si > op1 > op2 op1 es mayor que op2 >= op1 >= op2 op1 es mayor o igual que op2 < op1 < op2 op1 es menor que op2 <= op1 <= op2 op1 es menor o igual que op2 == op1 == op2 op1 y op2 son iguales!= op1!= op2 op1 y op2 son diferentes Operadores Lógicos Operador Uso Retorna verdadero si && op1 && op2 op1 y op2 son verdaderos, condicionalmente evalua op2 op1 op2 cualquiera op1 o op2 es true, condicionalmente evalua op2!! op op es false & op1 & op2 op1 y op2 son ambos true, siempre evalua op1 y op2 op1 op2 cualquiera op1 o op2 es true, siempre evalua op1 y op2 ^ op1 ^ op2 si op1 y op2 son diferentes si uno o el otro de los operadores es true pero no ambos Operadores de Desplazamiento Operador Uso Descripcion >> op1 >> op2 desplaza a la derecha op2 bits de op1 << op1 << op2 desplaza a la izquierda op2 bits de op1 >>> op1 >>> op2 desplaza a la derecha op2 bits de op1 (sin signo) Operador Uso Operacion & op1 & op2 bitwise and op1 op2 bitwise or ^ op1 ^ op2 bitwise xor ~ ~op2 bitwise complemento 7
Ejemplos: double op1, op2; //Solo declaración op1=3.14; op2=1; //Solo asigna valor double res=op1+op2; //Declara y asigna valor int var5 = 1, var6 = 12, var7 = 100; //Declara y asigna valor a //tres variables en una instrucción float var8 = 343f, var9; //Declara y asigna valor a //una variable y a la otra solo le asigna valor boolean var10 = true, var11; En General Las variables y/o constantes solo existen mientras el programa o método (proceso) este en ejecución. Las variables y/o constantes solo existen en un determinado ámbito. Lo que declare entre un par de llaves no se puede acceder en desde otro para de llaves que este a un mismo nivel. Las Llaves { } Se usan para agrupar bloques o grupos de instrucciones en un determinado ámbito. Su uso es obligatorio en clases o méto Su uso es obligatorio con estructuras de control cuando se quiere ejecutar más de una instrucción. Su uso es opcional en estructuras de control cuando solo se tiene una instrucción a ejecutar. COMENTARIOS Los comentarios se usan para describir algo en el programa. El compilador no los toma en cuenta en el momento de la compilación, se tienen tres tipos: Comentario de una sola línea. Se antepone doble slash // Comentario de varias líneas. Se pone al inicio un slash y un asterisco se escribe el comentario y se termina con asterisco y flash. /*Comentario*/ Comentario para documentación que también es para varias líneas. Es similar al de varias líneas solo que se comienza con slash y asteriscos. /** Comentario de documentación */ /** * Este es un programa de ejemplo. */ class Ejemplo { //Primer ambito int a = 12, b; /*Variables globales, los pueden usar tanto el metodo main como el metodox, por que ambos meto estan en el primer ambito. */ public static void main(string a[]) { //Metodo main int x, y = 7; final double PI = 3.14159, E = 2.71828; d = PI*E; /*No es correcto por que d no esta declarada*/ } public static metodox() //Metodo metodox { int n = 144, k,m; k = n/a; m = k+b; /*No es correcto por b no esta inicializada(definida)*/ int p = n-y; /*No es correcto por y es desconocido en este ambito, y solo es conocido en el ambito del metodo main*/ } } 8