SlideShare una empresa de Scribd logo
1 de 33
Información general (I)
 Profesores:
 Miguel Ángel Corella, José María Fuentes y Francisco
Saíz.
 Índice del curso:
 Introducción.
 El lenguaje Java.
 Programación orientada a objetos en Java.
 Jerarquías de clases.
 Excepciones.
 Applets.
 Interfaces de usuario.
Miguel Ángel Corella
José María Fuentes
Francisco Saíz
Información general (y II)
 Bibliografía:
 Core Java 1.2, Volúmenes I – II. C.S. Horstmann, Gary
Cornell, Prentice Hall, 1999.
 Tutorial de Java en http://java.sun.com
El lenguaje Java
Características principales (I)
 Lenguaje interpretado.
 Fuertemente tipado.
 Sintaxis similar a C/C++.
 Sin punteros: Garbage collection.
 100% portable.
 Integra librearías estándar para:
 Interfaces de usuario.
 Objetos distribuidos.
 Threads.
Características principales (y II)
 Ejecutable desde navegadores web.
 Origen: Aumento de HTML para conseguir páginas
Web dinámicas.
 Versiones:
 1995 – JDK 1.0
 1997 – JDK 1.1
 …
 2004 – JDK 1.5
Desarrollo en Java Java Development Kit (JDK):
 Java Runtime Environment (JRE):
 Java Virtual Machine.
 Java API: lenguaje básico y librerías estándar.
 Compilador a bytecode.
 Otras herramientas:
 Debuggers.
 Applet viewer.
 Compiladores RMI
 …
Compilación e interpretación
class Ejemplo {
...
}
class Aux {
...
}
Ejemplo.java
Compilador
Java
Ejemplo.class Aux.class
Java Virtual Machine
JVM
Comparativa: Java vs. C++ (I)
 Interpretado
 Portable
 Todo memoria dinámica
 Garbage collection
 No existen punteros
 Todos los métodos virtuales
 No hay herencia múltiple
 Información sobre clases
en tiempo de ejecución.
 Tratamiento genérico
de tipos (wrappers).
Java C++• Compilado
• Aspectos no portables
• Memoria automática y dinámica
• Gestión del programador
• Existen punteros
• No todos los métodos virtuales
• Hay herencia múltiple
• Información muy escasa
(dynamic_cast).
• Punteros a void.
Comparativa: Java vs. C++ (y II)
 Soporte estándar para interfaces:
AWT, SWING
 Soporte estándar para concurrencia
 Soporte estándar para objetos
distribuidos
 Ejecutable en navegadores web
 Homogeneidad del lenguaje
 Lenguaje bien diseñado
Java C++
• No incluido en el lenguaje:
Microsoft MFC, Borland OWL…
• No incluido en el lenguaje
• No incluido en el lenguaje:
CORBA, ActiveX
• No ejecutable por navegadores
• Múltiples sintaxis
• Compatibilidad con C
Elementos del lenguaje
Aspectos léxicos Ignora múltiples espacios en blanco
 Sentencias separadas por “;”.
 Comentarios:
 /* … */  Múltiples líneas de comentario
 //  Una única línea de comentario
 Case – sensitive.
 Convenios de nomenclatura:
 Clases con mayúscula.
 Métodos y variables con minúscula.
 etc…
Valores y variables
 Tipos básicos:
 Variables y literales:
 Declaración y utilización de variables y literales similar a
C/C++.
byte 1 byte
char 2 bytes (sin signo, caracteres Unicode, incluyen los ASCII)
short 2 bytes
int 4 bytes
long 8 bytes
float 4 bytes
double 8 bytes
boolean 1 bit (true ó false, no compatible con tipos numéricos)
Compatibilidad entre tipos
Ensanchar: automático
f = c;
d = s;
f = l;
byte b = 42;
char c = 'a'; // también válido: c = 97;
short s = 1024;
int i = 50000;
long l = 120000;
float f = 5.67f;
double d = .1234;
double result = (f*b) + (i/c) - (d*s);
Estrechar: cast explícito
c = (char) i;
b = (byte) d;
f = (float) d;
char: cast explícito
s = (short) c;
c = (char) s;
c = (char) b;
Operadores
 En total hay 46 operadores.
 Numéricos:
+, -, *, /, %, +=, -=, *=, /=, %=, --, ++
 Lógicos:
&&, ||, !
 Operadores de bit:
&, |, ^, ~, >>, <<
 Relacionales:
>, <, >=, <=, ==, !=
 Condicional:
If-then-else: (condicion) ? acción1 : acción2
Precedencia de operadores
( ) [ ] .
++ -- ~ !
new
* / %
+ -
>> >>> <<
> >= < <= instanceof
== !=
&
^
|
&&
||
? :
= += *= -= /=
Ordendeejecucióndeoperadores
Igualdad de precedencia
Arrays
 Declaración:
int a[];
a = new int[3];
int b[] = {1, 2, 3, 4};
• Reserva de tamaño:
• Asignación de valores:
a[1] = 7;
b = a;
• Errores:
a[6] = 7; // Fuera del rango
a = {1, 2, 3}; // Sólo válido en la inicialización
int c[5]; // La dimensión sólo al hacer new
char str[] = “hola”; // Los Strings no son arrays en Java
Arrays multidimensionales
float a[][] = new float [4][3];
float m[][] = new float [4][];
m[0] = new float [2];
m[1] = new float [5];
m[2] = new float [m[1].length];
float x[] = {4.5, 8/3, m[2][1]};
m[3] = x; // O cualquier expresión que devuelva un float[]
a[0] = m[1]; // Las variables de array no son constantes
a[2, 1] = 7.3 // Error de sintaxis: a[2][1]
Expresiones condicionales Dos tipos de condicionales.
if (condición1) acción1 [else acción2] [else if (condición2)…
switch (expresión) {
case valor1:
…
break;
case valor2:
…
break;
default:
…
}
byte, char, short o int
Tienen que ser literales
Iteraciones Tres tipos de iteraciones.
while (condición1) {
…
}
do {
…
} while (condición1)
for (inicialización; condición; iteración) {
…
}
Clases y objetos
en Java
Clases Estructura de datos + funciones.
class CuentaBancaria {
long numero;
String titular;
long saldo;
void ingresar (long cantidad) {
saldo += cantidad;
}
void retirar (long cantidad) {
if (cantidad > saldo)
System.out.println ("Saldo insuficiente");
else saldo -= cantidad;
}
}
Variables
(datos)
Funciones
Variables de una clase
 Definen una estructura de datos (similar al struct de C)
• Pueden almacenar objetos de otras clases
• Por defecto, se inicializan a 0, false y/o null.
class CuentaBancaria {
long numero;
String titular;
long saldo;
}
struct CuentaBancaria {
long numero;
char *titular;
long saldo;
};
class CuentaBancaria {
long numero;
Cliente titular;
long saldo = 0;
}
class Cliente {
String nombre;
long dni;
}
Creación de objetos Una clase define un tipo de dato que se puede utilizar para declarar
variables.
 Declarar un objeto es declarar una referencia al objeto.
 Los objetos se crean mediante el operador new.
 Crear un objeto es reservar memoria para sus variables.
 El operador new reserva memoria y devuelve una referencia.
CuentaBancaria cuenta1, cuenta2;
cuenta1 = new CuentaBancaria();
CuentaBancaria
0
null
0
numero
titular
saldo
Acceso a variables
 El acceso a las variables de un objeto se lleva a cabo
mediante la notación “.”
CuentaBancaria cuenta1, cuenta2;
cuenta1 = new CuentaBancaria ();
cuenta2 = cuenta1;
Cliente cliente1 = new Cliente ();
cliente1.nombre = "Luis Gomez";
cliente1.dni = 25672046;
cuenta1.numero = 6831531;
cuenta1.titular = cliente1;
cuenta1.saldo = 100000;
cuenta2.saldo = 200000;
cuenta2.titular.nombre = "Pilar Garcia";
Métodos
 Los métodos son funciones definidas dentro de un clase.
 Son similares a un puntero a función dentro de un struct de
C.
 Los métodos de una clase pueden referenciar directamente
las variables de la misma.
 Los métodos se invocan sobre un objeto de la clase a la que
pertenecen mediante la notación “.”.
 Al ejecutar un método sobre un objeto de la clase X, las
variables de dicha clase X toman los valores que tiene el
objeto.
cuenta2.ingresar(1000);
Llamadas desde métodos
 Los métodos pueden invocar directamente otros métodos
de la misma clase (sin “.”).
 Al ejecutar un método invocado sobre un objeto de clase A,
las llamadas a otros métodos de la clase A se ejecutan sobre
el mismo objeto a menos que se invoquen sobre otro objeto
cuenta3 = new CuentaBancaria ();
cuenta2.transferencia (cuenta3, 1000);
class CuentaBancaria {
...
void transferencia (CuentaBancaria destino, long cantidad) {
if (cantidad <= saldo ) {
retirar (cantidad);
destino.ingresar (cantidad);
}
}
}
Acceso a objetos
class X { String nombre; }
class Y { int i; }
class Z { String nombre; }
class A {
int num;
X obj4;
void f (int n, Y obj3) {
Z obj2 = new Z ();
obj4.nombre = obj2.nombre
num = obj3.i + n;
}
}
2.
1. 3.
4.
1. Variable del objeto de la invocación
2. Objeto definido en variable local
3. Objeto pasado como argumento
4. Objeto almacenado en variable de
clase
Constructores
 Métodos ejecutados automáticamente al crear un objeto de
una clase (“new”).
 Se usan para llevar a cabo labores de inicialización.
 Simplifican la sintaxis y apoyan el encapsulamiento de los
datos.
 Los métodos constructores de una clase tienen que tener el
mismo nombre que la clase.
class Cliente {
// Constructor de la clase Cliente
Cliente (String str, long num) {
...;
}
}
Ejemplos de constructores
class Cliente {
String nombre;
long dni;
Cliente (String str, long num) {
nombre = str;
dni = num;
}
}
class CuentaBancaria {
long numero;
Cliente titular;
long saldo;
CuentaBancaria (long num, Cliente clt, long s) {
numero = num; titular = clt; saldo = s;
}
}
Ejemplos de invocación
 Automáticamente al crear objetos.
Cliente cliente1 = new Cliente ("Luis Gomez", 25672046);
CuentaBancaria cuenta1 =
new CuentaBancaria (6831531, cliente1, 100000);
CuentaBancaria cuenta2 =
new CuentaBancaria (8350284,
new Cliente ("Pilar Garcia", 15165442),
200000);
Constructor por defecto
 Si no se definen constructores, Java proporciona
uno por defecto.
 Sin parámetros: Llamadas del tipo new X();
 Sin funcionalidad: Variables inicializadas por defecto.
 Pero si se define un constructor (o más) el
constructor por defecto no es definido.
Java

Más contenido relacionado

La actualidad más candente

1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...Jose Emilio Labra Gayo
 
Javascript Módulo 5 - javascript sentencia, expresión, variable, función - Un...
Javascript Módulo 5 - javascript sentencia, expresión, variable, función - Un...Javascript Módulo 5 - javascript sentencia, expresión, variable, función - Un...
Javascript Módulo 5 - javascript sentencia, expresión, variable, función - Un...David Zapateria Besteiro
 
A1 u1-16230227
A1 u1-16230227A1 u1-16230227
A1 u1-16230227erikalejo
 
Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...
Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...
Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...Eudris Cabrera
 
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez.NET UY Meetup
 
Java fundamentos -15 consejos practicos open saturday 2018
Java fundamentos -15 consejos practicos open saturday 2018Java fundamentos -15 consejos practicos open saturday 2018
Java fundamentos -15 consejos practicos open saturday 2018Eudris Cabrera
 
IntroduccióN A Visual C
IntroduccióN A Visual CIntroduccióN A Visual C
IntroduccióN A Visual Coswchavez
 
6 Principios de Programación Orientada a Objetos
6 Principios de Programación Orientada a Objetos6 Principios de Programación Orientada a Objetos
6 Principios de Programación Orientada a ObjetosJose Emilio Labra Gayo
 
Examen unidad 1 ortiz enciso antonio aldahir
Examen unidad 1 ortiz enciso antonio aldahirExamen unidad 1 ortiz enciso antonio aldahir
Examen unidad 1 ortiz enciso antonio aldahirNEQUIZ URIEL
 

La actualidad más candente (19)

1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...
1 Introducción a los Lenguajes de Programación y a la Programación Orientada ...
 
Javascript Módulo 5 - javascript sentencia, expresión, variable, función - Un...
Javascript Módulo 5 - javascript sentencia, expresión, variable, función - Un...Javascript Módulo 5 - javascript sentencia, expresión, variable, función - Un...
Javascript Módulo 5 - javascript sentencia, expresión, variable, función - Un...
 
Introducción a Scala
Introducción a ScalaIntroducción a Scala
Introducción a Scala
 
TUTORIAL JAVA
TUTORIAL JAVATUTORIAL JAVA
TUTORIAL JAVA
 
A1 u1-16230227
A1 u1-16230227A1 u1-16230227
A1 u1-16230227
 
C sharp intro1
C sharp intro1C sharp intro1
C sharp intro1
 
Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...
Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...
Java fundamentos -15 consejos prácticos - Encuentro Universitario Comunidad J...
 
Poo 1
Poo 1Poo 1
Poo 1
 
Introducción a la Programación en Visual C# (C Sharp)
Introducción a la Programación en Visual C# (C Sharp)Introducción a la Programación en Visual C# (C Sharp)
Introducción a la Programación en Visual C# (C Sharp)
 
Aejemplosc
AejemploscAejemplosc
Aejemplosc
 
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
.NET UY Meetup 6 - Integrando con C/C++ por medio de P/Invoke by Juan Ramirez
 
Clase IX
Clase IXClase IX
Clase IX
 
Actividad dll
Actividad dllActividad dll
Actividad dll
 
Java fundamentos -15 consejos practicos open saturday 2018
Java fundamentos -15 consejos practicos open saturday 2018Java fundamentos -15 consejos practicos open saturday 2018
Java fundamentos -15 consejos practicos open saturday 2018
 
IntroduccióN A Visual C
IntroduccióN A Visual CIntroduccióN A Visual C
IntroduccióN A Visual C
 
Examen Unidad 1
Examen Unidad 1Examen Unidad 1
Examen Unidad 1
 
Ruby para Java Developers
Ruby para Java DevelopersRuby para Java Developers
Ruby para Java Developers
 
6 Principios de Programación Orientada a Objetos
6 Principios de Programación Orientada a Objetos6 Principios de Programación Orientada a Objetos
6 Principios de Programación Orientada a Objetos
 
Examen unidad 1 ortiz enciso antonio aldahir
Examen unidad 1 ortiz enciso antonio aldahirExamen unidad 1 ortiz enciso antonio aldahir
Examen unidad 1 ortiz enciso antonio aldahir
 

Destacado

Vectores y Objetos Programacion Orientada a Objetos
Vectores y Objetos Programacion Orientada a ObjetosVectores y Objetos Programacion Orientada a Objetos
Vectores y Objetos Programacion Orientada a ObjetosJanet Brigyth Camacho Medina
 
Arreglos Unidimensionales
Arreglos UnidimensionalesArreglos Unidimensionales
Arreglos UnidimensionalesCindy
 
Arreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansArreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansDaniel Gómez
 
Caracteristicas del modelo orientado a objetos
Caracteristicas del modelo orientado a objetosCaracteristicas del modelo orientado a objetos
Caracteristicas del modelo orientado a objetosJose Diaz Silva
 
Arreglos Bidimensionales - Java - NetBeans
Arreglos Bidimensionales - Java - NetBeansArreglos Bidimensionales - Java - NetBeans
Arreglos Bidimensionales - Java - NetBeansDaniel Gómez
 
Clase 2 Estructuras de Control
Clase 2 Estructuras de ControlClase 2 Estructuras de Control
Clase 2 Estructuras de ControlDesireé mart?ez
 
10 Curso de POO en java - métodos modificadores y analizadores
10 Curso de POO en java - métodos modificadores y analizadores10 Curso de POO en java - métodos modificadores y analizadores
10 Curso de POO en java - métodos modificadores y analizadoresClara Patricia Avella Ibañez
 
ENTRADA Y SALIDA DE DATOS EN JAVA
ENTRADA Y SALIDA DE DATOS EN JAVAENTRADA Y SALIDA DE DATOS EN JAVA
ENTRADA Y SALIDA DE DATOS EN JAVAGabriel Suarez
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetosClara Patricia Avella Ibañez
 
11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()Clara Patricia Avella Ibañez
 
Estructuras de control en Java
Estructuras de control en JavaEstructuras de control en Java
Estructuras de control en Javaquesada_diego
 

Destacado (20)

Leccion 5 Java
Leccion 5 JavaLeccion 5 Java
Leccion 5 Java
 
Vectores y Objetos Programacion Orientada a Objetos
Vectores y Objetos Programacion Orientada a ObjetosVectores y Objetos Programacion Orientada a Objetos
Vectores y Objetos Programacion Orientada a Objetos
 
Arreglos unidimensionales
Arreglos unidimensionalesArreglos unidimensionales
Arreglos unidimensionales
 
Arreglos Unidimensionales
Arreglos UnidimensionalesArreglos Unidimensionales
Arreglos Unidimensionales
 
Arreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansArreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeans
 
Caracteristicas del modelo orientado a objetos
Caracteristicas del modelo orientado a objetosCaracteristicas del modelo orientado a objetos
Caracteristicas del modelo orientado a objetos
 
13 Curso de POO en java - métodos propios de clase
13 Curso de POO en java - métodos propios de clase13 Curso de POO en java - métodos propios de clase
13 Curso de POO en java - métodos propios de clase
 
14 Curso de POO en java - estructuras condicionales
14 Curso de POO en java - estructuras condicionales14 Curso de POO en java - estructuras condicionales
14 Curso de POO en java - estructuras condicionales
 
Arreglos Bidimensionales - Java - NetBeans
Arreglos Bidimensionales - Java - NetBeansArreglos Bidimensionales - Java - NetBeans
Arreglos Bidimensionales - Java - NetBeans
 
Clase 2 Estructuras de Control
Clase 2 Estructuras de ControlClase 2 Estructuras de Control
Clase 2 Estructuras de Control
 
10 Curso de POO en java - métodos modificadores y analizadores
10 Curso de POO en java - métodos modificadores y analizadores10 Curso de POO en java - métodos modificadores y analizadores
10 Curso de POO en java - métodos modificadores y analizadores
 
12 Curso de POO en java - entrada y salida de datos
12 Curso de POO en java - entrada y salida de datos12 Curso de POO en java - entrada y salida de datos
12 Curso de POO en java - entrada y salida de datos
 
ENTRADA Y SALIDA DE DATOS EN JAVA
ENTRADA Y SALIDA DE DATOS EN JAVAENTRADA Y SALIDA DE DATOS EN JAVA
ENTRADA Y SALIDA DE DATOS EN JAVA
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos
 
15 Curso de POO en java - estructuras repetitivas
15 Curso de POO en java - estructuras repetitivas15 Curso de POO en java - estructuras repetitivas
15 Curso de POO en java - estructuras repetitivas
 
18 Curso POO en java - contenedores
18 Curso POO en java - contenedores18 Curso POO en java - contenedores
18 Curso POO en java - contenedores
 
11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()
 
Estructuras de control en Java
Estructuras de control en JavaEstructuras de control en Java
Estructuras de control en Java
 
7 Curso de POO en java - diagrama de clases
7 Curso de POO en java - diagrama de clases7 Curso de POO en java - diagrama de clases
7 Curso de POO en java - diagrama de clases
 

Similar a Java

03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQuery03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQueryDanae Aguilar Guzmán
 
Java Ago Dic07
Java Ago Dic07Java Ago Dic07
Java Ago Dic07adrianpro
 
Introduccion
IntroduccionIntroduccion
Introduccionreivax
 
Mule Librerias en Java
Mule Librerias en JavaMule Librerias en Java
Mule Librerias en JavaManuel Antonio
 
Estructura basica de un programa
Estructura basica de un programaEstructura basica de un programa
Estructura basica de un programaRay-kun Olivera
 
2.1 caracteristicas de lenguajes de programación
2.1 caracteristicas de lenguajes de programación2.1 caracteristicas de lenguajes de programación
2.1 caracteristicas de lenguajes de programaciónoviedospablo
 
iNTRODUCCION AL LENGUAJE JAVA
iNTRODUCCION AL LENGUAJE  JAVAiNTRODUCCION AL LENGUAJE  JAVA
iNTRODUCCION AL LENGUAJE JAVAJesus Alex Haro
 
Curso Java Inicial 2 - Introducción y Sintaxis
Curso Java Inicial  2 - Introducción y SintaxisCurso Java Inicial  2 - Introducción y Sintaxis
Curso Java Inicial 2 - Introducción y SintaxisEmilio Aviles Avila
 
OCP, JSE 6 Programmer (1z0-851) - Guia practica 3 de 7(ap-is)
OCP, JSE 6 Programmer (1z0-851) - Guia practica 3 de 7(ap-is)OCP, JSE 6 Programmer (1z0-851) - Guia practica 3 de 7(ap-is)
OCP, JSE 6 Programmer (1z0-851) - Guia practica 3 de 7(ap-is)Oscar V
 
El lenguaje C++ (1).ppt
El lenguaje C++ (1).pptEl lenguaje C++ (1).ppt
El lenguaje C++ (1).pptJOSECASHUUG
 
IntroduccióN A Visual C
IntroduccióN A  Visual  CIntroduccióN A  Visual  C
IntroduccióN A Visual Coswchavez
 
Programacion orientada a objetos 2
Programacion orientada a objetos 2Programacion orientada a objetos 2
Programacion orientada a objetos 2mellcv
 

Similar a Java (20)

03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQuery03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQuery
 
POO5-Cpp-0910.pdf
POO5-Cpp-0910.pdfPOO5-Cpp-0910.pdf
POO5-Cpp-0910.pdf
 
C ++.ppt
C ++.pptC ++.ppt
C ++.ppt
 
Java Ago Dic07
Java Ago Dic07Java Ago Dic07
Java Ago Dic07
 
Introduccion
IntroduccionIntroduccion
Introduccion
 
Mule Librerias en Java
Mule Librerias en JavaMule Librerias en Java
Mule Librerias en Java
 
C ++
C ++C ++
C ++
 
Estructura basica de un programa
Estructura basica de un programaEstructura basica de un programa
Estructura basica de un programa
 
r124736.PPT
r124736.PPTr124736.PPT
r124736.PPT
 
2.1 caracteristicas de lenguajes de programación
2.1 caracteristicas de lenguajes de programación2.1 caracteristicas de lenguajes de programación
2.1 caracteristicas de lenguajes de programación
 
iNTRODUCCION AL LENGUAJE JAVA
iNTRODUCCION AL LENGUAJE  JAVAiNTRODUCCION AL LENGUAJE  JAVA
iNTRODUCCION AL LENGUAJE JAVA
 
Curso Java Inicial 2 - Introducción y Sintaxis
Curso Java Inicial  2 - Introducción y SintaxisCurso Java Inicial  2 - Introducción y Sintaxis
Curso Java Inicial 2 - Introducción y Sintaxis
 
OCP, JSE 6 Programmer (1z0-851) - Guia practica 3 de 7(ap-is)
OCP, JSE 6 Programmer (1z0-851) - Guia practica 3 de 7(ap-is)OCP, JSE 6 Programmer (1z0-851) - Guia practica 3 de 7(ap-is)
OCP, JSE 6 Programmer (1z0-851) - Guia practica 3 de 7(ap-is)
 
El lenguaje C++ (1).ppt
El lenguaje C++ (1).pptEl lenguaje C++ (1).ppt
El lenguaje C++ (1).ppt
 
El lenguaje C++.ppt
El lenguaje C++.pptEl lenguaje C++.ppt
El lenguaje C++.ppt
 
manual de C#
manual de C#manual de C#
manual de C#
 
Manual c# 2
Manual c# 2Manual c# 2
Manual c# 2
 
Manual de c#
Manual de c#Manual de c#
Manual de c#
 
IntroduccióN A Visual C
IntroduccióN A  Visual  CIntroduccióN A  Visual  C
IntroduccióN A Visual C
 
Programacion orientada a objetos 2
Programacion orientada a objetos 2Programacion orientada a objetos 2
Programacion orientada a objetos 2
 

Último

El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramDIDIERFERNANDOGUERRE
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 

Último (20)

El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ram
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 

Java

  • 1.
  • 2. Información general (I)  Profesores:  Miguel Ángel Corella, José María Fuentes y Francisco Saíz.  Índice del curso:  Introducción.  El lenguaje Java.  Programación orientada a objetos en Java.  Jerarquías de clases.  Excepciones.  Applets.  Interfaces de usuario. Miguel Ángel Corella José María Fuentes Francisco Saíz
  • 3. Información general (y II)  Bibliografía:  Core Java 1.2, Volúmenes I – II. C.S. Horstmann, Gary Cornell, Prentice Hall, 1999.  Tutorial de Java en http://java.sun.com
  • 5. Características principales (I)  Lenguaje interpretado.  Fuertemente tipado.  Sintaxis similar a C/C++.  Sin punteros: Garbage collection.  100% portable.  Integra librearías estándar para:  Interfaces de usuario.  Objetos distribuidos.  Threads.
  • 6. Características principales (y II)  Ejecutable desde navegadores web.  Origen: Aumento de HTML para conseguir páginas Web dinámicas.  Versiones:  1995 – JDK 1.0  1997 – JDK 1.1  …  2004 – JDK 1.5
  • 7. Desarrollo en Java Java Development Kit (JDK):  Java Runtime Environment (JRE):  Java Virtual Machine.  Java API: lenguaje básico y librerías estándar.  Compilador a bytecode.  Otras herramientas:  Debuggers.  Applet viewer.  Compiladores RMI  …
  • 8. Compilación e interpretación class Ejemplo { ... } class Aux { ... } Ejemplo.java Compilador Java Ejemplo.class Aux.class Java Virtual Machine JVM
  • 9. Comparativa: Java vs. C++ (I)  Interpretado  Portable  Todo memoria dinámica  Garbage collection  No existen punteros  Todos los métodos virtuales  No hay herencia múltiple  Información sobre clases en tiempo de ejecución.  Tratamiento genérico de tipos (wrappers). Java C++• Compilado • Aspectos no portables • Memoria automática y dinámica • Gestión del programador • Existen punteros • No todos los métodos virtuales • Hay herencia múltiple • Información muy escasa (dynamic_cast). • Punteros a void.
  • 10. Comparativa: Java vs. C++ (y II)  Soporte estándar para interfaces: AWT, SWING  Soporte estándar para concurrencia  Soporte estándar para objetos distribuidos  Ejecutable en navegadores web  Homogeneidad del lenguaje  Lenguaje bien diseñado Java C++ • No incluido en el lenguaje: Microsoft MFC, Borland OWL… • No incluido en el lenguaje • No incluido en el lenguaje: CORBA, ActiveX • No ejecutable por navegadores • Múltiples sintaxis • Compatibilidad con C
  • 12. Aspectos léxicos Ignora múltiples espacios en blanco  Sentencias separadas por “;”.  Comentarios:  /* … */  Múltiples líneas de comentario  //  Una única línea de comentario  Case – sensitive.  Convenios de nomenclatura:  Clases con mayúscula.  Métodos y variables con minúscula.  etc…
  • 13. Valores y variables  Tipos básicos:  Variables y literales:  Declaración y utilización de variables y literales similar a C/C++. byte 1 byte char 2 bytes (sin signo, caracteres Unicode, incluyen los ASCII) short 2 bytes int 4 bytes long 8 bytes float 4 bytes double 8 bytes boolean 1 bit (true ó false, no compatible con tipos numéricos)
  • 14. Compatibilidad entre tipos Ensanchar: automático f = c; d = s; f = l; byte b = 42; char c = 'a'; // también válido: c = 97; short s = 1024; int i = 50000; long l = 120000; float f = 5.67f; double d = .1234; double result = (f*b) + (i/c) - (d*s); Estrechar: cast explícito c = (char) i; b = (byte) d; f = (float) d; char: cast explícito s = (short) c; c = (char) s; c = (char) b;
  • 15. Operadores  En total hay 46 operadores.  Numéricos: +, -, *, /, %, +=, -=, *=, /=, %=, --, ++  Lógicos: &&, ||, !  Operadores de bit: &, |, ^, ~, >>, <<  Relacionales: >, <, >=, <=, ==, !=  Condicional: If-then-else: (condicion) ? acción1 : acción2
  • 16. Precedencia de operadores ( ) [ ] . ++ -- ~ ! new * / % + - >> >>> << > >= < <= instanceof == != & ^ | && || ? : = += *= -= /= Ordendeejecucióndeoperadores Igualdad de precedencia
  • 17. Arrays  Declaración: int a[]; a = new int[3]; int b[] = {1, 2, 3, 4}; • Reserva de tamaño: • Asignación de valores: a[1] = 7; b = a; • Errores: a[6] = 7; // Fuera del rango a = {1, 2, 3}; // Sólo válido en la inicialización int c[5]; // La dimensión sólo al hacer new char str[] = “hola”; // Los Strings no son arrays en Java
  • 18. Arrays multidimensionales float a[][] = new float [4][3]; float m[][] = new float [4][]; m[0] = new float [2]; m[1] = new float [5]; m[2] = new float [m[1].length]; float x[] = {4.5, 8/3, m[2][1]}; m[3] = x; // O cualquier expresión que devuelva un float[] a[0] = m[1]; // Las variables de array no son constantes a[2, 1] = 7.3 // Error de sintaxis: a[2][1]
  • 19. Expresiones condicionales Dos tipos de condicionales. if (condición1) acción1 [else acción2] [else if (condición2)… switch (expresión) { case valor1: … break; case valor2: … break; default: … } byte, char, short o int Tienen que ser literales
  • 20. Iteraciones Tres tipos de iteraciones. while (condición1) { … } do { … } while (condición1) for (inicialización; condición; iteración) { … }
  • 22. Clases Estructura de datos + funciones. class CuentaBancaria { long numero; String titular; long saldo; void ingresar (long cantidad) { saldo += cantidad; } void retirar (long cantidad) { if (cantidad > saldo) System.out.println ("Saldo insuficiente"); else saldo -= cantidad; } } Variables (datos) Funciones
  • 23. Variables de una clase  Definen una estructura de datos (similar al struct de C) • Pueden almacenar objetos de otras clases • Por defecto, se inicializan a 0, false y/o null. class CuentaBancaria { long numero; String titular; long saldo; } struct CuentaBancaria { long numero; char *titular; long saldo; }; class CuentaBancaria { long numero; Cliente titular; long saldo = 0; } class Cliente { String nombre; long dni; }
  • 24. Creación de objetos Una clase define un tipo de dato que se puede utilizar para declarar variables.  Declarar un objeto es declarar una referencia al objeto.  Los objetos se crean mediante el operador new.  Crear un objeto es reservar memoria para sus variables.  El operador new reserva memoria y devuelve una referencia. CuentaBancaria cuenta1, cuenta2; cuenta1 = new CuentaBancaria(); CuentaBancaria 0 null 0 numero titular saldo
  • 25. Acceso a variables  El acceso a las variables de un objeto se lleva a cabo mediante la notación “.” CuentaBancaria cuenta1, cuenta2; cuenta1 = new CuentaBancaria (); cuenta2 = cuenta1; Cliente cliente1 = new Cliente (); cliente1.nombre = "Luis Gomez"; cliente1.dni = 25672046; cuenta1.numero = 6831531; cuenta1.titular = cliente1; cuenta1.saldo = 100000; cuenta2.saldo = 200000; cuenta2.titular.nombre = "Pilar Garcia";
  • 26. Métodos  Los métodos son funciones definidas dentro de un clase.  Son similares a un puntero a función dentro de un struct de C.  Los métodos de una clase pueden referenciar directamente las variables de la misma.  Los métodos se invocan sobre un objeto de la clase a la que pertenecen mediante la notación “.”.  Al ejecutar un método sobre un objeto de la clase X, las variables de dicha clase X toman los valores que tiene el objeto. cuenta2.ingresar(1000);
  • 27. Llamadas desde métodos  Los métodos pueden invocar directamente otros métodos de la misma clase (sin “.”).  Al ejecutar un método invocado sobre un objeto de clase A, las llamadas a otros métodos de la clase A se ejecutan sobre el mismo objeto a menos que se invoquen sobre otro objeto cuenta3 = new CuentaBancaria (); cuenta2.transferencia (cuenta3, 1000); class CuentaBancaria { ... void transferencia (CuentaBancaria destino, long cantidad) { if (cantidad <= saldo ) { retirar (cantidad); destino.ingresar (cantidad); } } }
  • 28. Acceso a objetos class X { String nombre; } class Y { int i; } class Z { String nombre; } class A { int num; X obj4; void f (int n, Y obj3) { Z obj2 = new Z (); obj4.nombre = obj2.nombre num = obj3.i + n; } } 2. 1. 3. 4. 1. Variable del objeto de la invocación 2. Objeto definido en variable local 3. Objeto pasado como argumento 4. Objeto almacenado en variable de clase
  • 29. Constructores  Métodos ejecutados automáticamente al crear un objeto de una clase (“new”).  Se usan para llevar a cabo labores de inicialización.  Simplifican la sintaxis y apoyan el encapsulamiento de los datos.  Los métodos constructores de una clase tienen que tener el mismo nombre que la clase. class Cliente { // Constructor de la clase Cliente Cliente (String str, long num) { ...; } }
  • 30. Ejemplos de constructores class Cliente { String nombre; long dni; Cliente (String str, long num) { nombre = str; dni = num; } } class CuentaBancaria { long numero; Cliente titular; long saldo; CuentaBancaria (long num, Cliente clt, long s) { numero = num; titular = clt; saldo = s; } }
  • 31. Ejemplos de invocación  Automáticamente al crear objetos. Cliente cliente1 = new Cliente ("Luis Gomez", 25672046); CuentaBancaria cuenta1 = new CuentaBancaria (6831531, cliente1, 100000); CuentaBancaria cuenta2 = new CuentaBancaria (8350284, new Cliente ("Pilar Garcia", 15165442), 200000);
  • 32. Constructor por defecto  Si no se definen constructores, Java proporciona uno por defecto.  Sin parámetros: Llamadas del tipo new X();  Sin funcionalidad: Variables inicializadas por defecto.  Pero si se define un constructor (o más) el constructor por defecto no es definido.