Está en la página 1de 43

Java

Introduccin y Fundamentos del


lenguaje de programacin Java
Introduccin
Introduccin (I)
Creado en 1991 por Sun Microsystems (James
Gosling) para dispositivos electrnicos:
calculadoras, microondas y la televisin
interactiva.
Escasa potencia de clculo
Poca memoria
Distintas CPUs
Consecuencias:
Lenguaje sencillo que genera cdigo reducido
Lenguaje que independiente de la plataforma
Introduccin (II)
Lenguaje de progamacin para
computadores/internet desde 1995.
Sun describe Java como un lenguaje simple,
orientado a Objetos, distribuido, interpretado,
robusto, seguro, de arquitectura neutral,
portable, de alto rendimiento, multihilos, y
dinmico
Ejecucin de Java como:
Aplicacin independiente
Applet (dentro del navegador al cargar la pgina Web)
Servlet (ejecutado en servidor de internet, sin interfaz
grfica).
Introduccin (III)
JDK (Java Development Kit): programas y librerias para
desarrollar, compilar y ejecutar programas Java.
Versiones:
Java 1.0: 212 clases organizadas en 8 paquetes
Java 1.1: 504 clases, 23 paquetes. Mejoras a la JVM.
Java 1.2 (Java 2): 1520 clases, 59 paquetes. Plataforma
muy madura . Apoyado por grandes empresas: IBM,
Oracle, Inprise, Hewtlett-Packard, Netscape, Sun.
Java 1.3 (Java Enterprise Edition). Java comienza a
ser una plataforma de desarrollo profesional
??? Java MicroEdition
Caractersticas de Java
Caractersticas de Java I
Lenguaje de fcil uso orientado a objetos
Lenguaje compilado e interpretado
Facilita un entorno interpretado:
Velocidad de desarrollo (no de ejecucin)
Portabilidad del cdigo
Ejecucin multitareas
Cambios dinmicos en tiempo de ejecucin
Seguridad del cdigo.
La mquina Virtual Java - JVM (I)
Es una mquina hipottica que emula por software una
mquina real. Es definida por una especificacin.
Conjunto de instrucciones de mquina
(C.O.) + Operandos
Pila
Memoria
...
El compilador genera bytecodes (instrucciones de cdigo
maquina para la JVM)
El interprete tarduce y ejecuta los bytecodes para cada
mquina especfica.
La mquina Virtual Java (II)
Cdigo fuente

Compilador Java

Byte-codes

Macintosh JVM Win32 JVM UNIX JVM

Cdigo mquina Cdigo mquina Cdigo mquina


Macintosh Win32 UNIX
Compilador e intrprete de
Java (I)
El compilador analiza la sintaxis del cdigo fuente (con
extensin .java). Si no hay errores, genera bytecodes
> javac <Nombre>.java

El intrprete es la Mquina Virtual de Java que ejecuta


los bytecodes (*.class) creados por el compilador.
> java <Nombre> (sin extensin)
> java <Nombre> arg1 arg2
Compilador e intrprete de Java (II)
Codigo fuente
compilar

javac HelloWorld.java
HelloWorld.java

java HelloWorld HelloWorld.class

ejcutar bytecode
Garbage Collection
La memoria reservada dinmicamente que No se vaya a
usar ms debe ser liberada.
En otros lenguajes, esta liberacin debe realizarla el propio
programador.
La JVM dispone de un proceso que rastrea las operaciones
de memoria: el Garbage Collector.
Verifica y libera la memoria que no se necesita
Se ejecuta automticamente
Puede variar segn la implementacin de la JVM.
Seguridad del Cdigo
La JVM verifica los bytecodes asegurando que:
El cdigo se ajusta a las especificaciones de la JVM.
No hay violaciones de acceso restringido.
Los tipos de los parmetros son correctos para todo el
cdigo.
No existen conversiones ilegales de datos (ej. de
enteros a apuntadores).
Formato de los archivos fuente
Declaracin de paquete (opcional)
package <nombrePaquete>
Instrucciones de importacin(opcional)
import <nombrePaquetes>
Declaracin de clase o interfaz
[<mod>] class <NombreClase> {.....}
Un programa Simple

public class ProgramaSimple


{
public static void main(String[] args)
{
System.out.println("Este es + un programa simple");

System.exit(0);
}
}
Elementos del Lenguaje
Elementos del lenguaje
Caracteristicas del lenguaje
Declaraciones
Tipos de Datos
Operadores
Estructuras de control
Clases y Objetos
Paquetes
Caracteristicas del lenguaje

Sensible a maysculas/misnsculas
Comentarios
Lenguaje de formato libre
Identificadores
Palabras reservadas
Variables y constantes
Convenciones de nomenclatura
Tiene reglas sobre los tipos de datos
Sensible a
maysculas/minsculas

Se distingue entre maysculas y


minsculas.
Los identificadores Papa, papa y PAPA
son diferentes.
Todas las palabras reservadas del lenguaje
van en minsculas.
Comentarios
// comentario
Los caracteres desde // hasta el final de la lnea son
ignorados.
/* comentario */
Los caracteres entre /* y */ son ignorados
/** comentario */
Los caracteres entre /** y */son ignorados y se
incluyen en la generacin autmatica de la
documentacin.
Lenguaje de formato libre
La disposicin de los elementos dentro del cdigo es libre
Instrucciones: lnea simple de cdigo terminada en ;
Bloque de cdigo: Conjunto de sentencias agrupadas entre
llaves.
{
X = x + 1;
Y = y + 1;
}
Java permite espacios en blanco entre elementos del cdigo
X1 = y * delta;
X2 = (y-1) * delta;
Palabras Reservadas
Palabras con un significado especial para el compilador
Ejemplos:
Nombres de tipos bsicos: boolean, char, double, int,
Indicadores de controls: do, if, else, for, while,
Class, interface, extends, implements
package, import
this, super
Modificadores de acceso: public, private, protected
Constantes: true, false, null
Etc
Variables y Constantes

Variable: Zona de memoria cuyos valores van a


cambiar durante la ejecucuin.
Declaracin:
<tipo> <variable>;
<tipo> <var1>, <var2>, ..., <varn>;
<tipo> <var1> = <valor>;
Variables y Constantes
Ejemplos de declaracin de variables:
int x,y,z;
int x = 9;
boolean terminar = false;
Cliente c1 = new Cliente();
Constantes: Zona de memoria cuyos valores no
cambian
Declaracin:
final <tipo> <variable> = <valor>;
Ejemplo: final double PI = 3.14159;
Asignaciones
Se utiliza el operador de asignacin =
<tipo> <variable> = <valor>;
<tipo> <variable>;
<otras instrucciones>...
<variable> = <valor>;
La parte izquierda siempre debe ser una variable
La parte derecha puede ser un literal, una
variable, una expresin, una funcin o una
combinacin de todos.
int x = 4; //Declaracion con asignacin
x = 9; //Se asume que x est definida
Tipos de Datos y Operadores
Tipos de Datos
Java define dos tipos de datos
Tipos primitivos
Tipos referencia
Los tipos primitivos son ocho agrupados en
cuatro categoras:
Lgico: boolean
Texto: char
Entero:byte, short, int, long
Real: float, double
Los tipos referencia son apuntadores a objetos.
Tipos de Datos

Tipos primitivos:
boolean true o false
char unicode! (16 bits)
byte entero de 8 bits con signo.
short entero de 16 bits con signo.
int entero de 32 bits con signo.
long entero de 64 bits con signo.
float,double IEEE 754 floating point
Tipos de datos Referencia
Un tipo referencia guarda un apuntador a la direccin
donde se ubica el objeto (32 bits).
Slo puede almacenar objetos de su propio tipo.
Ejemplo:
Cuadrado cuad1, cuad2;
Circulo circ1;
cuad1 = new Cuadrado();
circ1 = cuad1; // Error de compliacin
cuad2 = cuad1; // Ok
Todas las clases son de tipo referencia.
El valor que toma por defecto una variable de tipo
referencia es null.
Cadenas de Caracteres
La clase String permite manejar cadenas de caracteres.
El literal string debe ir entre comillas dobles .
Se puede crear una cadena de caracteres de dos formas:
String nombre = new String(Pepe);
String nombre = Pepe;
Para concatenar dos cadenas se usa el operador +.
No se guarda el carcter fin de cadena.
Conversiones de tipos
La conversin de tipos (casting) debe realizarse entre
tipos de la misma naturaleza: numricos o referencia.
Al convertir un tipo a un tamao ms pequeo se puede
perder la informacin del los bits de mayor peso.
No hay conversin automatica con el tipo boolean!
La sintaxis es: (<tipo>) <expresion>
Ejemplo: int i = (int) 1.345;
Operadores (I)
Unarios: +. -
Aritmticos: +, -, *, /, % (resto de la divisin).
De Asignacin: =, +=, -=, *=, %=
<var> += <exp> <var> = <var> + <exp>
Operadores incrementales: ++, --
Precediendo a la variable: ++<var>, --<var>
siguiendo la variable: <var>++, <var>--
elacionales: ==. !=, <, >, <=, >=,
Operadores (II)
Operadores relacionales: == (igual). != (distinto), <, >,
<=, >=,
Operadores booleanos: && (AND), || (OR), ! (NOT), &
(AND), | (OR).
&& y || realizan evaluacin perezosa
& y | siempre evalan los dos operadores

El operador instanceof: <objeto> instanceof


<clase> determina si un objeto pertenece a una clase.
Operadores (III)
Operador condicional: ?
<expBooleana> ? <valor1> : <valor2>
permite bifurcaciones condicionales sencillas.
Operadores a nivel de Bits: &, |, ^, ~, <<, >>, >>>
op1 >> n, desplaza los bits de op1 (con signo) a la derecha n
posiciones.
op1 >>> n, desplaza los bits de op1 (sin signo) a la derecha n
posiciones.
op1 ^ op2, O exclusivo.
~op1 , NOT a nivel de bit (complemento).
Precedencia de operadores
Los operadores binarios se evalan de izaquierda a derecha,
excepto los operadores de asignacin.
1. Sufijos: . [] ()
2. Unarios: ++ -- ! ~
3. Creacion y casting: new (tipo)exp
4. Multiplicativos: * / %
5. Aditivos: + -
6. Desplazamientos: << >> >>>
7. Relacionales: < > <= >= == !=
8. Bits: & ^ |
9. Lgicos: && ||
10. Condicional: ? :
11. Asignacin: = op= (*= /= %= += - etc.)
Asignacin
Utilizacin de operadores:
var1 = var2 + var3; // asignar a var1 el valor de var2 + var3

var1 = var2 - ver3; // asignar a var1 el valor de var2 - var3

var1 = var2 * ver3; // asignar a var1 el valor de var2 * var3

var1 = var2 / ver3; // asignar a var1 el valor de var2 / var3

var1 = var2 % ver3; // asignar a var1 el valor de var2 % var3

Asignaciones de incremento decremento:


variable++; // aadir uno a variable

variable--; // restar uno a varibale

variable += exp; // aadir exp a variable

variable -= exp; // restar exp a variable


Declaracin de Variables

tipo nombre;

tipo nombre1, nombre2, nombre3;

tipo nombre = valor;


Paquetes
Paquetes Java ms importantes:
- lang para funciones del lenguaje;
- util para utilidades adicionales;
- io para entrada y salida;
- text para formateo especializado;
- awt para grficos e interfaz grfica de usuario
Para acceder a cualquiera de estos paquetes, excepto lang que
est siempre disponible, usamos el siguiente modelo:

import java.nombrepaquete.*;
Declaracin de Clases

modificador class nombreClase {

< declaracin de campos >

< declaracin de mtodos >

}
modificador puede ser public o nada; si la clase no pertenece a un paquete,

ambas definiciones son equivalentes; si la clase pertenece a un paquete, entonces,

si se declara public, la clase podr utilizarse fuera del paquete, pero si no se

declara public, slo podr utilizarse dentro del paquete


Modelo de un Programa

public class nombrePrograma {

public static void main(String[] args) {

< cuerpo del programa >

}
Salida por pantalla
import java.io.*;

System.out.println(elementos);

System.out.println();

System.out.print(elementos);

System.out.println("hola"); // escribe "hola"

System.out.println(5); // escribe 5

int i = 5; System.out.println(i) ; // escribe 5;

double d=6.4; System.out.println(d); // escribe 6.4;

double d=6.4; System.out.println("d="+d); // escribe d=6.4;


Cuadros de Dialogo
Se usa para ingresar y mostrar informacin mediante cuadros de dialogo.
Se necesitara la ayuda de algunas libreras para la interfaz grafica y
conversin de datos.

import java.lang.String;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;
//Para ingresar datos mediante teclado se usara:
variable=JOptionPane.showInputDialog("menzaje de dialogo);

// Para mostrar informacion procesada se usara: JOptionPane.showMessageDialog(null," menzaje


de dialogo : " + variable);
EJEMPLO

También podría gustarte