Sei sulla pagina 1di 66

Curso de Java y O.O.

Biografia
1991 Green Team dirigido por James Gosling
1994 Reorientacin a la web por John Gaga, James Gosling,
Patrick Naughton, Wayne Rosing y Eric Schmidt
1995 Presentacin pblica en las conferencias de SunWorld
1996 Fundacin de Javasoft y publicacin de la primera
versin
1998 JSE 1.2. A partir de este momento, Java 2
2000 J2SE 1.3. CORBA, JNDI,.
2002 J2SE 1.4
2004 J2SE 5.0. Plantillas, Metadatos(Anotaciones)
2006 Java SE 6 APIs, Cliente de servicios web, Rendimiento
2011 Jave SE 7 Soporte XML, closures, Kernel, Api de fechas
2014 Java SE 8 JavaFX, mejora en seguridad y concurrencia

Su nacimiento
El lenguaje Java se cre con cinco objetivos
principales:
Debera usar el paradigma de la programacin orientada a
objetos.
Debera permitir la ejecucin de un mismo programa en
mltiples sistemas operativos.
Debera incluir por defecto soporte para trabajo en red.
Debera disearse para ejecutar cdigo en sistemas
remotos de forma segura.
Debera ser fcil de usar y tomar lo mejor de otros lenguajes
orientados a objetos, como C++.

Java en nmeros

Presente en el 97% de los ordenadores


+ de 9 millones de desarrolladores
3 mil millones de telfonos mviles
100% de los reproductores Blu-ray
125 millones de televisores
5 de los 5 principales fabricantes de equipos

Duke,
la mascota

Herramientas Desarrollo
Java Development Kit
(JDK)
Java Virtual Machine (JVM)
Java Runtime Environment
(JRE)

IDEs
Eclipse
Netbeans

Herramientas Desarrollo
Java Development Kit
(JDK)
Java Virtual Machine (JVM)
Java Runtime Environment
(JRE)

IDEs
Eclipse
Netbeans

Java

JDK = Entorno de
desarrollo + JRE

JRE = Libreras de run time


+ JVM

JVM = Maquina virtual


para
ejecucin/interpretacin de
Java

Herramientas Desarrollo
JDK

Java Development Kit (JDK )


Conjunto de herramientas y libreras para escribir y compilar
aplicaciones Java
Instala tambin la maquina virtual necesaria para la ejecucin
La maquina virtual, se puede descargar de forma separada (JVM)

Herramientas Desarrollo
JVM

Java Virtual Machine (JVM)


Ejecuta los programas Java
Asla el programa de la plataforma
Logra portabilidad y rendimiento
Proporciona seguridad

Herramientas Desarrollo
JVM

Write once, run anywhere


O Write once, debug everywhe

Herramientas Desarrollo
JVM

Y la magia se hace

Herramientas Desarrollo
JVM

Recolector de basura (garbage collector)


Libera memoria no utilizada
Se realiza de forma automtica
La mquina virtual lo soluciona

Instalando herramientas

Instalar JDK

Y comprobamos la maquina virtual

Y el compilador

Instalando herramientas
Si no
funciona..
Configurar variables de entorno
CLASSPATH
PATH
JAVA_HOME
Con los valores:

Nuestra primera clase

Abrimos el bloc de notas para escribir:

Nuestra primera clase

Y lo guardamos en D:\Hola:

Nuestra primera clase

Para convertirlo en bytecode (compilarlo) hacemos

Y para ejecutarlo

Los paquetes
Las clases se pueden organizar en paquetes

Sintaxis: package <nombre paquete>


Ejemplo: com.ejemplo.primero

Equivale a

Los paquetes
Declaracin

Necesidad

Por defecto

Es necesario
declarar el paquete
en el que se
encuentra la clase,
al principio del
cdigo
No es obligatorio que
las clases pertenezcan
a un paquete
Si no se especifica
paquete, la clase
pertenece a default
package

Herramientas Desarrollo
Java Development Kit
(JDK)
Java Virtual Machine (JVM)
Java Runtime Environment
(JRE)
Gestor de Base de datos
MySQL
Oracle

Gestores de versiones
Subversion
Subclipse

IDEs
Eclipse
Netbeans

Servidores de aplicaciones
Apache TOMCAT
Glassfish

Depuracion
JUnit

Entorno de desarrollo integrado

Ventajas
Incrementa la productividad
Ayuda al desarrollo, las pruebas y la depuracin

Eclipse
Instalacin
Desarrollado en Java, no requiere instalacin
Descomprimir eclipse-jee-mars-1-win32-x86_64.zip.
Por ejemplo en c:\programas\

Eclipse
Para iniciar

Eclipse
El rea de trabajo (Workspace)
Dentro, cada proyecto, ser una carpeta
Conservan la configuracin Java (versin,) y alguna
otra

.project que contiene las informaciones del proyecto


.classpath si el proyecto es de naturaleza java
.settings que contiene las propiedades de los recursos.
.metadata Almacena las preferencias de
Window>Preferences

Eclipse

A recordar
Eclipse almacena las distintas configuraciones en la
carpeta .metadata del Workspace
No es conveniente copiar/cambiar/mover esta carpeta
Usar un workspace distinto para cada versin de Eclipse
Si debe compartir proyectos entre diferentes versiones
de Eclipse, gurdelo fuera del workspace
Si Eclipse se hace lento: exportar y reimportar
General>Preferences

Eclipse

Eclipse

Descubriendo eclipse
Menu

Explorador
de
proyectos

rea de trabajo.
Los fuentes
aparecen en
pestaas

Estructu
ra del
fuente
activo
Tareas
pendient
es

Area de salida y logs

Las perspectivas

Ajustes de eclipse
Cambiar codificacin de caracteres

Ajustes de eclipse
Cambiar Idioma diccionario

Mas diccionarios en http://www.winedt.org/dict.html

Ajustes de eclipse
Cambiar Formateo

Revisar ajustes y guardarlos con otro nombre

Ajustes de eclipse
Plantillas

Aqu mismo se pueden aadir mas.

Primer proyecto en
Eclipse
Creamos un nuevo proyecto
File->New-Other

Eclipse. Pantallas de
trabajo

Primer proyecto en
Eclipse

Primer proyecto en Eclipse.


Ejecutando fuera de Eclipse

Exportamos nuestro proyecto


como jar

Exportar/importar proyectos
Export

Para compartir proyectos


FileExportGeneralArchive File

Exportar/importar proyectos
Import

Para compartir proyectos


FileImportExisting Projects into Workspace.

Eclipse
Mas informacin en
http://
www.vogella.com/tutorials/Eclipse/article.html#startingec
lipse
https://eclipse.org/users/
http://recursosformacion.com/wordpress/2013/05/programa
cion-en-java-instalar-eclipse/

La API de Java
Conjunto de clases con las funcionalidades
bsicas de Java.
Esta organizado enpackagesordenados por
temas.
ElJDK permite la utilizacin de todos estos
packages en el desarrollo de programas Java
ElJRE(Java Runtime Environment) permite la
ejecucin de programas que usan cualquiera de
las clases del API.

La API de Java. Import


Antes de utilizar una clase del API, tenemos que
importarla
import <nombre paquete>.<nombre clase>;
Java.lang se importa automticamente, si no, se
debera hacer
import java.lang.*;

Estructura de los
fuentes

Programacin Java
Sintaxis
Generales
Sensible a maysculas y minsculas.
Las sentencias finalizan con punto y coma (;).
Los bloques de instrucciones se delimitan con llave
({}).
Los comentarios pueden tener una lnea, o pueden ser
multilinea
Ejemplo:
// Comentario de una sola lnea
/* Comentario de
varias lneas */

Programacin Java
Sintaxis
Identificadores
El primer carcter de una variable debe ser una letra, un
carcter de subrayado (_) o un dlar ($).
Que cumplan con lowerCamelCase

Convenio
Los identificadores que comienzan con una letra
mayscula se reservan solopara nombres de clase
o interfaces.
Los identificadores que estn todos en maysculas
representan constantes.
Los nombres de las variables y mtodos comienzan
con letras minsculas.

Programacin Java
Sintaxis
Secuencias de escape.
\b: Retroceso
\n: Salto de lnea.
\t: Tabulacin horizontal.
\r: Retorno de carro
\\: Barra invertida.
\: Comilla simple.
\: Comilla doble.
\uhhhh: Caracter Unicode

Programacin Java Primitivos


Datos Primitivos
Entero largo (l /L)
Float (f/F)
Double: d/D

Programacin Java Primitivos


Los tipos de datos primitivos se pueden organizar en grupos.
Nmero enteros:
Son los tipos byte, short int y long.

Carcter:
El tipo char representa un carcter codificado en Unicode.

Nmero decimal:
Los tipos float y double representan nmeros de coma flotante.

Lgicos:
Los datos de tipo boolean pueden almacenar valores del tipo
true y false.

Programacin Java Literales


Literales
valor fijo que se puede asignar directamente

Numricos enteros
Numricos decimales
Booleanos
Carcter

Cualquier constante que comienza por 0x (cero x), es


una constante hexadecimal (base 16).
Los literales de cadena se especifican encerrando una
secuencia de caracteres entre un par de comillas
dobles.

Programacin Java Literales Numricos

Literales
Los literales numricos enteros se consideran de
tipo int, a menos que se indique lo contrario.
(byte b = 10;)
456 constante de tipo int
-54282 constante de tipo int
7282L constante de tipo long
23l constante de tipo long

Programacin Java Literales Numricos

Literales
Los literales numricos decimales se consideran
de tipo double
4.56 .67 0.67 56. 121. 12.0 1.3e34
1.45e-5
(float p = 3.14; // Provoca un error decompilacin por
la ausencia del caracter f).

Programacin Java Literales Booleanos

Literales
Los literales boolean son true y false
boolean cierto = true;
boolean falso=false;
boolean b = 0; // Provoca un error de compilacin
debido a que en Java no se permite utilizar valores
fuera de true o false.

Programacin Java Literales char


Literales
Los literales de tipo char se escriben entre
comillas simples
char car = #;
char p = \u03AF;

Programacin Java Literales


Literales de cadena
Los literales de cadena se especifican encerrando una
secuencia de caracteres entre un par de comillas
dobles.

Hola Mundo
cinco/nlineas
Esto es una cadena,
Hola mundo/n

Programacin Java Variables


Scope
Local
Es visible para el bloque
en que se define.

Global
Visible para todos los
mtodos de la clase

Programacin Java Variables


Variables

Public
Protect

Se define con:
ed
visibilidad,
Private
tipo de dato,
nombre Final
Static

Transfe
rt
Volatil
e

La clase o variable de instancia es accesible


desde todos los mbitos.
La clase o variable de instancia es accesible
solo en el mbito actual de la clase ,el mbito
del paquete actual y todas las subclases de la
claseactual.
La clase o variable de instancia es accesible
solo en el mbito actual de laclase.
La variable es una constante ,de modo que su
valor no se puedemodificar.
La variable es una variable de clase,
compartida entre todos los objetosinstancia
de una clase.
Se declara que no es parte de un estado
persistente del objeto .
Garantiza la igualdad de valor en entornos
Multi-hebra.

Programacin Java Variables


Variables
Se define con:
visibilidad,
tipo de dato,
nombre

Programacin Java Variables


Variables
Se define con:
visibilidad,
tipo de dato,
nombre

Podemos asignarle valor a una variable


durante su definicin, o posteriormente,
con la estructura:
variable = expresin;

Donde expresin puede ser cualquier


expresin en Java que devuelva un valor
acorde con el tipo de dato de la variable.

byte hora;
int k, cod;
long p1;
double precio=23.4, iva=0.16,
importeTotal;
int edad=25;
importeTotal=precio*iva+precio;
char cad_2;
int p, k, v;
p = 30;
k = p + 20;
v = k * p;

Programacin Java Variables


Ejercicio

Modificar la clase HolaMundo para ver un ejemplo de variable.


Antes de ejecutar, intentad imaginad el resultado de cada caso.

Programacin Java Constantes


Constante, es una variable definida con el
modificador final
final float PI=3.1416F;
Final String valido = El resultado es correcto

Programacin Java Variables


Conversion de tipos (Cast)
Automatico
Byte short int long float double
Char int .

Manual
Int a = (int) variableDouble;

Las variables primitivas nunca se pueden


moldear a un objeto clase
String objStr=(string)0, //err

Para convertir un entero a una cadena


,aadir un literal de cadena vaca.
String objStr=0+; // el operador + concatena

Programacin Java Variables

Ejercicio

Crear una clase nueva llamada PruebaCast


Definir una variable int e irla copiado a char, float, double, short, byte
Cuales son implcitos y cuales explicitos
Se van a perder datos?, en que casos?

JavaDoc
Es un sistema de generacin de documentacin
Se inicia con /** y termina con */
Puede anteceder a definiciones de clase, de
mtodos y de atributos
Dispone de las siguientes anotaciones

Adios