Sunteți pe pagina 1din 54

Java Bsico

Clase 1

Ing. Gabriel Lpez

Agenda
Objetivos

Aprender los conceptos bsicos para


programar con el lenguaje de
programacin Java

Metodologa

Exposiciones tericas introductorias


Resolucin de ejercicios prcticos

Agenda
Evaluacin
60% prueba prctica
40% prueba terica
Ambas individuales, para aprobar el curso se
debe tener al menos el 66% entre las dos
pruebas

Bibliografa
Thinking in Java (4th Edition). Bruce Eckel,
Prentice Hall, ISBN 978-0131872486, 2006.
Aprenda java como si estuviera en
primero
http://www.tecnun.
es/asignaturas/Informat1/AyudaInf/aprendainf/Java/Java
2.pdf

Sitio oficial
http://www.oracle.com/es/technologies/java/index.html

Temario

Introduccin Historia
Presentacin del IDE Eclipse
Elementos Bsicos del Lenguaje
Comentarios, Identificadores, Variables,
Tipo enum
Operadores
Aritmticos, Relacionales, Lgicos,
Asignacin
Estructuras de control

Temario

Clases en Java
Declaracin de clase, Lista de interfaces,
Modificadores de clase, Declaracin de
atributos
Mtodos
Declaracin de mtodo
Interfaces
Declaracin de interface

Temario

Paquetes
Declaracin de paquetes, Cmo hacer
uso de los paquetes existentes,
Paquetes pertenecientes a Java
Transformaciones de Tipo
Casting, Conversin de tipos primitivos
Clases de Utilidad
Arrays, Clases String Y StringBuffer,
Wrappers, Clase Math, Colecciones

Temario

Tratamiento de excepciones
La Entrada/Salida en JAVA
Threads
Interfaces Grficas de Usuario
Acceso a Bases de Datos
Comunicaciones TCP/IP

Introduccin
Creado por SUN Microsystems en 1991
Distribucin en la Web en 1995 a travs del Netscape avigator

Propsito inicial: desarrollar un lenguaje de


programacin multipropsito y que funcionara no slo
en computadoras
Genera un cdigo "neutro" que corre sobre una
maquina virtual denominada Java Virtual Machine
(JVM)
Prove gran cantidad de "utilidades" para el desarrollo
API de la especificacin y de "third parties"
Manejo de colecciones, calculos matematicos, conexiones
remotas, acceso a datos, GUI, etc.

Introduccin

La compaa Sun describe el lenguaje


Java como "simple, orientado a objetos,
distribuido, interpretado, robusto, seguro,
de arquitectura neutra, portable, de altas
prestaciones, multitarea y dinmico".

Principales caractersticas
Simple
o
o
o

Orientado a objetos
o

basado en C y C++ sin sus "dolores de cabeza"


oculta el manejo de memoria
prove un sistema de "recoleccin de basura" (garbage collector)
permite el uso completo de las bondades del paradigma O.O.
(encapsulamiento, herencia, polimorfismo, etc.)

Distribuido
o

construido pensando en la distribucin a nivel del desarrollo y de


la ejecucin libreras para la comunicacin remota y la
distribucin de actualizaciones de los programas

Principales caractersticas

Robusto
o

Arquitectura Neutral
o
o
o

herramientas para la deteccin temprana de errores,


comprobacin de punteros y de arreglos, chequeo del byte code
generado y manejo de errores integrado.
dependencia nica de la JVM
multiples plataformas de ejecucin
API para "ocultar" particularidades de las plataformas (GUI,
aceleracin 2D o 3D, codecs multimedia, etc.)

Portable
o
o

Representacin de tipos estndar (enteros complemento a 2)


Construccin de recursos mediante un sistema de abstraccin

Principales caractersticas
Interpretado
o no hay linkeo de programas
o necesita de la existencia de un runtime
Multi-hilado
o ejecucin de tareas paralelas en procesos livianos
o mensajera entre procesos simple y O.O.
o generacin de recursos para el manejo de tareas
paralelizables
Dinmico
o definicin del tipo tarda (dynamic binding)
o carga dinamica de tipos remotos
o permite remplazar dinamicamente libreras de
usuario incorporacin de nuevos comportamientos

Versiones

JDK 1.0 (1996)


JDK 1.1 (1997)
JDBC (Java Database Connectivity)
RMI (Remote Method Invocation)
J2SE 1.2 (1998)
Swing
Collections
J2SE 1.3 (2000)
JNDI

Versiones
J2SE 1.4 (2002)

J2SE 5.0 (2004)


Annotations
Enumerations
Varargs

Java SE 6 (2006)
Soporte completo Web Services

Java SE 7 (2011)
Java SE 8 (2014)
Anotaciones lambda

Aspectos del desarrollo

Entorno de desarrollo
o
o
o

Java(tm) Development Kit (JDK) como base para el desarrollo


compilacin, debug, monitoreo
Java(tm) Runtime Environment (JRE) como entorno de ejecucin
ejecucin, monitoreo
Multiplicidad de entornos integrados de desarrollo (IDE)
Ej.: Eclipse (www.eclipse.org), Netbeans (www.netbeans.org)

Variables PATH y CLASSPATH


o directivas para el entorno de ejecucin/compilacin
para encontrar programas de ejecucin o clases
compiladas

Aspectos del desarrollo

Compilador
o
o
o

incluido en la JDK
recibe archivos fuentes .java y genera el byte code en archivos .
class
detecta dependencias estticas en el cdigo y resuelve ciclos en
la compilacin

Aspectos del desarrollo

JVM
o
o
o

especificacin de una mquina hipottica


interpreta el cdigo compilado y resuelve la ejecucin en la
"maquina real"
diferentes tipos de ejecucin (puramente interpretado o JIT)

Estructura general de un programa

Clase Main
o
o
o

Paquetes
o

divisin lgica del programa

Comando javac
o
o

es una clase!
punto de entrada al programa
durante su ejecucin instancia los controladores de la ejecucin
(delega responsabilidades)

se indica el punto de entrada al programa


se agregan parmetros para indicar dependencias externas
(libreras)

Comando java
o
o

se debe indicar la clase Main a ejecutar


se pueden agregar parmetros (aplicacin empaquetada)

Entorno eclipse
Pasos para utilizarlo
1. Bajar JDK de java
http://www.oracle.
com/technetwork/java/javase/downloads/index.
html
2. Bajar eclipse
http://www.eclipse.org/

Entorno eclipse
Eclipse Europa (v 3.3)
Eclipse Ganymede (v 3.4)
Eclipse Galileo (v 3.5)

Eclipse Helios (v 3.6)


Eclipse Indigo (v 3.7)
Eclipse Juno (v 4.2)
Eclispe Kepler (v 4.3)

Eclipse Luna (v 4.4)

Entorno eclipse
IDE
Perpectivas
Vistas

Entorno Eclipse

Hola Mundo
Creamos proyecto java
File New Project
Seleccionamos projecto java
Ingresar nombre del proyecto HolaMundo
Sobre el cono
New Class
Ingresar nombre de la clase Main
Tildar la opcin public static void main(String[]
arg)

Entorno Eclipse

Hola Mundo
Dentro de la operacin public static void main
(String[] arg)
Agregamos la lnea System.out.println("hola
mundo!");
Botn derecho arriba de la Clase Main
Run As Java Application

Elementos bsicos del lenguaje


comentarios
identificadores
variables
o enumeraciones
o definicin
o alcance
operadores
o aritmticos
o relacionales
o lgicos
o de instancia
estructuras de control
o condicionales, bucles

Comentarios

Si un comentario debe ocupar ms de una lnea, hay


que anteponerle /* y al final */.

Ejemplo:
/* Esto es un
comentario que
ocupa tres lneas */

Si el comentario que se desea escribir es de una sola


lnea, basta con poner dos barras inclinadas: //

Ejemplo:
for (i=0; i<20;i++) // comentario de bucle

Existe otro tipo de comentario que sirve para generar


documentacin automticamente en formato HTML
mediante la herramienta javadoc. Puede ocupar
varias lneas y se inicia con /** para terminar con */.

Identificadores
Los

identificadores son los nombres que se les da a las


variables, clases, interfaces, atributos y mtodos de un
programa.

Java
No

hace distincin entre maysculas y minsculas.

puede ser una palabra reservada del lenguaje ni los


valores lgicos true o false.

Identificadores
Pueden

estar formados por cualquiera de los


caracteres del cdigo Unicode, aunque eso s, el primer
carcter no puede ser un dgito numrico y no pueden
utilizarse espacios en blanco ni smbolos coincidentes
con operadores.

Identificadores

Reglas para la creacin de identificadores:


No pueden ser iguales a otra identificador
declarado en el mismo mbito.
Por convenio, los nombres de las variables y los
mtodos deberan empezar por una letra minscula
y los de las clases por mayscula.

Identificadores

Reglas para la creacin de identificadores:


Por convencin, si el identificador est formado por
varias palabras la primera se escribe en
minsculas (excepto para las clases) y el resto de
palabras se hace empezar por mayscula (por
ejemplo: aoDeCreacin).
Si bien no son obligatorias, su aplicacin es
conveniente ya que ayudan al proceso de
codificacin de un programa, as como a su
legibilidad. Es ms sencillo distinguir entre clases y
mtodos o variables.

Variables
Hay dos tipos principales de variables:

1.

2.

Variables de tipos primitivos, son aquellos que


pueden utilizarse directamente en un programa,
sin necesidad del uso de clases.
Variables referencia. Se les llama as porque en
realidad lo que se almacena en los mismos son
punteros a zonas de memoria donde se
encuentran almacenadas las estructuras de datos
que los soportan. Dentro de este grupo se
encuentran las clases (objetos) y tambin se
incluyen las interfaces, los vectores y los Strings.

Tipos Primitivos

Declaracin de variables
Una variable se define especificando el tipo y el
nombre de dicha variable. Estas variables pueden ser
tanto de tipos primitivos como referencias a objetos
de alguna clase perteneciente al API de Java o
generada por el usuario.
Ejemplos:
int x;
int y = 5;
MyClass unaRef;
unaRef = new MyClass();
MyClass segundaRef = unaRef;

mbito de una variable

El mbito de una variable es la porcin de


programa donde dicha variable es visible para
el cdigo del programa y, por tanto,
referenciable.
El mbito de una variable depende del lugar
del programa donde es declarada, pudiendo
pertenecer a tres categoras distintas:
Variable local.
Atributo.
Parmetro de un mtodo.

Vida de las Variables


Uno de los aspectos ms importantes en la
programacin orientada a objetos (OOP) es la forma
en la cual son creados y eliminados los objetos.
En Java la forma de crear nuevos objetos es
utilizando el operador new.
La eliminacin de los objetos la realiza el programa
denominado garbage collector, quien
automticamente libera o borra la memoria ocupada
por un objeto cuando no existe ninguna referencia
apuntando a ese objeto.

Tipo enum

El tipo enum que se introduce a partir de


la versin 5 de Java permite definir un
conjunto de posibles valores o estados

Tipo enum
Ejemplo
// Define una lista de 3 valores y luego comprueba en un
// switch cul es el valor que tiene un objeto de ese tipo
enum EstadoCivil {soltero, casado, divorciado};
EstadoCivil ec = EstadoCivil.casado;
ec = EstadoCivil.soltero;
switch(ec)
{
case soltero: System.out.println("Es soltero");
break;
case casado: System.out.println("Es casado");
break;
case divorciado:System.out.println("Es divorciado");
break;
}

Tipo enum

Cuando debera usar Enums?


Tipos de enumerados naturales: das de la
semana, fases de la luna, estaciones.
Otros conjuntos donde sepamos todos los
valores posibles: opciones de un men, etc.
Valores bien conocidos y que prcticamente
no cambie su definicin

Operadores Aritmticos
Operador

Uso

Descripcin

op1 + op2

Suma op1 y op2

op1 - op2

Resta op2 de op1

op1 * op2

Multiplica op1 por op2

op1 / op2

Divide op1 por op2

op1 % op2

Calcula el resto de dividir op1 entre op2

Operador

Uso

Descripcin

++

op++

Incrementa op en 1; se evala al valor anterior al incremento

++

++op

Incrementa op en 1; se evala al valor posterior al incremento

--

op--

Decrementa op en 1; se evala al valor anterior al incremento

--

--op

Decrementa op en 1; se evala al valor posterior al


incremento

Operadores relacionales
Operador

Uso

Devuelve verdadero si

>

op1 > op2

op1 es mayor que op2

>=

op1 >= op2

op1 es mayor o igual que op2

<

op1 < op2

op1 es menor que op2

<=

op1 <= op2

op1 es menor o igual que op2

==

op1 == op2

op1 y op2 son iguales

!=

op1 != op2

op1 y op2 son distintos

Los operadores relacionales actan sobre valores enteros, reales y caracteres


(char); y devuelven un valor del tipo boolean (true o false).

Los operadores == y != actan tambin sobre valores lgicos (boolean).

Operadores lgicos
Operador

Uso

Devuelve verdadero si...

&&

op1 && op2

op1 y op2 son ambos verdaderos, condicionalmente


evala op2

&

op1 & op2

op1 y op2 son ambos verdaderos, siempre evala op1 y


op2

||

op1 || op2

op1 o op2 son verdaderos, condicionalmente evala op2

op1 | op2

op1 o op2 son verdaderos, siempre evala op1 y op2

! op

op es falso

Estos operadores actan sobre operadores o


expresiones lgicas, es decir, aquellos que se
evalan a cierto o falso (true / false).

Operadores de asignacin

Los operadores de asignacin permiten asignar un


valor a una variable, para esto se utiliza el operador
igual (=). La forma general de utilizacin es:
variable = expression;
Otros operadores:
Operador

Uso

Equivalente a

+=

op1 += op2

op1 = op1 + op2

-=

op1 -= op2

op1 = op1 - op2

*=

op1 *= op2

op1 = op1 * op2

/=

op1 /= op2

op1 = op1 / op2

%=

op1 %= op2

op1 = op1 % op2

&=

op1 &= op2

op1 = op1 & op2

Otros Operadores

Operador instanceof: El operador instanceof


permite saber si un objeto pertenece o no a
una determinada clase. Es un operador binario
cuya forma general es,
objectName instanceof ClassName

Operador condicional ?: permite realizar


asignaciones condicionales sencillas. Su forma
general es la siguiente:
val = booleanExpression ? res1 : res2
Operador de concatenacin de cadenas de
caracteres (+)

Precedencia de operadores

La siguiente lista muestra el orden en que se ejecutan los


distintos operadores en un sentencia, de mayor a menor
precedencia:
Tipo de operadores

Operadores de este tipo

Operadores posfijos

[ ] . (parametros) expr++ expr--

Operadores unarios

++expr --expr +expr -expr ~ !

Creacin o conversin

new (tipo) expr

Multiplicacin

*/%

Suma

+-

Desplazamiento

<<

Comparacin

< <= = instanceof

Igualdad

== !=

AND a nivel de bit

&

OR a nivel de bit

XOR a nivel de bit

AND lgico

&&

OR lgico

||

Condicional

?:

Asignacin

= += -= *= /= %= &= ^= |= <<= = =

Valores literales

En Java existen literales para los


siguientes tipos de datos:
Lgicos (boolean).
Carcter (char).
Enteros (byte, short, int y long).
Reales (double y float).
Cadenas de caracteres (String).

Literales lgicos

Son nicamente dos: las palabras


reservadas true y false.
Ejemplo:
boolean activado = false;

Literales de tipo entero

Los literales de tipo entero: byte, short, int y


long pueden expresarse en decimal (base
10), octal (base 8) o hexadecimal (base
16).
Decimal

Octal

Hexadecimal

34

042

0x22

962

01702

0x3c2

8186

017772

0x1ffa

Literales de tipo real

Los literales de tipo real sirven para indicar


valores float o double. A diferencia de los
literales de tipo entero, no pueden expresarse
en octal o hexadecimal.
Existen dos formatos de representacin:
mediante su parte entera, el punto decimal ( . )
y la parte fraccionaria; o mediante notacin
exponencial o cientfica

Literales de tipo carcter

Los literales de tipo carcter se representan


siempre entre comillas simples.
Entre las comillas simples puede aparecer:
Un smbolo (letra) siempre que el carcter est
asociado a un cdigo Unicode. Ejemplos: a , B , { ,
, .
Una secuencia de escape. Las secuencias de
escape son combinaciones del smbolo contrabarra \
seguido de una letra, y sirven para representar
caracteres que no tienen una equivalencia en forma
de smbolo.

Literales de tipo String

Los Strings o cadenas de caracteres no forman parte


de los tipos de datos elementales en Java, sino que
son instanciados a partir de la clase java.lang.String.
Un literal de tipo string va encerrado entre comillas
dobles ( ) y debe estar incluido completamente en
una sola lnea.
Entre las comillas dobles puede incluirse cualquier
carcter del cdigo Unicode.
Para incluir un cambio de lnea dentro de un literal de
tipo string deber hacerse mediante la secuencia de
escape \n. Ejemplo:
System.out.println(Primera lnea\nSegunda lnea del
string\n);

Literales de tipo String

Secuencia de escapes ms utilizados

Secuencia de escape

descripcin

\t

tabulador

\b

Borra el carcter anterior

\n

Nueva linea

\r

Retorno de carro

\'

Inserta una comilla simple

\"

Inserta una comilla doble

\\

Inserta una contra barra

Estructuras de control

Estructuras alternativas

Las estructuras alternativas disponibles en


Java son:

Alternativa if-else.
Alternativa switch.

Bucles

Existen tres tipos de estructuras de repeticin:

Bucle for.
Bucle do-while.
Bucle while.

Alternativa if-else
if (expresin)
Bloque instrucciones 1
else
Bloque instrucciones 2
En Java, como en C y a diferencia de otros lenguajes
de programacin, en el caso de que el bloque de
instrucciones conste de una sola instruccin (no
necesita ser parentizado), se pone un punto y coma (
; ) justo antes de la clusula else.

Switch
switch (expresin) {
case valor1: instrucciones1;
break;
case valor2: instrucciones2;
break;

case valorN: instruccionesN;


default: instruccionesPorDefecto;
}

S-ar putea să vă placă și