Download TEMA 2 Agenda - OCW

Document related concepts
no text concepts found
Transcript
TEMA 2
Fundamentos de
JAVA
V1.3
Manuel Pereira González
Agenda
ƒ Introducción
ƒ Historia de Java
ƒ Características Principales
ƒ Hello World
ƒ Tipos
ƒ Operadores
ƒ Control de Flujo
ƒ E/S básica
ƒ Atributos y Métodos
ƒ Resumen
1
Introducción: Historia de
Java
ƒ Sun Microsystems (Patrick Naughton y
ƒ
ƒ
ƒ
ƒ
James Gosling)
Java: Marca de Café
Necesaria portabilidad de código
Inicialmente orientado a Internet
Impulsado por compatibilidad con Netscape
Navigator (navegador de Internet)
Introducción: Historia de
Java
ƒ Versiones
ƒ 1996: Java v1.0
ƒ 1998: 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.1
ƒ Gratuito: http://www.eclipse.org
ƒ Versiones para Windows, Linux, etc.
2
Introducción: Características
Principales
ƒ Orientado a Objetos
ƒ Totalmente Portable
ƒ Lenguaje 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ámica
ƒ Recolector de basura (Garbage Collector)
ƒ Case Sensitive (Sensible a Mayús. / Minus.)
Introducción: Características
Principales
ƒ Compilador: javac
ƒ Interprete: java
ƒ Plataforma de ejecución: JRE (Java Runtime
Environment):
ƒ Incluye JVM
ƒ Plataforma de desarrollo: Java SDK (Java
Software Development Kit):
ƒ Incluye Compilador, etc.
ƒ Incluye JRE
3
Introducción: Hello World
Introducción: Hello World
Código Fuente
ByteCode
Ejecución
Compilador
Intérprete
HelloWorld.java
HelloWorld.class
javac
java
4
Agenda
ƒ Introducción
ƒ Tipos
ƒ Tipos Básicos
ƒ Variables
ƒ Conversión de tipos
ƒ Cadenas de Caracteres
ƒ Arrays
ƒ Operadores
ƒ Control de Flujo
ƒ E/S básica
ƒ Atributos y Métodos
ƒ Resumen
Tipos: Tipos Básicos
ƒ Enteros
TIPO
TAMAÑO EJ:
ƒ long
long
64 bits
-85738593L , 8593854L
ƒ int
int
32 bits
-28392858 , 592934
ƒ short
short
16 bits
-30000 , 8438 , -4923
ƒ byte
byte
8 bits
-32 , 123 , 39
float
32 bits
-3.56E+30F
double
64 bits
-2.49E+300 , 3.95E+200
ƒ Caracteres
char
16 bits
‘a’, ‘D’, ‘\n’, ‘\\’, ‘\”’
ƒ Lógicos
boolean 1 bit
ƒ Coma Flotante
ƒ float
ƒ double
,
8.234
true , false
5
Tipos: Tipos Básicos: Enteros
ƒ Enteros
ƒ Siempre con signo
ƒ Cuatro tipos: byte, short, int, long
ƒ Rango independiente de la plataforma
ƒ Enteros por defecto son tipo “int”
ƒ Para long añadir “L” al final
ƒ 989493849859L
ƒ -284829848L
Tipos: Tipos Básicos: Coma
Flotante
ƒ Coma Flotante
ƒ Dos tipos: float, double
ƒ Flotantes por defecto son tipo
“double”
ƒ Para float añadir “F” al final
ƒ 3.45E+21F
ƒ -284829848F
6
Tipos: Tipos Básicos: Coma
Flotante
ƒ Valores especiales de float y double: Infinity, -
Infinity, NaN (Not a Number)
Tipos: Tipos Básicos:
Caracteres
ƒ Caracteres
ƒ 16 bits -> UNICODE
ƒ Entre comillas simples: ‘a’, ‘A’, ‘b’
ƒ Secuencias de escape: ‘\b’, ‘\t’, ‘\r’,
‘\n’, ‘\’’, ‘\”’, ‘\\’
ƒ Mediante código unicode: ‘\u0041’
ƒ Hexadecimal: ‘\x41’
7
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ásicos
ƒ Estos objetos tienen
métodos útiles para
tratar con los tipos
básicos
Tipo
int
long
float
double
short
byte
char
boolean
void
Envoltorio
Integer
Long
Float
Double
Short
Byte
Character
Boolean
Void
Tipos: Tipos Básicos:
Envoltorios
8
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
9
Tipos: Cadenas de caracteres
ƒ Cadenas de Caracteres
ƒ Entre comillas dobles
ƒ Clase de utilidad String
ƒ Operador de concatenación +
Tipos: Arrays
ƒ Conjunto de datos de un tipo determinado
ƒ Copia de Arrays (System.arrayCopy)
ƒ Arrays Multidimensionales
10
Tipos: Arrays
Tipos: Arrays
11
Tipos: Arrays
ƒ Para acceder a la longitud (tamaño) de un
array: length
Agenda
ƒ Introducción
ƒ Tipos
ƒ Operadores
ƒ Aritméticos
ƒ Relacionales
ƒ Lógicos
ƒ A nivel de bit
ƒ De asignación
ƒ Precedencia de Operadores
ƒ Control de Flujo
ƒ E/S básica
ƒ Atributos y Métodos
ƒ Resumen
12
Operadores: Aritméticos
ƒ Operadores Aritméticos: +, -, *, /, %, ++,-ƒ ++ y –- son operadores de incremento, pueden ir
como prefijo o sufijo, y tienen distinta precedencia
Operadores: Aritméticos
13
Operadores: Relacionales
ƒ Sirven para comparaciones
ƒ Operadores relacionales: ==, !=, >, <, >=, <=
ƒ
Comparación de Strings: Usar equals
Operadores: Lógicos
ƒ Operadores lógicos: &, |, &&, ||, !
ƒ &: And, &&: And en cortocircuito
ƒ |: Or, ||: Or en cortocircuito
ƒ Operadores en cortocircuito dejan de evaluar
cuando se conoce a ciencia cierta el resultado
14
Operadores: Lógicos
Operadores: Lógicos
15
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;
16
Operadores: Precedencia
MAYOR
PRECEDENCIA
MENOR
PRECEDENCIA
Operador
Tipo
[] . () expr++ expr--
Operadores posfijos
++expr --expr +expr –expr ~ !
Operadores unarios
(cast) new
Creación o conversión
* / %
Multiplicación
+ -
Suma
>> >>> <<
Desplazamiento
> >= <= > instanceof
Comparación
== !=
Igualdad
&
AND a nivel de bit
^
XOR a nivel de bit
|
OR a nivel de bit
&&
AND lógico
||
OR lógico
?:
Condicional
= += -= *= /= %= &= |= =
<<= >>= >>>=
Asignación
Agenda
ƒ
ƒ
ƒ
ƒ
Introducción
Tipos
Operadores
Control de Flujo
ƒ Condicionales
ƒ If-else
ƒ switch
ƒ Bucles
ƒ while
ƒ for
ƒ do-while
ƒ E/S básica
ƒ Atributos y Métodos
ƒ Resumen
17
Control de Flujo: if-else
Control de Flujo: switch
18
Control de Flujo: switch
Control de Flujo: while
19
Control de Flujo: for
Control de Flujo: do-while
20
Control de Flujo: break y
continue
ƒ break sale de la ejecución del bucle
ƒ continue salta a la siguiente ejecución del bucle
Agenda
Introducción
Tipos
Operadores
Control de Flujo
E/S básica
ƒ Flujos de Datos
ƒ Entradas y Salidas Estándar
ƒ Atributos y Métodos
ƒ Resumen
ƒ
ƒ
ƒ
ƒ
ƒ
21
E/S Básica: Flujos de datos
ƒ Utilización de flujos de datos
ƒ
ƒ
ƒ
ƒ
(streams)
Paquete java.io
java.io.InputStream
java.io.OutputStream
FileInputStream,
BufferedInputStream, ….
E/S Básica: Entradas y Salidas
estándar
ƒ System.out -> Salida estándar
ƒ System.err -> Salida con errores
ƒ System.in -> Entrada estándar
22
Agenda
Introducción
Tipos
Operadores
Control de Flujo
E/S básica
Atributos y Métodos
ƒ Paso de Parámetros
ƒ Resumen
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Atributos y Métodos: Paso de
Parámetros
Los objetos se
pasan por
referencia.
ƒ Los tipos básicos se
pasan por valor
ƒ
23
Atributos y Métodos: Paso de
Parámetros
Agenda
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Introducción
Tipos
Operadores
Control de Flujo
E/S básica
Atributos y Métodos
Resumen
24
Resumen
ƒ
Introducción
ƒ
ƒ
ƒ
ƒ
Tipos Básicos
Variables
Conversión de tipos
Cadenas de Caracteres
Arrays
Operadores
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Aritméticos
Relacionales
Lógicos
A nivel de bit
De asignación
Precedencia de Operadores
Control de Flujo
ƒ Condicionales
ƒ If-else
ƒ switch
Tipos
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Historia de Java
Características Principales
Hello World
ƒ Bucles
ƒ while
ƒ for
ƒ do-while
ƒ
E/S básica
ƒ
ƒ
ƒ
Flujos de Datos
Entradas y Salidas estándar
Atributos y Métodos
ƒ
Paso 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.pdf
ƒ http://www.people.virginia.edu/~am2zb/c
ursos/java/aplicaciones/intro.htm
ƒ http://www.desarrolloweb.com/articulos/1
670.php?manual=57
ƒ http://pisuerga.inf.ubu.es/lsi/Invest/Java/
Tuto/Index.htm
25