You are on page 1of 93

Capacitacin de Java

Curso Nivel Bsico TInet, Soluciones Informticas Mdulos 1 - 4

Temario
Introduccin a Java Programacin Orientada a Objetos Identificadores y Keywords Expresiones y Control de Flujo Arreglos Diseo de Clases Caractersticas avanzadas de Clases Excepciones y Aserciones

Modulo 1
Introduccin a Java

Introduccin a Java
Objetivos
Describir las caractersticas clave de la tecnologa Java Codificar, compilar y ejecutar una aplicacin sencilla Describir la funcin de la JVM (Java Virtual Machine) Explicar el funcionamiento del GC (Garbage Collector)

qu es la tecnologa Java?
La tecnologa Java es:
Un lenguaje de programacin Un entorno de desarrollo Un entorno de aplicacin Un entorno de instalacin de aplicaciones

Su sintaxis es muy similar a C++ Puede ser utilizado para desarrollar applets o aplicaciones

Objetivos principales de Java


Proveer un lenguaje fcil de usar que permita:
Evitar muchos de los problemas habituales de otros lenguajes Orientacin a Objetos Permitir la creacin de cdigo limpio y claro.

Proveer un entorno interpretado para:


Aumentar la velocidad de desarrollo Generar cdigo portable

Objetivos principales de Java


Permitir la ejecucin de ms de un hilo de actividad Cargar clases dinmicamente, esto es, al momento en que realmente son requeridas Permitir la realizacin de cambios en el cdigo fuente en tiempo de ejecucin Ofrecer mayor seguridad

Objetivos principales de Java


Para cumplir estos objetivos Java cuenta con los siguientes conceptos:
La JVM (Java Virtual Machine) El Garbage Collector El Entorno de ejecucin Java (JRE) La herramienta de interfaz JVM

La JVM (Java Virtual Machine)


Es el lugar donde corren las aplicaciones Java Provee las especificaciones de la plataforma de hardware Lee el cdigo compilado independiente de la plataforma Puede ser implementada por software o hardware Puede ser implementada en una herramienta de desarrollo Java o en un navegador web

La JVM (Java Virtual Machine)


Cualquier implementacin de JVM, aprobada por SUN, debe ser capaz de ejecutar cualquier clase Java compatible. Existe una JVM para prcticamente cualquier sistema operativo

El Garbage Collector
El garbage collector es la herramienta encargada de liberar recursos de memoria que ya no se estn utilizando En otros lenguajes esta tarea es responsabilidad del programador Tiene las siguientes caractersticas
Checkea y Libera memoria de objetos que ya no son necesitados Se realiza automticamente Su implementacin puede variar drsticamente de una JVM a otra

El ambiente de ejecucin Java

Tareas de la JVM
En general, las tareas de la JVM son:
Cargar cdigo Verificar cdigo Ejecutar cdigo

El Class Loader
Es la herramienta encargada de cargar en memoria todas las clases necesarias para la ejecucin de un programa Mantiene clases del sistema de archivos local en diferentes namespaces Previene el spoofing

Una aplicacin sencilla


Crearemos ahora nuestro primer ejemplo en tecnologa Java con el clsico ejemplo Hola Mundo Este ejemplo cuenta de dos clases
TestSaludo.java Saludo.java

Una aplicacin sencilla


La clase TestSaludo.java
public class TestSaludo{ public static void main (String[] args) { Saludo saludo= new Saludo(); saludo.hola(); } }

La clase Saludo.java
public class Saludo{ public void hola() { System.out.println(Hola Mundo!); } }

Una aplicacin sencilla


Compilando la aplicacin
Se debe compilar TestSaludo.java, la clase Saludo.java se compilara automticamente
javac TestSaludo.java

Ejecutamos la aplicacin con


java TestSaludo

Modulo 2
Programacin Orientada a Objetos

Programacin Orientada a Objetos


Objetivos
Definir los conceptos de modelado: abstraccin, encapsulacin y paquete Entender por que es posible reutilizar cdigo Java Definir los conceptos clase, miembro, atributo, mtodo y constructor Utilizar los modificadores de acceso publico y privado de forma apropiada Invocar un mtodo en un objeto dado

Las fases de anlisis y diseo


La etapa de anlisis consiste en describir que debe hacer el sistema
Se modela el mundo real, incluyendo actores y actividades, objetos y comportamientos.

La etapa de diseo consiste en describir como el sistema lo llevara a cabo


Se modelan las interacciones entre objetos y actores del sistema Se buscan abstracciones aplicables que ayuden a simplificar el problema

Abstraccin
En orientacin a objetos, el concepto de abstraccin se aplica en tres casos
En Funciones, al escribir un algoritmo una vez para ser utilizado en muchas situaciones En Objetos, al agrupar atributos y comportamientos en una clase En Frameworks o APIs, Al agrupar grandes grupos de objetos para realizar labores complejas

Clases como planillas de Objetos


En la empresa manofacturera, una planilla es un documento que detalla como debe ser construido cierto objeto fsico en particular En software, una clase es la descripcin de un objeto
Una clase define los datos que incluye cada objeto Una clase describe el comportamiento que cada objeto muestra

En java, las clases soportan tres aspectos claves de la orientacin a objetos


Encapsulacin Herencia Polimorfismo

Declarando clases en Java


Sintaxis bsica

Ejemplo

Declarando Atributos
Sintaxis bsica

Ejemplo

Declarando Mtodos
Sintaxis bsica

Ejemplo

Accediendo a un miembro
Para acceder a algn miembro de un objeto (atributo o mtodo) se utiliza la siguiente notacin: Ejemplo

Ocultando la Informacin
Uno de los problemas mas importantes que aborda la OO es el del ocultamiento de la informacin Supongamos lo siguiente

En este caso los 3 atributos estn declarados como pblicos

Ocultando la Informacin
Esto permitira realizar operaciones como

Ocultando la Informacin
La solucin provista por OO consiste en dejar esos atributos como privados, y proporcionar mtodos pblicos especializados en tratar esos datos

Encapsulacin
Esconde los detalles de la implementacin de una clase Obliga al usuario a utilizar una interfaz para acceder a los datos Permite que el cdigo sea mas mantenible

Constructores
El constructor es una especie de mtodo especial que es llamado cada vez que se crea una instancia de una clase Sintaxis bsica

Ejemplo

El constructor por defecto


Siempre existe al menos un constructor por clase Si el programador no escribe uno, el compilador agrega el constructor por defecto automticamente
El constructor por defecto no tiene argumentos El cuerpo del constructor por defecto esta vaco

Esto permite crear un objeto utilizando la sintaxis new Xxx() sin tener que escribir un constructor

Esquema de un archivo de cdigo fuente


Sintaxis bsica

Ejemplo

Paquetes de Software
Los paquetes ayudan a mantener ordenados grandes sistemas de software Los paquetes pueden contener clases o subpaquetes

La declaracin package
Sintaxis bsica Ejemplo La declaracin de paquete se especifica al principio del archivo de cdigo fuente Si no es especificada la clase queda dentro del paquete default

La declaracin import
Sintaxis bsica Ejemplo La declaracin import
Precede a todas las definiciones de clases Dice al compilador donde encontrar las clases a importar

Modulo 3
Identificadores y Keywords

Identificadores y Keywords
Objetivos
Aprender a usar comentarios en el cdigo fuente Distinguir entre identificadores validos e invlidos Reconocer las keywords (palabras reservadas) en Java Listar los 8 tipos primitivos Definir valores literales para tipos numricos y textuales

Identificadores y Keywords
Objetivos
Definir los trminos variable primitiva y variable de referencia Declarar variables de algn tipo Construir un objeto utilizando new Xxx() Describir como se inicializan las variables por defecto

Comentarios
En Java se pueden realizar 3 tipos de comentarios en cdigo fuente

Puntuacin, bloques y espacios en blanco


Una sentencia es una o mas lneas de cdigo terminadas por un punto y coma

Un bloque es un conjunto de sentencias entre parntesis llave

Puntuacin, bloques y espacios en blanco


La definicin de una clase utiliza un bloque especial

Es posible anidar bloques de cdigo

Puntuacin, bloques y espacios en blanco


El lenguaje Java permite poner cualquier cantidad de espacio en blanco entre las lneas de cdigo (pese a que lo recomendado es seguir un orden)

Identificadores
Los identificadores son los nombres que se le dan a variables, clases o mtodos Pueden comenzar con una letra, un guin bajo (_) o el signo de peso ($) Son case-sensitive y no tienen un largo maximo Ejemplos
userName user_name _sys_var_1 $change

Keywords en Java
Keywords son las palabras reservadas que no pueden ser utilizadas como identificadores En Java estas son:

Tipos primitivos
Java define 8 tipos de datos primitivos
boolean char byte short int long double float

boolean
La primitiva lgica boolean tiene las siguientes caractersticas
Solo puede tomar el valor del literal true o false Ejemplo
boolean verdadero = true;

Declara la variable verdadero de tipo boolean y le asigna el valor true

char
La primitiva textual char tiene las siguientes caractersticas
Representa un carcter Unicode de 16-bit Su literal debe ir encerrado por comillas simples () Usa la siguiente notacin

String
La clase String tiene las siguientes caractersticas
No es una primitiva, es una clase Su literal debe ir encerrado en comillas dobles () Ejemplo

byte, short, int y long


Las primitivas enteras tienen las siguientes caractersticas
Pueden usar tres formas, decimal, octal o hexadecimal

Por defecto los literales numricos son del tipo int Literales con el sufijo L o l son del tipo long

byte, short, int y long


Las primitivas enteras tienen los siguientes rangos

float y double
Las primitivas de punto flotante tienen las siguientes caractersticas
Los literales de punto flotante incluyen un punto decimal o uno de los siguientes
E o e (si es exponencial) F o f (float) D o d (double)

float y double
Por defecto los literales de punto flotante son de tipo double Los literales de punto flotante tienen los siguientes rangos

Ejemplos de asignacion

Tipos de referencia en Java


En la tecnologa Java, todos los tipos no-primitivos se conocen como tipos de referencia Una variable de referencia es una especie de puntero a un objeto en particular Ejemplo

Construyendo e Inicializando Objetos


Para construir un objeto de una clase se utiliza la operacin new Al llamar new Xyz() se realizan las siguientes acciones
Se reserva memoria para el objeto Se realizan las inicializaciones de los atributos Se ejecuta el constructor de la clase Se retorna una referencia al objeto creado

Ejemplo
MyDate my_birth = new MyDate(10, 6, 1978);

Reservando Memoria
Primero se reserva memoria para la variable de referencia my_birth

Luego el operador new reserva espacio para el objeto de tipo MyDate

Inicializando Atributos
Se inicializan los atributos de la clase

Los valores son tomados explcitamente de la definicin de la clase (si no existen se utilizaran valores por defecto)

Ejecutando el Constructor
Se ejecuta el constructor correspondiente

Asignando la referencia
El operador devuelve una referencia la objeto y finalmente este es asignado a la variable de referencia

Asignando Variables de Referencia


Dos variables de referencia pueden apuntar a un mismo objeto

Si una de ellas de reasigna queda apuntando a un segundo objeto

Pasar argumentos por valor


En una nica JVM la tecnologa Java siempre pasa los argumentos por valor Cuando una instancia de objeto es pasada como argumento a un mtodo, el valor del argumento es una referencia al objeto Los contenidos del objeto pueden ser cambiado en el mtodo invocado, pero la referencia al objeto original nunca es cambiada

Pasar argumentos por valor

Pasar argumentos por valor

Pasar argumentos por valor

La referencia this
this se utiliza para hacer referencia al mismo objeto que la esta utilizando Algunos casos donde se utiliza
Para resolver ambigedad entre el nombre del variables de instancia y parmetros Para pasar una referencia como parmetro de el objeto actual a otro mtodo o constructor

La referencia this

La referencia this

Convenciones de lenguaje Java

Convenciones de lenguaje Java

Modulo 4
Expresiones y Control de Flujo

Expresiones y Control de Flujo


Objetivos
Distinguir entre variables locales y de instancia Describir como se inicializan variables de instancia Identificar y corregir errores de compilacin del tipo reference before assigment Reconocer, describir y usar operadores Java Distinguir entre asignaciones primitivas legales e ilegales

Expresiones y Control de Flujo


Objetivos
Identificar expresiones booleanas y sus requerimientos para estructuras de control de flujo Reconocer asignaciones compatibles y conversiones (casts) requeridos Utilizar estructuras de control de flujo if, switch, for, while y do

Variables y mbito
Las variables locales son
Variables que son definidas dentro de un mtodo, tambin son llamadas variables locales o temporales. Variables que son creadas cuando el mtodo es ejecutado y son destruidas cuando el mtodo termina

Inicializacin de variables
La inicializacin de variables implica:
Las variables locales requieren inicializacin explicita Las variables de instancia son inicializadas automticamente

Ejemplo de mbito de Variables

Inicializacin de variables

Principio de inicializar antes de usar


El compilador siempre verificara que las variables locales hallan sido inicializadas antes de usarse

Precedencia de Operadores

Operadores Lgicos
Los operadores booleanos son Los operadores de corto-circuito son Ejemplo

Concatenacin de Strings con +


El operador + funciona de la siguiente manera
Realiza una concatenacin de Strings Produce un nuevo String

Uno de los argumentos debe ser un String Los objetos que no sean String sern transformados automticamente a String

Casting (conversin)
Si en una asignacin de tipos diferentes existe la posibilidad de perdida de datos el programador debe confirmar la conversin Por ejemplo al asignar un literal long a una variable int se requiere un casting explicito

if
Sintaxis bsica

Ejemplo

if - else
Sintaxis bsica

Ejemplo

if - else - if
Sintaxis bsica

Ejemplo

switch
Sintaxis bsica

switch
Ejemplo

switch
Si no se especifica la sentencia break la ejecucin sigue en cada clusula case posterior Por lo tanto el ejemplo anterior es similar a

for
Sintaxis bsica

Ejemplo

while
Sintaxis bsica

Ejemplo

do - while
Sintaxis bsica

Ejemplo

Sentencias de quiebre
En Java existen dos sentencias de quiebre para escapar de ciclos iterativos, ellas son break y continue
Break se utiliza para salir completamente del ciclo Continue se utiliza para salir de la iteracin actual

Sentencias de quiebre con etiquetas


Cuando se anida mas de un ciclo iterativo es posible incluir una etiqueta a la sentencia de escape para indicar de que ciclo debe salir

You might also like