0% encontró este documento útil (0 votos)
4 vistas52 páginas

Prog3 Seminario Java

El documento es una introducción a Java que cubre sus características, sintaxis básica, tipos de datos, objetos, excepciones, y métodos, entre otros temas. Se detalla la compilación y ejecución de programas en Java, así como el uso de librerías y el entorno de desarrollo. Además, se incluyen ejemplos prácticos y actividades para reforzar el aprendizaje.

Cargado por

yyurima
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
4 vistas52 páginas

Prog3 Seminario Java

El documento es una introducción a Java que cubre sus características, sintaxis básica, tipos de datos, objetos, excepciones, y métodos, entre otros temas. Se detalla la compilación y ejecución de programas en Java, así como el uso de librerías y el entorno de desarrollo. Además, se incluyen ejemplos prácticos y actividades para reforzar el aprendizaje.

Cargado por

yyurima
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Introducción a Java

David Rizo, Pedro J.


Ponce de León

Seminario 1
Introducción a Java Contenidos

PROGRAMACIÓN 3 Características

Sintáxis básica

Programa principal

Salida básica

Compilación y
ejecución

Tipos de datos básicos

Objetos

Excepciones

Cadenas

Arrays
David Rizo, Pedro J. Ponce de León Métodos
Departamento de Lenguajes y Sistemas Informáticos Control de flujo

Universidad de Alicante Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Contenidos
David Rizo, Pedro J.
1 Características Ponce de León

2 Sintáxis básica
3 Programa principal
4 Salida básica Contenidos

5 Compilación y ejecución Características

Sintáxis básica
6 Tipos de datos básicos Programa principal
7 Objetos Salida básica

8 Excepciones Compilación y
ejecución

9 Cadenas Tipos de datos básicos

10 Arrays Objetos

Excepciones
11 Métodos
Cadenas
12 Control de flujo Arrays

13 Paquetes Métodos

Control de flujo
14 Librerías Java
Paquetes
15 CLASSPATH Librerías Java

16 Documentación CLASSPATH

Documentación
17 Archivos JAR
Archivos JAR
18 ANT ANT
Introducción a Java
Características principales de Java
David Rizo, Pedro J.
Ponce de León

• Lenguaje orientado a objetos: (casi) todo son objetos


Contenidos
• Ficheros fuente: extensión .java. Cada fichero contiene Características
una clase. El nombre del fichero debe coincidir con el de Sintáxis básica
la clase. Programa principal

• Se compila a bytecode. Por cada fichero fuente se genera Salida básica

Compilación y
un fichero de bytecode con extensión .class ejecución

• Librerías: ficheros .jar que contienen ficheros .class Tipos de datos básicos

Objetos
• JDK, Java Development Kit : incluye el compilador de Java Excepciones
(javac), las librerías estándar de Java y otras utilidades Cadenas

para desarrollar con código Java. Arrays

• Entornos de desarrollo integrados (IDE) principales: Métodos

Control de flujo
Eclipse*, Netbeans, e Intellij IDEA
Paquetes

(*) En prácticas usaremos Eclipse. Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Características principales de Java
David Rizo, Pedro J.
Ponce de León

Contenidos
• El bytecode es un lenguaje intermedio que es interpretado Características

y ejecutado por la máquina virtual de Java, que es Sintáxis básica

multiplataforma. Programa principal

Salida básica
• JRE, Java Runtime Environment: incluye la máquina
Compilación y
virtual (java), librerías estándar y otras utilidades para la ejecución

ejecución de bytecode. Tipos de datos básicos

Objetos
• El JDK incluye al JRE. En una máquina donde
Excepciones
desarrollemos aplicaciones Java instalaríamos el JDK. Cadenas

• En una máquina donde queremos ejecutar aplicaciones Arrays

Java, sólo es necesario instalar el JRE. Métodos

Control de flujo

Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Sintaxis básica
David Rizo, Pedro J.
Ponce de León

Las reglas de nombrado de identificadores son básicamente


las mismas que se usan para C++. En la ’jerga’ de Java, los
campos de una clase se denominan ’atributos’ y las funciones Contenidos

de una clase se llaman ’métodos’. Características

Sintáxis básica
// Este fichero se debe guardar como [Link]
Programa principal
// Generalmente, cada clase se situa en un fichero
public class Clase { Salida básica

/* Todos los atributos deben especificar la visibilidad */ Compilación y


ejecución
private int campo1;
Tipos de datos básicos
private float campo2; // los atributos se inicializan a 0
Objetos

/* El constructor no devuelve nada */ Excepciones

public Clase() { Cadenas


campo1 = 0; Arrays
} Métodos
/* Todos los metodos se definen inline */ Control de flujo
public int getCampo1() {
Paquetes
return campo1;
Librerías Java
}
} CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Constantes, estáticos [1]
David Rizo, Pedro J.
Ponce de León

Constantes Contenidos

Las constantes se definen usando la palabra reservada final Características

Sintáxis básica
public final int KN=10; Programa principal

Salida básica

Compilación y
ejecución
Métodos y campos estáticos
Tipos de datos básicos
Se definen usando la palabra reservada static Objetos

Excepciones
private static int contador=1;
Cadenas
public static final int KNN=10;
public static void incrementaContador () { Arrays

contador++; Métodos
} Control de flujo

Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Programa principal
David Rizo, Pedro J.
Ponce de León

main Contenidos

Características
El punto de entrada a la aplicación es el método main, un Sintáxis básica
método estático: Programa principal

Salida básica
// esto es una clase normal Compilación y
public class ClaseConMain { ejecución

// que ademas tiene el metodo main Tipos de datos básicos


// por lo que se puede invocar desde la maquina virtual Objetos
public static void main(String[] args) { Excepciones
// el array ’args’ contiene los argumentos que se pasan Cadenas
// al programa desde l n e a de comando.
Arrays
// sin incluir (como en C++) el nombre del ejecutable
Métodos
}
} Control de flujo

Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Salida por consola
David Rizo, Pedro J.
Ponce de León

Contenidos

Características

Salida Sintáxis básica

Programa principal
Para imprimir por la salida estándard usaremos Salida básica

[Link]("Cadena"); // sin salto de linea final Compilación y


ejecución
[Link](10+3); // con salto de linea final
Tipos de datos básicos

Para imprimir por la salida de error Objetos

Excepciones
[Link]("Ha ocurrido un error...");
Cadenas

Arrays

Métodos

Control de flujo

Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Compilación y ejecución en línea de comando
David Rizo, Pedro J.
Ponce de León

Compilación
La compilación en línea de órdenes (terminal): Contenidos

Características
> javac [Link] Sintáxis básica

Programa principal
Genera el fichero con bytecode [Link], por
Salida básica
defecto en el directorio actual. Compilación y
ejecución

Tipos de datos básicos


Ejecución
Objetos
Con la orden java invocamos a la máquina virtual, indicando Excepciones

el nombre de la clase que contiene el método main() Cadenas

Arrays
> java ClaseConMain
Métodos

Para esto el archivo [Link] debe estar, por Control de flujo

defecto, en el directorio actual (más adelante veremos que Paquetes

Librerías Java
esto se puede cambiar).
CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Compilación y ejecución en línea de comando
David Rizo, Pedro J.
Ponce de León

Contenidos
ACTIVIDAD Características

Ahora estás listo para compilar y ejecutar tu primer programa Sintáxis básica

Java. en la carpeta codigo que acompaña a este documento Programa principal

Salida básica
encontrarás la clase ClaseConMain lista para compilar y
Compilación y
ejecutar. ejecución

• Abre el archivo [Link] con un editor de texto Tipos de datos básicos

Objetos
plano o de código y échale un vistazo para hacerte una
Excepciones
idea de lo que hace el programa. Cadenas
• Luego compílalo y ejecútalo desde un terminal situándote Arrays

en la carpeta codigo. Métodos

Control de flujo

Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Tipos de datos escalares [2]
David Rizo, Pedro J.
Ponce de León
Java es un lenguaje fuertemente tipado. Cada expresión del
lenguaje tiene un tipo asociado. Casi todos los tipos en Java
son objetos, menos los tipos escalares básicos:
Contenidos

Tipos escalares (no objetos) Características

Sintáxis básica

byte, short, int, long, float, double, char, boolean Programa principal

Salida básica
Los literales se especifican así: Compilación y
ejecución
int x = -14; Tipos de datos básicos
float a = 100.3f;
Objetos
double b = 100.3; // o 1.03e2
Excepciones
char c = ’a’;
boolean d = true; // o false Cadenas

Arrays

Métodos

Control de flujo
Operadores
Paquetes
Disponemos de los mismos operadores que en C++ Librerías Java

CLASSPATH
a+b*3; a++; if (a==1) b=2; a = (float)b; ...
Documentación

Archivos JAR

ANT
Introducción a Java
Tipos de datos escalares [2]
David Rizo, Pedro J.
Ponce de León

ACTIVIDAD
Contenidos
En algunas páginas como ésta o la anterior, verás que el título Características
tiene un número entre corchetes ([2]). Este número te servirá Sintáxis básica

para comprobar el código que se presenta en esa página, Programa principal

ejecutando un programa que encontrarás en la carpeta Salida básica

codigo adjunta. El archivo de código fuente es [Link]. Compilación y


ejecución
Compílalo y ejecútalo pasándole como argumento el número Tipos de datos básicos
indicado entre los corchetes: Objetos

Excepciones
> java Clase 2
Cadenas

te mostrará el resultado del código que aparece en la página. Arrays

También puedes consultar el código fuente y buscar la cadena Métodos

"// [N]", sustituyendo ’N’ por el número correspondiente. Te Control de flujo

Paquetes
llevará a un método que contiene el código de la página actual.
Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Objetos
David Rizo, Pedro J.
Ponce de León
Objetos y referencias a objetos

• Los objetos se crean siempre en memoria dinámica con el


operador new. Contenidos

• Para guardar la dirección de memoria de un objeto Características

utilizamos referencias a objetos (o simplemente Sintáxis básica

Programa principal
’referencias’). Equivalen a los punteros en C++.
Salida básica
• las referencias tienen valor null (en minúsculas) por Compilación y
ejecución
defecto.
Tipos de datos básicos
En el código siguiente, ’Numero’ es una clase ficticia y ’a’ una Objetos

referencia: Excepciones

Cadenas
Numero a = new Numero(10);
Arrays

que podemos representar gráficamente así: Métodos

Control de flujo

Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Objetos
David Rizo, Pedro J.
Ponce de León

Asignación de referencias
Contenidos

Numero a = new Numero(10); Características

Numero b = a; Sintáxis básica

Programa principal
hace que ’b’ apunte a la misma instancia, es decir, el mismo Salida básica
objeto, la misma zona de memoria que ’a’. Tenemos dos Compilación y
ejecución
referencias apuntando a un único objeto.
Tipos de datos básicos

Objetos

Excepciones

Cadenas

Arrays

Métodos

Control de flujo

Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Objetos
David Rizo, Pedro J.
Ponce de León

Copia de objetos
Para duplicarlo habría que crear un nuevo objeto con new, Contenidos

posiblemente invocando a un constructor de copia, si la clase Características

lo tiene: Sintáxis básica

Programa principal
Numero a = new Numero(10); Salida básica
Numero b = new Numero(a); Compilación y
ejecución

Tipos de datos básicos

Objetos

Excepciones

Cadenas

Arrays

Métodos

Control de flujo

Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Objetos
David Rizo, Pedro J.
Ponce de León

Contenidos

Características
La clase Object Sintáxis básica

La clase Object representa a todos los objetos de Java. Programa principal

Cualquier objeto de cualquier clase es también un objeto de la Salida básica

Compilación y
clase Object. ejecución

Tipos de datos básicos


Object obj = new Numero(10); // Ok
obj = new Persona(); // Ok Objetos

Excepciones
Así, podemos utilizar referencias de tipo Object para apuntar a Cadenas

cualquier tipo de objeto. Arrays

Métodos

Control de flujo

Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Objetos
David Rizo, Pedro J.
Ponce de León

El recolector de basura
Contenidos
En Java no es necesario liberar explícitamente la memoria de Características
objetos que ya no necesitamos. Lo hace el recolector de Sintáxis básica

basura o garbage collector cuando un objeto se queda sin Programa principal

referencias que apunten a él: Salida básica

Compilación y
Numero a = new Numero(10); ejecución
a = new Numero(1000); Tipos de datos básicos

Objetos

Excepciones

Cadenas

Arrays

Métodos

Control de flujo

Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Objetos
David Rizo, Pedro J.
Ponce de León
operador instanceof
La expresión
objeto instanceof Clase
Contenidos

devuelve cierto si ’objeto’ apunta a un objeto de la clase Características

Sintáxis básica
’Clase’, y falso en caso contrario.
Programa principal

Salida básica
Casting (conversión) Compilación y
ejecución
Es similar a C++: Tipos de datos básicos

int x = 10; Objetos

float f = (float) x; Excepciones

Cadenas
Dado un objeto cualquiera, también podemos usar el operador Arrays
de conversión para asignarlo a una referencia de tipo Métodos
conocido: Control de flujo

Paquetes
Object cualquiera;
Librerías Java
MiClase obj = (MiClase) cualquiera;
CLASSPATH

Nota: para hacer la conversión sin riesgo, debemos estar Documentación

seguros de que ’cualquiera’ apunta a un objeto de tipo Archivos JAR

’MiClase’. ANT
Introducción a Java
Objetos
David Rizo, Pedro J.
Ponce de León

Contenidos

operador punto (’.’) Características

Sintáxis básica
Para acceder a los atributos o invocar a los métodos de una Programa principal
clase usando una referencia a objeto, usamos el operador ’.’: Salida básica

Compilación y
Numero a = new Numero(10); ejecución
Numero b = new Numero(100);
Tipos de datos básicos

Objetos
[Link] = 3;
Excepciones
[Link] = 4;
[Link](b); Cadenas

[Link](3); Arrays

Métodos

Control de flujo

Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Objetos
David Rizo, Pedro J.
Ponce de León
La referencia this [3]
Igual que en C++, dentro de un método no estático podemos
hacer referencia al objeto mediante el cual invocamos al Contenidos
método con la referencia this. Características

Sintáxis básica
public class Numero {
private int valor; Programa principal

public Numero(int valor) { [Link] = valor; } Salida básica


public void suma(Numero n) { [Link] += [Link]; } Compilación y
ejecución
}
... Tipos de datos básicos

Numero a = new Numero(10); Objetos


Numero b = new Numero(3); Excepciones
[Link](b); Cadenas

Arrays

Métodos

Control de flujo

Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Objetos
David Rizo, Pedro J.
Ponce de León

Contenidos

Características

Sintáxis básica
ACTIVIDAD
Programa principal
Ejecuta Salida básica

Compilación y
> java Clase 3 ejecución

Tipos de datos básicos


para explorar el resultado del código en la página anterior (no
Objetos
te lo recordaremos más, recuerda hacerlo cuando veas en una Excepciones
página el número entre corchetes). Cadenas

Arrays

Métodos

Control de flujo

Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Objetos
David Rizo, Pedro J.
Ponce de León
Comparación
La expresión
a==b Contenidos

Características
está comparando referencias, es decir, direcciones de Sintáxis básica
memoria. Para comparar el contenido de dos objetos debemos Programa principal
hacer: Salida básica

Compilación y
[Link](b) ejecución

Tipos de datos básicos

Objetos
El método ’equals’ Excepciones

Cadenas
Si queremos compara objetos de una clase creada por
Arrays
nosotros, debemos implementar el método ’equals’. Métodos

public boolean equals(Object obj) Control de flujo

Paquetes
El argumento de equals es una referencia a objeto de clase Librerías Java
’Object’. Esto implica que al método equals se le puede pasar CLASSPATH

un objeto de cualquier clase (aunque normalmente será uno Documentación

del mismo tipo del objeto con que queremos compararlo). Archivos JAR

ANT
Introducción a Java
Objetos
David Rizo, Pedro J.
Ponce de León
Implementación de ’equals’ [4]
Para implementar el método ’equals’ hay que tener en cuenta
que la operación de igualdad debe cumplir las propiedades
Contenidos
reflexiva, simétrica y transitiva y asegurarnos de que
Características
[Link](null) == false // para cualquier x no nulo Sintáxis básica

Programa principal
Además, para poder comparar los atributos del argumento con Salida básica
los del objeto this, deberemos convertir el argumento a una Compilación y
referencia de nuestra clase. Por tanto, toda implementación del ejecución

Tipos de datos básicos


método equals debe realizar estas comprobaciones:
Objetos
public boolean equals(Object obj) { Excepciones
if (obj == this) return true; // las dos referencias Cadenas
// apuntan al mismo objeto
Arrays
if (obj == null) return false;
Métodos
if (!(obj instanceof MiClase)) return false;
MiClase elotro = (MiClase) obj; Control de flujo

// a partir de aqui comparar los atributos de ambos Paquetes

// objetos (’this’ y ’elotro’) para determinar si Librerías Java


// son iguales o no. CLASSPATH
// !OJO! si los atributos son referencias a objetos, Documentación
// hay que usar ’equals’ para compararlos. Archivos JAR
}
ANT
Introducción a Java
Objetos
David Rizo, Pedro J.
Ponce de León

Wrappers (objetos) Contenidos

Características
Cada tipo escalar tiene una clase equivalente:
Sintáxis básica
Byte, Integer, Float, Double, Char, Boolean Programa principal

Salida básica
que se inicializan Compilación y
ejecución
Integer a = null; // es nulo por defecto
Tipos de datos básicos
a = new Integer(29);
Objetos
int x = [Link](); // x es 29
Excepciones

Cadenas
Java simula la compatibildad entre los tipos escalares y sus Arrays

correspondientes clases ’wrapper’ mediante asignación directa Métodos

entre ellos. Es lo que se conoce como ’boxing’ y ’unboxing’ Control de flujo

(sig. página). Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Objetos
David Rizo, Pedro J.
Ponce de León

Boxing [5]
Cuando hacemos Contenidos

Características
Integer b = 3;
Sintáxis básica

internamente se está haciendo Programa principal

Salida básica
Integer b = new Integer(3);
Compilación y
ejecución

Tipos de datos básicos

Unboxing [5] Objetos

Excepciones
y al contrario, al escribir Cadenas

Integer b = new Integer(100); Arrays

int x = b; Métodos

Control de flujo
internamente se está haciendo Paquetes

int x = [Link](); Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Excepciones
David Rizo, Pedro J.
Ponce de León

Concepto
Contenidos
• Una excepción es un mecanismo diseñado para manejar
Características
situaciones de error alterando el flujo normal de ejecución Sintáxis básica
de un programa. Programa principal

• Ejemplo de excepciones son el acceso a una dirección de Salida básica

memoria inválida, la división por cero, o la referencia a Compilación y


ejecución
una posición negativa en un array. Tipos de datos básicos

• En su forma más básica, cuando se produce la excepción Objetos

Excepciones
el método invocado aborta su ejecución y devuelve el
Cadenas
control al método que lo invoca, operación que se repite
Arrays
hasta llegar al programa principal el cual para la ejecución Métodos
de la aplicación. Control de flujo

• Las excepciones son objetos de clases cuyo nombre Paquetes

suele tener la forma ’BlablaException’. Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Excepciones [6]
David Rizo, Pedro J.
Ponce de León
Las dos excepciones con las que es más probable que nos
encontremos son:
NullPointerException
Contenidos

Se lanza cuando estamos accediendo a una posición de Características

memoria sin inicializar (para la que no se ha hecho un new). Sintáxis básica

Por ejemplo: Programa principal

Salida básica
Integer a, b; Compilación y
if ([Link](b)) { ejecución

// este if lanza la excepcion NullPointerException Tipos de datos básicos


} ..... Objetos

Excepciones

Cadenas

ArrayIndexOutOfBoundsException Arrays

Métodos
Lanzada cuando se accede a una posición inválida de un Control de flujo
array. Por ejemplo: Paquetes

int [] v = new int[10]; Librerías Java

v[20] = 3; CLASSPATH
// esto lanza la excepcion ArrayIndexOutOfBoundsException Documentación

Archivos JAR

ANT
Introducción a Java
Cadenas [7]
David Rizo, Pedro J.
Ponce de León

String
Java dispone de una clase para trabajar con cadenas
Contenidos
String s = new String("Hola");
Características

Recordar la comparación Sintáxis básica

Programa principal
s == "Hola" // mal Salida básica
[Link]("Hola") // bien Compilación y
ejecución

Tipos de datos básicos

toString() Objetos

Excepciones
Todas las clases suelen tener definido el método Cadenas
toString(). Java utiliza este método para convertir un Arrays
objeto de cualquier clase a cadena. Métodos

Control de flujo
Float f = new Float(20);
Paquetes
String s = [Link]();
Librerías Java
¡OJO! ’String’ comienza con mayúscula. Los nombres de CLASSPATH

clases en Java se escriben normalmente con mayúscula inicial. Documentación

Archivos JAR

ANT
Introducción a Java
Cadenas
David Rizo, Pedro J.
Ponce de León
Concatenación [8]
Las cadenas se pueden concatenar con el operador +, si
mezclamos otros tipos éstos se pasan a cadena
Contenidos
automáticamente usando el método toString().
Características
int i=100; Sintáxis básica
"El valor de i es = " + i; Programa principal

Salida básica
Este código internamente crea 4 objetos, internamente hace
Compilación y
ejecución
String s1 = new String("El valor de i es = ");
String s2 = new Integer(i).toString(); Tipos de datos básicos

String s3 = [Link](s2); // que crea un objeto nuevo Objetos

Excepciones

Cadenas
StringBuilder Arrays

Métodos
Para evitar la creación de tantos objetos podemos usar
Control de flujo
StringBuilder Paquetes

StringBuilder sb = new StringBuilder(); Librerías Java

[Link]("El valor de i es = "); CLASSPATH


[Link](i); Documentación
[Link](); // devuelve un objeto String Archivos JAR

ANT
Introducción a Java
Arrays [9]
David Rizo, Pedro J.
Los arrays se definen como los arrays dinámicos de C++ Ponce de León

Integer [] v; // v es un puntero a null

Los arrays son objetos. Se inicializa así:


Contenidos
v = new Integer[100]; Características

Sintáxis básica
Ahora los contenidos de v, es decir v[0], v[1], , etc... son
Programa principal
null, se deben inicializar Salida básica

// [Link] es la longitud reservada para el array Compilación y


ejecución
for (int i=0; i<[Link]; i++) {
Tipos de datos básicos
v[i] = new Integer(0);
// v[i] = 0 (equivalente por el boxing) Objetos

} Excepciones

Cadenas
Se pueden crear literales array reservando también memoria Arrays

int [] v = new int []{1,2,3,4,5}; // contiene 5 enteros Métodos

Control de flujo
y se pueden copiar manualmente usando un bucle o con el Paquetes

método estático arraycopy de la clase System Librerías Java

CLASSPATH
int [] origen = new int []{1,2,3,4,5};
Documentación
int [] destino = new int[[Link]];
Archivos JAR
[Link](origen, 0, destino, 0, [Link]);
ANT
Introducción a Java
Métodos, paso por valor
David Rizo, Pedro J.
Ponce de León

Métodos Contenidos

Características
A las funciones miembro de una clase se les llama métodos. Sintáxis básica

Programa principal
Parámetros Salida básica

Todos los parámetros se pasan por valor Compilación y


ejecución

void F(int a, String x, int [] v) { Tipos de datos básicos

a=10; // este cambio no afecta al valor original Objetos

x = "Hola"; // no afecta al original Excepciones


v[2] = 7000; Cadenas
// lo que se ha pasado por valor es Arrays
// el puntero a v, v[2] se cambia en el original Métodos
}
Control de flujo

Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Métodos, paso por valor
David Rizo, Pedro J.
Ponce de León

ACTIVIDAD [10]
Contenidos
Dada la función F() definida en la página anterior y el siguiente
Características
fragmento de código Sintáxis básica

int z = 0; Programa principal

String str = "Adios"; Salida básica


int [] array = new int []{1,2,3,4,5}; Compilación y
F(z,str,array); ejecución

Tipos de datos básicos

• Intenta predecir el valor de ’z’, ’str’ y ’array[2]’ tras la Objetos

Excepciones
llamada a F().
Cadenas
• Ejecuta la actividad mediante la orden java Clase 10 Arrays

en la carpeta codigo y comprueba si acertaste. Métodos

Control de flujo
• Consulta el esquema de la siguiente página para
Paquetes
comprender lo sucedido.
Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Métodos, paso por valor
David Rizo, Pedro J.
Ponce de León
ACTIVIDAD [10]

Contenidos

Características

Sintáxis básica

Programa principal

Salida básica

Compilación y
ejecución

Tipos de datos básicos

Objetos

Excepciones

Cadenas

Arrays

Métodos

Control de flujo

Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Control de flujo [11]
David Rizo, Pedro J.
Ponce de León

En general no cambia respecto a C++. A partir de la versión


1.7 de Java existe la posibilidad de usar cadenas en los
Contenidos
switch.
Características

Bucles Sintáxis básica

Programa principal
Para recorrer arrays, por ejemplo, usaremos: Salida básica

String v[] = new String[] {"Azul", "Verde", "Rojo"}; Compilación y


ejecución

Tipos de datos básicos


for (int i=0; i<[Link]; i++) {
[Link](v[i]); Objetos

} Excepciones

Cadenas
for (String color: v) { Arrays
[Link](color); // imprime un color por linea Métodos
}
Control de flujo

Las instrucciones ’if’, ’while’ y ’do-while’ se usan igual que en Paquetes

Librerías Java
C++.
CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Paquetes
David Rizo, Pedro J.
Ponce de León

package
Contenidos
Las clases se distribuyen físicamente en directorios. Éstos Características
constituyen lo que se denomina package Sintáxis básica

Programa principal

Para que una clase esté en un paquete hay que: Salida básica

Compilación y
• Guardar el fichero de la clase en el directorio del paquete ejecución

Tipos de datos básicos


• Declarar al inicio del fichero el package al que pertenece,
Objetos
separando directorios (paquetes) con puntos
Excepciones

package [Link]; Cadenas

class Ejemplo { Arrays

} Métodos

Control de flujo
El fichero [Link] se debe guardar en el directorio Paquetes
prog3/ejemplos. Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Paquetes
David Rizo, Pedro J.
Ponce de León

Modularización
No es obligatorio usar paquetes, pero es recomendable. Si
queremos usar una clase de otro paquete debemos incluirla, Contenidos

tanto si es nuestra o de una librería Características

Sintáxis básica
package [Link];
Programa principal
// clase de libreria de Java
import [Link]; Salida básica

Compilación y
ejecución
// clase nuestra de otro paquete
Tipos de datos básicos
import [Link];
Objetos

// Lo siguiente incluye todas las clases de [Link]. Excepciones

// Por trazabilidad, es mejor no usar el * Cadenas


import [Link].*; Arrays

Métodos
Sólo se incluyen por defecto todas las clases de [Link] y
Control de flujo
por tanto no es necesario incluirlas explícitamente Paquetes

// Lo siguiente no es necesario, todos las clases Librerías Java

// de [Link] estan incluidas por defecto CLASSPATH


import [Link]; Documentación

Archivos JAR

ANT
Introducción a Java
Paquetes
David Rizo, Pedro J.
Ponce de León

ACTIVIDAD
Contenidos

• Localiza en la carpeta codigo el paquete prog3 y dentro Características

de el las clases Ejemplo y Clase que aparecen en las Sintáxis básica

Programa principal
páginas anteriores.
Salida básica
• Revisa su código fuente y en particular las instrucciones Compilación y
ejecución
package e import.
Tipos de datos básicos
• Desde la carpeta codigo, compila la clase Ejemplo : Objetos
javac prog3/ejemplos/[Link] Excepciones

• ¿Dónde se ha guardado el archivo [Link]? Cadenas

Arrays
• El compilador también ha compilado el archivo Métodos
prog3/otrosejemplos/[Link] sin tú pedírselo. Control de flujo

¿A qué crees que se debe? Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
API de Java
David Rizo, Pedro J.
Ponce de León

Contenidos
API (Application Programming Interface)
Características

Java dispone de una extensa librería de clases que se puede Sintáxis básica

consultar en [Link] Programa principal

Salida básica
docs/api/[Link]
Compilación y
• Esta estructurada en paquetes. ejecución

Tipos de datos básicos


• El paquete [Link] contiene las clases básicas del
Objetos
lenguaje Excepciones

• El paquete [Link] contiene clases para crear Cadenas

colecciones de objetos: vectores dinámicos (listas), Arrays

Métodos
conjuntos, mapas, etc.
Control de flujo

Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
API de Java
David Rizo, Pedro J.
Ponce de León

Vectores dinámicos [12]


Como medio de almacenamiento lineal dinámico usaremos la
Contenidos
clase ArrayList. Características

import [Link]; // necesario Sintáxis básica

..... Programa principal


ArrayList<Integer> v = new ArrayList<Integer>(); Salida básica
[Link](87); // esto internamente hace [Link](new Integer(87)) Compilación y
[Link](22); // hace mas grande el vector ejecución

Tipos de datos básicos


ArrayList<String> sv = new ArrayList<String>(); Objetos
[Link]("PROG3"); Excepciones
[Link]("JAVA"); Cadenas

Arrays
// get() devuelve un objeto del tipo especificado
Métodos
Integer a = [Link](0);
String s = [Link](1); // "JAVA" Control de flujo

Paquetes

[Link](100); // lanza una excepcion (error de ejecucion) Librerías Java


[Link]([Link]()); // size() devuelve el tamanyo CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
CLASSPATH
David Rizo, Pedro J.
Ponce de León

ClassNotFoundException Contenidos

Características
Esta excepción aparece a veces al intentar iniciar un programa
Sintáxis básica
Java. Antes de comenzar a ejecutar el programa principal, la Programa principal
máquina virtual debe cargar todos los archivos .class Salida básica
necesarios. Si no encuentra alguno, lanza esta excepción. Compilación y
ejecución

Tipos de datos básicos


Ejemplo Objetos

Excepciones
mihome$ java Clase Cadenas
Error: Could not find or load main class Clase Arrays
Caused by: [Link]: Clase
Métodos

Control de flujo

Pero ¿ dónde deben estar esos archivos? En el classpath. Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
CLASSPATH
David Rizo, Pedro J.
Ponce de León

Contenidos

Características
classpath Sintáxis básica

Programa principal
El classpath es la lista de directorios donde Java busca los
Salida básica
archivos .class necesarios para ejecutar una aplicación. Compilación y
Por defecto son ejecución

Tipos de datos básicos


• el directorio actual Objetos

• ruta de las librerías del JRE (Java Runtime Environment), Excepciones

donde se encuentran los archivos .class de la API de Java. Cadenas

Arrays

Métodos

Control de flujo

Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
CLASSPATH
David Rizo, Pedro J.
Ponce de León

Contenidos
Supongamos que nuestro programa principal está compilado
Características
en un archivo llamado [Link] que reside en Sintáxis básica
/home/mihome/codigo. Programa principal

Salida básica
Caso 1
Compilación y
Todas nuestras clases están en un mismo directorio. No ejecución

Tipos de datos básicos


usamos package. Desde ese directorio,
Objetos
/home/mihome/codigo> java Clase Excepciones

Cadenas

Arrays
(Ya has comprobado que esto funciona si has realizado alguna
Métodos
de las actividades) Control de flujo

Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
CLASSPATH
David Rizo, Pedro J.
Ponce de León

Caso 2
Ejecutamos java desde un directorio distinto al que contiene
Contenidos
nuestros .class. Hay que definir el classpath: Características

Sintáxis básica
Opcion 1
Programa principal

Definir la variable de entorno CLASSPATH con la lista de Salida básica

directorios donde están los .class (mejor usar rutas absolutas) Compilación y
ejecución

.../otrodirectorio> export CLASSPATH=/home/mihome/codigo Tipos de datos básicos

Objetos

.../otrodirectorio> java Clase Excepciones

Cadenas

Arrays

Opcion 2 Métodos

Control de flujo
Usar la opcion -cp o -classpath de java: Paquetes

.../otrodirectorio> java -cp /home/mihome/codigo Clase Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
CLASSPATH
David Rizo, Pedro J.
Ponce de León

Contenidos

Características

Sintáxis básica
Caso 3
Programa principal

Los .class están repartidos en varios directorios. Salida básica

Compilación y
> export CLASSPATH=/home/mihome/milibjava:/home/mihome/codigo ejecución
> java Clase Tipos de datos básicos

Objetos
o bien usar -cp. OJO: la opcion ’-cp’ anula a CLASSPATH. Se
Excepciones
debe usar una u otra, pero no ambas a la vez. Cadenas

Arrays

Métodos

Control de flujo

Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Paquetes y classpath
David Rizo, Pedro J.
Ponce de León

Cuando nuestras clases están organizadas en paquetes.


Supongamos que tenemos lo siguiente:
Contenidos
Estructura del proyecto Características

modelo/[Link]: Sintáxis básica

Programa principal
package modelo; Salida básica
public class MiClase {...}
Compilación y
ejecución
mains/[Link]: Tipos de datos básicos

package mains; Objetos

public class Main {...} Excepciones

Cadenas
modelo/m2/[Link]: Arrays

package modelo.m2; Métodos

public class OtraClase {...} Control de flujo

Paquetes

Librerías Java
classpath deberá contener el directorio padre de la estructura CLASSPATH
de paquetes. Documentación

Archivos JAR

ANT
Introducción a Java
Paquetes y classpath
David Rizo, Pedro J.
Ponce de León

Contenidos
Supongamos que ese directorio del proyecto es
Características
/home/mihome/codigo. Si quiero usar OtraClase en Sintáxis básica
[Link]: Programa principal

import [Link]; Salida básica

Compilación y
Al ejecutar ejecución

Tipos de datos básicos


.../otrodir>java -cp /home/mihome/code [Link] Objetos

Excepciones
para poder ejecutar la clase Main, ’java’ buscará en los
Cadenas
directorios del classpath un directorio mains y dentro de éste
Arrays
el archivo [Link], y un directorio modelo/m2 y dentro Métodos
de éste el archivo [Link]. Control de flujo

Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Paquetes y classpath
David Rizo, Pedro J.
Ponce de León

ACTIVIDAD
Contenidos

En la carpeta codigo encontrarás los paquetes modelo y Características

mains indicados en las páginas anteriores. Tu objetivo va a Sintáxis básica

ser ejecutar el programa principal desde otro directorio. Programa principal

Salida básica
• Echale un vistazo al código de las tres clases que
Compilación y
contienen los paquetes. ejecución

Tipos de datos básicos


• Cambia a otro directorio.
Objetos

• Asigna el classpath de manera que apunte a la carpeta Excepciones

codigo (usa rutas absolutas). Puedes usar la variable de Cadenas

entorno CLASSPATH o la opción -cp de la máquina virtual. Arrays

Métodos
• Ejecuta el programa principal que se encuentra en la Control de flujo
clase Main como se indica en la página anterior. Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Documentación I
David Rizo, Pedro J.
Ponce de León

Javadoc
En java se utiliza un formato basado en anotaciones embebido
en comentarios. Éstos se inician con /** y los tipos de Contenidos

anotaciones comienzan por @: Características

Sintáxis básica

Programa principal
package paquete;
/** Salida básica

* Clase de ejemplo: documentamos brevemente el cometido Compilación y


ejecución
* de la clase
Tipos de datos básicos
* @author drizo
Objetos
* @version 1.8.2011
*/ Excepciones

public class Ejemplo { Cadenas

Arrays
/** Métodos
* Esto es un campo que vale para ... Control de flujo
*/ Paquetes
private int x;
Librerías Java

private int y; // esto no sale en el javadoc CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Documentación II
David Rizo, Pedro J.
Ponce de León

/**
* Constructor: hace esta operacion....
* @param ax Es el radio de ... Contenidos

* @param ab Si es cierto pasa ... Características


* ’@param’ documenta argumentos de un metodo. Sintáxis básica
* Su formato es ’@param <id> <descripcion>’ Programa principal
* <id> debe coincidir con el nombre de alguno de los argumentos
Salida básica
*/
Compilación y
public Ejemplo(int ax, boolean ab) { ejecución
.... Tipos de datos básicos
}
Objetos

Excepciones
/**
Cadenas
* Getter.
* @return un valor siempre mayor que cero... Arrays

*/ Métodos
public double getX() { Control de flujo
return x; Paquetes
} Librerías Java
}
CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Documentación III
David Rizo, Pedro J.
Ponce de León

Generación
La documentación en html se genera mediante la orden Contenidos

Características
javadoc -d doc paquete otropaquete
Sintáxis básica

genera un directorio doc con la documentación de las clases Programa principal

en los paquetes paquete y otropaquete. Salida básica

Compilación y
ejecución

Tipos de datos básicos


ACTIVIDAD
Objetos

• Prueba a generar la documentación del paquete mains Excepciones

que se encuentra en la carpeta codigo que acompaña a Cadenas

Arrays
este documento.
Métodos
• Para ver el resultado abre el archivo generado Control de flujo

doc/[Link] en tu navegador. Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
Archivos JAR
David Rizo, Pedro J.
Ponce de León

jar es una utilidad de Java (similar a tar) para empaquetar en


un único fichero con extensión .jar una estructura de Contenidos

directorios. Se suele usar para archivos .class. Características

Sintáxis básica

JAR Programa principal

Salida básica
Para empaquetar, desde el directorio de trabajo:
Compilación y
ejecución
/home/mihome/code> jar cvf [Link] mains modelo
Tipos de datos básicos

Ahora podemos llevarnos [Link] donde queramos (p. Objetos

ej. /home/mihome/libs) y, desde cualquier lugar: Excepciones

Cadenas
> java -cp /home/mihome/libs/[Link] [Link]
Arrays

Para ver el contenido de un archivo .jar: Métodos

Control de flujo
> jar tvf [Link] Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT
Introducción a Java
ANT
David Rizo, Pedro J.
Ponce de León

ant Contenidos

Características
ant es una herramienta para automatizar las diversas tareas
Sintáxis básica
relativas a la compilacion, generación de documentación,
Programa principal
archivos jar, etc. Es similar a ’make’. En Programación 3 lo Salida básica
usaremos como parte del script de corrección de prácticas. No Compilación y
es necesario que conozcas su funcionamiento, pero si tienes ejecución

Tipos de datos básicos


curiosidad...
Objetos

Excepciones
Tutorial de ’ant’ Cadenas

En el enlace siguiente tienes un breve tutorial en castellano: Arrays

Métodos
http:
Control de flujo
//[Link]/java/herramientas/[Link]
Paquetes

Librerías Java

CLASSPATH

Documentación

Archivos JAR

ANT

También podría gustarte