curso de programación en java español – nivel básico

Upload: miguel-angel-diez-delgado

Post on 14-Apr-2018

228 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    1/32

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    2/32

    Curso de programacin en Java Nivel bsico Pagina 2 / 3

    1 ndice1 ndice .............................................................................................................................................................................................................

    2 Introduccin al curso ....................................................................................................................................................................... ...... ......

    2.1 Objetivo de este curso ...................................................................................................................................................................... ....

    2.2 Manual del alumno .................................................................................................................................................................... ...... ....

    2.3 Ejercicios prcticos ..............................................................................................................................................................................

    2.4 Requisitos para atender a este curso ..................................................................................................................................................

    2.5 Soporte despues del curso ....................................................................................................................................................................

    3 Introduccin al Java .....................................................................................................................................................................................

    3.1 Objetivo del capitulo ............................................................................................................................................................................

    3.2 Historia del Java ...................................................................................................................................................................................

    3.3 Las versiones de Java ....................................................................................................................................................................... ....

    3.4 Uso del Java .......................................................................................................................................................................... ...... ...... ....

    3.5 Caractersticas del Java ................................................................................................................................................................... ....3.5.1 Simple .............................................................................................................................................................................................3.5.2 Orientado objetos ...........................................................................................................................................................................3.5.3 Distribuido ......................................................................................................................................................................................3.5.4 Interpretado ....................................................................................................................................................................................3.5.5 Seguro .............................................................................................................................................................................................3.5.6 Multihilo .........................................................................................................................................................................................

    4 Instalacin del Java ......................................................................................................................................................................................

    4.1 Objetivo del capitulo ............................................................................................................................................................................

    4.2 Cual versin? .................................................................................................................................................................................... ....

    4.3 Instalacin de Java bajo Suse Linux ..................................................................................................................................................

    4.4 Verificacin de la instalacin ..............................................................................................................................................................

    4.5 Entornos de desarrollo (IDE) ..............................................................................................................................................................

    5 Primera aplicacin ................................................................................................................................................................. ....................1

    5.1 Objetivo del capitulo ..........................................................................................................................................................................1

    5.2 Estructura del cdigo .................................................................................................................................................................... .....15.2.1 Declaracin de la clase .................................................................................................................................................................15.2.2 Declaracin de mtodo .................................................................................................................................................................1

    5.3 Compilacin del cdigo ......................................................................................................................................................................1

    5.4 Ejecucin de la aplicacin ...................................................................................................................................................... ...... .....1

    6 Caractersticas del lenguaje Java ...............................................................................................................................................................1

    6.1 Objetivo del capitulo ..........................................................................................................................................................................1

    6.2 Palabras reservadas ................................................................................................................................................................ ...... .....1

    6.3 Sensibilidad .........................................................................................................................................................................................1

    6.4 Identificadores ......................................................................................................................................................................... ...... .....1

    6.5 Reglas de nombramiento ...................................................................................................................................................................1

    6.6 Declaracin de variables ....................................................................................................................................................................16.6.1 Variable de clase vs. Variable de mtodo ....................................................................................................................................1

    6.7 Tipos simples ( o primitivos) .............................................................................................................................................................16.7.1 Enteros ..........................................................................................................................................................................................1

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    3/32

    Curso de programacin en Java Nivel bsico Pagina 3 / 3

    6.7.2 Reales ...........................................................................................................................................................................................16.7.3 Carcter ........................................................................................................................................................................................16.7.4 Bolanos .......................................................................................................................................................................................1

    6.8 Constantes ...........................................................................................................................................................................................1

    6.9 Operadores .............................................................................................................................................................................. ...... .....16.9.1 Principales operadores sobre enteros y reales ..............................................................................................................................16.9.2 Prioridad de operadores ........................................................................................................................................................... .....1

    6.10 Conversiones entre tipos ..................................................................................................................................................................16.10.1 Conversin automtica ...............................................................................................................................................................16.10.2 Conversin explicita ...................................................................................................................................................................1

    6.11 La clase Math ...................................................................................................................................................................................1

    6.12 Comentarios ......................................................................................................................................................................................1

    7 Cadenas de caracteres y fechas ........................................................................................................................................................... ...... .1

    7.1 Objetivo del capitulo ..........................................................................................................................................................................1

    7.2 Introduccin ......................................................................................................................................................................................1

    7.3 String ...................................................................................................................................................................................................17.3.1 Declaracin ...................................................................................................................................................................................17.3.2 Caracteres especiales ....................................................................................................................................................................1

    7.3.3 Concatenacin de cadenas ............................................................................................................................................................17.3.4 Otros mtodos de String ...............................................................................................................................................................17.3.5 Conversin de String a enteros o reales y contrario .....................................................................................................................1

    7.4 Date ......................................................................................................................................................................................................1

    7.5 Calendar ........................................................................................................................................................................................ .....1

    8 Arreglos ................................................................................................................................................................................................ ...... .1

    8.1 Objetivo del capitulo ..........................................................................................................................................................................1

    8.2 Tipos de arreglos y uso ......................................................................................................................................................................1

    9 Decisiones y bucles .....................................................................................................................................................................................2

    9.1 Objetivo del capitulo ..........................................................................................................................................................................2

    9.2 if ... else ................................................................................................................................................................................................2

    9.3 Comparacin de objetos ....................................................................................................................................................................2

    9.4 Condiciones mltiples (AND y OR) ............................................................................................................................................. .....2

    9.5 switch ...................................................................................................................................................................................................2

    9.6 while .....................................................................................................................................................................................................2

    9.7 do ... while ...................................................................................................................................................................................... .....2

    9.8 for .........................................................................................................................................................................................................2

    9.9 break ....................................................................................................................................................................................................2

    9.10 continue .................................................................................................................................................................................. ...... .....2

    9.11 Operador ternario ............................................................................................................................................................................2

    10 Paquetes, clases, y mtodos ......................................................................................................................................................................2

    10.1 Objetivo del capitulo ........................................................................................................................................................................2

    10.2 Paquetes ....................................................................................................................................................................................... .....210.2.1 Uso ............................................................................................................................................................................ ...... ...... .....21.1.1 Importacin de paquetes ..............................................................................................................................................................2

    10.3 Clases .................................................................................................................................................................................................210.3.1 Declaracin y uso .......................................................................................................................................................................2

    10.4 Constructores ...................................................................................................................................................................................2

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    4/32

    Curso de programacin en Java Nivel bsico Pagina 4 / 3

    10.5 Mtodos .................................................................................................................................................................................. ...... .....210.5.1 Declaracin y uso .......................................................................................................................................................................2

    10.6 Modificadores de acceso ..................................................................................................................................................................210.6.1 Acceso por defecto .....................................................................................................................................................................210.6.2 private .........................................................................................................................................................................................210.6.3 public ..........................................................................................................................................................................................210.6.4 protected .....................................................................................................................................................................................2

    11 Polimorfismo, encapsulamiento, y herencia ....................................................................................................................... ....................2

    11.1 Objetivo del capitulo ........................................................................................................................................................................2

    11.2 Polimorfismo .....................................................................................................................................................................................2

    11.3 Encapsulamiento ..............................................................................................................................................................................211.3.1 Clases internas ............................................................................................................................................................................211.3.2 Clases abstractas .........................................................................................................................................................................211.3.3 Interfaces ....................................................................................................................................................................................2

    11.4 Herencia ............................................................................................................................................................................................2

    12 Tratamiento de excepciones .....................................................................................................................................................................2

    12.1 Objetivo del capitulo ........................................................................................................................................................................2

    12.2 Errores de compilacin ....................................................................................................................................................................2

    12.3 Errores de lgica ......................................................................................................................................................................... .....2

    12.4 Errores de ejecucin ........................................................................................................................................................................212.4.1 throws .........................................................................................................................................................................................212.4.2 try ..............................................................................................................................................................................................312.4.3 catch ................................................................................................................................................................................ ...... .....312.4.4 finally .................................................................................................................................................................................... .....3

    13 Ejercicios ...................................................................................................................................................................................................3

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    5/32

    Curso de programacin en Java Nivel bsico Pagina 5 / 3

    2 Introduccin al curso

    2.1 Objetivo de este curso

    En este curso vamos a ver las bases del lenguaje Java. Esta base les va a servir por cualquier tipo de aplicaci n que

    desea realizar: aplicacin independiente, applet, pagina web en Java

    2.2 Manual del alumno

    Este manual del alumno es una ayuda para el alumno, para tenga un recuerdo del curso. Este manual contiene un

    resumen de las materias que se van a estudiar durante el curso, pero el alumno deber a de tomar notas personales

    para completas este manual.

    2.3 Ejercicios prcticos

    Para captar mejor la teora, se harn muchos ejercicios con los alumnos, para probar la teora y verificar la integracin

    de la materia.

    Tambin, el alumno podr copiar sus cdigos en un disquete al fin del curso para llevarse, con fin de seguir la pr ctica

    en su hogar.

    2.4 Requisitos para atender a este curso

    No hay requisitos para atender a este curso, pero el conocimiento de otro lenguaje de programacin, y especialmente el

    C++, le ayudaran a entender mas rpidamente el lenguaje Java.

    Si el alumno tiene dificultades en un u otro capitulo, el debe sentirse libre de pedir explicaciones adicionales al

    profesor.

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

    mailto:[email protected]://www.solucionjava.com/
  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    6/32

    Curso de programacin en Java Nivel bsico Pagina 6 / 3

    3 Introduccin al Java

    3.1 Objetivo del capitulo

    Al fin de este capitulo, el alumno tendr una vista general de la historia del Java, as como de sus caractersticas

    generales.

    3.2 Historia del Java

    Java fue desarrollado por Sun Microsystems. La primera versin sali en 1995. El objetivo era de tener un lenguaje de

    programacin que pueda funcionar sobre cualquier equipo, de manera independiente del hardware y del sistema

    operativo.

    Java conoci un gran inters de parte de los desarrolladores gracias al Internet. Los applets desarrolladas en Java

    podan ser interpretadas y ejecutadas por cualquier cliente web, que sea un PC, un Mac, Linux. Fue primero gracias a

    su portabilidad que Java estuvo (y est!) tan popular.

    3.3 Las versiones de JavaLa primera versin de Java fue la versin 1.0. Siguieron la versin 1.1, 1.2, 1.3, 1.4, 1.5, y ahora 1.6.

    A partir de la versin 1.2, se habla de Java 2, para diferenciar de las versiones anteriores.

    Sun Microsystems utiliza dos nmeros de versiones para sus productos Java: el nmero de versin de producto, y el

    nmero de versin de desarrollo.

    As hablando del producto o plataforma se hablara de la versin 6.0, cuando el desarrollador hablara de la versin 1.6.0

    Ejemplo de productos de Sun Microsystems:

    Nombre completo Abreviacin

    Nombre de plataformaJava 2 Platform Standard

    Edition 6.0J2SE 6.0

    Productos trabajando bajo la

    plataforma

    J2SE Development Kit 6.0 JDK 6.0

    J2SE Runtime Environment

    6.0JRE 6.0

    Los dos primeros dgitos del nmero de versin permiten identificar su versin mayor. As la versin 1.4.2_01 es una

    subversin 2, revisin 01, del Java 2, versin 1.4.

    3.4 Uso del Java

    Java tiene varias utilidades. Puede servir a desarrollar aplicaciones autnomas (100% Java), applets parra el Internet

    (pequeas aplicaciones descargadas y ejecutando sobre el cliente), o ser mezclado con otro lenguaje como HTML (Java

    script, Java Server Pages,...).

    3.5 Caractersticas del Java

    La difusin rpida del Java ha sido posible gracias a sus importantes caractersticas. Aqu son las caractersticas

    principales del Java.

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    7/32

    Curso de programacin en Java Nivel bsico Pagina 7 / 3

    3.5.1 Simple

    Aun que el lenguaje orientado objeto (OO) no es fcil ni sencillo, Java es reconocido como ms fcil que otros lenguajes

    como el C++.

    3.5.2 Orientado objetos

    La programacin orientada objeto modela las cosas del mundo real, o los conceptos, como un objeto. As el objeto carro

    puede servir a construir carros rojos, como carros azules, a partir del mismo objeto carro.

    3.5.3 Distribuido

    Java permite interacciones entre varias computadoras conectadas en redes, para distribuir el trabajo o los recursos.

    3.5.4 Interpretado

    Java es un lenguaje interpretado, eso significa que necesita un interprete para poder ser ejecutado. Este intrprete es

    la maquina virtual de Java (JVM).

    Java esta compilado en un cdigo binario, que la maquina virtual interpreta. As el cdigo puede ser compilado de

    manera independiente del sistema de destino. La maquina virtual de Java es especfica al sistema operativo de destinono al cdigo.

    3.5.5 Seguro

    El lenguaje Java se utiliza en el Internet en muchos sitios web que necesitan una grande seguridad, como bancos,

    comercio electrnico,...

    Java tiene muchas opciones para gestionar la seguridad de ejecucin de la aplicacin.

    Tambin el cdigo Java descargado del Internet y ejecutado el la maquina del cliente, no produce daos en la maquina

    del cliente.

    3.5.6 Multihilo

    Java permite ejecutar tareas segn varios hilos de ejecucin, es decir ejecutar varias tareas en paralelo.

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    8/32

    Curso de programacin en Java Nivel bsico Pagina 8 / 3

    4 Instalacin del Java

    4.1 Objetivo del capitulo

    Al fin de este capitulo, el alumno tendr las herramientas de Java instalado en su computadora. Este es un requisito

    para poder cumplir los ejercicios prcticos.

    4.2 Cual versin?

    Existen tres plataformas de Java 2:

    La edicin estndar de Java 2 (J2SE). Es la que vamos a utilizar.

    La edicin de empresa de Java 2 (J2EE). Es una versin ms amplia, para hacer aplicaciones (web) muy

    grandes.

    La edicin micro de Java 2 (J2ME). Es una versin para hacer aplicaciones para aparatos electrnicos (mviles

    beeper, MP3,...)

    En la plataforma estndar, hay dos productos principales:

    El ambiente de ejecucin (JRE), que contiene la maquina virtual, y que es necesario para ejecutar un c digo

    Java.

    El ambiente de desarrollo (JDK), que contiene las fuentes y cdigos necesarios para compilar un cdigo Java

    texto en cdigo Java binario, listo para ser ejecutado.

    Existen otras versiones de Java que la de Sun, as por ejemplo el OpenJDK, o la maquina virtual Java de Microsoft.

    Pero para ms estabilidad, y para estar todos utilizando la misma cosa, vamos a quedarnos utilizando las versiones de

    Java de Sun.

    Nosotros, para poder desarrollar en Java, necesitamos descargar la versin de desarrollo (JDK) que corresponde al

    sistema operativo sobre el cual vamos a trabajar.

    El JDK (y el JRE) se pueden descargar gratuitamente de desde el sitiohttp://java.sun.com

    4.3 Instalacin de Java bajo Suse Linux

    Para instalar la version 1.6 de Java JDK vamos primero a entrar como el usuario Root (o usar su).

    Luego abrimos una ventana de consola, introducemos el CD del curso, y vamos a instalar la version de Java que estaen

    el CD lanzando desde el CD la instruccin:rpm -ivh jdk-6u4-linux-i586.rpm

    Ahora el Java esta disponible en en sistema bajo /usr/java/jdk1.6.0_04 pero el Java por defecto es todavia la version 1.5

    que venia con Suse 10.3. Se puede verificar ejecutando java -version

    Para que la version por defecto sea la version 1.6 hay que cambiar algunos enlaces debajo de /etc/alternatives. Paraeso, ejecuta desde el CD '. modifySuseJDK16.sh'. Si sale un error de que javac no existe, ignorala.

    4.4 Verificacin de la instalacin

    Una vez el archivo descargado e instalado, verificamos que el Java esta bien instalado abriendo una ventana de

    ejecucin y ejecutando lo siguiente: java -version y javac

    Si no contesta que la version de Java es 1.6.0, es que Java 1.6.0 no esta instalado correctamente, o que no se han

    cambiado corectamente los atajos de /etc/alternatives .

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

    http://java.sum.com/http://java.sum.com/http://java.sum.com/
  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    9/32

    Curso de programacin en Java Nivel bsico Pagina 9 / 3

    Si no reconoce el javac, hay que configurar variables de ambiente (path). Debajo de /etc modificar el archivo profile

    adjuntando el camino /usr/share/java/bin en la variable PATH.

    Bajo Windows, el camino hacia la carpeta bin de Java debe estar incluido en la variable de entorno Path. Bajo XP y

    Windows 2000, click derecho sobre Mi PC... Propiedades... Opciones avanzadas... Variables de entorno... Variables

    de sistema. Editar la variable path y incluir al final entre doble comillas el camino hacia Java (por ejemplo

    "C.\Archivos de Programa\Java\jdk1.6.0_04\bin).

    4.5 Entornos de desarrollo (IDE)

    Si para programar en Java, no se necesita ms que un editor de texto (y el Java instalado...), existen varias

    aplicaciones que ayudan en la programacin, identificando las palabras reservadas, proponiendo la sintaxis,

    formateando el cdigo, etc...

    Para este curso, vamos a utilizar un simple tratamiento de texto, porque es el mas simple, y o requiere manual de

    usuario, como ciertos entornos de desarrollo. Para su informacin, aqu estn unos entornos de desarrollo para Java

    que proponen una versin gratis, y que son disponibles para Windows como para Linux:

    Eclipse (www.eclipse.org)

    NetBeans (www.netbeans.org)

    Jdeveloper de Oracle (www.oracle.com)

    Jbuilder (versin disponible en espaol!) (www.borland.com/jbuilder)

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

    http://www.eclipse.org/http://www.netbeans.org/http://www.oracle.com/http://www.borland.com/jbuilderhttp://www.eclipse.org/http://www.netbeans.org/http://www.oracle.com/http://www.borland.com/jbuilder
  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    10/32

    Curso de programacin en Java Nivel bsico Pagina 10 / 3

    5 Primera aplicacin

    5.1 Objetivo del capitulo

    Al fin de este capitulo, el alumno har creado y ejecutado su primer cdigo Java.

    Esta primera aplicacin servir de base para poner en prctica y probar la teora que vamos a ver en los prximoscaptulos.

    5.2 Estructura del cdigo

    Para poder ser ejecutado, un cdigo Java necesita al menos una clase, y que esta clase contiene una mtodo, la mtodo

    main.

    Aqu esta un ejemplo de una aplicacin que imprima en la consola Estoy en main:class Test {

    public static void main(String[] args) { // metodo principalSystem.out.println("Estoy en main!");

    }// fin de metodo Main

    } // fin de clase

    5.2.1 Declaracin de la clase

    La clase tiene que ser declarada con la palabra reservada class, y seguido de un espacio y del nombre de la clase (aqu

    Test).

    La clase tiene que ser guardada en un archivo que tenga el mismo nombre que la clase, y la extensi n .java

    El inicio y el final de la clase estn marcados con { y } respectivamente. Ahora teneos un objeto (clase) que se llama

    Test.

    5.2.2 Declaracin de mtodoEl mtodo principal, que esta llamada cuando se inicia la aplicacin Java es el mtodo main (public static void

    main(String[] args)).

    El inicio y el final del mtodo estn marcados con { y } respectivamente. Este mtodo hace solamente una accin:

    imprima en la consola el texto Estoy en main!).

    Para mas informaciones sobre las clases y mtodos, ver el capitulo Paquetes, clases, y mtodos.

    5.3 Compilacin del cdigo

    Una vez el cdigo guardado (Test.java), lo podemos compilar ejecutando la instruccin siguiente: javac Test.java

    Esta instruccin va a compilar el cdigo y, si la compilacin sale con xito, crear un archivo Test.class

    5.4 Ejecucin de la aplicacin

    Para ejecutar el cdigo de nuestra aplicacin, llamamos a la instruccin java Test. En la consola debe aparecer Estoy

    en main!.

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    11/32

    Curso de programacin en Java Nivel bsico Pagina 11 / 3

    6 Caractersticas del lenguaje Java

    6.1 Objetivo del capitulo

    Al fin de este capitulo, el alumno ser capaz de elegir el tipo de variable necesaria para un cierto tipo de datos, y podr

    declarar variables y constantes en Java.

    El podr tambin poner comentarios en su cdigo, convertir datos de un tipo a otro, y hacer operaciones sobre

    variables.

    6.2 Palabras reservadas

    Hay palabras que son reservadas porque tienen un significado especial dentro del lenguaje Java. As no se pueden

    utilizar para otra cosa que su uso predefinido. Todas las palabras reservadas estan en minsculas.

    Lista de palabras reservadas del Java 1.6.0:

    abstract continue for new switch

    assert*** default goto* package synchronizedboolean do if private thisbreak double implements protected throwbyte else import public throwscase enum**** instanceof return transientcatch extends int short trychar final interface static voidclass finally long strictfp** volatileconst* float native super while

    * not used** added in 1.2*** added in 1.4**** added in 5.0

    6.3 Sensibilidad

    Java es sensible a las maysculas y las minsculas. As try es una palabra reservada, pero Try no.

    6.4 Identificadores

    Los identificadores son los nombres que se dan para identificar a las clases, paquetes, interfaces, mtodos, y variables.

    El nombre de un identificador tiene que cumplir con ciertas reglas:

    Debe tener un o mas caracteres (sin longitud mxima)

    No puede contener operadores (+,-,>...)

    No puede ser igual a una palabra reservado (if, void, ...). Ver la lista de palabra reservadas arriba.

    El primer carcter tiene que ser una letra, el carcter $ o el carcter _ (subrayado).

    Las letras que pueden ser utilizadas son las del alfabeto Unicode, con maysculas y minsculas (cuidado que

    Java hace diferencias entre maysculas y minsculas!).

    6.5 Reglas de nombramiento

    Para tener un cdigo ms estndar, existen rglas de nombramiento de los paquetes, clases, mtodos, variables, y

    constantes.

    Los nombres de paquetes estn normalmente en minsculas. Ej: paquete test

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    12/32

    Curso de programacin en Java Nivel bsico Pagina 12 / 3

    Los nombres de clases estn normalmente en minsculas, con la primera letra en mayscula, as como la primera letra

    de case nombre interno. Ej: clase TestJava

    Los nombres de mtodos y variables estn normalmente en minsculas, con la primera letra en minscula, y la

    primera letra de case nombre interno en mayscula. Ej: mtodo getNombre, variable edadEmpleado, ...

    Los nombres de constantes estn normalmente en maysculas. Ej: constante PREF_TEL;

    An que no seguir estas reglas de nombramiento no provoca errores en Java, pero al trabajar en equipo, al utilizar

    cdigo de otra persona, o al querer utilizar ciertas opciones de herramientas para generar parte de cdigo de manera

    automtica, el seguimiento de estas reglas es muy importante.

    6.6 Declaracin de variables

    Las variables permiten almacenar datos de entrada, de salida, o intermedios.

    La sintaxis bsica de declaracin de variable es: ;int miNumero;

    En la declaracin se puede declarar a la vez varias variables de un mismo tipo, separando los nombres de variables con

    una coma. ,;int miNumero, tuNmero;

    En la declaracin se puede tambin inicializar la variable, asignndole un valor. El valor se asigna con el signo igual y

    la valor inicial. = ;int miNumero = 1;

    Una variable est disponible solamente a dentro del bloque de cdigo a donde est declarado (delimitado por {}). Los

    diferentes niveles on clase, mtodo, y bloque a dentro de un mtodo.

    6.6.1 Variable de clase vs. Variable de mtodo

    Una variable declarada al nivel de la clase se inicializa por defecto a cero (enteros y reales), false (bolean), o a nulo

    (otros tipos). Las variables de clase son disponible de desde cualquier mtodo de la clase.

    Una variable declarada en un mtodo debe ser inicializada de manera explicita para poder ser utilizada.

    Si un variable de mtodo tiene el mismo nombre que un variable de clase, a dentro de este m todo la variable de

    mtodo sobre escribe la variable de clase, a menos que se menciona 'this.' Antes el nombre de la variable (para utilizar

    la variable de clase).

    Una variable de mtodo no puede ser sobre escrita por otra. Es decir, los nombre de variable deben ser nicos a dentrode un mtodo.

    6.7 Tipos simples ( o primitivos)

    Los tipos simples son tipos que no son orientados objetos. Se subdividen entre enteros, reales, carcter, y bolanos.

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    13/32

    Curso de programacin en Java Nivel bsico Pagina 13 / 3

    6.7.1 Enteros

    Hay cuarto tipos de enteros: byte, short, int y long. Todos pueden ser positivos o negativos, y tienen una capacidad de

    8, 16, 32 o 64 bits.

    Cuando se asigna un valor numrico a un long, hay pegarle la letra l para indicar a Java que es un long. Por defecto,

    un valor entero esta considerado como un int.

    Ejemplos de declaracin:int miNumero = 1;byte testByte = 17;short testShort = 12357;long testLong = 122132135l;

    6.7.1.1 byte

    El byte puede contener valores enteras entre -128 y 127.

    6.7.1.2 short

    El short puede contener valores enteras entre -32768 y 32767.

    6.7.1.3 int

    El int puede contener valores enteras entre -2147483648 y 2147483647.

    6.7.1.4 long

    El long puede contener valores enteras entre -9223372036854775808 y 9223372036854775807.

    6.7.2 Reales

    Los reales contienes valores con coma flotante, que permite almacenar nmeros muy grandes o muy pequeos con

    grande precisin.

    Los reales se dividen entre float y double. Los float tienen precisin simple (6 o 7 dgitos mximo) y los double tienen

    precisin doble (14 o 15 dgitos). Por defecto, un valor real esta considerado como un doble.

    Cuando se asigna un valor numrico a un float, hay pegarle la letra f para indicar a Java que es un float. A los double

    la letra d.

    Ejemplos de declaracin:float testFloat = 1.771f;double testDouble = 1.221d;

    6.7.2.1 float

    El float puede contener valores decimales entre 3,4E-38 y 3,4E38.

    6.7.2.2 double

    El double puede contener valores decimales entre 1,7E-308 y 1,7E308.

    6.7.3 Carcter

    El carcter (char) puede contener solo un carcter. Las cadenas de caracteres sern vistos en otro capitulo.

    Ejemplo de declaracin: char miChar='A';

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    14/32

    Curso de programacin en Java Nivel bsico Pagina 14 / 3

    6.7.3.1 char

    El tipo carcter (char) puede contener un (y solo un) carcter Unicode. El Unicode permite utilizar un carcter de

    cualquier idioma. El carcter se declara entre simple comillas:

    6.7.4 Bolanos

    6.7.4.1 booleanLos bolanos pueden tomar exclusivamente el valor true o false (verdadero o falso).

    Ejemplo de declaracin:boolean miBoolean=true;

    6.8 Constantes

    Las constantes son datos cuyo valor no puede cambiar durante la ejecucin del programa.

    Las constantes utilizan los mismos tipos que las variables, y se declaran de la misma manera a la exception que se

    pone final antes el tipo de dato.

    La sintaxis bsica de declaracin de variable es:final ;final int MI_CONSTANTE;

    6.9 Operadores

    Los operadores se utilizan para hacer operaciones sobre las variables. Permiten combinar, modificar, o evaluar las

    variables.

    6.9.1 Principales operadores sobre enteros y reales

    - Negacin (unitario), resta (binario)

    ++ Incremento-- Decremento

    = Asignacin

    == Igualdad

    != Desigualdad

    < Menos que

    = Mayor o igual que

    > Mayor que

    + Suma

    * Multiplicacin

    / Divisin

    % Modulo

    Los operadores de incremento (++) y decremento (--) se pueden utilizar antes o despus de la variable, pegado a ella.

    Si se utilizan antes, la variable se incrementa o decrementa directamente. Si se utiliza despus, la variable se

    incrementa o decrementa justo despus de haber sido utilizada.

    Ejemplo de declaracin:int i = 0;System.out.println(++i); // imprime 1System.out.println(i); // imprime 1

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    15/32

    Curso de programacin en Java Nivel bsico Pagina 15 / 3

    System.out.println(i++);// imprime 1System.out.println(i); // imprime 2

    System.out.println(i++ +" y "+ --i ); // imprime 2 y 2

    6.9.2 Prioridad de operadores

    Como en la matemtica, en Java existen prioridades entre los operadores. Los parntesis tienen la ms grande

    prioridad, se pueden utilizar para forzar un orden de evaluacin, as como para facilitar la lectura del cdigo.

    Prioridad des los operadores:

    1. ( ) [ ]

    2. ! ++ --

    3. new (tipo)

    4. * / %

    5. + -

    6. > >= >= >>>=

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    16/32

    Curso de programacin en Java Nivel bsico Pagina 16 / 3

    6.11 La clase Math

    La clase Math del Java contiene la mayora de las operaciones matemticas que se hacen sobre enteros o reales. Para

    la lista completa de mtodos, ver la documentacin Java.

    Incluye entre otros:

    El valor absoluto Math.abs()

    Mximo entre 2 exp Math.max(,)

    Nmero aleatorio Math.random()

    Sinus Math.sin()

    Log natural Math.log()

    El entero igual o superior Math.ceil()

    El entero igual o inferio Math.floor()

    6.12 Comentarios

    En el cdigo Java se pueden meter comentarios.

    Los comentarios de una sola lnea se sgnala con //. Los comentarios de una o varias l neas se sgnala con /* al inicio,

    y */ al final.

    Ejemplos:/* Este

    es un comentariode varias lneas */

    int miNumero2;int miNumero = 1; // Este es una muestra de comentario de una lnea

    Los comentarios de una o varias lneas que tienen como objetivo de participar en la creacin de la documentacin Java

    (Javadoc) se sgnala con /** al inicio, y */ al final.

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    17/32

    Curso de programacin en Java Nivel bsico Pagina 17 / 3

    7 Cadenas de caracteres y fechas

    7.1 Objetivo del capitulo

    Al fin de este capitulo, el alumno ser capaz de utilizar y manejar cadenas de caracteres y fechas.

    7.2 Introduccin

    En Java, existen variables (objetos) que pueden contener cadenas de caracteres o fechas, que no son tipos primitivos de

    Java, si no objetos utilizados como tipo, y que tienen sus propios mtodos para ser modificadas.

    7.3 String

    El objeto mas utilizado para contener cadenas de caracteres es el tipo objeto String. Este tipo permite guardar una

    cadena de caracteres sin limitacin, si no la limitacin de la memoria de la computadora.

    7.3.1 Declaracin

    Las cadenas de caracteres se declaran como las variables, y el valor se menciona entre doble cuotas.

    Ejemplo: String miTexto = "Hola Nicaragua!";

    7.3.2 Caracteres especiales

    Para insertar ciertos caracteres especiales a dentro de una cadena de caracteres, hay que mencionarlos detrs de una

    contra barra (\).

    Para mencionar una doble comilla: \"

    Para mencionar una tabulacin: \t

    Para mencionar una nueva lnea: \n

    Para mencionar un regreso a la lnea: \r

    Para mencionar un carcter Unicode: \uxxxx a donde xxxx es el valor hexadecimal del carcter

    O \xxx a donde xxx es el valor octal del carcter (0 a 7)

    7.3.3 Concatenacin de cadenas

    Para concatenar dos cadenas de caracteres, se puede utilizar el mtodo concat o el signo +.

    Ejemplo:String miTexto = "Hola!";miTexto += "Una prueba.";

    Hay que tener cuidado con las concatenaciones, porque con el objeto String, cada concatenacin crea un nuevo objeto,lo que consume memoria. Si Usted necesita hacer muchas concatenaciones, utiliza mejor la clase StringBuilder.

    7.3.4 Otros mtodos de String

    Existen muchos mtodos del objeto String para hacer operaciones sobre cadena de caracteres. Para la lista completa de

    mtodos, ver la documentacin Java.

    Por ejemplo: length(), charAt(int ),substring (int ,int ), ...

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    18/32

    Curso de programacin en Java Nivel bsico Pagina 18 / 3

    7.3.5 Conversin de String a enteros o reales y contrario

    Para convertir una cadena de caracteres (que contiene solo un nmero) a enteros o reales o contrario, hay que utilizar

    mtodos especiales.

    Ejemplos:int miNumero = Integer.parseInt("1234");float miFloat = Float.parseFloat("123.566");String miConvertido = String.valueOf(miFloat);

    7.4 Date

    La clase Date del paquete java.utilse utiliza para guardar fechas y horas. Como el paquete

    java.util no se carga por defecto, hay que importarlo. Solo tiene dos constructores: uno sin

    argumento, que asigna la fecha y hora actual, y uno con un argumento long que contiene el

    nmero de milisegundos que hay que incrementar a la fecha del 1/1/1970.

    La clase Date tiene mtodos, entre otras para cambiar la fecha, extraer el da, mes, ao...

    formatear la fecha o convertirla en String. Pero muchos de sus mtodos estn despreciadas,

    y se tiene que utilizar la clase Calendar. Para la lista completa de mtodos, ver la

    documentacin Java.

    Existe tambin un objeto Date en el paquete java.sqlque se utiliza para manejar fechas

    durante las conexiones a bases de datos.

    Ejemplo:import java.util.Date;public class TestDate{Date miFecha = new Date();}

    7.5 Calendar

    La clase Calendar, y su subclase GregorianCalendar, permite manejar fechar segn el calendario Gregoriano.

    Con este clase podemos gradar datos de fecha y manejarlas haciendo, entre otros, sumas y diferencias de fechas.

    Ejemplo:import java.util.*;

    public class TestFecha {public TestFecha() {

    System.out.println(getCurrDate());System.out.println(getTestDate());

    }

    public String getCurrDate() {Calendar cal = new GregorianCalendar();String day = "0" + cal.get(Calendar.DATE);int pos = day.length();

    day = day.substring(pos - 2, pos);String month = "0" + (cal.get(Calendar.MONTH) + 1);

    pos = month.length();month = month.substring(pos - 2, pos);String year = "" + cal.get(Calendar.YEAR);String currdate = day + "/" + month + "/" + year;return currdate;

    }

    public String getTestDate() {Calendar cal = new GregorianCalendar();cal.set(1996, 11, 1); // cuidado que el mes empieza con 0 y no 1 (0->11)System.out.println(cal.get(Calendar.DATE)); // 1System.out.println(cal.get(Calendar.MONTH)); // 11System.out.println(cal.get(Calendar.YEAR)); // 1996

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    19/32

    Curso de programacin en Java Nivel bsico Pagina 19 / 3

    String day = "0" + cal.get(Calendar.DATE);int pos = day.length();day = day.substring(pos - 2, pos);String month = "0" + (cal.get(Calendar.MONTH) + 1); // +1 para corregir el mes

    pos = month.length();month = month.substring(pos - 2, pos);String year = "" + cal.get(Calendar.YEAR);String currdate = day + "/" + month + "/" + year; // 01/12/1996return currdate;

    }

    public static void main(String[] args) { // metodo principalSystem.out.println(new GregorianCalendar().getTime());new TestFecha();

    }// fin de metodo Main}

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    20/32

    Curso de programacin en Java Nivel bsico Pagina 20 / 3

    8 Arreglos

    8.1 Objetivo del capitulo

    Al fin de este capitulo, el alumno ser capaz de utilizar y manejar una coleccin de datos.

    8.2 Tipos de arreglos y uso

    En Java existen variables que pueden contener una coleccin de datos del mismo tipo.

    Los arreglos a una dimensin contienen una lista de valores, un arreglo bidimensional contendr una tabla de datos.

    As, se puede guardar una tabla de datos en un solo variable.

    Los arreglos pueden ser de tipo simple como de objetos.

    Se declaran con [ ] detrs del tipo para una dimensin, y [ ] [ ] para doble dimensin.

    Cuando se crea un arreglo, sus elementos estn inicializados por defecto a cero para arreglos de enteros y reales, una

    cadena vaca para char, false para bolanos, y null para los objetos.

    Los ndices de un arreglo empiezan con 0 y se incrementan por unidad.

    Una vez inicializado, el tamao del arreglo no puede cambiar mas.

    Ejemplos de declaracin:String paginaList []= {"Formato A4", // arreglo de 4, inicializado con valores

    "Carta 8.5 x 11","Prescripcion US","Prescripcion BE"};

    int miArregloInt [] = new int [9]; // arreglo de 9 lneas, inicializado con ceroint miArreglo2 [] [] = {{1,2,3},{2,4,6}}; // arreglo de 2 lneas y 3 columnas, inicializado con valores.

    Ejemplos de utilizacin:miArregloInt [0]=5; // asigna el valor 5 al primer miembro del arregloint miNumero = miArregloInt [0]; // miNumero ser igual a 5System.out.println(miArreglo2[0][0]); // imprime 1System.out.println(miArreglo2[0][2]); // imprime 3System.out.println(miArreglo2[1][2]); // imprime 6System.out.println(miArreglo2[2][3]); // esta lnea genera un error java.lang.ArrayIndexOutOfBoundsException

    8.3 public static void main (String [] args)

    El mtodopublic static void main (String [] args) accepta como parametro de entrada un arreglo de String.

    Para pasar los valores en parametro, se mencionan despus del nombre de la clase, separados por espacios. Si un valor

    contiene espacios, hay que ponerla entre doble comillas.

    Ejemplo:public static void main(String[] args) { // metodo principal

    System.out.println(args[0]); // imprime UnoSystem.out.println(args[1]); // imprime y dos

    }java Test Uno "y dos"

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    21/32

    Curso de programacin en Java Nivel bsico Pagina 21 / 3

    9 Decisiones y bucles

    9.1 Objetivo del capitulo

    Al fin de este capitulo, el alumno ser capaz de crear esquema de decisiones en su cdigo, as como crear y manejar

    bucles.

    9.2 if ... else

    El if se utiliza para crear esquema de decisiones. Se puede utilizar con el else, pero es facultativo.

    El if, que significa si permite probar una o varias condiciones. El resultado de cada condicin siempre es si o no. Las

    condiciones siempre estn entre parntesis.

    Despus del if viene la instruccin que ser realizada en caso que el resultado de la(s) condicin(es) sale verdadero.

    El else, que se puede traducir por si no se cumplo, la instruccin que ser realizada en caso que el resultado de la(s)

    condicin(es) del if sali falso.

    Si hay mas que una instruccin que ejecutar tras el if o el else, hay que utilizar un bloque de instrucciones,

    conteniendo las instrucciones entre { y } .

    Ejemplo:int licencia = 0;if (licencia==1) System.out.println("!Yo tengo la licencia!);else {System.out.println("!No tengo licencia!);

    System.out.println("Pero la voy a comprar pronto...);}

    9.3 Comparacin de objetos

    Para hacer comparaciones entre dos objetos, es siempre mas seguro utilizar en mtodo equals, porque el uso de ==har la comparacin basada en los objetos, y no en su contenido.

    Ejemplo:String miTexto = "Hola!";if (miTexto.equals("Hola!")) System.out.println("OK");

    9.4 Condiciones mltiples (AND y OR)

    Para mencionar condiciones mltiples se utilizan los smbolos | y &.

    Para que cumple con una Y otra condiciones, se utiliza el & (significa Y ).

    Para que cumple con una U otra condiciones, se utiliza el | (significa U ).

    Para que evala solamente las condiciones necesarias (en caso de Y, si la primera no cumple, no evala las otra, en

    caso de U, si la primera cumple, no evalua las otras), se dobla el si no (|| o &&). Para mejor rendimiento se dobla

    siempre.

    Ejemplo:int licencia = 0;if (licencia > 10 || licencia == 5) System.out.println("!Yo tengo la licencia 5 o > 10!");else if (licencia < 10 || licencia > 5) System.out.println("!Tengo licencia entre 5 y 10!");else System.out.println("!Tengo licencia < 5 ");

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    22/32

    Curso de programacin en Java Nivel bsico Pagina 22 / 3

    9.5 switch

    El switch se utiliza para crear esquema de decisiones. El switch permite de tener varias alternativas, en contra del

    if...else que solo tiene dos alternativas.

    Primera se declara, entre parntesis, cual variable se va a evaluar. Solo char, byte, short o int peden ser evaluados.

    Siguiendo, para cada alternativa, se menciona la palabra case con la valor correspondiendo a la valor de la alternativa,

    y el cdigo que hay que ejecutar. Si no se termina la alternativa con la palabrabreak, el cdigo de las alternativas

    siguiente se van a ejecutar tambin, mismo si el valor de la variable evaluada no corresponde al case.

    Por fin, la palabra default se utiliza para mencionar acciones a realizar en caso que ninguna alternativa sali

    verdadera. Como para el case, debera terminar conbreak para que no se ejecutara otro cdigo siguiendo.

    Si hay mas que una instruccin que ejecutar tras el case o el default, hay que utilizar un bloque de instrucciones,

    conteniendo las instrucciones entre { y } .

    Ejemplo:int test=1;switch (test) {

    case 1 : System.out.println("Igual a 1");case 10 : System.out.println(" Igual a 10");break;

    case 20 : System.out.println(" Igual a 20");default : System.out.println(" Igual a otro valor"); }

    9.6 while

    El while... se utiliza para crear bucles, es decir repetir una accin por tanto que se cumple a una condicin.

    La condicin que hay que cumplir se menciona detrs de la palabrawhile, entre parntesis.

    Las acciones que hay que ejecutar se mencionan detrs delwhile. Si hay mas que una instruccin que ejecutar, hay qu

    utilizar un bloque de instrucciones, conteniendo las instrucciones entre { y } .

    9.7 do ... while

    El do ... while se utiliza para crear bucles, es decir repetir una accin por tanto que se cumple a una condicin.

    La condicin que hay que cumplir se menciona detrs de la palabrawhile, entre parntesis, y termina con punto coma

    ';'.

    Las acciones que hay que ejecutar se mencionan detrs del do. Si hay mas que una instruccin que ejecutar, hay que

    utilizar un bloque de instrucciones, conteniendo las instrucciones entre { y } .

    La clusula do se puede mencionar antes de la clusulawhile. En este caso, el cdigo de la clusula do se ejecutara unaprimera vez antes de verificar la condicin delwhile, y se repetir hasta que la condicin sea falsa.

    Ejemplo:int miNumero = 1;do {System.out.println("El nmero actual es "+ ++miNumero); }while (miNumero < 5);

    9.8 for

    El for se utiliza para crear bucles un nmero fijo de veces.

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    23/32

    Curso de programacin en Java Nivel bsico Pagina 23 / 3

    La condicin que hay que cumplir se menciona detrs de la palabra for, entre parntesis, y tiene tres diferente partes,

    separadas por ;. Cada parte es opcional, pero el ; tiene que ser mencionado mismo si la parte esta vac a.

    La primera parte sirve a declarar un variable (usualmente un int) y/o asignarle un valor original.

    La segunda parte contiene la condicin de ejecucin. Usualmente la variable inicializada > o < que otro int o valor fija.

    La tercera parte se utiliza para mencionar el incremento o decremento eventual.

    Las acciones que hay que ejecutar se mencionan detrs del for. Si hay mas que una instruccin que ejecutar, hay que

    utilizar un bloque de instrucciones, conteniendo las instrucciones entre { y } .

    Ejemplo:for (int i = 0; i < 3; i++) { System.out.println(i);}

    Existe un for 'simplificado' para recorer arreglos, que funciona as:String a [] = {uno,dos,tres};for (String s : a) { System.out.println(s);}

    9.9 breakLa instruccinbreak permite de salir de una bucle o de abandonar las sentencias de ejecucin de un switch.

    Ejemplo:int ii = 5;for (int i = 0; i < 10; i++) {

    if (i>ii) break;System.out.println(i);}

    9.10 continue

    La instruccin continue solo se puede usar en bucles, y permite de saltar directamente a la bucle siguiente, sin ejecutar

    el resto del c

    digo de la bucle corriente.

    Ejemplo:int ii = 5;for (int i = 0; i < 10; i++) {

    if (i==ii) continue;

    System.out.println(i); }

    9.11 Operador ternario

    Otro operador condicional es el operador "?:" (o ternario).

    Ejemplo:. Asignacin de un valor predeterminado

    // Ejemplo de uso de: el Operador Ternarioint edad=5;

    String tipo = ((edad

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    24/32

    Curso de programacin en Java Nivel bsico Pagina 24 / 3

    10 Paquetes, clases, y mtodos

    10.1 Objetivo del capitulo

    Al fin de este capitulo, el alumno ser capaz entender el uso y de crear paquetes, clases, constructores, y mtodos, y de

    definirles los derechos de acceso necesarios.

    10.2 Paquetes

    10.2.1 Uso

    Los paquetes se utilizan para reunir clases que pertenecen a una misma aplicacin, o que tienen algunas caracterstica

    juntas.

    Por ejemplo, se puede crear un paquete para las clases especficas de una aplicacin, y otros paquetes para clases

    generales, como tiles, conexin a la base de datos, etc...

    El nombre del paquete tiene que corresponder con el nombre de la carpeta en la cual la clase del paquete estaguardada. Un paquete puede contener varios niveles. Por ejemplo, el paquete itc.nica se encontrara bajo la capeta itc,

    que se encontrara bajo la carpeta nica.

    Por defecto, las clases de un mismo paquete tienen acceso a todas las clases de este mismo paquete. Este derecho de

    acceso puede ser modificado, utilizando modificadores de acceso, para permitir el uso de una clase por clases de otros

    paquetes, o restringir el uso de una clase. Veremos los modificadores de acceso ms adelante.

    La primera instruccin de un archivo de una clase que permanece a un paquete es:package ;

    Para compilar un paquete, hay que estar en la raiz de la aplicacin, y compilar conjavac nombre_del_paquete/NombreDeLaClase.java

    Para llamar a una clase de un paquete hay que estar en la raiz de la aplicacin y llamar ajava nombre_del_paquete.NombreDeLaClase

    1.1.1 Importacin de paquetes

    Cuando se requiere un objeto de otro paquete, se necesita poner el nombre entero del paquete delante el nombre del

    objeto, separado con ..

    Por ejemplo, para llamar al objeto Mitest del paquete test : test.Mitest

    Para no tener que marcar siempre el nombre del paquete delante el objeto, hay que importar el paquete.

    Para importar un paquete, hay que mencionar la palabra import y el nombre del paquete mas ;. La importacin solo se

    puede hacer entre la declaracin del paquete del cdigo (si pertenece a un paquete) y la declaracin de la clase

    principal del cdigo.

    Ejemplo:package dbaccess;import java.sql.*;public class Readdb {...}

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    25/32

    Curso de programacin en Java Nivel bsico Pagina 25 / 3

    10.3 Clases

    10.3.1 Declaracin y uso

    La clase es la unidad principal del Java. Una clase sirve para definir un objeto, y contiene sus constructores y sus

    mtodos.

    Son los constructores y mtodos que permitirn inicializar y manejar el objeto.

    La clase puede tener variable o constantes que sern accesibles por todos los constructores y mtodos de la clase.

    Una clase tiene derechos de acceso que se pueden modificar. Los derechos de accesos estarn explicados mas adelante

    en este capitulo.

    Una clase tiene que ser guardadas bajo un archivo que tenga el mismo nombre que la clase.

    Ejemplo:class Test {private int miNumero; //variable de clase

    public Test (){ // constructormiNumero=1;}public void mtodo_1 (){ // metodo

    miNumero+=10;...}

    }

    10.4 Constructores

    El constructor es la parte de la clase que permite inicializar la clase. Por defecto una clase tiene un constructor sin

    argumento y sin accin.

    El constructor se puede definir y sobre definir para ejecutar ciertas acciones y/o para aceptar parmetros (argumentos)al inicializar la clase.

    El constructor se define como un mtodo que tiene el mismo nombre que la clase, y que no puede regresar valores ni

    extender otro mtodo.

    Una misma clase puede tener varios constructores.

    Ejemplo:class Test {int miCampo; // variable de clasepublic Test (int miNumero){ // mi constructor

    miCampo = miNumero; // variable de clase inicializada}

    }

    10.5 Mtodos

    10.5.1 Declaracin y uso

    Un mtodo es una caracterstica de una clase. Un mtodo permite ejecutar acciones sobre el objeto (class).

    Son los mtodos que hacen todas las acciones de una aplicacin, as que contienen la mayora del cdigo.

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    26/32

    Curso de programacin en Java Nivel bsico Pagina 26 / 3

    Un mtodo tiene, como la clase, derecho de acceso que se pueden modificar, y tambin se necesita indicar si el mtodo

    regresa alguna valor o no, y cual es el tipo de valore regresada.

    Los mtodos pueden aceptar cero, uno, o varios parmetros de entrada, y pueden ser sobre definida, es decir tener un

    mismo nombre con diferentes nmeros o tipos de parmetros.

    El mtodo main (public static void main(String[] args)) es un mtodo especial que esta llamado por la JVM al iniciar

    una aplicacin. El mtodomain puede aceptar cero, uno, o varios parmetros, que son cadenas de caracteres.

    Ejemplo:class Test {

    public int calculo (int nmeroDado){ // metodo de calculoreturn nmeroDado+5;

    }// fin de metodopublic static void main(String[] args) { // metodo principal

    Test miTest = new Test();int resultado = miTest.calculo(12);System.out.println(resultado);

    }// fin de metodo Main} // fin de clase

    10.6 Modificadores de acceso

    10.6.1 Acceso por defecto

    Por defecto, una clase, mtodo, o dato es visible en este paquete.

    10.6.2 private

    El mtodo, o dato es visible solo en esta clase.

    10.6.3 public

    La clase, mtodo, o dato es visible en todo el universo.

    10.6.4 protected

    La clase, mtodo, o dato es visible en este paquete y las subclases de esta clase en cualquier paquete.

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    27/32

    Curso de programacin en Java Nivel bsico Pagina 27 / 3

    11 Polimorfismo, encapsulamiento, y

    herencia

    11.1 Objetivo del capitulo

    Al fin de este capitulo, el alumno ser capaz de entender, identificar situaciones que necesitan, y utilizar el

    polimorfismo, el encapsulamiento, y la herencia.

    11.2 Polimorfismo

    El polimorfismo es la capacidad que tiene Java de diferenciar mtodos que tiene un mismo nombre gracias a sus

    parmetros, o de inicializar una clase utilizando en constructor correspondiente a los parmetros pasados.

    Ejemplo:public class TestPoli {static int numeroGeneral;public TestPoli() {

    numeroGeneral=5;} // fin constructorpublic TestPoli(int inicializaNo) {numeroGeneral=inicializaNo;

    } // fin constructorpublic static void main(String[] args) { // metodo principalTestPoli miTest= new TestPoli(Integer.parseInt(args[0]));System.out.println("Constructon con (int). numeroGeneral = "+numeroGeneral);TestPoli miTest2= new TestPoli();System.out.println("Constructon con (int). numeroGeneral = "+numeroGeneral); }// fin de metodo main

    } // fin de clase

    11.3 Encapsulamiento

    El encapsulamiento permite de esconder la estructura interna de un objeto, y solo ensear lo necesario.

    El encapsulamiento se hace utilizando modificadores de acceso, paquetes, clases internas, clase abstractas, y/o

    interfaces.

    11.3.1 Clases internas

    Una clase interna es una clase definida dentro de otra clase, llamada clase contenedora.

    11.3.1.1 Clases e inerfaces internas static

    Se conocen tambin como clases anidadas (nested clases). Las clases e interfaces

    internas static slo pueden ser creadas dentro de otra clase al mximo nivel, es decir directamente en el bloque de

    definici

    n de la clase contenedora y no en un bloque m

    s interno. Este tipo de clases internas se definen utilizando lapalabra static. Todas las interfaces internas son implcitamente static.

    En cierta forma, las clases internas static se comportan como clases normales en unpackage. Para utilizar su nombre

    desde fuera de la clase contenedora hay que precederlo por el nombre de la clase contenedora y el operador punto (.)

    Este tipo de relacin entre clases se puede utilizar para agrupar varias clases dentro de una clase ms general.

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    28/32

    Curso de programacin en Java Nivel bsico Pagina 28 / 3

    11.3.1.2 Clases internas miembro

    Las clases internas miembro o simplemente clases internas, son clases definidas al mximo nivel de la clase

    contenedora (directamente en el bloque de diminucin de dicha clase), sin la palabra static. Se suelen llamar clases

    internas miembro o simplemente clases internas. No existen interfaces internas de este tipo.

    Otras clases diferentes de las clases contenedora e interna pueden utilizar directamente los objetos de la clase interna,

    sin cualificarlos con el objeto o el nombre de la clase contenedora.

    Las clases internas pueden tambin serprivate yprotected(las clases normales slo pueden serpublic ypackage). Esto

    permite nuevas posibilidades de encapsulacin.

    Los mtodos de las clases internas acceden directamente a todos los miembros, inclusoprivate, de la clase contenedora

    Tambin la clase contenedora puede acceder si dispone de una referencia- a todas las variables miembro (incluso

    private) de sus clases internas.

    Una clase interna puede acceder tambin a los miembros (inclusoprivate) de otras clases internas definidas en la

    misma clase contenedora.

    11.3.1.3 Clases internas locales

    Las clases internas locales o simplemente clases locales no se declaran dentro de otra clase al mximo nivel, sino

    dentro de un bloque de cdigo.

    Las principales caractersticas de las clases locales son las siguientes:

    1. Como las variables locales, las clases locales slo son visibles y utilizables en el bloque de cdigo en el que estn

    definidas. Los objetos de la clase local deben ser creados en el mismo bloque en que dicha clase ha sido definida. De

    esta forma se puede acercar la definicin al uso de la clase.

    2. Las clases internas locales tienen acceso a todas las variables miembro y mtodos de la clase contenedora. Pueden

    ver tambin los miembros heredados, tanto por la clase interna local como por la clase contenedora.

    3. Las clases locales pueden utilizar las variables locales y argumentos de mtodos visibles en ese bloque de cdigo,

    pero slo si son final5 (en realidad la clase local trabaja con sus copias de las variables locales y por eso se exige que

    sean final y no puedan cambiar).

    4. Un objeto de una clase interna local slo puede existir en relacin con un objeto de la clase contenedora, que debe

    existir previamente.

    5. La palabra this se puede utilizar en la misma forma que en las clases internas miembro, pero no las palabras new y

    super.

    Restricciones en el uso de las clases internas locales:

    1. No pueden tener el mismo nombre que ninguna de sus clases contenedoras.

    2. No pueden definir variables, mtodos y clases static.

    3. No pueden ser declaradaspublic,protected,private opackage, pues su visibilidad es siempre la de las variables

    locales, es decir, la del bloque en que han sido definidas.

    Las clases internas locales se utilizan para definir clasesAdapter en el AWT.

    11.3.1.4 Clases annimas

    Las clases annimas son muy similares a las clases internas locales, pero sin nombre. En las clases internas locales

    primero se define la clase y luego se crean uno o ms objetos. En las clases annimas se unen estos dos pasos: Como la

    clase no tiene nombre slo se puede crear un nico objeto, ya que las clases annimas no pueden definir constructores.

    Las clases annimas se utilizan con mucha frecuencia en el AWT para definir clases y objetos que gestionen los eventos

    de los distintos componentes de la interface de usuario. No hay interfaces annimas.

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    29/32

    Curso de programacin en Java Nivel bsico Pagina 29 / 3

    11.3.2 Clases abstractas

    Una clase abstracta es una clase que contiene una o ms mtodos abstractas, los cuales no son implementados. Una

    clase abstracta no se puede instanciar.

    Las clases abstractas tienen que ser implementadas utilizando la herencia. Ellas sirven de superclase a las clases (o

    interfaces) concretos. Las clases concretas sobredefine los metodos, implementndolos.

    11.3.3 Interfaces

    Una interfaz es una clase de las cuales todos los mtodos son abstractos.

    Por defecto, todos los miembros de una interfaz son pblicos, abstractos, static y final.

    Como las clases abstractas, las interfaces tiene que ser implementadas utilizando la herencia.

    11.4 Herencia

    Las clases pueden tener herencia de otra clase, lo que permite de recuperar ciertas caractersticas (mtodos y datos) de

    un objeto, y modificar o agregar otras. Los constructores no de hereden y deben ser definidos de nuevo en la clase, pero

    pueden llamar al constructor de la clase madre con la palabra 'super'. Por defecto, el constructor llama al constructor

    sin argumento de la clase madre, a menos que se llama a otro constructor explicitamente.

    Entonces:

    Cuando no tengo constructor de la clase hija definido, el constructor sin argumento de la clase madre esta

    llamado en primer lugar, si existe (si no, error de compilacion).

    Cuando un constructor de la clase hija no llama a ningun constructor de la clase madre, el constructor sin

    argumento de la clase madre esta llamado en primer lugar, si existe .

    Cuando llamo de un constructor de la clase hija hacia un constructor otro que el sin argumento de la clase

    madre, el constructor sin argumento de la clase madre no esta llamado

    As se puede crear subclases que extienden la clase de base.

    La herencia se utiliza mucho en Java, y especialmente en el web (servlets) y el GUI (AWT, Swing).

    La clase de base puede ser una clase fundadora de Java (Java Foundation Class) o una clase personal.

    Ejemplo:package test;public class TestHerencia {

    int numeroGeneral;TestHerencia () {numeroGeneral = 5;}public void adjunta_100() {numeroGeneral += 100; }

    } // fin de clase TestHerenciapackage test;public class TestHerenciaExt extends TestHerencia{

    public TestHerenciaExt () {super();}public void adjunta_50() {numeroGeneral += 50; }public static void main(String[] args) { // metodo principal

    TestHerenciaExt miTest = new TestHerenciaExt ();System.out.println("Valor inicial de numeroGeneral = " +

    miTest.numeroGeneral);miTest.adjunta_100();System.out.println("Valor de numeroGeneral = " +

    miTest.numeroGeneral);miTest.adjunta_50();System.out.println("Valor de numeroGeneral = " +

    miTest.numeroGeneral);} // fin de metodo main

    }

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    30/32

    Curso de programacin en Java Nivel bsico Pagina 30 / 3

    12 Tratamiento de excepcionesExisten tres categoras de errores en Java. Los errores de compilacin, los errores de ejecucin, y los errores de lgica.

    Los errores de ejecucin

    12.1 Objetivo del capitulo

    Al fin de este capitulo, el alumno ser capaz identificar los tipos de errores que se pueden encontrar en un cdigo enJava, y tratarlos con xito.

    12.2 Errores de compilacin

    Los errores de compilacin son las errores de sintaxis. Al compilar el cdigo, Java detecta los errores que no respetan la

    sintaxis del Java, as como errores de conversin de tipos, uso de variables no declaradas, etc...

    Estas errores no permiten que se creara el archivo .class, el cdigo compilado, porque este cdigo nunca podra

    funcionar.

    12.3 Errores de lgicaLos errores de lgica son errores debido a un diseo incorrecto del cdigo. Por ejemplo, un bucle que nunca termina,

    una falta de ortografa en un texto, una formula de clculo equivocada,...

    12.4 Errores de ejecucin

    Los errores de ejecucin son excepciones que Java no pudo detectar al compilar el cdigo. Por ejemplo, un nmero

    dividido por cero, o llamar a una base de datos que no existe, etc...

    Existen dos clases de excepciones: la clase Error y la clase Exception.

    Las excepciones de la clase Error abarcan fallos graves que el programa no va a poder recuperar y, por tanto, nopueden ser captadas.

    Las excepciones de la clase Exception son excepciones que Java puede capturar. Existen varias subclases, como Runtime

    Exception, IOException, InterruptedException,...

    Las excepciones de la clase Excepcion pueden ser atrapada a dentro del cdigo, para tomar accin correctiva y as evitar

    que la error sea fatal para la aplicacin. Para poder atrapar un error, hay que utilizar un bloque try en conjunto con

    uno o varios bloques catch y/o un bloque finally.

    12.4.1 throws

    Todos los errores que se pueden originar en un mtodo, excepto los errores del tipo Error y RuntimeException tienen queser capturadas o declarada en una clusula throws al declarar el mtodo.

    Todas las errores, afuera de las de tipo RuntimeError tienen que ser capturados en el cdigo, o descartadas utilizando

    throws.

    La clusula throws permite descarta las errores, es decir no capturarlas. Este es el comportamiento por defecto de Java

    pero en caso que Java espera que una error sea atrapada de manera explicita (por ejemplo cuando se usa el SQL), la

    clusula throws permite ignorar la error y compilar el cdigo.

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    31/32

    Curso de programacin en Java Nivel bsico Pagina 31 / 3

    Ejemplo:public Readdb() throws Exception {

    Class.forName("org.firebirdsql.jdbc.FBDriver");...

    }

    12.4.2 try

    El cdigo de ejecucin en el cual se podra producir una error de ejecucin se pone en un bloque try. Este es el cdigo de

    ejecucin normal, en caso que no sucede errores.

    Un bloque try nunca puede salir solo. Siempre tiene que se acompaado de un bloque catch y/o finally, mismo si el

    bloque finally esta vaco.

    Ejemplo:try {

    .....}

    12.4.3 catch

    El bloque catch permite atrapar errores que podran suceder en el bloque previo try.

    Un bloque try puede tener varios bloque catch para atrapar varias errores. En este caso, las errores mas especifica

    tienen que estar mencionadas en primer lugar. Las errores generales en ultimo lugar.

    Ejemplo:catch (ArithmeticException e){

    ...}catch (Exception e){

    ...}

    12.4.4 finally

    El bloque finally se utiliza para colocar instrucciones que el cdigo tendr que realizar despus del try y el catch. No

    importa si ocurri excepcin o no, el bloque finally siempre se va a realizar (con excepciones cuando se trabaja con

    hilos de ejecuciones y daemon).

    Ejemplo:int miResultado = 0;try {

    miResultado = 12/0;}catch (ArithmeticException e){

    System.out.println(e);}catch (Exception e){

    System.out.println("Otro error");

    }finally {miResultado+=1;System.out.println(miResultado);

    }

    Copyright C

    dric Simon, 2009 Versi

    n 2.0 Reproducci

    n prohibidawww.detodoprogramacion.com

  • 7/29/2019 Curso de Programacin en Java Espaol Nivel Bsico

    32/32

    Curso de programacin en Java Nivel bsico Pagina 32 / 3

    13 Ejercicios1) Crear, compilar, y ejecutar la 'primera aplicacin

    2) Declarar variable de los diferente tipo, asignarles valor e imprimir el valor.

    3) Declarar una constante e imprimir el valor. Probar de cambiar su valor luego y ver que es lo que pasa.

    4) Declara un entero, incrementarlo, decrementarlo, hacer operaciones con el.

    5) Probar la prioridad de operadores

    6) Probar la conversin implcita y explicita.7) Declarar un float con valor=10152466.25. Declara un byte que es igual a 5 + el float.

    8) Probar mtodos del objeto Math y consultar la documentacin del objeto.

    9) Adjuntar comentario de una y de varias lneas un su cdigo.

    10) Imprimir la fecha y hora del sistema.

    11) Imprimir el numero de segundas de la hora corriente del sistema.

    12) Crear un arreglo conteniendo los numeros de 1 a 10, e imprimir los nmeros 5 y 10 utilizando el arreglo.

    13) Crear un arreglo de String con nombre, apellido, y fecha de nacimiento de 3 empleados. Imprimir los nombres y

    fecha de nacimiento del tercer empleado.

    14) Declarar une entero y asignarle un valor. Si el valor < 5 imprimir "Pequeo", si no imprimir "Grande".

    15) Declarar une entero y asignarle un valor. Si el valor = 1 imprimir "no", = 2 imprimir "Dos", =3 imprimir "3", si no

    imprimir "Ni uno, ni dos, ni tres".

    16) Declarar un entero = 0. Mientras el entero 5, imprimir su valor y decrementarlo de uno, pero imprime por lo

    menos una vez su valor.

    18) Crear una bucle que se ejecuta 10 veces utilizando un entero que va de 10 a 19 increment ndose. Imprimir en cada

    bucle el valor del entero, menos cuando es igual a 15.

    19) Crear un objeto Auto con atributo privados de marca, modelo, y color. Crear los mtodos para cambiar y leer los

    valores de los atributos. Crear tres instancias de Auto. Cambiarles sus atributos y imprimirlos.

    20) Crear un paquete 'personal' que contiene:

    o Una clase 'Persona', con variables privadas para contener el nombre, apellido, sexo, fecha de

    nacimiento, y metodos para asignar o recuperar el valor de las variables, asi como para imprimir los

    valores con formalidad.

    - Una clase 'Empleado', que extiende 'Persona', y que le adjunta variables privadas: funccion, salario, si

    tiane contrato temporal o no, y metodos para asignar o recuperar el valor de las variables, asi como

    para imprimir todas los valores con formalidad.

    Crear un paquete 'Empresa' que contiene:

    - Una clase 'main' que va a crear tres empleados, y imprimir sus datos.

    21) Crear una clase Prueba con mtodo main que declara un entero igual a cinco dividido

    por cero (5/0). Ejecutarla y atrapar la error.