Download Descarga
Document related concepts
no text concepts found
Transcript
INTRODUCCIÓN AL LENGUAJE JAVA M.C Alejandro Castellanos Lopez 1 1 ¿Qué es Java? • Es un lenguaje de programación orientado a objetos. • Creado en 1991 por Sun Microsystems (James Gosling) para dispositivos electrónicos: calculadoras, microondas y la televisión • El lenguaje en sí mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos más simple y elimina herramientas de bajo nivel. • Es independiente de la plataforma • Posee un sistema de administración de memoria automático. M.C Alejandro Castellanos Lopez 2 Un poco de historia • Java se creó originalmente como una herramienta de programación para un proyecto set-top-box conocido como *7. • Fue realizado por un equipo de 13 personas, dirigidas por James Gosling. M.C Alejandro Castellanos Lopez 3 Java Development Kit (JDK) • El JDK consiste de lo siguiente: – El Java development tools, incluyendo el compilador, debugger y el intérprete Java. – Las Java class libraries organizadas como una colección de paquetes. – Un número importante de programas de demostración. – Varias herramientas de soporte y componentes, incluyendo el código fuente de las clases en la biblioteca. • URL: java.sun.com/javase/downloads M.C Alejandro Castellanos Lopez 4 Ambientes de desarrollo Java (IDEs) • Un IDE (del inglés Integrated Development Enviroment). Es un ambiente que integra un conjunto de herramientas (editor con prestaciones especiales, compilador, administración de proyectos, debugger,etc) que permiten realizar todo el proceso de desarrollo dentro del mismo. • Si bien es posible escribir nuestros programas java en cualquier editor de texto y compilarlos desde una consola con javac, es mas cómodo y recomendable trabajar desde un IDE. M.C Alejandro Castellanos Lopez 5 ¿Porqué Java? • El lenguaje se denominó inicialmente “Oak”. Luego pasó a denominarse “Green” tras descubrir que Oak era ya una marca comercial registrada. • El término “JAVA” fue acuñado en una cafetería frecuentada por algunos de los miembros del equipo. • No está claro si es un acrónimo o no, algunas hipotesis indican que podría tratarse de las iniciales de sus creadores: James Gosling, Arthur Van Hoff, y Andy Bechtolsheim. Otras abogan por “Just Another Vague Acronym”. • La hipótesis que más fuerza tiene es la que Java debe su nombre a un tipo de café disponible en la cafetería. M.C Alejandro Castellanos Lopez 6 Características de Java Características de Java I • Lenguaje de fácil uso orientado a objetos • Lenguaje compilado e interpretado • Facilita un entorno interpretado: – Velocidad de desarrollo – Portabilidad del código • Ejecución multitareas • Cambios dinámicos en tiempo de ejecución • Seguridad del código. M.C Alejandro Castellanos Lopez 8 La máquina Virtual Java - JVM (I) • Es una máquina hipotética que emula por software una máquina real. Es definida por una especificación. – Conjunto de instrucciones de máquina (C.O.) + Operandos – Pila – Memoria – ... • El compilador genera bytecodes (instrucciones de código maquina para la JVM) • El interprete tarduce y ejecuta los bytecodes para cada máquina específica. M.C Alejandro Castellanos Lopez 9 La máquina Virtual Java (II) Código fuente Compilador Java Byte-codes Macintosh JVM Win32 JVM UNIX JVM Código máquina Macintosh Código máquina Win32 Código máquina UNIX M.C Alejandro Castellanos Lopez 10 .java, .class, JVM??? • En Java el código fuente se escribe en un archivo de texto plano con extensión .java. • Luego, el código es compilado a archivos .class. Un archivo .class no contiene código nativo a un tipo de procesador, en cambio contiene bytecodes. • Finalmente, la aplicación es interpretada por la maquina virtual de Java, transformando los bytecodes en código nativo en tiempo de ejecución. M.C Alejandro Castellanos Lopez 11 Bytecode • El bytecode es lenguaje nativo de cualquier implementación de la maquina virtual de Java. De esta forma se logra que un programa Java corra en cualquier plataforma que disponga de una JVM. M.C Alejandro Castellanos Lopez 12 Compilador e intérprete de Java (I) • El compilador analiza la sintaxis del código fuente (con extensión .java). Si no hay errores, genera bytecodes > javac <Nombre>.java • El intérprete es la Máquina Virtual de Java que ejecuta los bytecodes (*.class) creados por el compilador. > java <Nombre> (sin extensión) > java <Nombre> arg1 arg2 … M.C Alejandro Castellanos Lopez 13 Compilador e intérprete de Java (II) Codigo fuente HelloWorld.java compilar javac HelloWorld.java HelloWorld.class java HelloWorld ejcutar bytecode M.C Alejandro Castellanos Lopez 14 Caracteristicas del lenguaje • • • • • • • • Sensible a mayúsculas/misnúsculas Comentarios Lenguaje de formato libre Identificadores Palabras reservadas Variables y constantes Convenciones de nomenclatura Tiene reglas sobre los tipos de datos M.C Alejandro Castellanos Lopez 15 Comentarios // comentario Los caracteres desde // hasta el final de la línea son ignorados. /* comentario */ Los caracteres entre /* y */ son ignorados /** comentario */ Los caracteres entre /** y */son ignorados y se incluyen en la generación autómatica de la documentación. M.C Alejandro Castellanos Lopez 16 Lenguaje de formato libre • La disposición de los elementos dentro del código es libre • Instrucciones: línea simple de código terminada en ; • Bloque de código: Conjunto de sentencias agrupadas entre llaves. { X = x + 1; Y = y + 1; } • Java permite espacios en blanco entre elementos del código X1 = y * delta; X2 = (y-1) * delta; M.C Alejandro Castellanos Lopez 17 Palabras Reservadas • Palabras con un significado especial para el compilador • Ejemplos: – – – – – – – – Nombres de tipos básicos: 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… M.C Alejandro Castellanos Lopez 18 Variables y Constantes • Variable: Zona de memoria cuyos valores van a cambiar durante la ejecucuión. • Declaración: – <tipo> <variable>; – <tipo> <var1>, <var2>, ..., <varn>; – <tipo> <var1> = <valor>; M.C Alejandro Castellanos Lopez 19 Variables y Constantes • Ejemplos de declaración de variables: – – – – int x,y,z; int x = 9; boolean terminar = false; Cliente c1 = new Cliente(); • Constantes: Zona de memoria cuyos valores no cambian • Declaración: – final <tipo> <variable> = <valor>; • Ejemplo: final double PI = 3.14159; M.C Alejandro Castellanos Lopez 20 Asignaciones • Se utiliza el operador de asignación = – <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 expresión, una función o una combinación de todos. – int x = 4; //Declaracion con asignación – x = 9; //Se asume que x está definida M.C Alejandro Castellanos Lopez 21 Un programa Simple public class ProgramaSimple { public static void main(String[] args) { System.out.println("Este es” + ”un programa simple"); System.exit(0); } } M.C Alejandro Castellanos Lopez 22 Java en detalle Inicialización de Variables • El lenguaje Java es fuertemente tipado, lo que significa que todas las variables deben ser declaradas antes de utilizarse. int unaVariable = 1; M.C Alejandro Castellanos Lopez 23 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 categorías: – – – – Lógico: boolean Texto: char Entero:byte, short, int, long Real: float, double • Los tipos referencia son apuntadores a objetos. M.C Alejandro Castellanos Lopez 25 Java en detalle Tipos Primitivos M.C Alejandro Castellanos Lopez 26 Java en detalle Tipos Primitivos (II) M.C Alejandro Castellanos Lopez 27 Tipos de datos Referencia • Un tipo referencia guarda un apuntador a la dirección donde se ubica el objeto (32 bits). • Sólo puede almacenar objetos de su propio tipo. • Ejemplo: Cuadrado cuad1, cuad2; Circulo circ1; cuad1 = new Cuadrado(); circ1 = cuad1; // Error de compliación cuad2 = cuad1’; // Ok • Todas las clases son de tipo referencia. • El valor que toma por defecto una variable de tipo referencia es null. M.C Alejandro Castellanos Lopez 28 La clase String • Java provee soporte especial para las cadenas de caracteres a través de la clase java.lang.String • No es un tipo primitivo. • Sin embargo, mediante sobrecarga de operadores pueden realizarse operaciones como: String unString = “Juan” + “ ” + “Perez”; • Java también provee un amplio conjunto de operaciones para manipular las instancias de esta clase. M.C Alejandro Castellanos Lopez 29 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 carácter fin de cadena. M.C Alejandro Castellanos Lopez 30 Conversiones de tipos • La conversión de tipos (casting) debe realizarse entre tipos de la misma naturaleza: numéricos o referencia. • Al convertir un tipo a un tamaño más pequeño se puede perder la información del los bits de mayor peso. • No hay conversión automatica con el tipo boolean! • La sintaxis es: (<tipo>) <expresion> • Ejemplo: int i = (int) 1.345; M.C Alejandro Castellanos Lopez 31 Operadores: precedencia y funcionalidad M.C Alejandro Castellanos Lopez 32 Operadores: precedencia y funcionalidad (II) M.C Alejandro Castellanos Lopez 33 Ejemplo con operadores arimeticos int i=2+3; // i vale 5 i=i+1; //i vale 6 i=6*2; //i vale 12 i=2+5*2%8; //i vale4 M.C Alejandro Castellanos Lopez 34 Ejemplo con operadores posfix y unarios int i=5; // i vale 5 System.out.println(i); //Imprime:5 System.out.println(++i); //Imprime:6 System.out.println(i++); //Imprime:6 System.out.println(i); //Imprime:7 M.C Alejandro Castellanos Lopez 35 Ejemplos de paquetes Java • java.io – El paquete de entrada/salida contiene las clases de acceso a archivos: FileInputStream y FileOutputStream, etc. • java.lang – Incluye las clases del lenguaje Java propiamente dicho: Object, Thread, Exception, System, Integer, Float, Math, String, etc. • java.util – Miscelánea de clases útiles para muchas cosas en programación. – Incluyen, Date (fecha), Dictionary (diccionario), Random (números aleatorios) y Stack (pila FIFO). M.C Alejandro Castellanos Lopez 36 java.lang • Tipos primitivos encapsulados en clases: – – – – – – – – – Boolean Byte Character Double Float Integer Long Short Void M.C Alejandro Castellanos Lopez 37 java.lang • Ejemplo: Integer (interfaz pública): – public final class Integer extends Number – Variables: • MAX_VALUE (valor mayor de “int”) • MIN_VALUE (valor mínimo de “int”) – Constructores: • Integer(int) • Integer(String) – Métodos: • Conversión a otros tipos: doubleValue(), floatValue(), intValue(), parseInt(String), toString(), valueOf(String) • Obtención de valor como un “int”: intValue() M.C Alejandro Castellanos Lopez 38 java.lang • Constructores: – String(byte[]) – String(char[]) – String(String) • Ejemplos: char[] String String String chars = {’a’,’b’,’c’}; s = new String(chars); s1 = “Hello”; s2 = new String(s1); M.C Alejandro Castellanos Lopez 39 java.lang • Métodos de manipulación de strings: – length() , concat(String), indexOf(String), lastIndexOf(String) , toUpperCase(), ... • Métodos de conversión desde otros tipos: – valueOf(double), valueOf(int), ... • Operador “+” en strings está sobrecargado: – 3+”abc”+3.4 M.C Alejandro Castellanos Lopez 40 java.lang • Clase Math • Constantes: – E, PI • Métodos: – abs(double), acos(double), asin(double), atan, cos, exp, log, max(double, double), pow(double, double), round (float) M.C Alejandro Castellanos Lopez 41 Otros paquetes • Package java.util – Clases: Vector, Date, HashMap, StringTokenizer… • Package java.text – Clases: DateFormat, DecimalFormat… (sirven para variantes de formato). • Package java.math – Clases: BigDecimal, BigInteger… (arbitraria precisión y capacidad). M.C Alejandro Castellanos Lopez 42 M.C Alejandro Castellanos Lopez 43 M.C Alejandro Castellanos Lopez 44 A=5 B=3 C=7 D=2 M.C Alejandro Castellanos Lopez 45 Desarrollar un programa en Java para convertir M.C Alejandro Castellanos Lopez 46 ¿Preguntas? M.C Alejandro Castellanos Lopez 47