SlideShare una empresa de Scribd logo
1 de 59
Descargar para leer sin conexión
EstucturasEstucturas de Datosde Datos PPááginagina 11
Unidad I
Tema 2: Introducción a Java
Profesor: Jorge Escalona / Tobías Bolívar
Email: escaljorge@gmail.com / tobiasbolivar@gmail.com
Página Web: http://estructuradatos.tripod.com
EstucturasEstucturas de Datosde Datos PPááginagina 22
Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java
Qué es Java?
De acuerdo a la información proporcionada por Sun
Microsystems (http://java.sun.com), java es:
[un] lenguaje simple, orientado a objetos, distribuido,
interpretado, sólido, seguro, de arquitectura neutral, de
alto desempeño, de multihilos y dinámico.
EstucturasEstucturas de Datosde Datos PPááginagina 33
• Simple: basado en C++, pero sin muchas de las características más tediosas
de éste.
– Java no ofrece soporte a los tipos de datos punteros ni a la herencia múltiple.
– Java no ofrece soporte ni a typedef ni a #define.
– Java tiene un sistema automático para asignación y liberacion de memoria
(recolección de basura).
– Java tiene una clase String como parte de sus tipos básicos.
• Orientado a objetos: provee una clara y eficiente tecnología para soportar
las principales características de un lenguaje orientado a objetos.
– Encapsulación.
– Polimorfismo.
– Herencia.
Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java
Qué es Java?
EstucturasEstucturas de Datosde Datos PPááginagina 44
• Distribuido: diseñado específicamente para trabajar en un ambiente de
redes, con una biblioteca muy grande para la programación utilizando el grupo
de protoolos TCP/IP.
• Interpretado: el compilador de Java traduce un archivo fuente a códigos de
byte (bytecodes), el cuál se puede ejecutar en cualquier máquina en la cual se
haya instlado el interpretador y la plataforma de ejecución de Java.
• Sólido: implementa una tipificación rigurosa y elimina el manejo de
apuntadores que puedan dañar fácilmente la memoria. Además, soporta
diferentes niveles de verificación de errores, tanto en tiempo de compilación
como en tiempo de ejecución.
Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java
Qué es Java?
EstucturasEstucturas de Datosde Datos PPááginagina 55
• Seguro: diseñado para ejecutarse en ambientes distribuidos, por lo cual
incorpora diferentes niveles de seguridad que restringen el acceso y la
ejecución indebida de archivos.
• Arquitectura neutral: el código de bytes generado es ejecutado por el
interpretador de java, lo cual lo hace independiente de la plataforma.
• Portable: debido su arquitectura neutral, se permite una gran capacidad de
portabilidad, además de se estandarizan todos los tipos de datos básicos que
en algunos sistemas pueden diferir.
Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java
Qué es Java?
EstucturasEstucturas de Datosde Datos PPááginagina 66
• De alto desempeño: soporta diversas características que le permiten un
rendimiento tan alto como cualquier compilador nativo, sin sacrificar la
robustez y seguridad.
• multihilos: se puede utilizar para crear aplicaciones que implementen más
de una cosa a la vez,a través de un sistema multihilos (multithreading), ideal
para apoyar los programas que se ejecuten en tiempo real.
• Dinámico: utiliza un método de interfaces que permite que nuevos métodos
y variables de instancias en una biblioteca de objetos, sin afectar los objetos
clientes dependientes.
Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java
Qué es Java?
EstucturasEstucturas de Datosde Datos PPááginagina 77
•Permite crear tres tipos distintos de aplicaciones:
–Aplicaciones ordinarias (standalone).
–Applets.
–Más recientemente:
–Servlets.
–JavaBeans
–Páginas JSP
–Enterprise JavaBean
Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java
Qué es Java?
EstucturasEstucturas de Datosde Datos PPááginagina 88
•La fundamental es el JDK de Sun (¡¡gratis!!).
•Existen multitud de entornos de desarrollo de otros fabricantes.
•Existen versiones del JDK para diferentes plataformas:
–Linux, Win95+,/NT, Solaris, MacOS, ...
•El JDK se renueva cada poco tiempo.
Herramientas de Desarrollo
Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java
EstucturasEstucturas de Datosde Datos PPááginagina 99
Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java
Contenido del Java SDK 1.3
EstucturasEstucturas de Datosde Datos PPááginagina 1010
•Principales herramientas del SDK
•El compilador: javac.exe
•El depurador: jdb.exe
•El intérprete: java.exe y javaw.exe
•El visualizador de applets: appletviewer.exe
•El generador de documentación: javadoc.exe
•Un desensamblador de clases: javap.exe
•El generador de archivos fuentes y de cabecera (.c y .h)
para clases nativas en C: javah.exe
Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java
EstucturasEstucturas de Datosde Datos PPááginagina 1111
•A partir del subdirectorio principal
•Deberemos incluir el subdirectorio bin
en el PATH
•Especial importancia a la variable de
entorno CLASSPATH
•No descomprimir el archivo
classes.zip
Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java
Contenido del Java SDK 1.3
EstucturasEstucturas de Datosde Datos PPááginagina 1212
Compilación y Ejecución de un programa en Java
Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java
C:javajavac myProgram.java
C:javajava myProgram
JVM
EstucturasEstucturas de Datosde Datos PPááginagina 1313
Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
Programa “Hola Mundo”
class Hola {
public static void main(String argumentos[]) {
System.out.println("hola, mundo");
}
}
•El programa se inicia llamando al método main de la clase principal.
•El nombre de la clase principal es el mismo que el del archivo fuente:
–Hola.java
Ejemplo: Bienvenido.java
EstucturasEstucturas de Datosde Datos PPááginagina 1414
• public: indica que el método main es público y, por tanto, puede ser
llamado desde otras clases.
• static: indica que la clase no necesita ser instanciada para poder
utilizar el método al que califica.
• void: indica que la función main no devuelve ningún valor.
• El método main debe aceptar siempre, como parámetro, un vector de
Strings, que contendrá los posibles argumentos que se le pasen al
programa en la línea de comandos, aunque como es nuestro caso, no
se utilice.
Programa “Hola Mundo” – El código
Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
EstucturasEstucturas de Datosde Datos PPááginagina 1515
• El método println es un método estático de la clase System (no hace
falta declarar un objeto de esa clase para usarlo).
• El atributo out hace referencia a la salida estándar, así el println
escribe por ella (la cadena que le pasamos y un final de línea).
System.out.println(“Hola, mundo”);
Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
EstucturasEstucturas de Datosde Datos PPááginagina 1616
Unidad I: ProyectosUnidad I: Proyectos
• Un proyecto puede tener varios archivos.
• Cada archivo puede tener varias clases.
• El compilador genera un archivo .class para cada clase.
• Para ejecutarlo, llamamos al intérprete y le pasamos el
nombre de la clase principal:
java Hola
Compilación de un proyecto
Ejemplo: Error.java
EstucturasEstucturas de Datosde Datos PPááginagina 1717
• java.lang: clases esenciales, números, strings, objetos, compilador,
runtime, seguridad y threads (se incluye automáticamente en todo
programa Java)
• java.io: clases que manejan entrada y salida.
• java.net: clases para el soporte de redes (URL, TCP, UDP, IP, FTP,
etc).
• java.awt: clases para manejo de interfaces gráficas, ventanas, etc.
• java.awt.image : clases para el manejo de imágenes.
• java.awt.peer: clases para el manejo de interfaces gráficas
dependientes de la plataforma (motif, windows).
• java.applet: clases para la creación de applets y recursos para
reproducción de audio.
Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
Bibliotecas básicas de Java
EstucturasEstucturas de Datosde Datos PPááginagina 1818
Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
Tipo Descripción Tamaño/Formato
Byte Entero de un byte 8-bits complemento 2
Short Entero corto 16-bits complemento 2
Int Entero 32-bits complemento 2
Long Entero largo 64-bits complemento 2
Float Punto flotante, precisión simple 32-bits IEEE 754
Double Punto flotante, precisión doble 64-bits IEEE 754
Char 16-bit carácter Unicode 16-bits carceter Unicode
Boolean Valor booleano True o False
Tipos de Datos Simples
EstucturasEstucturas de Datosde Datos PPááginagina 1919
Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
•Los tipos simples anteriores son "envueltos" por clases equivalentes
(java.lang.Integer, java.lang.Double, java.lang.Byte, etc.) , que pueden
tratarlos como si fueran objetos en lugar de datos simples.
•A diferencia de otros lenguajes de programación como el C, en Java los
tipos de datos simples no dependen de la plataforma ni del sistema
operativo. Un entero de tipo int siempre tendrá 4 bytes.
Tipos de Datos Simples
Ejemplo: AB.java
TipoBoolean.java
EstucturasEstucturas de Datosde Datos PPááginagina 2020
Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
Tipos de Datos Referencias
•Arreglos
•Clases
•Interfaces
Nota: Las referencias son elementos de datos cuyo valor es una dirección de
memoria. En otros lenguajes son llamados apuntadores. En java no se permite
explícitamente acceder directamente a las posiciones de memoria a las cuales
hacen referencia, sólo se pueden accesar a a través del nombre de variable.
Nota: Las referencias son elementos de datos cuyo valor es una dirección de
memoria. En otros lenguajes son llamados apuntadores. En java no se permite
explícitamente acceder directamente a las posiciones de memoria a las cuales
hacen referencia, sólo se pueden accesar a a través del nombre de variable.
EstucturasEstucturas de Datosde Datos PPááginagina 2121
Nombres de Variables
• Deben comenzar con una letra seguida por cualquier carácter
Unicode.
• No hay límites en cuanto a la longitud del nombre de variable.
• No se puede utilizar una palabra clave, ni las literales booleanas
true o false, ni la palabra reservada null.
• Debe ser única dentro del alcance que se está definiendo.
Nota: por convención, los nombres de variables comienzan con una letra minúscula, y los nombres
de clases con letras mayúsculas. Si el nombre de variable consiste de más de una palabra, se
escriben una despué de la otra, y cada palabra después de la primera se inicia con una mayúscula.
Aunque el caracter “underscore” ( _ ) es válido, por convención sólo se utiliza para separar palabras
en nombres de constantes, ya que estas se escriben en mayúsculas.
Ejemplo de tipos simples: valor, cantRegistros, esVisible.
Ejemplo para clases : Animales, AnimalesVertebrados.
Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
EstucturasEstucturas de Datosde Datos PPááginagina 2222
Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
Alcance de Variables
EstucturasEstucturas de Datosde Datos PPááginagina 2323
Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
// enteros
byte maximoByte = Byte.MAX_VALUE;
short maximoShort = Short.MAX_VALUE;
int maximoInteger = Integer.MAX_VALUE;
long maximoLong = Long.MAX_VALUE;
// números reales
float maximoFloat = Float.MAX_VALUE;
double maximoDouble = Double.MAX_VALUE;
// otros tipos simples
char unCaracter = 'S';
boolean unBoolean = true;
Inicialización de Variables
EstucturasEstucturas de Datosde Datos PPááginagina 2424
Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
Variables Finales (Constantes)
final int varConstante = 0;
final int constanteVacia;
. . .
constanteVacia = 0;
EstucturasEstucturas de Datosde Datos PPááginagina 2525
Operadores
•Aritméticos: +,-,*,/,%,++,--
•Relacionales: <,>, <=, >=, ==, !=
•Condicionales: &&, ||, !,&,|,^
•Lógicos Binarios: >>,<<,&,|,^
•Asignaciones: =, +=, -=, *=, /=, %=, &=, |=, ^=,>>=, <<=
•Otros: ?:, ( parametros), (tipo),., [ ], new, instanceof
Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
Ejemplo: Operadores.java
Prioridad.java
EstucturasEstucturas de Datosde Datos PPááginagina 2626
Estructuras de Control
Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
•Repetitivas: while, do-while, for
•Condicionales: if-else, switch-case
•Bifurcaciones: break, continue, label:, return
•Manejo de Exepciones: try-cath-finally, throw
EstucturasEstucturas de Datosde Datos PPááginagina 2727
Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
Estructuras de Control Repetitivas:
while (expresion) {
instrucción(es)
}
do {
instrucción(es)
} while (expresión);
for (inicialización; terminación; incremento) {
instrucción(es)
}
EstucturasEstucturas de Datosde Datos PPááginagina 2828
if (expresión) {
instruccion(es)
}
Estructuras de Control Condicionales:
if (expresion) {
// instrucción(es)
}
else {
// instrucción(es)
}
if (expresion) {
// instrucción(es)
}
else if {
// instrucción(es)
}
else if {
// instrucción(es)
}
else {
// instrucción(es)
}
Formato 1:
Formato 2:
Formato 3:
Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
EstucturasEstucturas de Datosde Datos PPááginagina 2929
Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
switch (integer expression) {
case integer expression:
instruccion(es)
break;
...
default:
instruccion(es)
break;
}
Estructuras de Control Condicionales:
EstucturasEstucturas de Datosde Datos PPááginagina 3030
Estructuras de Control Condicionales:
Inicio bloque {
instrucción(es);
[continue;]
[break;]
[return;]
[return valor];
}
label:etiqueta
Inicio bloque {
instrucción(es);
[continue etiqueta;]
[break etiqueta;]
}
Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
Ejemplo: Bucles.java
DoWhile.java
EstucturasEstucturas de Datosde Datos PPááginagina 3131
Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
• Se reserva memoria al hacer new al instanciar un
objeto.
• Existe un "recolector de basura" que libera
automáticamente la memoria no usada por objetos
extinguidos.
• Las variables simples no son objetos, pero los vectores
si.
Gestión de Memoria:
EstucturasEstucturas de Datosde Datos PPááginagina 3232
try {
instruccion(es)
}catch (nombre tipoexcepcion) {
instruccion(es)
}finally {
instruccion(es)
}
• try: identifica un bloque de instrucciones dentro del cual una excepción (error)
podría dispararse.
• catch: identifica un bloque de instrucciones que pueden manejar un tipo
específico de excepción. Las instrucciones se ejecutan sólo si se produce un
tipo particular de excepción dentro del bloque try al cual está asociado.
• finally: identifica un bloque de instrucciones que son ejecutadas
independientemente de que un error ocurra o no en el bloque del try.
Estructuras para el Manejo de Excepciones:
Formato:
Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
EstucturasEstucturas de Datosde Datos PPááginagina 3333
leerArchivo{
abrir el archivo;
determinar su tamaño;
reservar la memoria necesaria;
leer el archivo en la memoria;
cerrar el archivo;
}
Manejo de Excepciones:
Separación del código regular del código para el manejo de las excepciones
Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
EstucturasEstucturas de Datosde Datos PPááginagina 3434
leerArchivo {
try {
abrir el archivo;
determinar su tamaño;
reservar la memoria necesaria;
leer el archivo en la memoria;
cerrar el archivo;
} catch (fileOpenFailed) {
hacerAlgo;
} catch (sizeDeterminationFailed) {
hacerAlgo;
} catch (memoryAllocationFailed) {
hacerAlgo;
} catch (readFailed) {
hacerAlgo;
} catch (fileCloseFailed) {
hacerAlgo;
}
}
Manejo de Excepciones:
Separación del código regular del código para el manejo de las excepciones
Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
EstucturasEstucturas de Datosde Datos PPááginagina 3535
metodo1 {
llamar a metodo2;
}
metodo2 {
llamar a metodo3;
}
metodo3 {
llamar a leerArchivo;
}
Manejo de Excepciones:
Propagación de errores hacia arriba en la pila de llamadas
Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
EstucturasEstucturas de Datosde Datos PPááginagina 3636
metodo1{
try {
llamar a metodo2;
} catch (exception) {
procesarError;
}
}
metodo2 throws exception {
llamar a metodo3;
}
metodo3 throws exception {
llamar a leerArchivo;
}
Manejo de Excepciones:
Propagación de errores hacia arriba en la pila de llamadas
Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
EstucturasEstucturas de Datosde Datos PPááginagina 3737
Manejo de Excepciones:
Agrupación de errores por tipo (jerarquía de errores)
Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
EstucturasEstucturas de Datosde Datos PPááginagina 3838
catch (InvalidIndexException e) {
. . .
}
catch (ArrayException e) {
. . .
}
catch (Exception e) {
. . .
}
Intercepta el error por
Índice del arreglo fuera de rango
Intercepta cualquier error
relacionado con el arreglo
Intercepta cualquier error
del programa
Manejo de Excepciones:
Agrupación de errores por tipo (jerarquía de errores)
Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
EstucturasEstucturas de Datosde Datos PPááginagina 3939
Estructura de
una clase
Unidad I: Clases y HerenciaUnidad I: Clases y Herencia
EstucturasEstucturas de Datosde Datos PPááginagina 4040
Unidad I: Clases y HerenciaUnidad I: Clases y Herencia
Declaración de una clase
EstucturasEstucturas de Datosde Datos PPááginagina 4141
Declaración de las variables miembros de una clase
Unidad I: Clases y HerenciaUnidad I: Clases y Herencia
EstucturasEstucturas de Datosde Datos PPááginagina 4242
Nivel de acceso de los miembros de una clase
Unidad I: Clases y HerenciaUnidad I: Clases y Herencia
XXpackage
XXXXpublic
XX*Xprotected
Xprivate
otrosPaqueteSubclaseClaseNivel
EstucturasEstucturas de Datosde Datos PPááginagina 4343
Declaración de los métodos miembros de una clase
Unidad I: Clases y HerenciaUnidad I: Clases y Herencia
EstucturasEstucturas de Datosde Datos PPááginagina 4444
Unidad I: Clases y HerenciaUnidad I: Clases y Herencia
Estructura de un método de una clase
Partes de la declaración del método
EstucturasEstucturas de Datosde Datos PPááginagina 4545
Unidad I: Clases y HerenciaUnidad I: Clases y Herencia
• Son métodos especiales que sirven para inicializar una instancia de esa clase
(objeto).
• Tienen el mismo nombre que la clase.
• Sintaxis:
<modificador> <nombre_clase> ([<lista_argumentos>]) {
[<instrucciones>]
}
• Podemos tener varios constructores en la misma clase que difieran en la lista
de parámetros.
• Invocación:
Hola h=new Hola();
Métodos Constructores
EstucturasEstucturas de Datosde Datos PPááginagina 4646
Unidad I: Clases y HerenciaUnidad I: Clases y Herencia
Métodos Constructores (Constructor por defecto)
• Hay siempre al menos un constructor en cada clase.
• Si el programador no suministra ningún constructor, el constructor por
defecto es incluido automáticamente:
•El constructor por defecto no tiene argumentos.
•El constructor por defecto no tiene instrucciones.
• Permite al usuario de la clase crear instancias de objetos con el
operador new Xxx () sin que el programador tenga que escribir un
constructor.
EstucturasEstucturas de Datosde Datos PPááginagina 4747
Unidad I: Clases y HerenciaUnidad I: Clases y Herencia
Accesando Atributos y Métodos
•Se utiliza la notación “punto”: <objeto>.<miembro>
•Utilizado para accesar tanto los atributos como los métodos del objeto.
•Dentro de los métodos de una clase no se necesita utilizar la notación “punto”
para accesar los miembros de esa misma clase.
•Ejemplos:
d.setWeight(80);
d.weight = 42; //válido si el atributo weight es público
EstucturasEstucturas de Datosde Datos PPááginagina 4848
Unidad I: Clases y HerenciaUnidad I: Clases y Herencia
Encapsulación
•El problema: Código cliente tiene acceso directo a datos internos de la clase:
MiFecha
+ dia
+ mes
+ anno
MiFecha d = new MiFecha();
d.dia = 32;
//día inválido
d.mes = 2; d.dia = 30;
//día inválido para ese mes
d.dia = d.dia + 1;
//no se verifica cambio de mes
EstucturasEstucturas de Datosde Datos PPááginagina 4949
Unidad I: Clases y HerenciaUnidad I: Clases y Herencia
•La Solución: Código cliente debe usar métodos de acceso para los datos
internos:
MiFecha d = new MiFecha();
d.setDia(32);
//día inválido; retorna false
d.setMes(2);
d.setDia(30);
//día inválido; retorna false
d.setDia(d.getDia() + 1);
//retorna false si ocurre cambio de mes
Encapsulación
MiFecha
- dia
- mes
- anno
+ getDia()
+ getMes()
+ getAnno()
+ setDia(int)
+ setMes(int)
+ setAnno(int)
- validarDia(int)
Valida día
según mes
EstucturasEstucturas de Datosde Datos PPááginagina 5050
Unidad I: Clases y HerenciaUnidad I: Clases y Herencia
Encapsulación
Oculta los detalles de la implementación
de una clase.
Fuerza al usuario a usar la interfaz pública
para accesar los datos.
Facilita el mantenimiento del código y la
detección de errores.
MiFecha
- dia
- mes
- anno
+ getDia()
+ getMes()
+ getAnno()
+ setDia(int)
+ setMes(int)
+ setAnno(int)
- validarDia(int)
EstucturasEstucturas de Datosde Datos PPááginagina 5151
Unidad I: Clases y HerenciaUnidad I: Clases y Herencia
Pase de parámetros a métodos
• El lenguaje Java sólo permite pasar argumentos por valor.
• Cuando una instancia de un objeto es pasada como argumento a
un método, el valor del argumento es una referencia al objeto.
• El contenido del objeto puede ser cambiado en el método invocado,
pero no la referencia.
EstucturasEstucturas de Datosde Datos PPááginagina 5252
Unidad I: Clases y HerenciaUnidad I: Clases y Herencia
El operador de referencia this
• Sirve para referenciar atributos
locales y métodos miembros
dentro de metodos o
constructores locales.
• La palabra reservada this
distingue una variable de un
método o constructor de una
instancia de una variable de la
clase.
• Sirve también para pasar el
objeto actual como un parámetro
a otro método o constructor.
Class MiFecha {
int dia = 1;
int mes = 1;
int anno = 2000;
public MiFecha(int dia,
int mes, int anno){
this.dia = dia;
this.mes = mes;
this.anno = anno;
}
public MiFecha(MiFecha fecha){
this.dia = fecha.getDia();
this.mes = fecha.getMes();
this.anno = fecha.getAnno();
}
...
}
EstucturasEstucturas de Datosde Datos PPááginagina 5353
Unidad I: Operaciones BUnidad I: Operaciones Báásicas de Entrada y Salidasicas de Entrada y Salida
Entrada/Salida por Consola
• System.out permite escribir a la “salida estándar”
•Declaración: public static final java.io.PrintStream out
• System.in permite leer desde la “entrada estándar”
•Declaración: public static final java.io.InputStream in
• System.err referencia a la salida de errores
•Declaración: public static final java.io.PrintStream err
EstucturasEstucturas de Datosde Datos PPááginagina 5454
Unidad I: Operaciones BUnidad I: Operaciones Báásicas de Entrada y Salidasicas de Entrada y Salida
Entrada/Salida por Consola
import java.io.*;
public class Consola{
public static void main(String[] args){
//Crea un bufer de lectura para leer cada linea desde el teclado.
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader teclado = new BufferedReader(isr);
//Variable auxiliar para leer desde el teclado
String cadLeida;
System.out.println(“Introduzca la base: “);
cadLeida = teclado.readLine();
int x = Integer.parseInt(cadLeida);
System.out.println(“Introduzca el exponente: “);
cadLeida = teclado.readLine();
int y = Integer.parseInt(cadLeida);
System.out.println(“x^y = “ + Math.pow(x,y));
}
}
EstucturasEstucturas de Datosde Datos PPááginagina 5555
Unidad I: Operaciones BUnidad I: Operaciones Báásicas de Entrada y Salidasicas de Entrada y Salida
Entrada/Salida Interfaz Gráfica (javax.swing.JOptionPane)
import javax.swing.JOptionPane; // importa la clase JOptionPane
Public class InterfazGrafica{
public static void main(String[] args){
String cadena1, cadena2;
int x, y, potencia;
//lee la base y el exponente
cadena1 = JOptionPane.showInputDialog( “Introduzca la base:" );
cadena2 = JOptionPane.showInputDialog( “Introduzca el exponente:" );
//se convierten los valores y se calcula el resultado
x = Integer.parseInt(cadena1);
y = Integer.parseInt(cadena2);
potencia = Math.pow(x,y);
//despliega el resultado
JOptionPane.showMessageDialog(null, “x^y = " + potencia, "Resultado",
JOptionPane.PLAIN_MESSAGE );
}
}
EstucturasEstucturas de Datosde Datos PPááginagina 5656
Unidad I: Entornos de DesarrolloUnidad I: Entornos de Desarrollo
•Visual Café
•Visual J++
•Visual Age for Java
•Jbuilder
•Java WorkShop
•JavaStudio
•.... Y cientos más
Entornos de Desarrollo (IDE’s) • La mayoría incluyen su
propio compilador y
máquina virtual Java:
Esto puede causar
problemas con los
cambios de versiones y
librerías.
• Sun controla la
especificación de Java
y lanza nuevas
versiones del JDK
(idéntico para varias
plataformas).
EstucturasEstucturas de Datosde Datos PPááginagina 5757
Unidad I: MUnidad I: Máás Informacis Informacióón...n...
•Página Principal de Java:
•http://java.sun.com
•Tutoriales:
–ftp://herodes.redes.upv.es/lar/Java/Jtutotorial/index.html
–http://www.fie.us.es/info/internet/JAVA/
–ftp://herodes.redes.upv.es/lar/Java/ThinkInJava.pdf
–http://java.sun.com
•Aplicaciones:
–http://www.javashareware.com
–http://www.acme.com
EstucturasEstucturas de Datosde Datos PPááginagina 5858
Tema 2: AutoevaluaciTema 2: Autoevaluacióónn
1. Menciona las principales características de Java
2. Menciona las ventajas de Java sobre C++ o lenguajes similares
3. Por qué Java puede correr en cualquier plataforma sin modificar o recompilar el código ?
4. Qué es un paquete ?
5. De qué clase se derivan implícitamente una clase en Java ?
6. Para qué se emplea this ?
7. Qué es una interface ?
8. Investiga la jerarquía de clases de Java.
9. Cuál es la estructura general de un programa en Java?
10. Cuáles son los tipos de variables con los que cuenta Java ?
11. Cuáles son los tipos primitivos de Java ?
12. En que difiere el tipo char de Java del de otros lenguajes ?
13. Cuál es el alcance de las variables en Java ?
14. Cuál es la precedencia de operadores en Java?
15. Cuál es la diferencia entre los operadores && y &?
16. Cuáles son los tipos de comentarios que maneja Java?
17. Explica como se hace el manejo de errores en Java
18. Cuál es la diferencia entre break y continue?
19. Diferencia entre break y continue y sus contrapartes etiquetadas?
20. Cuál es la estructura general de un programa en Java?
EstucturasEstucturas de Datosde Datos PPááginagina 5959
Tema 2: AutoevaluaciTema 2: Autoevaluacióónn
package Conversion.*;
import java.io;
public class Conversion {
private static void main (String args){
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br= new BufferedReader();
String cadena;
try {
System.out.println("Indique el número de metros y pulse RETURN")
cadena = br.readline();
double d = new Double(cadena);
double metros = d.doubleValue();
double pulgadas = metros * 39,27;
double pies = pulgadas / 12;
pulgadas = pulgadas % 12;
pies = pies - pulgadas / 12;
System.out.println("Conversión de metros en pies y pulgadas");
System.out.println(metros+" metros son "+pies+" pies y
"pulgadas+" pulgadas");
}
catch(Exception e){
System.out.println("Cualquier tipo de error");}
}
}
Problema 1: Verificar el siguiente programa identificando los errores de sintaxis

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Java
 
Conceptos Fundamentales de POO
Conceptos Fundamentales de POOConceptos Fundamentales de POO
Conceptos Fundamentales de POO
 
Tecnologia Java
Tecnologia JavaTecnologia Java
Tecnologia Java
 
Java basico
Java basicoJava basico
Java basico
 
Topicos Avanzados de Programacion - Unidad 3 componentes y librerias
Topicos Avanzados de Programacion - Unidad 3 componentes y libreriasTopicos Avanzados de Programacion - Unidad 3 componentes y librerias
Topicos Avanzados de Programacion - Unidad 3 componentes y librerias
 
Test
TestTest
Test
 
Java
JavaJava
Java
 
Tema 1 el entorno de desarrollo de java
Tema 1 el entorno de desarrollo de javaTema 1 el entorno de desarrollo de java
Tema 1 el entorno de desarrollo de java
 
Java
JavaJava
Java
 
PRIMERA PRESENTACION JAVA
PRIMERA PRESENTACION JAVAPRIMERA PRESENTACION JAVA
PRIMERA PRESENTACION JAVA
 
Unidad 3 isc j3 paquetes y librerias CB
Unidad 3 isc j3 paquetes y librerias CBUnidad 3 isc j3 paquetes y librerias CB
Unidad 3 isc j3 paquetes y librerias CB
 
02 introjava
02 introjava02 introjava
02 introjava
 
Lenguaje de programación java. Detalles
Lenguaje de programación java. DetallesLenguaje de programación java. Detalles
Lenguaje de programación java. Detalles
 
Conceptos de programación orientada a objeto
Conceptos de programación orientada a objetoConceptos de programación orientada a objeto
Conceptos de programación orientada a objeto
 
Unidad 2. Lenguaje orientado a objetos
Unidad 2. Lenguaje orientado a objetosUnidad 2. Lenguaje orientado a objetos
Unidad 2. Lenguaje orientado a objetos
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
Java world
Java worldJava world
Java world
 
preguntas examen
preguntas examen preguntas examen
preguntas examen
 
Metacoretex
MetacoretexMetacoretex
Metacoretex
 
Fund progbd 3_u1_lenguajeprogramacionjava1
Fund progbd 3_u1_lenguajeprogramacionjava1Fund progbd 3_u1_lenguajeprogramacionjava1
Fund progbd 3_u1_lenguajeprogramacionjava1
 

Destacado

Clasificación de la Investigación científica
Clasificación de la Investigación científicaClasificación de la Investigación científica
Clasificación de la Investigación científicajoberlinfernandez27
 
Presentacion1 ingrid alcoser
Presentacion1 ingrid alcoserPresentacion1 ingrid alcoser
Presentacion1 ingrid alcoseringrid_alcoser
 
Modulo 5 tamayo y tamayo investigacion
Modulo 5 tamayo y tamayo investigacionModulo 5 tamayo y tamayo investigacion
Modulo 5 tamayo y tamayo investigacionChristian Estrada
 
Características de la investigación científica
Características de la investigación científicaCaracterísticas de la investigación científica
Características de la investigación científicaLixie D'Lars
 
Etapas de la investigación
Etapas de la investigaciónEtapas de la investigación
Etapas de la investigaciónNahomy Alvarez
 
Investigacion Cientifica
Investigacion CientificaInvestigacion Cientifica
Investigacion Cientificaxelaleph
 
El Proceso De Investigacion Cientifica Mario Tamayo Y Tamayo[1]
El Proceso De Investigacion Cientifica   Mario Tamayo Y Tamayo[1]El Proceso De Investigacion Cientifica   Mario Tamayo Y Tamayo[1]
El Proceso De Investigacion Cientifica Mario Tamayo Y Tamayo[1]sarathrusta
 
Como han cambiado nuestras vidas
Como han cambiado nuestras vidasComo han cambiado nuestras vidas
Como han cambiado nuestras vidasLia de Falquez
 
Fauvismoexpresionismo
FauvismoexpresionismoFauvismoexpresionismo
FauvismoexpresionismoJOHN BONILLA
 
Teleoperación Háptica de Brazo Manipulador
Teleoperación Háptica de Brazo ManipuladorTeleoperación Háptica de Brazo Manipulador
Teleoperación Háptica de Brazo ManipuladorDiego
 
Mapuches
MapuchesMapuches
MapuchesEscuela
 
Manual Power Point
Manual Power PointManual Power Point
Manual Power PointRosa Padilla
 
Trabajo especial #1 octavo
Trabajo especial  #1 octavoTrabajo especial  #1 octavo
Trabajo especial #1 octavoRosa Padilla
 
Temario No.4 Matemática
Temario No.4 MatemáticaTemario No.4 Matemática
Temario No.4 MatemáticaJosué Zapeta
 
Lia de Falquez comparte la Propuesta General de los Programas de Formación y ...
Lia de Falquez comparte la Propuesta General de los Programas de Formación y ...Lia de Falquez comparte la Propuesta General de los Programas de Formación y ...
Lia de Falquez comparte la Propuesta General de los Programas de Formación y ...Lia de Falquez
 
Lactancia Materna
Lactancia MaternaLactancia Materna
Lactancia Maternaeymigarcia
 

Destacado (20)

Clasificación de la Investigación científica
Clasificación de la Investigación científicaClasificación de la Investigación científica
Clasificación de la Investigación científica
 
Justificación de la investigación según Carlos Méndez
Justificación de la investigación según Carlos MéndezJustificación de la investigación según Carlos Méndez
Justificación de la investigación según Carlos Méndez
 
Presentacion1 ingrid alcoser
Presentacion1 ingrid alcoserPresentacion1 ingrid alcoser
Presentacion1 ingrid alcoser
 
Modulo 5 tamayo y tamayo investigacion
Modulo 5 tamayo y tamayo investigacionModulo 5 tamayo y tamayo investigacion
Modulo 5 tamayo y tamayo investigacion
 
Características de la investigación científica
Características de la investigación científicaCaracterísticas de la investigación científica
Características de la investigación científica
 
Etapas investigacion libro
Etapas investigacion libroEtapas investigacion libro
Etapas investigacion libro
 
Etapas de la investigación
Etapas de la investigaciónEtapas de la investigación
Etapas de la investigación
 
Investigacion Cientifica
Investigacion CientificaInvestigacion Cientifica
Investigacion Cientifica
 
El Proceso De Investigacion Cientifica Mario Tamayo Y Tamayo[1]
El Proceso De Investigacion Cientifica   Mario Tamayo Y Tamayo[1]El Proceso De Investigacion Cientifica   Mario Tamayo Y Tamayo[1]
El Proceso De Investigacion Cientifica Mario Tamayo Y Tamayo[1]
 
Como han cambiado nuestras vidas
Como han cambiado nuestras vidasComo han cambiado nuestras vidas
Como han cambiado nuestras vidas
 
Fauvismoexpresionismo
FauvismoexpresionismoFauvismoexpresionismo
Fauvismoexpresionismo
 
Teleoperación Háptica de Brazo Manipulador
Teleoperación Háptica de Brazo ManipuladorTeleoperación Háptica de Brazo Manipulador
Teleoperación Háptica de Brazo Manipulador
 
Mapuches
MapuchesMapuches
Mapuches
 
El arte de_iman_maleki
El arte de_iman_malekiEl arte de_iman_maleki
El arte de_iman_maleki
 
Manual Power Point
Manual Power PointManual Power Point
Manual Power Point
 
Trabajo especial #1 octavo
Trabajo especial  #1 octavoTrabajo especial  #1 octavo
Trabajo especial #1 octavo
 
Temario No.4 Matemática
Temario No.4 MatemáticaTemario No.4 Matemática
Temario No.4 Matemática
 
Lia de Falquez comparte la Propuesta General de los Programas de Formación y ...
Lia de Falquez comparte la Propuesta General de los Programas de Formación y ...Lia de Falquez comparte la Propuesta General de los Programas de Formación y ...
Lia de Falquez comparte la Propuesta General de los Programas de Formación y ...
 
Infografía: Qué puedo hacer en un telecentro
Infografía: Qué puedo hacer en un telecentroInfografía: Qué puedo hacer en un telecentro
Infografía: Qué puedo hacer en un telecentro
 
Lactancia Materna
Lactancia MaternaLactancia Materna
Lactancia Materna
 

Similar a Java Introducción Lenguaje

Lenguaje Java
Lenguaje JavaLenguaje Java
Lenguaje Javapbcanessa
 
Introducción a JAVA.
Introducción a JAVA.Introducción a JAVA.
Introducción a JAVA.guestdf1874
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaglfloresgilberto
 
Java janner
Java   jannerJava   janner
Java jannersena
 
1 fundamentos java
1 fundamentos java1 fundamentos java
1 fundamentos javaayreonmx
 
CUESTIONARIO JAVA
CUESTIONARIO JAVACUESTIONARIO JAVA
CUESTIONARIO JAVAjesanchez5
 
Java Sobrecarga y Recursividad
Java Sobrecarga y RecursividadJava Sobrecarga y Recursividad
Java Sobrecarga y Recursividadpbcanessa
 
Programacion no numerica ii
Programacion no numerica iiProgramacion no numerica ii
Programacion no numerica iirolmanpaul
 
Fundamentos de Java
Fundamentos de Java Fundamentos de Java
Fundamentos de Java jmosorio777
 
POOI- Unidad 1.pdf
POOI- Unidad 1.pdfPOOI- Unidad 1.pdf
POOI- Unidad 1.pdfWillGuzman3
 
Caracteristicas de C Sharp
Caracteristicas de C SharpCaracteristicas de C Sharp
Caracteristicas de C SharpEdgardo Martinez
 
Curso Java Resumen - Curso 2005-2006
Curso Java Resumen - Curso 2005-2006Curso Java Resumen - Curso 2005-2006
Curso Java Resumen - Curso 2005-2006Samuel Marrero
 
programacion concurrente java.pptx
programacion concurrente java.pptxprogramacion concurrente java.pptx
programacion concurrente java.pptxjuan gonzalez
 

Similar a Java Introducción Lenguaje (20)

Lenguaje Java
Lenguaje JavaLenguaje Java
Lenguaje Java
 
Fondo1 (2)
Fondo1 (2)Fondo1 (2)
Fondo1 (2)
 
1 introduccion a_java_1er_parte
1 introduccion a_java_1er_parte1 introduccion a_java_1er_parte
1 introduccion a_java_1er_parte
 
Tipos de datos
Tipos de datosTipos de datos
Tipos de datos
 
Introducción a JAVA.
Introducción a JAVA.Introducción a JAVA.
Introducción a JAVA.
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferencia
 
C1 java introduccion
C1 java introduccionC1 java introduccion
C1 java introduccion
 
C1 java introduccion
C1 java introduccionC1 java introduccion
C1 java introduccion
 
Java janner
Java   jannerJava   janner
Java janner
 
Lenguaje Java
Lenguaje JavaLenguaje Java
Lenguaje Java
 
1 fundamentos java
1 fundamentos java1 fundamentos java
1 fundamentos java
 
CUESTIONARIO JAVA
CUESTIONARIO JAVACUESTIONARIO JAVA
CUESTIONARIO JAVA
 
Java Sobrecarga y Recursividad
Java Sobrecarga y RecursividadJava Sobrecarga y Recursividad
Java Sobrecarga y Recursividad
 
Programacion no numerica ii
Programacion no numerica iiProgramacion no numerica ii
Programacion no numerica ii
 
Lenguaje de programación Java
Lenguaje de programación Java Lenguaje de programación Java
Lenguaje de programación Java
 
Fundamentos de Java
Fundamentos de Java Fundamentos de Java
Fundamentos de Java
 
POOI- Unidad 1.pdf
POOI- Unidad 1.pdfPOOI- Unidad 1.pdf
POOI- Unidad 1.pdf
 
Caracteristicas de C Sharp
Caracteristicas de C SharpCaracteristicas de C Sharp
Caracteristicas de C Sharp
 
Curso Java Resumen - Curso 2005-2006
Curso Java Resumen - Curso 2005-2006Curso Java Resumen - Curso 2005-2006
Curso Java Resumen - Curso 2005-2006
 
programacion concurrente java.pptx
programacion concurrente java.pptxprogramacion concurrente java.pptx
programacion concurrente java.pptx
 

Más de Pedro Sánchez

Más de Pedro Sánchez (20)

Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Guión didáctico
Guión didácticoGuión didáctico
Guión didáctico
 
Tarjeta Madre
Tarjeta MadreTarjeta Madre
Tarjeta Madre
 
Importancia de las redes sociales en la Educación
Importancia de las redes sociales en la EducaciónImportancia de las redes sociales en la Educación
Importancia de las redes sociales en la Educación
 
Evolucion de la web
Evolucion de la webEvolucion de la web
Evolucion de la web
 
Plagio en Internet Grupo los Integradores
Plagio en Internet Grupo los IntegradoresPlagio en Internet Grupo los Integradores
Plagio en Internet Grupo los Integradores
 
Tema8
Tema8Tema8
Tema8
 
Tema7
Tema7Tema7
Tema7
 
Tema6
Tema6Tema6
Tema6
 
Tema5
Tema5Tema5
Tema5
 
Tema4
Tema4Tema4
Tema4
 
Tema3
Tema3Tema3
Tema3
 
Tema1 (2)
Tema1 (2)Tema1 (2)
Tema1 (2)
 
Obj 10 capa 6 - presentacion
Obj 10   capa 6 - presentacionObj 10   capa 6 - presentacion
Obj 10 capa 6 - presentacion
 
Obj 9 capa 5 - sesion
Obj 9   capa 5 - sesionObj 9   capa 5 - sesion
Obj 9 capa 5 - sesion
 
Obj 8 capa 4 - transporte
Obj 8   capa 4 - transporteObj 8   capa 4 - transporte
Obj 8 capa 4 - transporte
 
Obj 7.4 capa 3 - red - router
Obj 7.4   capa 3 - red - router Obj 7.4   capa 3 - red - router
Obj 7.4 capa 3 - red - router
 
Obj 7.3 capa 3 - red - sub redes
Obj 7.3   capa 3 - red - sub redes Obj 7.3   capa 3 - red - sub redes
Obj 7.3 capa 3 - red - sub redes
 
Obj 7.2 capa 3 - red - ip clase d-e sub redes
Obj 7.2   capa 3 - red - ip clase d-e sub redes Obj 7.2   capa 3 - red - ip clase d-e sub redes
Obj 7.2 capa 3 - red - ip clase d-e sub redes
 
Obj 7.1 capa 3 - red - direccionamiento ip
Obj 7.1   capa 3 - red - direccionamiento ipObj 7.1   capa 3 - red - direccionamiento ip
Obj 7.1 capa 3 - red - direccionamiento ip
 

Último

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
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
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 

Último (20)

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
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
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 

Java Introducción Lenguaje

  • 1. EstucturasEstucturas de Datosde Datos PPááginagina 11 Unidad I Tema 2: Introducción a Java Profesor: Jorge Escalona / Tobías Bolívar Email: escaljorge@gmail.com / tobiasbolivar@gmail.com Página Web: http://estructuradatos.tripod.com
  • 2. EstucturasEstucturas de Datosde Datos PPááginagina 22 Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java Qué es Java? De acuerdo a la información proporcionada por Sun Microsystems (http://java.sun.com), java es: [un] lenguaje simple, orientado a objetos, distribuido, interpretado, sólido, seguro, de arquitectura neutral, de alto desempeño, de multihilos y dinámico.
  • 3. EstucturasEstucturas de Datosde Datos PPááginagina 33 • Simple: basado en C++, pero sin muchas de las características más tediosas de éste. – Java no ofrece soporte a los tipos de datos punteros ni a la herencia múltiple. – Java no ofrece soporte ni a typedef ni a #define. – Java tiene un sistema automático para asignación y liberacion de memoria (recolección de basura). – Java tiene una clase String como parte de sus tipos básicos. • Orientado a objetos: provee una clara y eficiente tecnología para soportar las principales características de un lenguaje orientado a objetos. – Encapsulación. – Polimorfismo. – Herencia. Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java Qué es Java?
  • 4. EstucturasEstucturas de Datosde Datos PPááginagina 44 • Distribuido: diseñado específicamente para trabajar en un ambiente de redes, con una biblioteca muy grande para la programación utilizando el grupo de protoolos TCP/IP. • Interpretado: el compilador de Java traduce un archivo fuente a códigos de byte (bytecodes), el cuál se puede ejecutar en cualquier máquina en la cual se haya instlado el interpretador y la plataforma de ejecución de Java. • Sólido: implementa una tipificación rigurosa y elimina el manejo de apuntadores que puedan dañar fácilmente la memoria. Además, soporta diferentes niveles de verificación de errores, tanto en tiempo de compilación como en tiempo de ejecución. Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java Qué es Java?
  • 5. EstucturasEstucturas de Datosde Datos PPááginagina 55 • Seguro: diseñado para ejecutarse en ambientes distribuidos, por lo cual incorpora diferentes niveles de seguridad que restringen el acceso y la ejecución indebida de archivos. • Arquitectura neutral: el código de bytes generado es ejecutado por el interpretador de java, lo cual lo hace independiente de la plataforma. • Portable: debido su arquitectura neutral, se permite una gran capacidad de portabilidad, además de se estandarizan todos los tipos de datos básicos que en algunos sistemas pueden diferir. Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java Qué es Java?
  • 6. EstucturasEstucturas de Datosde Datos PPááginagina 66 • De alto desempeño: soporta diversas características que le permiten un rendimiento tan alto como cualquier compilador nativo, sin sacrificar la robustez y seguridad. • multihilos: se puede utilizar para crear aplicaciones que implementen más de una cosa a la vez,a través de un sistema multihilos (multithreading), ideal para apoyar los programas que se ejecuten en tiempo real. • Dinámico: utiliza un método de interfaces que permite que nuevos métodos y variables de instancias en una biblioteca de objetos, sin afectar los objetos clientes dependientes. Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java Qué es Java?
  • 7. EstucturasEstucturas de Datosde Datos PPááginagina 77 •Permite crear tres tipos distintos de aplicaciones: –Aplicaciones ordinarias (standalone). –Applets. –Más recientemente: –Servlets. –JavaBeans –Páginas JSP –Enterprise JavaBean Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java Qué es Java?
  • 8. EstucturasEstucturas de Datosde Datos PPááginagina 88 •La fundamental es el JDK de Sun (¡¡gratis!!). •Existen multitud de entornos de desarrollo de otros fabricantes. •Existen versiones del JDK para diferentes plataformas: –Linux, Win95+,/NT, Solaris, MacOS, ... •El JDK se renueva cada poco tiempo. Herramientas de Desarrollo Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java
  • 9. EstucturasEstucturas de Datosde Datos PPááginagina 99 Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java Contenido del Java SDK 1.3
  • 10. EstucturasEstucturas de Datosde Datos PPááginagina 1010 •Principales herramientas del SDK •El compilador: javac.exe •El depurador: jdb.exe •El intérprete: java.exe y javaw.exe •El visualizador de applets: appletviewer.exe •El generador de documentación: javadoc.exe •Un desensamblador de clases: javap.exe •El generador de archivos fuentes y de cabecera (.c y .h) para clases nativas en C: javah.exe Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java
  • 11. EstucturasEstucturas de Datosde Datos PPááginagina 1111 •A partir del subdirectorio principal •Deberemos incluir el subdirectorio bin en el PATH •Especial importancia a la variable de entorno CLASSPATH •No descomprimir el archivo classes.zip Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java Contenido del Java SDK 1.3
  • 12. EstucturasEstucturas de Datosde Datos PPááginagina 1212 Compilación y Ejecución de un programa en Java Unidad I: La TecnologUnidad I: La Tecnologíía Javaa Java C:javajavac myProgram.java C:javajava myProgram JVM
  • 13. EstucturasEstucturas de Datosde Datos PPááginagina 1313 Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje Programa “Hola Mundo” class Hola { public static void main(String argumentos[]) { System.out.println("hola, mundo"); } } •El programa se inicia llamando al método main de la clase principal. •El nombre de la clase principal es el mismo que el del archivo fuente: –Hola.java Ejemplo: Bienvenido.java
  • 14. EstucturasEstucturas de Datosde Datos PPááginagina 1414 • public: indica que el método main es público y, por tanto, puede ser llamado desde otras clases. • static: indica que la clase no necesita ser instanciada para poder utilizar el método al que califica. • void: indica que la función main no devuelve ningún valor. • El método main debe aceptar siempre, como parámetro, un vector de Strings, que contendrá los posibles argumentos que se le pasen al programa en la línea de comandos, aunque como es nuestro caso, no se utilice. Programa “Hola Mundo” – El código Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
  • 15. EstucturasEstucturas de Datosde Datos PPááginagina 1515 • El método println es un método estático de la clase System (no hace falta declarar un objeto de esa clase para usarlo). • El atributo out hace referencia a la salida estándar, así el println escribe por ella (la cadena que le pasamos y un final de línea). System.out.println(“Hola, mundo”); Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
  • 16. EstucturasEstucturas de Datosde Datos PPááginagina 1616 Unidad I: ProyectosUnidad I: Proyectos • Un proyecto puede tener varios archivos. • Cada archivo puede tener varias clases. • El compilador genera un archivo .class para cada clase. • Para ejecutarlo, llamamos al intérprete y le pasamos el nombre de la clase principal: java Hola Compilación de un proyecto Ejemplo: Error.java
  • 17. EstucturasEstucturas de Datosde Datos PPááginagina 1717 • java.lang: clases esenciales, números, strings, objetos, compilador, runtime, seguridad y threads (se incluye automáticamente en todo programa Java) • java.io: clases que manejan entrada y salida. • java.net: clases para el soporte de redes (URL, TCP, UDP, IP, FTP, etc). • java.awt: clases para manejo de interfaces gráficas, ventanas, etc. • java.awt.image : clases para el manejo de imágenes. • java.awt.peer: clases para el manejo de interfaces gráficas dependientes de la plataforma (motif, windows). • java.applet: clases para la creación de applets y recursos para reproducción de audio. Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje Bibliotecas básicas de Java
  • 18. EstucturasEstucturas de Datosde Datos PPááginagina 1818 Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje Tipo Descripción Tamaño/Formato Byte Entero de un byte 8-bits complemento 2 Short Entero corto 16-bits complemento 2 Int Entero 32-bits complemento 2 Long Entero largo 64-bits complemento 2 Float Punto flotante, precisión simple 32-bits IEEE 754 Double Punto flotante, precisión doble 64-bits IEEE 754 Char 16-bit carácter Unicode 16-bits carceter Unicode Boolean Valor booleano True o False Tipos de Datos Simples
  • 19. EstucturasEstucturas de Datosde Datos PPááginagina 1919 Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje •Los tipos simples anteriores son "envueltos" por clases equivalentes (java.lang.Integer, java.lang.Double, java.lang.Byte, etc.) , que pueden tratarlos como si fueran objetos en lugar de datos simples. •A diferencia de otros lenguajes de programación como el C, en Java los tipos de datos simples no dependen de la plataforma ni del sistema operativo. Un entero de tipo int siempre tendrá 4 bytes. Tipos de Datos Simples Ejemplo: AB.java TipoBoolean.java
  • 20. EstucturasEstucturas de Datosde Datos PPááginagina 2020 Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje Tipos de Datos Referencias •Arreglos •Clases •Interfaces Nota: Las referencias son elementos de datos cuyo valor es una dirección de memoria. En otros lenguajes son llamados apuntadores. En java no se permite explícitamente acceder directamente a las posiciones de memoria a las cuales hacen referencia, sólo se pueden accesar a a través del nombre de variable. Nota: Las referencias son elementos de datos cuyo valor es una dirección de memoria. En otros lenguajes son llamados apuntadores. En java no se permite explícitamente acceder directamente a las posiciones de memoria a las cuales hacen referencia, sólo se pueden accesar a a través del nombre de variable.
  • 21. EstucturasEstucturas de Datosde Datos PPááginagina 2121 Nombres de Variables • Deben comenzar con una letra seguida por cualquier carácter Unicode. • No hay límites en cuanto a la longitud del nombre de variable. • No se puede utilizar una palabra clave, ni las literales booleanas true o false, ni la palabra reservada null. • Debe ser única dentro del alcance que se está definiendo. Nota: por convención, los nombres de variables comienzan con una letra minúscula, y los nombres de clases con letras mayúsculas. Si el nombre de variable consiste de más de una palabra, se escriben una despué de la otra, y cada palabra después de la primera se inicia con una mayúscula. Aunque el caracter “underscore” ( _ ) es válido, por convención sólo se utiliza para separar palabras en nombres de constantes, ya que estas se escriben en mayúsculas. Ejemplo de tipos simples: valor, cantRegistros, esVisible. Ejemplo para clases : Animales, AnimalesVertebrados. Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
  • 22. EstucturasEstucturas de Datosde Datos PPááginagina 2222 Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje Alcance de Variables
  • 23. EstucturasEstucturas de Datosde Datos PPááginagina 2323 Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje // enteros byte maximoByte = Byte.MAX_VALUE; short maximoShort = Short.MAX_VALUE; int maximoInteger = Integer.MAX_VALUE; long maximoLong = Long.MAX_VALUE; // números reales float maximoFloat = Float.MAX_VALUE; double maximoDouble = Double.MAX_VALUE; // otros tipos simples char unCaracter = 'S'; boolean unBoolean = true; Inicialización de Variables
  • 24. EstucturasEstucturas de Datosde Datos PPááginagina 2424 Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje Variables Finales (Constantes) final int varConstante = 0; final int constanteVacia; . . . constanteVacia = 0;
  • 25. EstucturasEstucturas de Datosde Datos PPááginagina 2525 Operadores •Aritméticos: +,-,*,/,%,++,-- •Relacionales: <,>, <=, >=, ==, != •Condicionales: &&, ||, !,&,|,^ •Lógicos Binarios: >>,<<,&,|,^ •Asignaciones: =, +=, -=, *=, /=, %=, &=, |=, ^=,>>=, <<= •Otros: ?:, ( parametros), (tipo),., [ ], new, instanceof Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje Ejemplo: Operadores.java Prioridad.java
  • 26. EstucturasEstucturas de Datosde Datos PPááginagina 2626 Estructuras de Control Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje •Repetitivas: while, do-while, for •Condicionales: if-else, switch-case •Bifurcaciones: break, continue, label:, return •Manejo de Exepciones: try-cath-finally, throw
  • 27. EstucturasEstucturas de Datosde Datos PPááginagina 2727 Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje Estructuras de Control Repetitivas: while (expresion) { instrucción(es) } do { instrucción(es) } while (expresión); for (inicialización; terminación; incremento) { instrucción(es) }
  • 28. EstucturasEstucturas de Datosde Datos PPááginagina 2828 if (expresión) { instruccion(es) } Estructuras de Control Condicionales: if (expresion) { // instrucción(es) } else { // instrucción(es) } if (expresion) { // instrucción(es) } else if { // instrucción(es) } else if { // instrucción(es) } else { // instrucción(es) } Formato 1: Formato 2: Formato 3: Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
  • 29. EstucturasEstucturas de Datosde Datos PPááginagina 2929 Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje switch (integer expression) { case integer expression: instruccion(es) break; ... default: instruccion(es) break; } Estructuras de Control Condicionales:
  • 30. EstucturasEstucturas de Datosde Datos PPááginagina 3030 Estructuras de Control Condicionales: Inicio bloque { instrucción(es); [continue;] [break;] [return;] [return valor]; } label:etiqueta Inicio bloque { instrucción(es); [continue etiqueta;] [break etiqueta;] } Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje Ejemplo: Bucles.java DoWhile.java
  • 31. EstucturasEstucturas de Datosde Datos PPááginagina 3131 Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje • Se reserva memoria al hacer new al instanciar un objeto. • Existe un "recolector de basura" que libera automáticamente la memoria no usada por objetos extinguidos. • Las variables simples no son objetos, pero los vectores si. Gestión de Memoria:
  • 32. EstucturasEstucturas de Datosde Datos PPááginagina 3232 try { instruccion(es) }catch (nombre tipoexcepcion) { instruccion(es) }finally { instruccion(es) } • try: identifica un bloque de instrucciones dentro del cual una excepción (error) podría dispararse. • catch: identifica un bloque de instrucciones que pueden manejar un tipo específico de excepción. Las instrucciones se ejecutan sólo si se produce un tipo particular de excepción dentro del bloque try al cual está asociado. • finally: identifica un bloque de instrucciones que son ejecutadas independientemente de que un error ocurra o no en el bloque del try. Estructuras para el Manejo de Excepciones: Formato: Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
  • 33. EstucturasEstucturas de Datosde Datos PPááginagina 3333 leerArchivo{ abrir el archivo; determinar su tamaño; reservar la memoria necesaria; leer el archivo en la memoria; cerrar el archivo; } Manejo de Excepciones: Separación del código regular del código para el manejo de las excepciones Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
  • 34. EstucturasEstucturas de Datosde Datos PPááginagina 3434 leerArchivo { try { abrir el archivo; determinar su tamaño; reservar la memoria necesaria; leer el archivo en la memoria; cerrar el archivo; } catch (fileOpenFailed) { hacerAlgo; } catch (sizeDeterminationFailed) { hacerAlgo; } catch (memoryAllocationFailed) { hacerAlgo; } catch (readFailed) { hacerAlgo; } catch (fileCloseFailed) { hacerAlgo; } } Manejo de Excepciones: Separación del código regular del código para el manejo de las excepciones Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
  • 35. EstucturasEstucturas de Datosde Datos PPááginagina 3535 metodo1 { llamar a metodo2; } metodo2 { llamar a metodo3; } metodo3 { llamar a leerArchivo; } Manejo de Excepciones: Propagación de errores hacia arriba en la pila de llamadas Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
  • 36. EstucturasEstucturas de Datosde Datos PPááginagina 3636 metodo1{ try { llamar a metodo2; } catch (exception) { procesarError; } } metodo2 throws exception { llamar a metodo3; } metodo3 throws exception { llamar a leerArchivo; } Manejo de Excepciones: Propagación de errores hacia arriba en la pila de llamadas Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
  • 37. EstucturasEstucturas de Datosde Datos PPááginagina 3737 Manejo de Excepciones: Agrupación de errores por tipo (jerarquía de errores) Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
  • 38. EstucturasEstucturas de Datosde Datos PPááginagina 3838 catch (InvalidIndexException e) { . . . } catch (ArrayException e) { . . . } catch (Exception e) { . . . } Intercepta el error por Índice del arreglo fuera de rango Intercepta cualquier error relacionado con el arreglo Intercepta cualquier error del programa Manejo de Excepciones: Agrupación de errores por tipo (jerarquía de errores) Unidad I: CaracterUnidad I: Caracteríísticas del Lenguajesticas del Lenguaje
  • 39. EstucturasEstucturas de Datosde Datos PPááginagina 3939 Estructura de una clase Unidad I: Clases y HerenciaUnidad I: Clases y Herencia
  • 40. EstucturasEstucturas de Datosde Datos PPááginagina 4040 Unidad I: Clases y HerenciaUnidad I: Clases y Herencia Declaración de una clase
  • 41. EstucturasEstucturas de Datosde Datos PPááginagina 4141 Declaración de las variables miembros de una clase Unidad I: Clases y HerenciaUnidad I: Clases y Herencia
  • 42. EstucturasEstucturas de Datosde Datos PPááginagina 4242 Nivel de acceso de los miembros de una clase Unidad I: Clases y HerenciaUnidad I: Clases y Herencia XXpackage XXXXpublic XX*Xprotected Xprivate otrosPaqueteSubclaseClaseNivel
  • 43. EstucturasEstucturas de Datosde Datos PPááginagina 4343 Declaración de los métodos miembros de una clase Unidad I: Clases y HerenciaUnidad I: Clases y Herencia
  • 44. EstucturasEstucturas de Datosde Datos PPááginagina 4444 Unidad I: Clases y HerenciaUnidad I: Clases y Herencia Estructura de un método de una clase Partes de la declaración del método
  • 45. EstucturasEstucturas de Datosde Datos PPááginagina 4545 Unidad I: Clases y HerenciaUnidad I: Clases y Herencia • Son métodos especiales que sirven para inicializar una instancia de esa clase (objeto). • Tienen el mismo nombre que la clase. • Sintaxis: <modificador> <nombre_clase> ([<lista_argumentos>]) { [<instrucciones>] } • Podemos tener varios constructores en la misma clase que difieran en la lista de parámetros. • Invocación: Hola h=new Hola(); Métodos Constructores
  • 46. EstucturasEstucturas de Datosde Datos PPááginagina 4646 Unidad I: Clases y HerenciaUnidad I: Clases y Herencia Métodos Constructores (Constructor por defecto) • Hay siempre al menos un constructor en cada clase. • Si el programador no suministra ningún constructor, el constructor por defecto es incluido automáticamente: •El constructor por defecto no tiene argumentos. •El constructor por defecto no tiene instrucciones. • Permite al usuario de la clase crear instancias de objetos con el operador new Xxx () sin que el programador tenga que escribir un constructor.
  • 47. EstucturasEstucturas de Datosde Datos PPááginagina 4747 Unidad I: Clases y HerenciaUnidad I: Clases y Herencia Accesando Atributos y Métodos •Se utiliza la notación “punto”: <objeto>.<miembro> •Utilizado para accesar tanto los atributos como los métodos del objeto. •Dentro de los métodos de una clase no se necesita utilizar la notación “punto” para accesar los miembros de esa misma clase. •Ejemplos: d.setWeight(80); d.weight = 42; //válido si el atributo weight es público
  • 48. EstucturasEstucturas de Datosde Datos PPááginagina 4848 Unidad I: Clases y HerenciaUnidad I: Clases y Herencia Encapsulación •El problema: Código cliente tiene acceso directo a datos internos de la clase: MiFecha + dia + mes + anno MiFecha d = new MiFecha(); d.dia = 32; //día inválido d.mes = 2; d.dia = 30; //día inválido para ese mes d.dia = d.dia + 1; //no se verifica cambio de mes
  • 49. EstucturasEstucturas de Datosde Datos PPááginagina 4949 Unidad I: Clases y HerenciaUnidad I: Clases y Herencia •La Solución: Código cliente debe usar métodos de acceso para los datos internos: MiFecha d = new MiFecha(); d.setDia(32); //día inválido; retorna false d.setMes(2); d.setDia(30); //día inválido; retorna false d.setDia(d.getDia() + 1); //retorna false si ocurre cambio de mes Encapsulación MiFecha - dia - mes - anno + getDia() + getMes() + getAnno() + setDia(int) + setMes(int) + setAnno(int) - validarDia(int) Valida día según mes
  • 50. EstucturasEstucturas de Datosde Datos PPááginagina 5050 Unidad I: Clases y HerenciaUnidad I: Clases y Herencia Encapsulación Oculta los detalles de la implementación de una clase. Fuerza al usuario a usar la interfaz pública para accesar los datos. Facilita el mantenimiento del código y la detección de errores. MiFecha - dia - mes - anno + getDia() + getMes() + getAnno() + setDia(int) + setMes(int) + setAnno(int) - validarDia(int)
  • 51. EstucturasEstucturas de Datosde Datos PPááginagina 5151 Unidad I: Clases y HerenciaUnidad I: Clases y Herencia Pase de parámetros a métodos • El lenguaje Java sólo permite pasar argumentos por valor. • Cuando una instancia de un objeto es pasada como argumento a un método, el valor del argumento es una referencia al objeto. • El contenido del objeto puede ser cambiado en el método invocado, pero no la referencia.
  • 52. EstucturasEstucturas de Datosde Datos PPááginagina 5252 Unidad I: Clases y HerenciaUnidad I: Clases y Herencia El operador de referencia this • Sirve para referenciar atributos locales y métodos miembros dentro de metodos o constructores locales. • La palabra reservada this distingue una variable de un método o constructor de una instancia de una variable de la clase. • Sirve también para pasar el objeto actual como un parámetro a otro método o constructor. Class MiFecha { int dia = 1; int mes = 1; int anno = 2000; public MiFecha(int dia, int mes, int anno){ this.dia = dia; this.mes = mes; this.anno = anno; } public MiFecha(MiFecha fecha){ this.dia = fecha.getDia(); this.mes = fecha.getMes(); this.anno = fecha.getAnno(); } ... }
  • 53. EstucturasEstucturas de Datosde Datos PPááginagina 5353 Unidad I: Operaciones BUnidad I: Operaciones Báásicas de Entrada y Salidasicas de Entrada y Salida Entrada/Salida por Consola • System.out permite escribir a la “salida estándar” •Declaración: public static final java.io.PrintStream out • System.in permite leer desde la “entrada estándar” •Declaración: public static final java.io.InputStream in • System.err referencia a la salida de errores •Declaración: public static final java.io.PrintStream err
  • 54. EstucturasEstucturas de Datosde Datos PPááginagina 5454 Unidad I: Operaciones BUnidad I: Operaciones Báásicas de Entrada y Salidasicas de Entrada y Salida Entrada/Salida por Consola import java.io.*; public class Consola{ public static void main(String[] args){ //Crea un bufer de lectura para leer cada linea desde el teclado. InputStreamReader isr = new InputStreamReader(System.in); BufferedReader teclado = new BufferedReader(isr); //Variable auxiliar para leer desde el teclado String cadLeida; System.out.println(“Introduzca la base: “); cadLeida = teclado.readLine(); int x = Integer.parseInt(cadLeida); System.out.println(“Introduzca el exponente: “); cadLeida = teclado.readLine(); int y = Integer.parseInt(cadLeida); System.out.println(“x^y = “ + Math.pow(x,y)); } }
  • 55. EstucturasEstucturas de Datosde Datos PPááginagina 5555 Unidad I: Operaciones BUnidad I: Operaciones Báásicas de Entrada y Salidasicas de Entrada y Salida Entrada/Salida Interfaz Gráfica (javax.swing.JOptionPane) import javax.swing.JOptionPane; // importa la clase JOptionPane Public class InterfazGrafica{ public static void main(String[] args){ String cadena1, cadena2; int x, y, potencia; //lee la base y el exponente cadena1 = JOptionPane.showInputDialog( “Introduzca la base:" ); cadena2 = JOptionPane.showInputDialog( “Introduzca el exponente:" ); //se convierten los valores y se calcula el resultado x = Integer.parseInt(cadena1); y = Integer.parseInt(cadena2); potencia = Math.pow(x,y); //despliega el resultado JOptionPane.showMessageDialog(null, “x^y = " + potencia, "Resultado", JOptionPane.PLAIN_MESSAGE ); } }
  • 56. EstucturasEstucturas de Datosde Datos PPááginagina 5656 Unidad I: Entornos de DesarrolloUnidad I: Entornos de Desarrollo •Visual Café •Visual J++ •Visual Age for Java •Jbuilder •Java WorkShop •JavaStudio •.... Y cientos más Entornos de Desarrollo (IDE’s) • La mayoría incluyen su propio compilador y máquina virtual Java: Esto puede causar problemas con los cambios de versiones y librerías. • Sun controla la especificación de Java y lanza nuevas versiones del JDK (idéntico para varias plataformas).
  • 57. EstucturasEstucturas de Datosde Datos PPááginagina 5757 Unidad I: MUnidad I: Máás Informacis Informacióón...n... •Página Principal de Java: •http://java.sun.com •Tutoriales: –ftp://herodes.redes.upv.es/lar/Java/Jtutotorial/index.html –http://www.fie.us.es/info/internet/JAVA/ –ftp://herodes.redes.upv.es/lar/Java/ThinkInJava.pdf –http://java.sun.com •Aplicaciones: –http://www.javashareware.com –http://www.acme.com
  • 58. EstucturasEstucturas de Datosde Datos PPááginagina 5858 Tema 2: AutoevaluaciTema 2: Autoevaluacióónn 1. Menciona las principales características de Java 2. Menciona las ventajas de Java sobre C++ o lenguajes similares 3. Por qué Java puede correr en cualquier plataforma sin modificar o recompilar el código ? 4. Qué es un paquete ? 5. De qué clase se derivan implícitamente una clase en Java ? 6. Para qué se emplea this ? 7. Qué es una interface ? 8. Investiga la jerarquía de clases de Java. 9. Cuál es la estructura general de un programa en Java? 10. Cuáles son los tipos de variables con los que cuenta Java ? 11. Cuáles son los tipos primitivos de Java ? 12. En que difiere el tipo char de Java del de otros lenguajes ? 13. Cuál es el alcance de las variables en Java ? 14. Cuál es la precedencia de operadores en Java? 15. Cuál es la diferencia entre los operadores && y &? 16. Cuáles son los tipos de comentarios que maneja Java? 17. Explica como se hace el manejo de errores en Java 18. Cuál es la diferencia entre break y continue? 19. Diferencia entre break y continue y sus contrapartes etiquetadas? 20. Cuál es la estructura general de un programa en Java?
  • 59. EstucturasEstucturas de Datosde Datos PPááginagina 5959 Tema 2: AutoevaluaciTema 2: Autoevaluacióónn package Conversion.*; import java.io; public class Conversion { private static void main (String args){ InputStreamReader isr=new InputStreamReader(System.in); BufferedReader br= new BufferedReader(); String cadena; try { System.out.println("Indique el número de metros y pulse RETURN") cadena = br.readline(); double d = new Double(cadena); double metros = d.doubleValue(); double pulgadas = metros * 39,27; double pies = pulgadas / 12; pulgadas = pulgadas % 12; pies = pies - pulgadas / 12; System.out.println("Conversión de metros en pies y pulgadas"); System.out.println(metros+" metros son "+pies+" pies y "pulgadas+" pulgadas"); } catch(Exception e){ System.out.println("Cualquier tipo de error");} } } Problema 1: Verificar el siguiente programa identificando los errores de sintaxis