SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Andere mochten auch

Andere mochten auch (7)

Cadeia Produtiva do Turismo Náutico
Cadeia Produtiva do Turismo NáuticoCadeia Produtiva do Turismo Náutico
Cadeia Produtiva do Turismo Náutico
 
Carteles muy reveladores(dav)
Carteles muy reveladores(dav)Carteles muy reveladores(dav)
Carteles muy reveladores(dav)
 
Elección2012
Elección2012Elección2012
Elección2012
 
Proyecto tesis
Proyecto tesisProyecto tesis
Proyecto tesis
 
Sucos- tudo de bom
Sucos- tudo de bomSucos- tudo de bom
Sucos- tudo de bom
 
Produção Associada ao Turismo
Produção Associada ao Turismo Produção Associada ao Turismo
Produção Associada ao Turismo
 
Produção associada ao turismo praia do forte
Produção associada ao turismo   praia do forteProdução associada ao turismo   praia do forte
Produção associada ao turismo praia do forte
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdfPROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdfEduardoJosVargasCama1
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfRosabel UA
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOluismii249
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONamelia poma
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresJonathanCovena1
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOluismii249
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!CatalinaAlfaroChryso
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024IES Vicent Andres Estelles
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxlclcarmen
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfJonathanCovena1
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...JoseMartinMalpartida1
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Juan Martín Martín
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuelabeltranponce75
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdfDemetrio Ccesa Rayme
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxroberthirigoinvasque
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfMercedes Gonzalez
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024IES Vicent Andres Estelles
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfapunteshistoriamarmo
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptAlberto Rubio
 

Kürzlich hochgeladen (20)

PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdfPROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
PROPUESTA COMERCIAL SENA ETAPA 2 ACTIVIDAD 3.pdf
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACIONRESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
RESOLUCIÓN VICEMINISTERIAL 00048 - 2024 EVALUACION
 
Desarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por ValoresDesarrollo y Aplicación de la Administración por Valores
Desarrollo y Aplicación de la Administración por Valores
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Novena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan EudesNovena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan Eudes
 
Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
Código Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de VenezuelaCódigo Civil de la República Bolivariana de Venezuela
Código Civil de la República Bolivariana de Venezuela
 
La Evaluacion Formativa SM6 Ccesa007.pdf
La Evaluacion Formativa SM6  Ccesa007.pdfLa Evaluacion Formativa SM6  Ccesa007.pdf
La Evaluacion Formativa SM6 Ccesa007.pdf
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).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.