Está en la página 1de 12

Tema1: Java Bsico

TEMA 1: Java Bsico


CONTENIDO
1 2 INTRODUCCIN 2 TIPOS, OPERADORES Y EXPRESIONES 2 2.1. ELEMENTOS DEL LENGUAJE 2 2.2. TIPOS DE DATOS 3 2.3. LITERALES 4 2.4. VARIABLES 4 2.4.1 Declaracin y asignacin 5 2.5. OPERACIONES ARITMTICAS 5 2.6. OPERADORES GENERALES. 5 2.7. EXPRESIONES 5 2.7.1 Precedencia y Asociatividad 5 2.7.2 Tipos: conversiones explcitas e implcitas de tipos ESTRUCTURA GENERAL DE UN PROGRAMA EN JAVA 6 INSTRUCCIONES Y BLOQUES 7 4.1. INSTRUCCIONES DE EXPRESIN Y DECLARACIN 7 4.2. INSTRUCCIONES DE CONTROL 7 4.2.1 Instrucciones de control selectivas 7 4.2.2 Instrucciones de control repetitivas 10 BIBLIOGRAFA 12

3 4

Java Bsico

Pgina 1

Tema1: Java Bsico

1 Introduccin
Java nace en 1991 de la compaa Sun Microsystems para programar pequeos electrodomsticos. (Hagamos un lenguaje lo mas parecido posible a C/C++ pero no ms). Es diseado para generar cdigo muy reducido y ejecutarse en cualquier CPU, quizs fue este su mayor acierto. Independiente de la plataforma: El compilador construye un cdigo neutro bytecode que no dependa del tipo de CPU, el cual se ejecutaba sobre una mquina hipottica o virtual denominada Java Virtual Machine (JVM): Los programas Java compilados slo se pueden ejecutar sobre el procesador virtual JVM Por ello un mismo cdigo Java compilado se puede ejecutar sobre cualquier plataforma, con slo cargar previamente un emulador de JVM; este proceso se llama interpretacin. El compilador traduce instrucciones Java de alto nivel a instrucciones JVM de bajo nivel. El intrprete traduce instrucciones de JVM a instrucciones de un procesador concreto (p.e. Pentium), y las ejecuta.

La compaa Sun describe el lenguaje Java como simple, orientado a objetos, distribuido, interpretado, robusto, seguro, de arquitectura neutra, portable, de altas prestaciones, multitarea y dinmico. Todos los elementos de un programa Java (excepto los tipos primitivos) sern objetos (Object) y su comportamiento estar descrito por los mtodos de la clase a la que pertenezcan. Al programar en Java no se parte de cero. Cualquier aplicacin que se desarrolle consta de un gran nmero de clases preexistentes. Sintaxis muy parecida al C/C++ (Hagamos un lenguaje lo mas parecido posible a C/C++ pero no ms).

2 Tipos, operadores y expresiones


2.1. Elementos del lenguaje
Comentarios o // Comentario de una sla lnea o /* Comentario de ms de una lnea */ o /**Comentario de ms de una lnea para procesamiento de Javadoc*/ Identificadores o Palabras que se usan para designar nombres de entidades (clases, mtodos, atributos, variables, etc.).

Java Bsico

Pgina 2

Tema1: Java Bsico Debe comenzar con una letra, _ $, seguido de letras, dgitos o ambos. Ejemplo: aadirNodo. o Distingue entre maysculas y minsculas. o Como excepcin, no se recomienda utilizar caracteres internacionales en los nombres de clases (por su correspondencia con el archivo). o No puede incluir espacios. o Un identificador no puede coincidir con ninguna palabra reservada del lenguaje. o null, true y false son formalmente literales, pero ningn identificador puede coincidir con ellos. Reglas de Estilo: o Convencin Comienza por letra mayscula Comienza por letra minscula Comienza por letra minscula Todas en letras maysculas Ejemplo String, Integer, Figura calcularArea, getAo area, ao PI, MAX

Tipo de identificador Nombre de clase (Tipo) Mtodo Variable Constante (Variable static y final)

Palabras Reservadas o Palabras propias del lenguaje con un significado especial. Por ejemplo, if, while, etc.

Separadores Separador () {} [] ; , . Descripcin Listas de parmetros, precedencia en las expresiones y conversiones de tipo. Inicializar matrices, bloque de cdigo, clases, mtodos y mbitos locales. Declarar arrays y acceder sus elementos. Separa sentencias. Separa identificadores consecutivos. Separar nombres de paquetes de subpaquetes y clases. Acceso a atributos o mtodos.

2.2. Tipos de datos


Tipos Primitivos boolean char byte short int long float double true o false Carcter Unicode 1.1.5, 16 bits Entero de complemento a dos con signo, 8 bits Entero de complemento a dos con signo, 16 bits Entero de complemento a dos con signo, 32 bits Entero de complemento a dos con signo, 64 bits Nmero en coma flotante IEEE 754-1985, 32 bits Nmero en coma flotante IEEE 754-1985, 64 bits

Objetos

En java, todos los elementos son objetos menos los tipos primitivos. Existen clases de envoltura que envuelven como objetos tipos primitivos Tipos definidos por el usuario

Debern construirse a travs de las clases. No permite crear tipos (s variables) como array, registro o uniones fuera del sistema de clases.

Java Bsico

Pgina 3

Tema1: Java Bsico Cambios de tipos a travs de Casting

Java es un lenguaje fuertemente tipado. La conversin de tipos no es automtica, sino explcita. Ejemplo: double d = 1.0; int i = (int) d;

2.3. Literales
Un literal es la representacin textual de un valor de un tipo. Constantes. El lenguaje no permite declarar literales constantes con un nombre y utiliza las variables con el modificador final (static final int N = 10;)
Referencias de objeto. Son variables de tipo Clase o Interface. La nica referencia literal a un objeto es null.

Booleanos (boolean). Los literales slo son dos: true y false. Para los objetos envoltura Boolean los literales son mas amplios. Enteros (byte, short, int, long). Los literales son cadenas de dgitos decimales, octales o hexadecimales. Por ejemplo, los nmeros siguientes tienen todos el mismo valor: 29 035 0x1D 0X1d. Por defecto las constantes enteras son de tipo int, para que sean de tipo long deben terminar en L o l, como 29L. La conversin del tipo int a short o byte es implcita si su valor est dentro del rango vlido

Coma flotante (float, double). Los literales son nmeros decimales con coma decimal opcional,

seguidos opcionalmente por un exponente. Los siguientes literales denotan el mismo nmero: 18. 1.8e1 .18E2. Debe estar presente como mnimo un dgito (no e2). Seguido de f o F denota precisin simple (float). Seguido de d o D denota doble precisin (double). Los literales en coma flotante son de tipo double por defecto. Caracteres (char). Los literales van entre comillas sencillas, como Q. Tambin cdigo Unicode: \ddd (octal), \udddd (hexadecimal). Ciertos caracteres especiales se pueden representar mediante una secuencia de escape como: \n, \t, \b (retroceso), \r, \f (salto pg), \\, \, \. Cadenas de caracteres. No son tipos primitivos (objeto de la clase String). Aparecen entre comillas dobles: cadena de caracteres. Todas las secuencias de escape para los literales de carcter son vlidas aqu. No se permiten saltos de lnea realizados con la tecla Enter.

2.5. Variables
En Java, el concepto de variable es el mismo que en otros lenguajes de programacin imperativos: Instancias de un tipo, es decir, un espacio de almacenamiento con nombre que pueden cambiar su valor.

Pueden alojar valores (tipos primitivos) o referencias a objetos (clases o interfaces) Podemos modelar una constante como un atributo final (no cambia su valor) y esttico (compartido por todos los objetos) a la vez. Variables referencia o Almacenan una posicin de memoria de un objeto o el literal null si no apunta an a ningn objeto. o Se declaran y asignan normalmente a la vez, invocando al constructor que reservar memoria para el Objeto mediante el operador new.

Java Bsico

Pgina 4

Tema1: Java Bsico o o No se puede referenciar a tipos primitivos. Las nicas operaciones vlidas con referencias son : asignacin = comparacin con == y != String el operador + para concatenar. Castings instanceof Operador .(punto) La aritmtica sobre variables referencia no tiene sentido en Java y no permite acceder a otras zonas de memoria como en C/C++.

Variables de valor o Almacenan un valor de tipo primitivo. o Sigue la sintaxis usual en C y C++.

2.4.1 Declaracin y asignacin Se pueden declarar en cualquier punto del cdigo, pero siempre antes de usarse. Slo se podrn usar hasta la finalizacin del bloque Sintaxis: [<modificador>] <tipo> <lista de identificadores> [= valor_ini]; Si no se le asigna ningn valor inicial, toman un valor por defecto. Ejemplos: boolean estaLloviendo, enc = false , es; long sueldo = 100000L; String nombre = Raul; Empleado e = new Empleado(Mara Gonzlez, 23234456L);

2.5. Operaciones aritmticas


Aritmtica entera o La aritmtica de enteros es modular de complemento a dos. Esto quiere decir que si un valor excede el rango de su tipo (int o long) es reducido a su mdulo. Por tanto, no hay desbordamientos. La divisin por cero o el resto (%) por cero no son vlidos (ArithmeticException).

Aritmtica coma flotante o o o Java usa el estndar IEEE 754-1985 sobre coma flotante, tanto para la representacin como para la aritmtica. Se pueden producir tanto desbordamientos como subdesbordamientos. Existen las constantes infinito y menos infinito, as como una representacin denominada NaN (Not a Number) para los resultados de expresiones no vlidas. Segn el estndar, el cero puede ser positivo (0.0) o negativo (-0.0). Ejemplo 1d/0d es infinito --- 1d/-0d es infinito La divisin por cero en esta aritmtica no produce la elevacin de ninguna excepcin. Una constante double no se puede asignar directamente a una variable float aunque el valor de la misma est en el rango permitido para float -> casting explcito. Por ejemplo: double d= 1.5; float f; f= d; //Incorrecto: error de compilacin f= (float) d; //Correcto: casting explcito

o o o

2.6. Operadores generales. Java Bsico Pgina 5

Tema1: Java Bsico Aritmticos: +, -, *, /, % Relacionales: <, <=,>, >=, !=, == Lgicos: !, &&, || Aritmticos con Asignacin e incremento (slo a enteros y a char): =, ++ postfijo, - - postfijo Otros Operadores: Casting explcito, instanceof, new, + (concatenacin).

2.7. Expresiones
Una expresin es una combinacin bien formada de variables, literales y operadores que devuelven un valor de un determinado tipo. 2.7.1 Precedencia y Asociatividad
Reglas de precedencia. Determinan el orden de aplicacin de los operadores en una expresin. Ejemplo:

x*y+3/z

(x*y)+(3/z)

Reglas de Asociatividad. Determina el sentido de aplicacin en caso de igualdad de prioridad. Tabla de Precedencia/Asociativedad: Operador ! ++ -- - (unario) * / % + < <= > >= == != && || Asociatividad derecha a izquierda izquierda a derecha izquierda a derecha izquierda a derecha izquierda a derecha izquierda a derecha izquierda a derecha

Si usamos parntesis de modo explcito, estamos indicando nuestras propias reglas de precedencia y asociatividad. Por ejemplo: x*y+3/z (x*y)+(3/z) x*y+3/z x*(y+3)/z 2.7.2 Tipos: conversiones explcitas e implcitas de tipos. Una expresin siempre es del tipo del operando de mayor rango: int a = 5; double b = 3.2; double suma = a + b; //expresin de tipo double Conversiones implcitas detipos: o o o o o De char a int De entero a coma flotante De entero a entero de mayor rango Las contrarias producen prdidas de informacin. De Tipo/Objeto a String: cuando un operador + tenga al menos un argumento de tipo String.

Conversiones explcitas de tipos (Casting): Cuando no se pueda asignar implcitamente un tipo a otro se puede pedir una conversin explicita.

Java Bsico

Pgina 6

Tema1: Java Bsico

(tipo) expresin

int x = (int)b;

Ejemplos: int entero, a = 5, b = 2; double real = 3.20567; entero = real; //entero vale 3 real = a/b; // real vale 2 real = (double) a/b; // real vale 2.5 float resultado = (float) retornaInt(); //Cualquier mtodo que devuelva un entero

3 Estructura General de un programa en Java


Un programa en Java debe incluir una y slo una clase pblica, que da nombre al fichero. En los primeros programas esta clase incluir un nico mtodo pblico y esttico con el nombre main. Si se necesitan importar paquetes enteros o partes de los mismos, se indicar al comienzo del fichero, antes de cualquier comentario con la sentencia import. El esquema general es el siguiente: Fichero NombreClase.java import ...;
public class NombreClase{ Declaracin de atributos Mtodos public static void main(String ... } }

args[

]){

Ejemplo: Clculo del rea de un rectngulo


public class AreaRectngulo{ public static void main (String args[]){ int base = 3; int altura = 5; area = base * altura; System.out.println("Area = " + area); }

4 Instrucciones y bloques
Se considera un bloque en Java al conjunto de instrucciones encerradas entre una llave de apertura, {, y su correspondiente llave de cierre, }, en su mismo nivel de anidamiento. Los bloques adems de agrupar instrucciones, marcan la vida y visibilidad de las variables que se declaran en l. Las instrucciones que se consideran en Java son las siguientes: Instrucciones de declaracin. Instrucciones de expresin. Instrucciones de control.

4.2. Instrucciones de expresin y declaracin


Las instrucciones de declaracin nos permiten crear nuevas variables u objetos y en algunos casos darles un valor inicial.

Java Bsico

Pgina 7

Tema1: Java Bsico int x; flota y = 0.3F; double z = 4.6 ; String s = new String(Hola); La mayor parte de las expresiones se pueden convertir en sentencias aadiendo un punto y coma al final. x = x + 1; z = y*x+1; Un punto y coma puede considerarse la sentencia nula.

4.3. Instrucciones de control


Son las instrucciones que nos permiten dirigir el orden de ejecucin. Hay dos tipos: Selectivas Repetitivas

4.2.2 Instrucciones de control selectivas Selectiva simple: Sintaxis if (expresin-booleana) instruccin 1; if (expresin-booleana){ instruccin 1; ; instruccin N; } Ejemplo
if (x==1) System.out.println(x vale 1);

if }

(x%2==0){ System.out.println(x y = x/2;

es

par);

Selectiva doble: Sintaxis if (expresin-booleana) instruccin 1; else instruccin 2; if (expresin-booleana){ instruccin 1; ; instruccin N; } else{ instruccin N+1; ; instruccin M; } Ejemplo if (x==1) System.out.println(x vale 1); else System.out.println(x no vale 1); if (x%2==0){ System.out.println(x es par); y = x/2; } else{ System.out.println(x es impar); y = x+1; }

Java Bsico

Pgina 8

Tema1: Java Bsico Selectiva Mltiple: Sintaxis if (expresin-booleana 1) instruccin 1; else if (expresin-booleana 2) instruccin 2; else if (expresin-booleana 3) instruccin 3; else instruccin N; if (expresin-booleana 1){ instruccin 1; } else if (expresin-booleana 2){ instruccin 2; } else { instruccin N; } switch (<expresin>){ case <valor1>: instruccin 1; ... instruccin N; break; case <valor2>: instruccin N+1; ... instruccin M; break; default: instruccin P+1; /*Opcional*/ ... instruccin Q; }default: instruccin P+1; Ejemplo: Divisibilidad.
public class Divisibilidad{ public static void main (String args[]){ int b = 3;
int a = 5; if (a%b == 0)

Ejemplo if (x==1) System.out.println(x else if (x==2) System.out.println(x else if (x==3) System.out.println(x else System.out.println(x

vale 1); vale 2); vale 3); no vale 1, 2 ni 3);

if (x==1){ System.out.println(x vale 1); x++; } else if (x==2){ System.out.println(x vale 2); x = x + 2; } else{ System.out.println(x no vale 1 ni 2); x = 0; } switch (x){ case 1: System.out.println(x vale 1); x++; break; case 2: System.out.println(x vale 2); x = x + 2; braek; default: System.out.println(x no vale 1 ni 2); x = 0; }

System.out.println(a else System.out.println(a } }

+ +

es no

divisible es

por

por

b); + b);

divisible

Ejemplo: El mayor de dos nmeros.


public class MayorDosNumeros{ public static void main (String args[]){ int b = 3;

Java Bsico

Pgina 9

Tema1: Java Bsico


int a = 5; int mayor; if (a>b){

System.out.println(a + " es mayor que + b); mayor = a; }else if (a<b){ System.out.println(a + " es menor que + b); mayor = a; }else{ System.out.println(a + " es igual que + b); mayor = a; } System.out.println(El } } mayor es + mayor);

Ejemplo: Valor de una variable.


public class EjemploSwitch{ public static void main (String args[]){ int a=1; switch (a){ case 1: System.out.println (Uno); break; case 2: System.out.println (Dos); break; case 3: System.out.println (Tres); break; default: System.out.println(Por defecto); } } }

4.2.2 Instrucciones de control repetitivas Repetitiva con condicin inicial: Sintaxis while (expresin-booleana) instruccin 1; while (expresin-booleana){ instruccin 1; instruccin N; } do instruccin 1; while (expresin-booleana); do{ instruccin 1; instruccin N; }while (expresin-booleana); Ejemplo while (i<10) System.out.println(i++); while (i<10){ System.out.println(i); i++; } do System.out.println(i++); while (i<10); do{ System.out.println(i); i++; }while (i<10);

Java Bsico

Pgina 10

Tema1: Java Bsico Repetitiva con contador: Sintaxis for (<inicializacin>;<condicin>;<incremento>) instruccin 1; for (<inicializacin>;<condicin>;<incremento>){ instruccin 1; instruccin N; } Ejemplo for (i=1; i<= 5; i++) System.out.println (i); for (i=1; i<= 5; i++){ System.out.println (i); cont = cont +1; }

Ejemplo: Factorial de un nmero con while.


public class Factorial_While{ public static void main(String[ ] args) { int numero = 5;
long resultado = 1; while(numero>0){

resultado = resultado*numero; numero--; } System.out.println("El } } factorial es "+resultado);

Ejemplo: Factorial de un nmero con for.


public class Factorial_For{ public static void main(String[ ] args) { int numero = 5, i;
long resultado = 1; for(i=1;i<=numero;i++ ) resultado = resultado*i; System.out.println("El factorial es "+resultado);

} }

Java Bsico

Pgina 11

Tema1: Java Bsico

5 Bibliografa
General: Programacin en Java 2. Luis Joyanes Aguilar, Ignacio Zahonero Martnez. McGraw-Hill, 2002. Captulos 0 y 1. Programacin en Java 2. Jess Snchez Allende et al. McGraw-Hill (Serie Schaum), 2005. Captulos 0, 1 y 4(hasta la pgina 100) Programacin, Algoritmos y Ejercicios Resueltos en Java. David Camacho. Prentice Hall Pearson, 2003. Captulo 1, pgs. 1-38.

Java Bsico

Pgina 12

También podría gustarte