Tema 2 - Fundamentos de Javaocw.uc3m.es/.../transparencias/tema2.pdf · 1 Fundamentos de JAVA TEMA...
Transcript of Tema 2 - Fundamentos de Javaocw.uc3m.es/.../transparencias/tema2.pdf · 1 Fundamentos de JAVA TEMA...
![Page 1: Tema 2 - Fundamentos de Javaocw.uc3m.es/.../transparencias/tema2.pdf · 1 Fundamentos de JAVA TEMA 2 Manuel Pereira González V1.3 Agenda Introducción Historia de Java Características](https://reader034.fdocumento.com/reader034/viewer/2022042400/5f0edf477e708231d44159bc/html5/thumbnails/1.jpg)
1
Fundamentos de JAVA
TEMA 2
Manuel Pereira GonzálezV1.3
Agenda
IntroducciónHistoria de JavaCaracterísticas PrincipalesHello World
TiposOperadoresControl de FlujoE/S básicaAtributos y MétodosResumen
![Page 2: Tema 2 - Fundamentos de Javaocw.uc3m.es/.../transparencias/tema2.pdf · 1 Fundamentos de JAVA TEMA 2 Manuel Pereira González V1.3 Agenda Introducción Historia de Java Características](https://reader034.fdocumento.com/reader034/viewer/2022042400/5f0edf477e708231d44159bc/html5/thumbnails/2.jpg)
2
Introducción: Historia de Java
Sun Microsystems (Patrick Naughton y James Gosling)Java: Marca de CaféNecesaria portabilidad de códigoInicialmente orientado a InternetImpulsado por compatibilidad con NetscapeNavigator (navegador de Internet)
Introducción: Historia de Java
Versiones1996: Java v1.01998: Java2 (v1.2). Gran paso adelante.Actual: J2SE v1.6
Prácticas J2SE (Java 2 Standard Edition) v1.5
Gratuito: http://java.sun.com
Eclipse v3.1.1Gratuito: http://www.eclipse.orgVersiones para Windows, Linux, etc.
![Page 3: Tema 2 - Fundamentos de Javaocw.uc3m.es/.../transparencias/tema2.pdf · 1 Fundamentos de JAVA TEMA 2 Manuel Pereira González V1.3 Agenda Introducción Historia de Java Características](https://reader034.fdocumento.com/reader034/viewer/2022042400/5f0edf477e708231d44159bc/html5/thumbnails/3.jpg)
3
Introducción: Características Principales
Orientado a ObjetosTotalmente PortableLenguaje Interpretado (compilado a código intermedio, no a código máquina)
Java Virtual Machine (JVM)ByteCode: Independiente de la maquina
Gestión Automática de Memoria DinámicaRecolector de basura (Garbage Collector)
Case Sensitive (Sensible a Mayús. / Minus.)
Introducción: Características Principales
Compilador: javacInterprete: javaPlataforma de ejecución: JRE (Java RuntimeEnvironment):
Incluye JVMPlataforma de desarrollo: Java SDK (Java Software Development Kit):
Incluye Compilador, etc.Incluye JRE
![Page 4: Tema 2 - Fundamentos de Javaocw.uc3m.es/.../transparencias/tema2.pdf · 1 Fundamentos de JAVA TEMA 2 Manuel Pereira González V1.3 Agenda Introducción Historia de Java Características](https://reader034.fdocumento.com/reader034/viewer/2022042400/5f0edf477e708231d44159bc/html5/thumbnails/4.jpg)
4
Introducción: Hello World
Introducción: Hello World
HelloWorld.java HelloWorld.classjavac java
Código Fuente ByteCode Ejecución
Compilador Intérprete
![Page 5: Tema 2 - Fundamentos de Javaocw.uc3m.es/.../transparencias/tema2.pdf · 1 Fundamentos de JAVA TEMA 2 Manuel Pereira González V1.3 Agenda Introducción Historia de Java Características](https://reader034.fdocumento.com/reader034/viewer/2022042400/5f0edf477e708231d44159bc/html5/thumbnails/5.jpg)
5
Agenda
IntroducciónTipos
Tipos BásicosVariablesConversión de tiposCadenas de CaracteresArrays
OperadoresControl de FlujoE/S básicaAtributos y MétodosResumen
Tipos: Tipos Básicos
Enteroslongintshortbyte
Coma Flotantefloatdouble
CaracteresLógicos true , false1 bitboolean
‘a’, ‘D’, ‘\n’, ‘\\’, ‘\”’16 bitschar
-2.49E+300 , 3.95E+20064 bitsdouble
-3.56E+30F , 8.23432 bitsfloat
-32 , 123 , 398 bitsbyte
-30000 , 8438 , -492316 bitsshort
-28392858 , 59293432 bitsint
-85738593L , 8593854L64 bitslong
EJ:TAMAÑOTIPO
![Page 6: Tema 2 - Fundamentos de Javaocw.uc3m.es/.../transparencias/tema2.pdf · 1 Fundamentos de JAVA TEMA 2 Manuel Pereira González V1.3 Agenda Introducción Historia de Java Características](https://reader034.fdocumento.com/reader034/viewer/2022042400/5f0edf477e708231d44159bc/html5/thumbnails/6.jpg)
6
Tipos: Tipos Básicos: Enteros
EnterosSiempre con signoCuatro tipos: byte, short, int, longRango independiente de la plataformaEnteros por defecto son tipo “int”Para long añadir “L” al final
989493849859L-284829848L
Tipos: Tipos Básicos: Coma Flotante
Coma FlotanteDos tipos: float, doubleFlotantes por defecto son tipo “double”Para float añadir “F” al final
3.45E+21F-284829848F
![Page 7: Tema 2 - Fundamentos de Javaocw.uc3m.es/.../transparencias/tema2.pdf · 1 Fundamentos de JAVA TEMA 2 Manuel Pereira González V1.3 Agenda Introducción Historia de Java Características](https://reader034.fdocumento.com/reader034/viewer/2022042400/5f0edf477e708231d44159bc/html5/thumbnails/7.jpg)
7
Tipos: Tipos Básicos: Coma Flotante
Valores especiales de float y double: Infinity, -Infinity, NaN (Not a Number)
Tipos: Tipos Básicos: Caracteres
Caracteres16 bits -> UNICODEEntre comillas simples: ‘a’, ‘A’, ‘b’Secuencias de escape: ‘\b’, ‘\t’, ‘\r’, ‘\n’, ‘\’’, ‘\”’, ‘\\’Mediante código unicode: ‘\u0041’Hexadecimal: ‘\x41’
![Page 8: Tema 2 - Fundamentos de Javaocw.uc3m.es/.../transparencias/tema2.pdf · 1 Fundamentos de JAVA TEMA 2 Manuel Pereira González V1.3 Agenda Introducción Historia de Java Características](https://reader034.fdocumento.com/reader034/viewer/2022042400/5f0edf477e708231d44159bc/html5/thumbnails/8.jpg)
8
Tipos: Tipos Básicos: Envoltorios
En Java, todo excepto los tipos básicos son clases y objetos (heredan de Object)Existen objetos que envuelven a los tipos básicosEstos objetos tienen métodos útiles para tratar con los tipos básicos
VoidvoidBooleanbooleanCharactercharBytebyteShortshortDoubledoubleFloatfloatLonglongIntegerintEnvoltorioTipo
Tipos: Tipos Básicos: Envoltorios
![Page 9: Tema 2 - Fundamentos de Javaocw.uc3m.es/.../transparencias/tema2.pdf · 1 Fundamentos de JAVA TEMA 2 Manuel Pereira González V1.3 Agenda Introducción Historia de Java Características](https://reader034.fdocumento.com/reader034/viewer/2022042400/5f0edf477e708231d44159bc/html5/thumbnails/9.jpg)
9
Tipos: Variables
Necesario declarar la variable antes de utilizarla
Ámbito: el bloque de código en el que está declarada (delimitado por llaves {})
tipo identificador [=valor] [,identificador[=valor]…];
Tipos: Conversión de Tipos
Cuando es posible, se realiza de forma automática
En otros casos, forzado por el programador: castings
![Page 10: Tema 2 - Fundamentos de Javaocw.uc3m.es/.../transparencias/tema2.pdf · 1 Fundamentos de JAVA TEMA 2 Manuel Pereira González V1.3 Agenda Introducción Historia de Java Características](https://reader034.fdocumento.com/reader034/viewer/2022042400/5f0edf477e708231d44159bc/html5/thumbnails/10.jpg)
10
Tipos: Cadenas de caracteres
Cadenas de CaracteresEntre comillas doblesClase de utilidad StringOperador de concatenación +
Tipos: Arrays
Conjunto de datos de un tipo determinado
Copia de Arrays (System.arrayCopy)Arrays Multidimensionales
![Page 11: Tema 2 - Fundamentos de Javaocw.uc3m.es/.../transparencias/tema2.pdf · 1 Fundamentos de JAVA TEMA 2 Manuel Pereira González V1.3 Agenda Introducción Historia de Java Características](https://reader034.fdocumento.com/reader034/viewer/2022042400/5f0edf477e708231d44159bc/html5/thumbnails/11.jpg)
11
Tipos: Arrays
Tipos: Arrays
![Page 12: Tema 2 - Fundamentos de Javaocw.uc3m.es/.../transparencias/tema2.pdf · 1 Fundamentos de JAVA TEMA 2 Manuel Pereira González V1.3 Agenda Introducción Historia de Java Características](https://reader034.fdocumento.com/reader034/viewer/2022042400/5f0edf477e708231d44159bc/html5/thumbnails/12.jpg)
12
Tipos: Arrays
Para acceder a la longitud (tamaño) de un array: length
Agenda
IntroducciónTiposOperadores
AritméticosRelacionalesLógicosA nivel de bitDe asignaciónPrecedencia de Operadores
Control de FlujoE/S básicaAtributos y MétodosResumen
![Page 13: Tema 2 - Fundamentos de Javaocw.uc3m.es/.../transparencias/tema2.pdf · 1 Fundamentos de JAVA TEMA 2 Manuel Pereira González V1.3 Agenda Introducción Historia de Java Características](https://reader034.fdocumento.com/reader034/viewer/2022042400/5f0edf477e708231d44159bc/html5/thumbnails/13.jpg)
13
Operadores: Aritméticos
Operadores Aritméticos: +, -, *, /, %, ++,--++ y –- son operadores de incremento, pueden ir como prefijo o sufijo, y tienen distinta precedencia
Operadores: Aritméticos
![Page 14: Tema 2 - Fundamentos de Javaocw.uc3m.es/.../transparencias/tema2.pdf · 1 Fundamentos de JAVA TEMA 2 Manuel Pereira González V1.3 Agenda Introducción Historia de Java Características](https://reader034.fdocumento.com/reader034/viewer/2022042400/5f0edf477e708231d44159bc/html5/thumbnails/14.jpg)
14
Operadores: Relacionales
Sirven para comparacionesOperadores relacionales: ==, !=, >, <, >=, <=Comparación de Strings: Usar equals
Operadores: Lógicos
Operadores lógicos: &, |, &&, ||, !&: And, &&: And en cortocircuito|: Or, ||: Or en cortocircuitoOperadores en cortocircuito dejan de evaluar cuando se conoce a ciencia cierta el resultado
![Page 15: Tema 2 - Fundamentos de Javaocw.uc3m.es/.../transparencias/tema2.pdf · 1 Fundamentos de JAVA TEMA 2 Manuel Pereira González V1.3 Agenda Introducción Historia de Java Características](https://reader034.fdocumento.com/reader034/viewer/2022042400/5f0edf477e708231d44159bc/html5/thumbnails/15.jpg)
15
Operadores: Lógicos
Operadores: Lógicos
![Page 16: Tema 2 - Fundamentos de Javaocw.uc3m.es/.../transparencias/tema2.pdf · 1 Fundamentos de JAVA TEMA 2 Manuel Pereira González V1.3 Agenda Introducción Historia de Java Características](https://reader034.fdocumento.com/reader034/viewer/2022042400/5f0edf477e708231d44159bc/html5/thumbnails/16.jpg)
16
Operadores: A nivel de Bit
Aplicables a enteros (int, long, short, char, byte)Operadores a nivel de bit: ~, &, |, ^, >>, >>>, <<Los valores byte y short promocionan a int
Operadores: Asignación
Operadores de Asignación: ~=, +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=, >>>=
a = a + 5; a += 5;boolean b = a > 5 ? true : false;
![Page 17: Tema 2 - Fundamentos de Javaocw.uc3m.es/.../transparencias/tema2.pdf · 1 Fundamentos de JAVA TEMA 2 Manuel Pereira González V1.3 Agenda Introducción Historia de Java Características](https://reader034.fdocumento.com/reader034/viewer/2022042400/5f0edf477e708231d44159bc/html5/thumbnails/17.jpg)
17
Operadores: Precedencia
Operadores unarios++expr --expr +expr –expr ~ !
OR lógico||
Condicional?:
Asignación= += -= *= /= %= &= |= = <<= >>= >>>=
AND lógico&&
OR a nivel de bit|
XOR a nivel de bit^
AND a nivel de bit&
Igualdad== !=
Comparación> >= <= > instanceof
Desplazamiento>> >>> <<
Suma+ -
Multiplicación* / %
Creación o conversión(cast) new
Operadores posfijos[] . () expr++ expr--
TipoOperador
MAYOR PRECEDENCIA
MENOR PRECEDENCIA
Agenda
IntroducciónTiposOperadoresControl de Flujo
CondicionalesIf-elseswitch
Bucleswhilefordo-while
E/S básicaAtributos y MétodosResumen
![Page 18: Tema 2 - Fundamentos de Javaocw.uc3m.es/.../transparencias/tema2.pdf · 1 Fundamentos de JAVA TEMA 2 Manuel Pereira González V1.3 Agenda Introducción Historia de Java Características](https://reader034.fdocumento.com/reader034/viewer/2022042400/5f0edf477e708231d44159bc/html5/thumbnails/18.jpg)
18
Control de Flujo: if-else
Control de Flujo: switch
![Page 19: Tema 2 - Fundamentos de Javaocw.uc3m.es/.../transparencias/tema2.pdf · 1 Fundamentos de JAVA TEMA 2 Manuel Pereira González V1.3 Agenda Introducción Historia de Java Características](https://reader034.fdocumento.com/reader034/viewer/2022042400/5f0edf477e708231d44159bc/html5/thumbnails/19.jpg)
19
Control de Flujo: switch
Control de Flujo: while
![Page 20: Tema 2 - Fundamentos de Javaocw.uc3m.es/.../transparencias/tema2.pdf · 1 Fundamentos de JAVA TEMA 2 Manuel Pereira González V1.3 Agenda Introducción Historia de Java Características](https://reader034.fdocumento.com/reader034/viewer/2022042400/5f0edf477e708231d44159bc/html5/thumbnails/20.jpg)
20
Control de Flujo: for
Control de Flujo: do-while
![Page 21: Tema 2 - Fundamentos de Javaocw.uc3m.es/.../transparencias/tema2.pdf · 1 Fundamentos de JAVA TEMA 2 Manuel Pereira González V1.3 Agenda Introducción Historia de Java Características](https://reader034.fdocumento.com/reader034/viewer/2022042400/5f0edf477e708231d44159bc/html5/thumbnails/21.jpg)
21
Control de Flujo: break y continue
break sale de la ejecución del buclecontinue salta a la siguiente ejecución del bucle
Agenda
IntroducciónTiposOperadoresControl de FlujoE/S básica
Flujos de DatosEntradas y Salidas Estándar
Atributos y MétodosResumen
![Page 22: Tema 2 - Fundamentos de Javaocw.uc3m.es/.../transparencias/tema2.pdf · 1 Fundamentos de JAVA TEMA 2 Manuel Pereira González V1.3 Agenda Introducción Historia de Java Características](https://reader034.fdocumento.com/reader034/viewer/2022042400/5f0edf477e708231d44159bc/html5/thumbnails/22.jpg)
22
E/S Básica: Flujos de datos
Utilización de flujos de datos (streams)Paquete java.iojava.io.InputStreamjava.io.OutputStreamFileInputStream, BufferedInputStream, ….
E/S Básica: Entradas y Salidas estándar
System.out -> Salida estándarSystem.err -> Salida con erroresSystem.in -> Entrada estándar
![Page 23: Tema 2 - Fundamentos de Javaocw.uc3m.es/.../transparencias/tema2.pdf · 1 Fundamentos de JAVA TEMA 2 Manuel Pereira González V1.3 Agenda Introducción Historia de Java Características](https://reader034.fdocumento.com/reader034/viewer/2022042400/5f0edf477e708231d44159bc/html5/thumbnails/23.jpg)
23
Agenda
IntroducciónTiposOperadoresControl de FlujoE/S básicaAtributos y Métodos
Paso de ParámetrosResumen
Atributos y Métodos: Paso de Parámetros
Los objetos se pasan por referencia.Los tipos básicos se pasan por valor
![Page 24: Tema 2 - Fundamentos de Javaocw.uc3m.es/.../transparencias/tema2.pdf · 1 Fundamentos de JAVA TEMA 2 Manuel Pereira González V1.3 Agenda Introducción Historia de Java Características](https://reader034.fdocumento.com/reader034/viewer/2022042400/5f0edf477e708231d44159bc/html5/thumbnails/24.jpg)
24
Atributos y Métodos: Paso de Parámetros
Agenda
IntroducciónTiposOperadoresControl de FlujoE/S básicaAtributos y MétodosResumen
![Page 25: Tema 2 - Fundamentos de Javaocw.uc3m.es/.../transparencias/tema2.pdf · 1 Fundamentos de JAVA TEMA 2 Manuel Pereira González V1.3 Agenda Introducción Historia de Java Características](https://reader034.fdocumento.com/reader034/viewer/2022042400/5f0edf477e708231d44159bc/html5/thumbnails/25.jpg)
25
Resumen
IntroducciónHistoria de JavaCaracterísticas PrincipalesHello World
TiposTipos BásicosVariablesConversión de tiposCadenas de CaracteresArrays
OperadoresAritméticosRelacionalesLógicosA nivel de bitDe asignaciónPrecedencia de Operadores
Control de FlujoCondicionales
If-elseswitch
Bucleswhilefordo-while
E/S básicaFlujos de DatosEntradas y Salidas estándar
Atributos y MétodosPaso de Parámetros
Resumen: Para más información
Página de Java en Sun (ver “The Java Tutorial)http://java.sun.com
Introducción a la sintaxis de Java en Español:
http://eees.ii.uam.es/alfonso/web_poo_04/teoria/material/sintaxis_java.pdfhttp://www.people.virginia.edu/~am2zb/cursos/java/aplicaciones/intro.htmhttp://www.desarrolloweb.com/articulos/1670.php?manual=57http://pisuerga.inf.ubu.es/lsi/Invest/Java/Tuto/Index.htm