Actualizado el 10 de Junio del 2019 (Publicado el 22 de Abril del 2019)
2.262 visualizaciones desde el 22 de Abril del 2019
808,5 KB
203 paginas
Creado hace 20a (31/05/2004)
PROGRAMACIÓN CON JAVA
Cursos TAG
Alberto Tablado
Julio 2004
Índice
● Introducción a Java
● Java básico
● Objetos con Java
● Conceptos avanzados
INTRODUCCIÓN A JAVA
● Historia
● Características de Java
● Java Development Kit
● Herramientas del kit
● Entornos de desarrollo
Bibliografía
● Java Tutorial
– http://java.sun.com/docs/books/tutorial/index.html
● Thinking in Java
– http://www.mindview.net/Books/TIJ/
● Aprenda Java como si estuviera en 1º
– http://www.entrebits.com/descargas/programas/
aprenda-java-como-si-estuviera-en-primero/
● Curso de iniciación a Java
– http://www.gui.uva.es/~jal/java/index.html
Una breve historia
● Iniciativa de Sun Microsystems en 1991
● Lenguaje para ser empleado en
dispositivos pequeños (set top boxes)
– Poca memoria
– Poca potencia
– Independencia de la plataforma
Una breve historia
● Fracaso y oportunidad
● Con el auge de la WWW, crearon el
navegador HotJava
– Características de Java
– Primero en usar applets
● El éxito vino porque Netscape aceptó
los applets
Características
● Simple
● Orientado a objetos
● Distribuido
● Robusto
● Seguro
● Independiente de la plataforma
● Multihilo nativo
Simple
● Sintaxis de C / C++
– Gran base de programadores
● Se eliminan sus problemas
– Aritmética de punteros
– Recolección de basura
Orientado a objetos
● Paradigma de programación que
basado en modelar el sistema como
clases e instancias de las clases
● Evolución del modelo imperativo
Robusto
● Gran cantidad de comprobaciones en
tiempo de ejecución
– Límite de arrays
– Tamaño de la pila
– Acceso a variables
– Tipo de objetos
Seguro
● Seguridad a nivel de código
– Se comprueba que el código es coherente
antes de ejecutarse
● Seguridad en ejecución
– Gestores de seguridad limitan acceso a
recursos
Independiente de la plataforma
● Java sigue la política de WORE
– Escribe (compila) el código una vez y
podrás ejecutarlo donde sea
– Multiplataforma mediante el uso de un
código intermedio (bytecodes)
● Java Virtual Machine
– Interpreta el código bytecode
Multihilo nativo
● Java soporta hilos de forma nativa la
máquina virtual
● Mapeados sobre el sistema operativo
(native) o simulados (green)
Ediciones JAVA
Java Development Kit
● J2SE (Java 2 Standard Edition)
● Nivel intermedio de programación
● Versión 1.4
– Java 2 a partir de la versión 1.2
– La última versión es la 1.5
Java Development Kit
Java Development Kit
● No incluye entorno de edición
● Varios:
– NetBeans / SunOne
– Eclipse
– JDeveloper / JBuilder
– IBM VisualAge
Java Development Kit
● Diferencias
● Java 2 SDK
aplicaciones
● Java 2 JRE
– Incluye lo necesario para el desarrollo de
– Incluye sólo lo necesario para la ejecución
de aplicaciones
El CLASSPATH
● Dónde se encuentran las clases para
ejecutar la aplicación
● Dos maneras:
– Variable de entorno CLASSPATH
– Argumento (-cp o -classpath)
● Por defecto, las clases del JDK (JRE)
Compilar con el JDK
● La aplicación es javac
● javac <fichero.java>
– -d <destino>
– -classpath <jar_o_directorio>
Simple
Ejecutar con el JDK
● La aplicación es java
● java <clase>
– -cp <jar_o_directorio>
● java -jar <fichero.jar>
– -cp <jar_o_directorio>
Simple
Ejecutar con el JDK
● La aplicación es appletviewer
● appletviewer <fichero.html>
● O abrir el fichero HTML con un
navegador
PruebaApplet
Ejemplos de Applets
● Duke bailando
– http://java.sun.com/docs/books/tutorial/getStarted/index.html
● Pintando en pantalla
– http://java.sun.com/docs/books/tutorial/java/concepts/practical.html
● Applets de ejemplo sobre la máquina
virtual Java
– http://pl.changwon.ac.kr/~pl/seminar/jvm/insidejvm/applets/
Ficheros JAR
● Java Archive
● Son ficheros ZIP que contienen clases,
fuentes, etc.
● Tienen un directorio META-INF dónde
reside el manifiesto (MANIFEST.MF)
– Describe el contenido del JAR
La importancia del API
● Un lenguaje muere si no tiene un buen
API (Interfaz para la programación de
aplicaciones)
● Java tiene mucha funcionalidad nativa
– http://java.sun.com/j2se/1.4.2/docs/api/index.html
● APIs para otras funcionalidades
JDeveloper
● Desarrollado por Oracle
– Empezó como fork del JBuilder
● Gratuito
● Desarrollo de aplicaciones
● Depurador
● Diseño de ventanas
JDeveloper
JDeveloper
● Ejecutar JDeveloper
● Abrir el fichero curso.jws
– File -> Open
● Ejemplos del curso
● Desarrollar nuevos ejemplos
JDeveloper
● File -> New
● General -> Simple Files -> Java Class
JAVA BÁSICO
● Ficheros Java
● Variables y tipos de datos
● Ámbito y visibilidad
● Operadores y expresiones
● Sentencias (condicionales y bucles)
● Comienzo y terminación de programas
Código de ejemplo
public class Basic {
public static void main(String[] args) {
int sum = 0;
for (int current = 1; current <= 10; current++) {
sum += current;
}
System.out.println("Sum = " + sum);
}
}
Basic
Ficheros JAVA
● Ficheros de texto
● Los ficheros describen clases
– Como mucho, una única clase pública
● Los ficheros deben llevar el mismo
nombre que la clase pública
Comentarios
● Comentario de una línea: //
– int usu = 0; // el número de usuarios
● Comentario de bloque: /* .... */
– /* Esto no se tendrá
en cuenta */
● Comentario javadoc: /** .... */
– Para comentar el código
Comentarios
La definición de la clase
● En Java, todo son clases
● Así que cada fichero define una clase
– public class MiClase
● La clase tiene atributos y métodos
● El método main es especial
– public static void main(String[] args) {...}
– Es el punto de arranque de una clase
Variables
● Almacenan el estado de los objetos
● Pueden definirse en cualquier parte del
código, antes de su uso
● Deben empezar con letra, guión bajo
(_) o dólar ($)
● Sensible a mayúsculas/minúsculas
Variables
● Dí que variables son válidas
int
anInt
i
i1
1
thing1
1thing
ONE-HUNDRED
ONE_HUNDRED
something2do
Variables
● Las variables tienen un tipo que define
el rango de valores y las operaciones
que pueden hacerse
– Java es fuertemente tipado
● Tipos primitivos
● Tipos referencia
Tipos de datos primitivos
● Enteros (se inicializan a 0)
– Byte: un byte con signo ((byte)12)
– Short: dos bytes con signo ((short)1231)
– Int: cuatros bytes con signo (1238921)
– Long: ocho bytes con signo (728478283L)
● Reales (se inicializan a 0.0)
– Float: punto flotante 32 bits (1.2342F)
– Double: punto flotante 64 bits (123.131)
Tipos de datos primitivos
● Booleanos (se inicializa a false)
– true / false
● Carácter (se inicializa al carácter nulo)
– 'S', 'a'
● El tamaño de datos está definido y es
independiente de la plataforma
TipoDatos
Tipos de datos referencia
● Objetos
– Instancias de clases
● Arrays
– Colección de elementos del mismo tipo,
sean básicos o complejos
● Se inicializan a null
Inicialización
● Las variables pueden inicializarse en la
definición
int a = 2;
char b = 'a';
double c = 123.13123;
Bicicleta d = new Bicicleta();
Constantes
● Variables que no pueden cambiar de
valor una vez establecido
● Modificador final
final int a;
a = 12;
final double b = 456.4546456;
Constantes
Ámbito
● Ámbito: parte de programa en el que
una variable está definida
● Variable miembro (de una clase)
● Parámetro (de un método)
● Variable local (de un método)
● Excepciones
Ámbitos
Ambito
Visibilidad
● Visibilidad: parte de programa en el que
una variable es accesible sin ser
calificada
● Las variables se pueden ocultar por
otras con el mismo nombre en ámbitos
más anidados
Visibilidad
Int a
Int a
Int a
Int a
¿a?
Visibilidad
Variables
public class Basic {
public static void main(String[] args) {
int sum = 0;
for (int current = 1; current <= 10; current++) {
sum += current;
}
System.out.println("Sum = " + sum);
}
}
¿Cúal es? ¿Qué tipo tienen? Alcance
Basic
Variables
public class Basic {
public static void main(String[] args) {
int sum = 0;
for (int current = 1; current <= 10; current++) {
sum += current;
}
System.out.println("Sum = " + sum);
}
}
¿Cúal es? ¿Qué tipo tienen? Alcance
Basic
Variables
public class Basic {
public static void main(String[] args) {
int sum = 0;
for (int current = 1; current <= 10; current++) {
sum += current;
}
System.out.println("Sum = " + sum);
}
}
¿Cúal es? ¿Qué tipo tienen? Alcance
Basic
Operadores
● Unarios
op1 operator
operator op1
● Binarios
op1 operator op2
● Ternarios
op1 operator1 op2 operator2 op3
Operadores aritméticos
● Binarios
– Suma: op1 + op2
– Resta: op1 – op2
– Multiplicacion: op1 * op2
– División: op1 / op2
– Módulo: op1 % op2
OperadoresAritmeticos
Operadores aritméticos
● Operaciones con enteros y reales
● El resultado depende de los operadores
– Algún double -> double
– Algún float -> float
– Algún long -> long
– Si no, int
Operadores aritméticos
● Unarios
– Número negativo (-2, -123)
– Convierte byte y short en int (+2, +65)
● Suma / resta unaria
– ++op1
– op1++
– --op1
– op1--
Operadores de comparación
● Devuelven booleanos
– Igualdad: op1 == op2
– Desigualdad: op1 != op2
– Mayor que: op1 > op2
– Mayor o igual que: op1 >= op2
– Menor que: op1 < op2
– Menor o igual que: op1 <= op2
OperadoresComparacion
Operadores de comparación
● Mucho cuidado con la igualdad
● Cuando se comparan variables
referencia, se compara si ambos
objetos son el mismo, no si son iguales
(tienen el mismo estado)
● Error típico
OperadoresComparacion
Operadores booleanos
● Operan sobre booleanos y devuelven
booleanos
– AND: op1 && op2
– OR: op1 || op2
– NOT: !op1
– XOR: op1 ^ op2
Operadores booleanos
● Java sólo evalúa si es necesario
● Si el primer operando de un AND es
false, no evalúa el segundo y devuelve
false
– Lo mismo con OR
● Para obligar a evaluar el segundo
oper
Comentarios de: Programación con java (0)
No hay comentarios