Ubicación e historia



Documentos relacionados
Elementos léxicos del lenguaje de programación Java

TEMA 2. Agenda. Fundamentos de JAVA

CONCEPTOS BASICOS DEL LENGUAJE JAVA

Tema 2. El lenguaje de programación Java (Parte 1)

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Tema 3 Elementos básicos de programación

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

Fundamentos del Lenguaje de Programación Java

Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador).

Práctica 3 mtp. metodoloxía e tecnoloxía da programación. Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java.

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

Modulo 1 El lenguaje Java

1.00 Clase 3. Tipos de datos en Java

Repaso de las características más importantes de la programación Java y su adaptación a Android

FACULTAD DE INGENIERÍA

1 ELEMENTOS BASICOS DEL LENGUAJE

2. Estructura de un programa en Java

INTRODUCCIÓN A JAVA. Índice

Introducción al lenguaje de programación java

FACULTAD DE INGENIERÍA

Se guardan en archivos con extencion c y los cabezales con extension h

Taller de Programación Estructurada en Java Tema 2. Fundamentos de la programación orientada a objetos

Preliminares. Tipos de variables y Expresiones

Curso Introducción JAVA Pág.: 1

Introducción a Java LSUB. 15 de enero de 2015 GSYC

Una variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación.

Java en 2 horas. Rodrigo Santamaría

El lenguaje de Programación C. Fernando J. Pereda

Introducción al desarrollo de RIA's con Adobe Flex 3.0 Dia 4

Introducción a la Programación en Java. Page 1

Estructura de Datos [Tipos de datos concretos y tipos de datos abstractos]

Tema 2. El lenguaje JAVA

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J.

Objetivo de aprendizaje del tema

Tema 1. Introducción a JAVA

JavaScript. Contenidos. Introducción El lenguaje Validación de formularios. Programación en Internet DLSI - Universidad de Alicante 1

Prácticas: Introducción a la programación en Java. Informática (1º Ingeniería Civil) Curso 2011/2012

Resumen Lenguaje Java

Introducción a Java. Introducción a Java. Programación I

3.3 Conceptos Básicos del Lenguaje Java

! Una variable declarada con final no puede volver a ser reinicializada. numero = 2;! ! Para definir constantes

Repaso desarrollo de software Parte #1. Jorge Iván Meza Martínez

Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C

Sintaxis y Convenciones de Java. M. en C. Erika Vilches

Los caracteres de Java pueden agruparse en letras, dígitos, espacios en blanco, caracteres especiales, signos de puntuación y secuencias de escape.

Introducción a la Programación 11 O. Humberto Cervantes Maceda

Contenido. Capítulo 1. Introducción a lenguaje C 1

Computación III. Objetivo de aprendizaje del tema

Lenguaje C. Tipos de Datos Simples y Estructuras de Control

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle:

Programación Orientada a Objetos con Java

TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ;

TIPOS DE VARIABLES EN PHP. DECLARACIÓN Y ASIGNACIÓN. LA INSTRUCCIÓN ECHO PARA INSERTAR TEXTO O CÓDIGO. (CU00816B)

Java es el lenguaje de programación que

11. Algunas clases estándar de Java (II)

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

INTELIGENCIA ARTIFICIAL 2015 TALLER RÁPIDO DE PROGRAMACIÓN EN JAVA


Java en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría

Introducción a la programación orientada a objetos

Tema 2. El lenguaje de programación Java. Arrays y cadenas

FUNDAMENTOS DE JAVA PARA LA CONCURRENCIA

OPERADORES LÓGICOS Y DE COMPARACIÓN EN PHP. PRIORIDADES. EJEMPLOS. EJERCICIOS RESUELTOS. (CU00818B)

James Gosling, creador de Java

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

ACTIONSCRIPT (AS) Proyectos II. Audiovisuales. Dpto. Escultura. UPV. [sintaxis elemental]

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Introducción a la Programación en Java

UNIVERSIDAD DE SEVILLA PRÁCTICAS DE LABORATORIO ANÁLISIS SINTÁCTICO (1) LENGUAJES FORMALES Y AUTÓMATAS CURSO 2006/2007

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

(volver a Tabla de Contenidos)

1 Estructura básica de un programa C++

3.2 Operaciones aritmético-lógicas en Pascal

JAVA 1. Introducción

8. Sentencia return y métodos

Curso PHP Módulo 1 R-Luis

Tipos primitivos y clases de interés

Tema 6. Reutilización de código. Programación Programación - Tema 6: Reutilización de código

Programación básica C++

Scripting en el cliente: Javascript. Tecnologías Web

Tema 5 Sentencias de control de flujo. Fundamentos de Informática

Introducción al lenguaje Java

Arrays y Cadenas en C

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases

Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta.

Estructuras básicas de la programación en Java

El lenguaje de programación Java

Carmen. Estándares de codificación. Manuel Arias Calleja

Programación Orientada a Objetos. Java: Excepciones

Tema: Arreglos de Objetos en C++.

Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota:

Introducción al tipo de dato ARRAY

PRÁCTICA No1 POO Estructuras de Control Parte I

ISTP CIDET COMPUTACION E INFORMATICA ARREGLOS EN JAVA

ALGORITMICA Y PROGRAMACION POR OBJETOS I

Nombran variables, funciones, clases y objetos

Hecho por Víctor Orozco Puerto paralelo

Transcripción:

Introducción a Java

Ubicación e historia http:// ://java.sun.com/ JDK (Java Development Kit) JDK 1.0, 1995 JDK 1.1, 1996. Modificación en manejo de eventos; nuevas bibliotecas (reflexión, métodos remotos,...) JDK 1.2, 1998. Mejora en la eficiencia de JDK 1.1, e inclusión de productos como CORBA, JFC, etc. J2SE 1.2 Java 2 Platform,, Standard Edition,, v 1.2 Implementado por Java 2 SDK, v 1.2 (Software Development Kit) J2SE 1.3.1, 2001 J2SE 1.4.0, 2002 J2SE 1.5.0 (septiembre 2004) J2SE 1.6.0 => JAVA SE 6 (2006)

Características del lenguaje Java Orientado a objetos Sintaxis familiar para C, C++ Fácil de usar (no punteros, no herencia múltiple, manejo automático de memoria) Extensible para código nativo en otros lenguajes Multiprocesos mediante uso de hilos hilos (threads) Independiente de la

Estructura del entorno JAVA Compilador de Java Visor de HTML Visor de applets de Java Intérprete de Java rograma fuente Java Programa compilado Programa ejecutado Archivo HTML INTERNET Visor de HTML

Introducción al lenguaje Java Programa fuente Ejemplo.java Compilación: : se obtiene el fichero Ejemplo.class. javac Ejemplo.java Ejecución: Intérprete (JVM) java Ejemplo ******Fichero Ejemplo.java******* class Ejemplo { } public static void main(string[] args) ) { System.out.println( Hola Mundo ); } ******************************

Aspectos léxicos Espacios en blanco no considerados Sentencias separadas por ; Comentarios // hasta final de línea /* */ más de una línea /** */ documentación 59 palabras reservadas

Aspectos léxicos (cont.) identificadores letras, números,, _, $ no empiezan con número distinción entre mayúsculas y minúsculas convenciones métodos,, variables y objetos: nextitem, lastindex(3), robotconfrontera1,robot2 clases: : Robot, RobotConFrontera constantes: : NUMERO_PI

Literales enteros base 10... base 8 0... base 16 0x... punto flotante notación estándar 3.14159 notación científica 6.022E23

Literales (cont.) booleanos true o false caracteres Unicode - 16 bits a, \n, \\,... en octal (\ddd( ddd) ) o hexadecimal (\udddd( udddd). Ejemplo: : \141, \u0061 son a (97 en decimal); \u0391 es alfa mayúscula cadenas de caracteres texto entre Hello World Java crea objeto para cada cadena

Variables Declaración tipo identificador = valor; int d = 3, e, f = 5; byte z = 22; char x = x ; Alcance desde declaración hasta final de bloque Una variable no puede tener los mismos nombres en un bloque interno dentro de un bloque externo En el bloque interno se puede llamar a la variable del bloque externo

TIPOS Java - lenguaje strongly typed tipo para cada variable y expresión asignaciones: : se comprueba compatibilidad de expresiones no hay conversiones automáticas de tipos en asignaciones (salvo que para <variable>=<expresion expresion>, el valor de <expresión< expresión> > se pueda almacenar en el hueco de memoria de <variable> y tenga sentido la asignación; por ejemplo: entre enteros y caracteres: int = char, siempre válido char = int int, válido cuando int es un literal o combinación de literales (33, 33+ a,...) asignables a 2 bytes sin signo char = short y short = char no válidos por el signo

Números enteros tienen signo byte - 8 bits byte b; byte c = 0x55; short - 16 bits short s; short t = 0x55aA;

Números enteros (cont.) int - 32 bits int i; int j = 0x1ac; long - 64 bits long m; long n=123; literal: 123L

Números reales float - 32 bits float f; float f2 = 3.14f; float f3 = 3.14; (error, 3.14 se considera double; igual con notación científica) Rango: : (+/-)3.40282347E+38f (6-7 cifras decimales significativas) double - 64 bits double d; double pi =3.14; Rango: (+/-)1.79769313486231570E+308 (15 cifras decimales significativas)

Casting almacenar valor de un tipo en variable de tipo diferente conversión automática en asignaciones si la variable destino tiene suficiente precisión y la asignación tiene sentido si no => casting (tipo)) valor int a = 100; byte b = (byte) a; En una expresión con operadores se determina el tipo de la expresión 34, -45, 5667 tipo int 34.34, -234.45 tipo double

Ejemplo class Promote { public static void main(string[] args) ) { byte b = 42; char c = a ; short s = 1024; int i = 50000; float f = 5.67f; double d =.1234; double result = (f * b) + (i / c) - (d *s); System.out.println((f * b) + + + (i / c) + - + (d *s)); System.out.println( result = + result); } }

Caracteres char - 16 bits Unicode char c2 = 0xf132; char c3 = a ; pueden operarse como enteros int three = 3; char one = 1 ; char four = (char) (three + one); (el tipo estático,es decir en tiempo de compilación,, de una suma de char, byte, int,,... es siempre int)

Tipo booleano boolean boolean done = false; true o false tipo devuelto por op.. de comparación requerido por op.. de control

Arrays declaración int diasdemeses[]; int[] diasdemeses; asignar espacio diasdemeses = new int[12]; Tamaño puede ser una expresion a evaluar diasdemeses.length" obtiene el tamaño dar valor diasdemeses[0] = 31;... diasdemeses[11] = 31;

Arrays (cont.) otra forma (los( valores pueden ser expresiones a evaluar). Dos modos: 1) En declaración de tipo int[] diasdemeses = {(x+1),28,...,31}; 2) En cualquier lugar: int[] diasdemeses; diasdemeses = new int[]{31,(27+1),...,31}; error de ejecución si intentamos acceder a elementos fuera de rango Toman valores por defecto (variables numéricas a 0 y objetos a null) main String[] args System.out.println(args[0]);

Arrays multidimensionales double[][] matriz =new double[4][4]; o double[][] matriz = new double[4][]; // hace falta la primera dimension matriz[0] = new double[4]; matriz[1] = new double[4]; matriz[2] = new double[4]; double x[] = {1, 2, 3, 4}; matriz[3] = x;

Operadores aritméticos +, -,, *, /, % (la division de enteros es entero) asignación aritmética += -= *= /= %= a += 4; (equivale a a = a + 4;) incremento y decremento x = x+1; x+=1; ++x; x++; x = x-1; x x-=1; x --x; x--; se modifica el operando en ambos casos prefija: : 1º se modifica, después se asigna postfija: : 1º se asigna, después se modifica

Ejemplo class IncDec { public static void main(string[] args) ) { int a = 1; int b = 2; int c = ++b; int d = a++; c++; System.out.println( a = + a); a = 2 System.out.println( b = + b); b = 3 System.out.println( c = + c); c = 4 System.out.println( d = + d); d = 1 }}

Operadores de bit; operador de asignación Operadores de bit son aplicables a tipos enteros: NOT ( ~) AND (&) OR ( ) XOR (^) desplazamiento izquierda (<<) desplazamiento derecha (>>) Asignación: <variable>=<expresion expresion> Es legal cuando el tipo de <expresion> > es un subtipo del tipo de

Operadores lógicos ==,!= aplicables a cualquier par de tipos <, >, >=, <= && & aplicables a números AND lógico AND lógico evalua todos los operandos OR lógico OR lógico! evalua todos los operandos NOT lógico

Operadores lógicos (cont.) Operador ternario if-then then- else expresión? sentencia1 : sentencia2 sentencia1 y sentencia2 deben devolver el mismo tipo radio = (denom( == 0)? 0 : num / denom;

Precedencia de operadores postfijos: []. (params( params) expr++ expr-- prefijos: ++expr --expr +expr -expr ~! Creación, casting: new (type)expr multiplicativos: * / % aditivos: + - desplazamiento: << >> relacionales: < > <= >= instanceof igualdad: ==!= bitwise AND: & bitwise exclusive OR: ^ bitwise inclusive OR: lógico AND: && lógico OR: condicional:? : asignación: = += -= = *= /= %= &= ^= = <<= >>=

OPERADORES DE if-else CONTROL if (expr( expr-booleana) sent1 ; [else sent2;] else - opcional sentencias pueden ser compuestas expr-booleana - expr con valor booleano

if-else (cont.) lass IfElse { public static void main(string[] args) ) { int month = 4; String season; if (month == 12 month == 1 month == 2) { season = Winter ; } else if (month == 3 month == 4 month == 5) { season = Spring ; } else if (month == 6 month == 7 month == 8) { season = Summer ; } else if (month == 9 month == 10 month == 11) { season = Autumn ; } else { season = Error ; } System.out.println( April is in the + season +. ); } }

switch switch (expresión)) { case value1:... break;... case valuen:... break; default:... } - expresion debe ser de tipo byte, short, int,, char o tipo enumerado - value1,.. value deben ser literales - Cuando un literal coincide con expresion, ya no se comprueban más cases y se ejecutan todas las instrucciones restantes (excepto los cases ), por lo que hay que utilizar break

switch (cont.) class SwitchSeason { public static void main(string[] args) ) { int month = 4; String season; switch (month) { case 12: case 1: case 2: season = Winter ; break; case 3: case 4: case 5: season = Spring ; break;... default: season = Error ; } } }

while, do-while Sintaxis: : while (<condición condición>) <sentencia< sentencia> do <sentencia< sentencia> > while (<condición condición>); class WhileDemo { public static void main(string[] args) ) { int n = 10; while (n > 0) { System.out.println( tick + n); n--; } } } class DoWhile { public static void main(string[] args) ) { int n = 10; do { System.out.println( tick + n); } while (--( --n n > 0); } }

for for ([inicialización];[condición];[iteración inicialización];[condición];[iteración]) ]) <sentencia> Ejemplos de inicialización: int x=3, y=7 x=3, y=7 Ejemplos de iteración: b-- b--,, c++ Al principio,, [inicialización[ inicialización] -> > [condición[ condición] en adelante [iteración] -> > [condición[ condición] class ForDemo { public static void main(string[] args) ) { for (int( a = 1, b = 4; a < b; a++, b--b --)) { System.out.println( a = + a); System.out.println( b = + b); } } }

Nuevo for Desde versión 1.5 int[] numeros ={3,4,5}; for (int j : numeros) System.out.println(j); Uso también en colecciones con iteradores

continue, return continue se puede utilizar dentro de un bucle para ir directamente a ejecutar la línea que contiene la condicion break saca de un bucle return acaba la ejecución de una función class ContinueDemo { public static void main(string[] args) ) { for (int( = 0; i < 10; i++) { System.out.print(i + ); if (i % 3 == 0) continue; System.out.println( ); } } } class ReturnDemo { public static void main(string[] args) ) { System.out.println( Esto se ejecuta ); return; System.out.println( Esto no se ejecuta ); } }

Funciones globales Se puede reproducir el estilo de programación en un lenguaje como C mediante la definición de funciones static (en una o varias clases). Uso de paquetes para dividir las clases en directorios.

Uso de un classpath classpath, I Un classpath classpath es un conjunto de: Directorios Ficheros comprimidos ( archive files, de extensiones.zip,.jar, ) conteniendo clases. Son una especie de directorios La compilación o ejecución se realiza con respecto a un classpath Una clase siempre debe ser accesible (usando import o bien llamandola directamente) a través del classpath. Podría: Estar en un directorio de la forma: un-directorio directorio-del-classpath + \dir1\dir2\

Uso de un classpath, II Una clase siempre se define en un paquete. Ejemplo: **********Fichero Ejemplo.java********* package dir1.dir2; class Ejemplo { public static void main(string[] args) ) { System.out.println( Hola Mundo ); } } ************************************ Si no se especifica package, se supone incluida en el default package

Uso de un classpath classpath, III En IDEs: p.ej. NetBeans 5.0: Para cada proyecto: Directorio del proyecto (D1) Nombre del proyecto (directorio D2, que es subdirectorio de D1) Clase con el método main (por( ejemplo dir1.dir2.ejemplo, que crea el fichero D1/D2/src/dir1/dir2/Ejemplo.java ) Al compilar,, se genera: D1/D2/build/clases/dir1/dir2/Ejem plo.class El classpath utilizado es: Compilación: : D1/D2/src Ejecución: : D1/D2/build/classes

Uso de un classpath classpath, I El valor de un classpath puede ser el de la variable de entorno CLASSPATH. Por ejemplo,, en DOS: set CLASSPATH=.;c:\ejemplo1 ejemplo1\clases.zip;c: clases.zip;c:\ejeeje mplo2\clases clases\ set CLASSPATH=%CLASSPATH%;c: CLASSPATH%;c:\directorio\ en Linux: export CLASSPATH=.:/usr/lib/antlr.jar

Uso de un classpath, III Un classpath se utiliza, por ejemplo, para compilar y ejecutar con javac y java. Ejemplos en DOS/LINUX: Uso de la variable de entorno CLASSPATH (si( no está definida,, el classpath es. ) javac programas\sencillos sencillos\ejemplo.java javac programas/sencillos/ejemplo.java java programas.sencillos.ejemplo java programas.sencillos.ejemplo javac classpath c:\;c: ;c:\java Ejemplo.java Javac classpath.:./java Ejemplo.java Usa como classpath c: c:\;c: ;c:\java,.:./java El fichero Ejemplo.java podría estar, por ejemplo,, en el directorio c: c:\java\programas\sencillos\, /java/programas/sencillos programas/sencillos Cada fichero.java, usualmente, contendrá una sóla clase que se llamará igual que el fichero. La restricción es que si un fichero.java contiene muchas clases, sólo una puede ser pública y, en tal caso, el fichero se debe llamar obligatoriamente igual que la clase pública.