SlideShare una empresa de Scribd logo
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
 
Introducción a Scala
Introducción a ScalaIntroducción a Scala
Introducción a Scala
Jose Emilio Labra Gayo
 
TUTORIAL JAVA
TUTORIAL JAVATUTORIAL JAVA
TUTORIAL JAVA
denis ticona condori
 
A1 u1-16230227
A1 u1-16230227A1 u1-16230227
A1 u1-16230227
erikalejo
 
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
 
Poo 1
Poo 1Poo 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)
Pedro Antonio Villalta (Pavillalta)
 
.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
 
Actividad dll
Actividad dllActividad dll
Actividad dll
Jose Alfaro
 
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
Eudris Cabrera
 
IntroduccióN A Visual C
IntroduccióN A Visual CIntroduccióN A Visual C
IntroduccióN A Visual Coswchavez
 
Examen Unidad 1
Examen Unidad 1Examen Unidad 1
Examen Unidad 1
Abraham Martinez Molina
 
Ruby para Java Developers
Ruby para Java DevelopersRuby para Java Developers
Ruby para Java Developers
Gustavo Andres Brey
 
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
Jose 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 aldahir
NEQUIZ 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

Cadeia Produtiva do Turismo Náutico
Cadeia Produtiva do Turismo NáuticoCadeia Produtiva do Turismo Náutico
Cadeia Produtiva do Turismo NáuticoErnesto São Thiago
 
Carteles muy reveladores(dav)
Carteles muy reveladores(dav)Carteles muy reveladores(dav)
Carteles muy reveladores(dav)mvaldesr
 
Elección2012
Elección2012Elección2012
Elección2012
profehectorjulio
 
Sucos- tudo de bom
Sucos- tudo de bomSucos- tudo de bom
Sucos- tudo de bom
Silvia Pelaes
 

Destacado (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
 

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 JQuery
Danae Aguilar Guzmán
 
C ++.ppt
C ++.pptC ++.ppt
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 Java
Manuel Antonio
 
Estructura basica de un programa
Estructura basica de un programaEstructura basica de un programa
Estructura basica de un programa
Ray-kun Olivera
 
r124736.PPT
r124736.PPTr124736.PPT
r124736.PPT
DigitalesCreativos
 
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
oviedospablo
 
iNTRODUCCION AL LENGUAJE JAVA
iNTRODUCCION AL LENGUAJE  JAVAiNTRODUCCION AL LENGUAJE  JAVA
iNTRODUCCION AL LENGUAJE JAVA
Jesus 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 Sintaxis
Emilio 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).ppt
JOSECASHUUG
 
El lenguaje C++.ppt
El lenguaje C++.pptEl lenguaje C++.ppt
El lenguaje C++.ppt
John Harold Bonilla
 
Manual c# 2
Manual c# 2Manual c# 2
Manual c# 2
Elizabeth Reyna
 
Manual de c#
Manual de c#Manual de c#
Manual de c#
Ana Ruth G H
 
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 2
mellcv
 

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

1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
FelixCamachoGuzman
 
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdfTestimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Txema Gs
 
Proceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de PamplonaProceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de Pamplona
Edurne Navarro Bueno
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
LorenaCovarrubias12
 
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Demetrio Ccesa Rayme
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Demetrio Ccesa Rayme
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
El Fortí
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdf
danitarb
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
YasneidyGonzalez
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
Martín Ramírez
 
Conocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del ArrabalConocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del Arrabal
Profes de Relideleón Apellidos
 
Mapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativaMapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativa
TatianaVanessaAltami
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
auxsoporte
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
20minutos
 
El lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libroEl lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libro
Distea V región
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
20minutos
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
BetzabePecheSalcedo1
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
SandraBenitez52
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
Alejandrino Halire Ccahuana
 
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docxENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
SandraPiza2
 

Último (20)

1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx1º GRADO CONCLUSIONES DESCRIPTIVAS  PRIMARIA.docx
1º GRADO CONCLUSIONES DESCRIPTIVAS PRIMARIA.docx
 
Testimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdfTestimonio Paco Z PATRONATO_Valencia_24.pdf
Testimonio Paco Z PATRONATO_Valencia_24.pdf
 
Proceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de PamplonaProceso de admisiones en escuelas infantiles de Pamplona
Proceso de admisiones en escuelas infantiles de Pamplona
 
Semana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptxSemana #10-PM3 del 27 al 31 de mayo.pptx
Semana #10-PM3 del 27 al 31 de mayo.pptx
 
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
 
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdfAsistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
Asistencia Tecnica Cartilla Pedagogica DUA Ccesa007.pdf
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdf
 
Fase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometricoFase 2, Pensamiento variacional y trigonometrico
Fase 2, Pensamiento variacional y trigonometrico
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
 
Conocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del ArrabalConocemos la ermita de Ntra. Sra. del Arrabal
Conocemos la ermita de Ntra. Sra. del Arrabal
 
Mapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativaMapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativa
 
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24CALENDARIZACION DEL MES DE JUNIO - JULIO 24
CALENDARIZACION DEL MES DE JUNIO - JULIO 24
 
Examen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdfExamen Lengua y Literatura EVAU Andalucía.pdf
Examen Lengua y Literatura EVAU Andalucía.pdf
 
El lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libroEl lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libro
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
 
El fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docxEl fundamento del gobierno de Dios. Lec. 09. docx
El fundamento del gobierno de Dios. Lec. 09. docx
 
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docxENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
ENSAYO SOBRE LA ANSIEDAD Y LA DEPRESION.docx
 

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.