curso de programación en java español – nivel básico
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.