Logo Studenta

Fundamentos_de_programacion_en_Java

¡Este material tiene más páginas!

Vista previa del material en texto

Jorge Mart ínez Ladrón de Guevara 
 
 
 
 
Fundam entos de 
program ación en Java 
 
 
 
 
 
Editor ial EME 
I SBN 978-84-96285-36-2 
 
 
 
 
 
 
 i 
Contenido 
1 . I nt roducción a Java ............................. ....... 1 
Los lenguajes de program ación ...................... .... 1 
Histor ia de Java ................................... ............... 2 
La pla ta form a de Java .............................. .......... 3 
Entornos de desarrollo para Java ................... .... 4 
El proceso de edición y com pilación ................ .... 5 
La codif icación de program as Java .................. ... 6 
El proceso de desarrollo de softw are ............... ... 6 
2 . Est ructura de un program a Java ................. 9 
La est ructura de un program a Java .................. .. 9 
Los e lem entos de un program a Java ................. 1 3 
Com entar ios... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 
I dent ificadores... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 
Variables y valores ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 
Tipos pr im it ivos ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 
Literales ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 
Operadores ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 
Expresiones... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 
Expresiones ar itm ét ico- lógicas ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 
Conversión de t ipos ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 
Las palabras reservadas de Java .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 
3 . Clases y objetos................................ ........ 2 5 
Clases ............................................. .................. 2 6 
Los e lem entos de una clase .............................. 2 7 
Atr ibutos... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 
Métodos y const ructores ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 
Representación de clases y objetos ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 
Objetos ............................................ ................. 3 3 
La referencia null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 
Referencias com part idas por var ios objetos... . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 
 ii 
El ciclo de vida de un objeto ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 
At r ibutos .......................................... ................ 4 0 
Métodos............................................ ................ 4 1 
Declaración de m étodos ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 
I nvocación de m étodos ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 
El m étodo m ain( ) .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 
Parám et ros y argum entos ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 
Paso de parám et ros... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 
El valor de retorno ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 
Las variables locales de un m étodo .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 
Sobrecarga de m étodos .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 
Const ructores ...................................... ............. 5 4 
4 . Extensión de clases ............................. ..... 5 9 
Com posición ........................................ ............. 5 9 
Herencia ........................................... ................ 6 4 
Extensión de clases ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 
Polim orfism o .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 
Com pat ibilidad de t ipos .................................... 7 4 
Conversión ascendente de t ipos ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 
Conversión descendente de t ipos... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 
Jerarquía de herencia ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 
5 . Am pliación de clases ............................ .... 7 9 
Elem entos de c lase ( Stat ic) .............................. 7 9 
Derechos de acceso ................................. ......... 8 0 
Paquetes ........................................... ............... 8 3 
Uso .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 
Nom bres... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 
Clases pred efin idas........................................... 8 5 
Las clases asociadas a los t ipos pr im it ivos ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 
La clase Math ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 
La clase St r ing ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 
6 . Est ructuras de cont rol .......................... .... 8 9 
Est ructuras de selección ........................... ........ 9 0 
 
 iii 
Est ructura if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 
Est ructura if else ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 
Est ructura if else if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 
Est ructura switch ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 
El operador condicional .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 
Est ructuras de repet ición ................................ 1 0 2 
Est ructura while ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 
Est ructura do-while ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 
Est ructura for .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 
Uso de las est ructuras de repet ición ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 
Est ructuras de sa lto ............................... ......... 1 1 5 
Sentencia break ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 
Sentencia cont inue ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 
Uso de break y cont inue.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 
7 . Est ructuras de a lm acenam iento ............. 1 1 9 
Arrays............................................. ................ 1 1 9 
Arrays m ult idim ensionales ............................. 1 2 7 
Uso de arrays ...................................... ........... 1 3 1 
Búsqueda binar ia en arrays ordenados.......... . 1 4 1 
Ordenación de arrays ..................................... 1 4 4 
El algoritm o de ordenación “Bubble Sort ” .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 
El m étodo sort de la clase Arrays... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 
Arrays redim e nsionables ................................ 1 5 3 
Uso de arrays redim ensionables ..................... 1 5 6 
8 . Ent rada y sa lida ................................ ...... 1 6 5 
Los f lu jos de Java ................................. .......... 1 6 5 
Ent rada de datos desde e l teclado .................. 1 6 7 
Leer y escr ibir en f icheros de tex to............... .. 1 6 9 
Leer y escr ibir objetos en f icheros ................ .. 1 7 3 
 
 
 iv
Anexos 
A. Operadores del lenguaje Java ................ 1 7 9 
Operadores ar itm ét icos .................................. 1 7 9 
Operadores unar ios y com puestos.................. 1 7 9 
Operadores de re lación ................................... 1 8 1 
Operadores lógicos ......................................... 1 8 1 
Orden de precedencia de los operadores ........ 1 8 2 
B. Referencias ..................................... ....... 1 8 3 
El lenguaje de program ación Java .................. 1 8 3 
El API de Java ..................................... ............ 1 8 4 
C. Glosar io ........................................ .......... 1 8 5 
 
 
 
 1 
1 . I nt roducción a Java 
Los lenguajes de program ación 
Los lenguajes de program ación son idiom as art ificiales diseñados para 
expresar cálculos y procesos que serán llevados a cabo por ordenadores. Un 
lenguaje de program ación está formado por un conjunto de palabras 
reservadas, sím bolos y reglas sintáct icas y sem ánt icas que definen su 
est ructura y el significado de sus elem entos y expresiones. El proceso de 
program ación consiste en la escritura, com pilación y verificación del código 
fuente de un program a. 
Antes de diseñar un program a es necesario entender com pletam ente el 
problem a que querem os resolver y conocer las rest r icciones de operación de 
la aplicación. La program ación es una tarea com pleja y es m uy im portante 
abordar la solución a un problem a específico desde un punto de vista 
algorítm ico. Un algoritm o es un conjunto ordenado y finito de operaciones 
que perm ite hallar la solución de un problem a. Está definido por 
inst rucciones o reglas bien definidas, ordenadas y finitas que perm iten 
realizar una act ividad. Dado un estado inicial, una ent rada y una secuencia 
de pasos sucesivos, se llega a un estado final y se obt iene una solución. 
Para program ar de form a eficaz es necesario aprender a resolver problem as 
de una form a sistem át ica y r igurosa. Solo se puede llegar a realizar un buen 
program a si previam ente se ha diseñado un algoritm o. Un algoritm o dará 
lugar a un program a que puede codificarse en cualquier lenguaje de 
program ación. 
Uno de los objet ivos del curso de Fundam entos de I nform át ica es que el 
alum no desarrolle habilidades de análisis y diseño de algoritm os sim ples 
que le puedan ser de ut ilidad en el futuro. Es im portante tener nociones 
básicas de program ación porque esto perm it irá entender y diseñar procesos 
básicos en lenguajes de uso general com o Java y también en aplicaciones 
inform át icas de uso com ún en la ingeniería o el diseño. En la actualidad la 
m ayoría de las aplicaciones que ut ilizam os a diar io ofrecen posibilidades de 
program ación. Esto facilita el diseño de pequeñas aplicaciones para 
autom at izar tareas de uso cot idiano. 
I nt roducción a Java 
 2
Histor ia de Java 
Java es un lenguaje de program ación desarrollado por Sun Microsystem s. 
Java fue presentado en la segunda m itad del año 1995 y desde entonces se 
ha convert ido en un lenguaje de program ación m uy popular. Java es un 
lenguaje m uy valorado porque los program as Java se pueden ejecutar en 
diversas plataform as con sistem as operat ivos com o Windows, Mac OS, 
Linux o Solar is. Jam es Gosling, el director del equipo de t rabajo encargado 
de desarrollar Java, hizo realidad la prom esa de un lenguaje independiente 
de la plataform a. Se buscaba diseñar un lenguaje que perm it iera program ar 
una aplicación una sola vez que luego pudiera ejecutarse en dist intas 
m áquinas y sistem as operat ivos. Para conseguir la portabilidad de los 
program as Java se ut iliza un entorno de ejecución para los program as 
com pilados. Este entorno se denom ina Java Runt im e Environm ent (JRE) . Es 
gratuito y está disponible para los pr incipales sistem as operat ivos. Esto 
asegura que el m ism o program a Java pueda ejecutarse en Windows, Mac 
OS, Linux o Solar is. 
 
“Write Once, Run Anyware” , que podría t raducirse com o “program ar una 
sola vez y después ejecutar los program as en cualquier sistem a operat ivo” , 
era el objet ivo del equipo de desarrollo de Java. Esta idea resum e el 
concepto de portabilidad. Los program as Java son portables, es decir , 
independientes de la plataform a, porque pueden ejecutarse en cualquier 
ordenador o disposit ivo m óvil, independientem ente del sistem a operat ivo 
que tengan instalado: Un program a Java puede ejecutarse en un ordenador 
de m esa, un ordenador portát il, una tableta, un teléfono, un reproductor de 
Fundam entos de program ación en Java 
 3 
m úsica o en cualquier ot ro disposit ivo m óvil con cualquier sistem a 
operat ivo. 
La pla ta form a de Java 
Los program as Java se com pilan a un lenguaje intermedio, denom inado 
Bytecode. Este código es interpretado por la m áquina vir tual de Java del 
entorno de ejecución (JRE) y así se consigue la portabilidad en dist intas 
plataform as. El JRE es una pieza interm edia ent re el código Bytecode y los 
dist intos sistem as operat ivos existentes en el m ercado. Un program a Java 
com pilado en Bytecode se puede ejecutar en sistem as operat ivos com o 
Windows, Linux, Mac Os, Solar is, BlackBerry OS, iOs o Android ut ilizando el 
entorno de ejecución de Java (JRE) apropiado. 
Una de las característ icas m ás im portantes de los lenguajes de 
program ación m odernos es la portabilidad. Com o se ha com entado antes, 
un program a es portable cuando es independiente de la plataform a y puede 
ejecutarse en cualquier sistem a operat ivo y disposit ivo físico. Los 
program as Java son portables porque se ejecutan en cualquier plataform a. 
Sucedealgo parecido con las fotografías o los ficheros PDF. Las fotografías 
con form ato JPEG son portables porque un archivo JPEG lo podem os 
visualizar con dist intos visores de fotos y en disposit ivos com o ordenadores, 
tabletas o teléfonos. El form ato JPEG es un estándar para alm acenar 
archivos de im agen. Todas las im ágenes JPEG t ienen el m ism o form ato y los 
visores de fotos están diseñados para m ost rar las im ágenes con este 
form ato. De form a sim ilar, los archivos PDF (Portable Docum ent Form at ) 
son portables. El form ato PDF fue desarrollado por Adobe System s con la 
idea de que estos archivos se puedan ver en cualquier disposit ivo que tenga 
instalado Adobe Acrobat Reader, el software de visualización de docum entos 
PDF. 
La portabilidad de Java ha cont r ibuido a que m uchas em presas hayan 
desarrollado sus sistem as de com ercio elect rónico y sus sistem as de 
inform ación en I nternet con Java. El proceso de desarrollo y de 
m antenim iento de los sistem as resulta m enos costoso y las aplicaciones son 
com pat ibles con dist intos sistem as operat ivos. 
La evolución del lenguaje de program ación Java ha sido m uy rápida. La 
plataform a de desarrollo de Java, denom inada Java Developm ent Kit (JDK) , 
se ha ido am pliando y cada vez incorpora a un núm ero m ayor de 
program adores en todo el m undo. En realidad Java no solo es un lenguaje 
de program ación. Java es un lenguaje, una plataforma de desarrollo, un 
entorno de ejecución y un conjunto de librerías para desarrollo de 
I nt roducción a Java 
 4
program as sofist icados. Las librerías para desarrollo se denom inan Java 
Applicat ion Program m ing I nterface (Java API ) . 
El siguiente esquem a m uest ra los elem entos de la plataform a Java, desde el 
código fuente, el com pilador, el API de Java, los program as com pilados en 
Bytecode y el entorno de ejecución de Java. Este entorno de ejecución (JRE) 
y la m áquina vir tual (JVM) perm iten que un program a com pilado Java se 
ejecute en dist intos sistem as operat ivos. 
 
 
Entornos de desarrollo para Java 
Existen dist intos entornos de desarrollo de aplicaciones Java. Este t ipo de 
productos ofrecen al program ador un entorno de t rabajo integrado para 
facilitar el proceso com pleto de desarrollo de aplicaciones, desde el diseño, 
la program ación, la docum entación y la verificación de los program as. Estos 
productos se denom inan I DE ( I ntegrated Developm ent Environm ent ) . 
Existen entornos de dist r ibución libre com o: NetBeans, Eclipse o BlueJ. 
Ent re los productos com erciales están JBuilder o JCreatorPro. 
 
Fundam entos de program ación en Java 
 5 
Para ut ilizar un entorno de desarrollo es necesario instalar el Java Runt im e 
Environm ent (JRE) apropiado para el sistem a operat ivo. El JRE se descarga 
de la página de Oracle Java. 
El proceso de edición y com pilación 
En Java, al igual que en ot ros lenguajes de programación, se sigue el 
siguiente proceso: edición del código fuente, com pilación y ejecución. Los 
program as Java se desarrollan y se com pilan para obtener un código 
denom inado Bytecode que es interpretado por una m áquina vir tual de Java 
(Java Virtual Machine) . 
 
La edición del program a fuente se realiza escribiendo el program a Java en 
un editor de texto com o el Bloc de notas o ut ilizando un entorno integrado 
de desarrollo. El código fuente se alm acena en un fichero de t ipo . java. 
La com pilación se realiza con el com pilador Java javac o ut ilizando un 
entorno integrado de desarrollo. Durante el proceso de com pilación se 
verifica que el código fuente cum ple la definición léxica, sintáct ica y 
sem ánt ica de Java. Esto significa que el com pilador com prueba que el 
código fuente se com pone de palabras válidas en Java y que los com andos 
Java t ienen la form a sintáct ica correcta. Si durante el proceso de 
com pilación el com pilador detecta los errores que ha com et ido el 
program ador y le inform a de los problem as que ha encont rado para que 
pueda corregir los. Si durante la com pilación no se detectan errores, se 
genera un fichero de t ipo class en Bytecode. Una vez finalizado el proceso 
de com pilación se puede ejecutar el program a. Para esto, es necesario que 
la m áquina vir tual de Java interprete el código Bytecode y ejecute la 
aplicación. 
I nt roducción a Java 
 6
La codif icación de program as Java 
El est ilo de program ación o codificación de los program as Java es m uy 
im portante. La legibilidad de un program a determ ina en buena m edida que 
se haya desarrollado correctam ente y que el producto final sea eficiente. 
Legibilidad > Corrección > Eficiencia 
Legibilidad . Un program a Java debe ser fácil de leer y entender, incluso 
para una persona que no ha part icipado en el desarrollo del program a. La 
legibilidad es un aspecto m uy im portante porque facilita el m antenim iento 
del software, la corrección de errores o la m odificación de la funcionalidad 
de la aplicación con m enor coste. 
Corrección . Un program a debe hacer lo que debe hacer, ni m ás, ni m enos. 
Esto es lo que se ent iende por corrección. Un program a debe cum plir 
r igurosam ente los requisitos funcionales y técnicos de la fase de 
especificación. Durante la fase de prueba se verifica que el program a 
funciona correctam ente y que cum ple los requisitos técnicos y funcionales. 
Eficiencia . La eficiencia se refiere al t iem po que un programa tarda en 
ejecutarse y a los recursos que consum e. Cuanto m ás rápido sea un 
program a y ut ilice m enos m em oria o disco duro, el diseño es m ejor. La 
eficiencia no es un problem a que deba atender cuando se aprende a 
program ar. Ahora lo m ejor es ut ilizar los m ecanism os de opt im ización 
propios de los com piladores. La eficiencia se debe analizar solo cuando un 
program a funciona correctam ente y cum ple con los requisitos técnicos 
definidos. 
El proceso de desarrollo de softw are 
El proceso de desarrollo de los program as Java no difiere de la m ayoría de 
los lenguajes de program ación. Es necesario seguir un conjunto de pasos 
para desarrollar correctam ente un producto software. 
La I ngeniería del Software estudia los dist intos procesos de desarrollo de 
software. El I EEE define I ngeniería del Software com o la aplicación 
sistem át ica, disciplinada y cuant ificable de un proceso de desarrollo, 
operación y m antenim iento de un producto software. 
 
 
Fundam entos de program ación en Java 
 7 
El proceso clásico de desarrollo de software es am pliam ente ut ilizado por su 
sencillez. Este proceso se com pone de las siguientes fases: especificación, 
diseño, codificación, prueba y m antenim iento. 
Especif icación . En esta fase se decide la funcionalidad, las característ icas 
técnicas de una aplicación y sus condiciones de uso. En esta fase es 
necesario responder a las siguientes preguntas: 
 ¿Para qué se va a ut ilizar la aplicación? 
 ¿Cuáles son las necesidades funcionales de los usuarios? 
 ¿Cuál es el perfil de los usuarios de la aplicación? 
 ¿En qué plataform a se ejecutará la aplicación? 
 ¿Cuáles son sus condiciones de operación? 
 ¿Cóm o se va a ut ilizar? 
Diseño . En esta fase se ut iliza toda la inform ación recogida en la fase de 
especificación y se propone una solución que responda a las necesidades del 
usuario y se pueda desarrollar. En esta fase se define la arquitectura de la 
aplicación. Es necesario detallar la est ructura y la organización del 
program a y cóm o se relacionan las dist intas partes de la aplicación. 
Codif icación . Esta fase consiste en la program ación en Java de las 
especificaciones de diseño de la fase anterior. Durante esta fase de 
codificación o im plem entación se aplican norm as de program ación para 
facilitar la legibilidad de los program as Java. 
Prueba . En esta fase se com pila y se ejecuta la aplicaciónpara verificar 
que cum ple con los requisitos funcionales y técnicos definidos en la fase de 
especificación. Si el program a no cum ple con todos los requisitos, se puede 
deber a errores de diseño o de program ación. En tal caso, es necesario 
corregir los errores que se hayan detectado y repet ir de nuevo el proceso de 
diseño y codificación. Durante la fase de prueba se verifica que la aplicación 
cum ple con los cr iter ios de calidad establecidos en el proyecto: facilidad de 
uso, corrección, eficiencia, integridad, fiabilidad, flexibilidad, facilidad de 
m antenim iento, facilidad de prueba, portabilidad, capacidad de reut ilización 
e interoperabilidad. 
Una vez que la aplicación se ha probado y cum ple con los requisitos 
establecidos, entonces se pone en funcionam iento y com ienza la fase de 
operación para que sea ut ilizada para el fin con el que ha sido desarrollada. 
I nt roducción a Java 
 8
Mantenim iento . Una vez que la aplicación se ha puesto en operación da 
com ienzo la fase de m antenim iento. En esta fase se corr igen errores de 
funcionam iento de la aplicación, se m odifica la funcionalidad o se añaden las 
nuevas funcionalidades que dem andan los usuarios. La fase de 
m antenim iento es la de m ayor duración, pues pueden pasar m uchos años 
desde el inicio de la operación hasta que el producto es ret irado. 
 
 
 
 9 
2 . Est ructura de un program a Java 
Un program a describe cóm o un ordenador debe interpretar las órdenes del 
program ador para que ejecute y realice las inst rucciones dadas tal com o 
están escritas. Un program ador ut iliza los elem entos que ofrece un lenguaje 
de program ación para diseñar program as que resuelvan problem as 
concretos o realicen acciones bien definidas. 
El siguiente program a Java m uest ra un m ensaje en la consola con el texto 
“Hola Mundo” . 
 
/* 
* Este programa escribe el texto "Hola Mundo" en la consola 
* utilizando el método System.out.println() 
*/ 
 
public class HolaMundo { 
 
 public static void main (String[] args) { 
 System.out.println("Hola Mundo"); 
 } 
 
} 
 
 
La est ructura de un program a Java 
En este program a se pueden ident ificar los siguientes elem entos del 
lenguaje Java: com entarios, definiciones de clase, definiciones de m étodo y 
sentencias. 
Com entar io . El program a com ienza con un com entario. El delim itador de 
inicio de un com entario es / * y el delim itador de fin de com entario es * / . El 
texto del pr im er com entario de este ejem plo sería: ‘Este program a escribe 
el texto “Hola Mundo” en la consola ut ilizando el método 
System .out .pr int ln( ) '. Los com entarios son ignorados por el com pilador y 
solo son út iles para el program ador. Los com entarios ayudan a explicar 
aspectos relevantes de un program a y lo hacen m ás legible. En un 
com entario se puede escribir todo lo que se desee, el texto puede ser de 
una o m ás líneas. 
Est ructura de un program a Java 
 1 0
Defin ición de clase . La pr im era línea del program a, después del pr im er 
com entario. Define una clase que se llam a HolaMundo . La definición de la 
clase com ienza por el carácter { y term ina con el carácter } . El nom bre de 
la clase lo define el program ador. 
Defin ición de m étodo . Después de la definición de clase se escribe la 
definición del m étodo main() . Todos los program as Java deben incluir un 
m étodo main() . Este m étodo indica las sentencias a realizar cuando se 
ejecuta un program a. Un m étodo es una secuencia de sentencias 
ejecutables. Las sentencias de un m étodo quedan delim itadas por los 
caracteres { y } que indican el inicio y el fin del m étodo, respect ivam ente. 
Sentencia . Dent ro del m étodo main() se incluye una sentencia para 
m ost rar un texto por la consola. Los textos siem pre se escr iben ent re 
com illas dobles para diferenciar los de ot ros elem entos del lenguaje. Todas 
las sentencias de un program a Java deben term inar con el sím bolo punto y 
com a. Este sím bolo indica al com pilador que ha finalizado una sentencia. 
Una vez que el program a se ha editado, es necesario com pilar lo y ejecutar lo 
para com probar si es correcto. Al finalizar el proceso de com pilación, el 
com pilador indica si hay errores en el código Java, dónde se encuent ran y el 
t ipo de error que ha detectado: léxico, sintáct ico o sem ánt ico. 
 
/* Este programa calcula el perímetro de una circunferencia */ 
 
public class PerimetroCircunferencia { 
 public static void main (String[] args) { 
 
 // declaración de PI y la variables radio y perimetro 
 
 final double PI = 3.1415926536; 
 double radio = 25.0, perimetro; 
 
 perimetro = 2.0*PI*radio; 
 System.out.print("El perimetro de la circunferencia de radio "); 
 System.out.print(radio); 
 System.out.print(" es "); 
 System.out.print(perimetro); 
 
 } 
} 
 
Fundam entos de program ación en Java 
 1 1
En un program a Java las sentencias se ejecutan secuencialm ente, una 
det rás de ot ra en el orden en que están escritas. 
En este ejem plo se puede ver que dent ro del m étodo main() se incluye un 
com entario de una sola línea que com ienza con / / . A cont inuación se 
declaran las var iables PI , radio y perimetro , todas ellas de t ipo double 
porque alm acenan núm eros reales. PI representa un valor constante, por lo 
que es necesario ut ilizar el delim itador final y asignarle el valor 
3.1415926536 correspondiente al núm ero pi. 
Después de las declaraciones, se asigna el valor 25.0 a la variable radio y 
se calcula el perím et ro. Finalm ente, se m uest ra el resultado del cálculo del 
perím et ro para una circunferencia de radio 25. 
En este ejem plo se ut ilizan variables num éricas de t ipo double . Cada 
variable alm acena un núm ero real. La parte entera del núm ero se separa de 
los decim ales con un punto, no con una com a. Esta es una característ ica de 
Java que se debe tener en cuenta, de lo cont rar io, el com pilador no 
ent iende que se t rata de un núm ero real. 
El valor 25.0 alm acenado en la variable radio es una m agnitud para la que 
no se indican sus unidades. El program ador es responsable de que los 
cálculos se realicen correctam ente y de realizar la conversión de unidades 
cuando sea necesar io. 
Para escr ibir un m ensaje por la consola se ut ilizan los m étodos 
System.out.print() y System.out.println() . Para escribir un 
m ensaje sin saltar a la línea siguiente se ut iliza System.out.print() , 
System.out.println() escribe un m ensaje y da un salto de línea. 
¿Qué hace el siguiente código Java? 
System.out.print("Hola"); 
System.out.print(" "); 
System.out.print("Mundo"); 
 
En este ejem plo se escribe el texto “Hola Mundo” en la consola. 
Hola Mundo 
 
Est ructura de un program a Java 
 1 2
¿Qué pasaría si se om it iera la segunda línea de código?, 
System.out.print("Hola"); 
System.out.print("Mundo"); 
 
En este caso se escr ibir ía “HolaMundo” sin el espacio de separación ent re 
las dos palabras. 
HolaMundo 
 
Si en vez de ut ilizar el m étodo System.out.print() se ut iliza el m étodo 
System.out.println() , entonces el m ensaje se escribe en dos líneas 
dist intas. 
System.out.println("Hola"); 
System.out.println("Mundo"); 
 
En este ejem plo, se escribir ía “Hola” y “Mundo” en dos líneas. 
Hola 
Mundo 
 
Com binando el uso de los m étodos System.out.print() y 
System.out.println() se puede escribir cualquier m ensaje en la consola 
saltando de línea cuando sea necesario. Adem ás, am bos m étodos perm iten 
ut ilizar el operador + para concatenar textos. 
El siguiente código Java escribe “Hola Mundo” en la consola. 
System.out.print("Hola"); 
System.out.print(" "); 
System.out.print("Mundo"); 
 
Fundam entos de program ación en Java 
 1 3
En este caso se ejecutan t res m étodos System.out.print() . Estecódigo 
se puede sim plificar ut ilizando un solo m étodo System.out.print() y el 
operador + para concatenar los textos “Hola” , “ ” y “Mundo” . 
System.out.print("Hola" + " " + "Mundo"); 
 
Tam bién se puede escribir directam ente el m ensaje “Hola Mundo” . El 
resultado es el m ism o y el código es m ás claro. 
System.out.print("Hola Mundo"); 
 
Para m ost rar por la consola un texto seguido del valor alm acenado de una 
variable se puede ejecutar dos veces el m étodo System.out.print() : 
System.out.print("El perímetro es "); 
System.out.print(perimetro); 
 
Este código se puede sim plificar ut ilizando el operador + para concatenar el 
texto “El perím et ro es ” con el valor alm acenado en la variable perimetro . 
System.out.print("El perímetro es " + perimetro); 
 
En am bos casos el resultado es el m ism o. Por ejem plo, si el valor 
alm acenado en la variable perimetro fuera 157.08 la salida por la consola 
sería: 
El perímetro es 157.08 
 
Los e lem entos de un program a Java 
A cont inuación se descr ibe la definición léxica y sintáct ica de los elem entos 
de un program a Java: com entarios, ident ificadores, variables y valores, 
t ipos pr im it ivos, literales, operadores, expresiones y expresiones aritm ét ico-
lógicas. 
Est ructura de un program a Java 
 1 4
Com entar ios 
En un program a Java hay t res t ipos de com entarios. 
Com entar io de bloque . Em pieza por / * y term ina por * / . El com pilador 
ignora todo el texto contenido dent ro del com entario. 
/* 
* El programa HolaMundo se utiliza para aplicar los 
* métodos System.out.print() y System.out.println() 
*/ 
Com entar io de docum entación . Em pieza por / * * y term ina por * / . Java 
dispone de la herram ienta javadoc para docum entar autom át icam ente los 
program as. En un com entario de docum entación norm alm ente se indica el 
autor y la versión del software. 
/** 
* Programa HolaMundo 
* @author Fundamentos de Informática 
* @version 1.0 
* @see Referencias 
*/ 
Com entar io de línea . Em pieza con / / . El com entario com ienza con estos 
caracteres y term ina al final de la línea. 
// El método System.out.println() salta la línea 
El uso de com entar ios hace m ás claro y legible un program a. En los 
com entarios se debe decir qué se hace, para qué y cuál es el fin de nuest ro 
program a. Conviene ut ilizar com entar ios siem pre que m erezca la pena 
hacer una aclaración sobre el program a. 
 
I dent if icadores 
El program ador t iene libertad para elegir el nom bre de las variables, los 
m étodos y de ot ros elem entos de un program a. Existen reglas m uy est r ictas 
Fundam entos de program ación en Java 
 1 5
sobre los nom bres que se ut ilizan com o ident ificadores de clases, de 
variables o de m étodos. 
Todo ident ificador debe em pezar con una let ra que puede estar seguida de 
m ás let ras o dígitos. Una let ra es cualquier sím bolo del alfabeto y el 
carácter ‘_’. Un dígito es cualquier carácter ent re ‘0’ y ‘9’. 
Los ident ificadores Hola , hola , numero , numeroPar , numeroImpar , 
numero_impar , numero_par , nombre , apellido1 y apellido2 son 
válidos. El ident ificador 1numero no es válido porque em pieza con un dígito, 
no con una let ra. 
Cualquier ident ificador que em piece con una let ra seguida de m ás let ras o 
dígitos es válido siem pre que no form e parte de las palabras reservadas del 
lenguaje Java. El lenguaje Java dist ingue ent re let ras m ayúsculas y 
m inúsculas, esto significa que los ident ificadores numeroPar y numeropar 
son dist intos. 
Existen unas norm as básicas para los ident ificadores que se deben respetar. 
 Los nom bres de var iables y m étodos em piezan con m inúsculas. Si se 
t rata de un nom bre com puesto cada palabra debe em pezar con 
m ayúscula y no se debe ut ilizar el guión bajo para separar las palabras. 
Por ejem plo, los ident ificadores calcularSueldo , setNombre o 
getNombre son válidos. 
 Los nom bres de clases em piezan siem pre con m ayúsculas. En los 
nom bres com puestos, cada palabra com ienza con m ayúscula y no se 
debe ut ilizar el guión bajo para separar las palabras. Por ejem plo, 
HolaMundo , PerimetroCircunferencia , Alumno o Profesor son 
nom bres válidos. 
 Los nom bres de constantes se escriben en m ayúsculas. Para nom bres 
com puestos se ut iliza el guión bajo para separar las palabras. Por 
ejem plo, PI , MINIMO, MAXIMO o TOTAL_ELEMENTOS son nom bres 
válidos. 
 
Var iables y va lores 
Un program a Java ut iliza variables para alm acenar valores, realizar cálculos, 
m odificar los valores alm acenados, m ost rar los por la consola, alm acenarlos 
en disco, enviar los por la red, etc. Una variable alm acena un único valor. 
Est ructura de un program a Java 
 1 6
Una variable se define por un nom bre, un t ipo y el rango de valores que 
puede alm acenar. 
El nom bre de una variable perm ite hacer referencia a ella. Este nom bre 
debe cum plir las reglas aplicables a los ident ificadores. El t ipo indica el 
form ato de los valores que puede alm acenar la variable: cadenas de 
caracteres, valores lógicos, núm eros enteros, núm eros reales o t ipos de 
datos com plejos. El rango indica los valores que puede tom ar la variable. 
Por ejem plo, una variable de t ipo núm ero entero, con nom bre 
mesNacimiento puede alm acenar valores posit ivos y negat ivos, lo que no 
t iene sent ido cuando se t rata de m eses del año. El rango válido para esta 
variable sería de 1 a 12. 
Para declarar una variable en Java se indica el t ipo y su nom bre. 
int mesNacimiento; 
 
En este ejem plo se indica que la variable es de t ipo entero (int) y su 
nom bre es mesNacimiento . Una vez declarada una variable, se puede 
ut ilizar en cualquier parte del program a referenciándola por su nom bre. 
Para alm acenar un valor en una variable se ut iliza el operador de asignación 
y a cont inuación se indica el valor, por ejem plo 2. 
mesNacimiento = 2; 
 
A part ir de este m om ento la variable mesNacimiento alm acena el valor 2 y 
cualquier referencia a ella ut iliza este valor. Por ejem plo, si se im prim e el 
valor de la var iable por la consola, m uest ra el valor 2. 
System.out.print(mesNacimiento); 
 
Java perm ite declarar e inicializar una variable en una sola sentencia. 
int diaNacimiento = 20; 
int mesNacimiento = 3; 
 
Fundam entos de program ación en Java 
 1 7
En este ejem plo se declaran las variables diaNacimiento con el valor 20 y 
mesNacimiento con valor 3. 
Si se declara una constante, entonces se debe ut ilizar el delim itador final 
y es necesario indicar su valor. En la siguiente declaración se define el valor 
de la constante pi de t ipo double para alm acenar un núm ero real. 
final double PI = 3.1415926536; 
 
Es conveniente ut ilizar nom bres apropiados para las variables. El nom bre de 
una variable debe indicar para qué sirve. El nom bre de una variable debe 
explicarse por sí m ism o para m ejorar la legibilidad del program a. 
Si se desea declarar m ás de una variable a la vez se deben separar las 
variables en la sentencia de la declaración. 
int dia=20, mes=2, año=2020; 
 
En este ejem plo se declaran las variables enteras dia , mes y año . La 
variable día se inicializa con el valor 20, mes con 2 y año con 2020. La 
siguiente declaración es equivalente a la anter ior. 
int dia=20; 
int mes=2; 
int año=2020; 
 
Tipos pr im it ivos 
Las variables de java pueden ser de un t ipo pr im it ivo de datos o una 
referencia a un objeto. Los t ipos pr im it ivos perm iten representar valores 
básicos. Estos t ipos se clasifican en núm eros enteros, núm eros reales, 
caracteres y valores booleanos. 
Núm eros enteros . Representan núm eros enteros posit ivos y negat ivos con 
dist intos rangos de valores, desde cientos a t r illones. Los t ipos enteros de 
Java son byte , int , short y long . 
Est ructura deun program a Java 
 1 8
Núm eros rea les . Existen dos t ipos de núm eros reales en Java, float y 
double . La diferencia ent re ellos está en el núm ero de decim ales que 
t ienen capacidad para expresar y en sus rangos de valores. 
Caracteres . El t ipo char perm ite representar cualquier carácter Unicode. 
Los caracteres Unicode cont ienen todos los caracteres del alfabeto de la 
lengua castellana. 
Booleano . Se ut iliza para representar los valores lógicos verdadero y falso. 
Solo t iene dos valores true y false . 
La siguiente tabla resum e los t ipos pr im it ivos de Java. 
Tipo Descripción Valor m ínim o y máximo 
byte Entero con signo -128 a 127 
short Entero con signo -32768 a 32767 
int Entero con signo -2147483648 a 2147483647 
long Entero con signo 
-922117036854775808 a 
+ 922117036854775807 
float Real de precisión sim ple 
± 3.40282347e+ 38 a 
± 1.40239846e-45 
double Real de precisión doble 
± 1.7976931348623157e+ 309 a 
± 4.94065645841246544e-324 
char Caracteres Unicode \ u0000 a \ uFFFF 
boolean Valores lógicos t rue, false 
 
Litera les 
Se denom ina literal a la m anera en que se escriben los valores para cada 
uno de los t ipos pr im it ivos. 
Núm eros enteros . Un núm ero entero en Java se puede escribir en 
decim al, octal o en hexadecim al. Cuando se ut iliza el sistem a octal es 
necesario poner el dígito 0 delante del núm ero. Si se ut iliza el sistem a 
hexadecim al se debe poner 0x delante del núm ero. Por ejem plo, el núm ero 
decim al 10 se puede escribir 012 en octal y 0xA en hexadecim al. Los 
núm eros enteros se supone que pertenecen al t ipo int . 
Fundam entos de program ación en Java 
 1 9
Núm eros rea les . Un núm ero real en Java siem pre debe tener un punto 
decim al o un exponente. Por ejem plo, el núm ero 0.25 se puede expresar 
tam bién com o 2.5e-1. Los núm eros reales se supone que pertenecen al t ipo 
double . 
Booleanos . Los valores lógicos solo pueden ser true y false . Se escr iben 
siem pre en m inúsculas. 
Caracteres . Los valores de t ipo carácter representan un carácter Unicode. 
Se escriben siem pre ent re com illas sim ples, por ejem plo 'a', 'A', '0', '9'. En 
Java un carácter se puede expresar por su código de la tabla Unicode en 
octal o en hexadecim al. Los caracteres que t ienen una representación 
especial se indican en la siguiente tabla. 
Carácter Significado 
\ b Ret roceso 
\ t Tabulador 
\ n Salto de línea 
\ r Cambio de línea 
\ " Carácter com illa doble 
\ ' Carácter com illa sim ple 
\ \ Carácter barra hacia at rás 
 
Textos . Un texto en Java pertenece a la clase String y se expresa com o el 
texto ent re com illas dobles. Un texto siem pre debe aparecer en una sola 
línea. Para dividir un texto en varias líneas se debe ut ilizar el operador + 
para concatenar textos. 
Un texto puede estar vacío o contener uno o m ás caracteres. Por ejem plo, 
“Hola Mundo” es un texto de 10 caracteres, m ient ras que “ ” es un texto 
vacío y t iene 0 caracteres. El texto “a” es diferente del carácter 'a' de t ipo 
char . 
 
Operadores 
Cada t ipo puede ut ilizar determ inados operadores para realizar operaciones 
o cálculos. 
Est ructura de un program a Java 
 2 0
Núm eros enteros . Al realizar una operación ent re dos núm eros enteros, el 
resultado siem pre es un núm ero entero. Con los núm eros enteros se 
pueden realizar operaciones unarias, adit ivas, m ult iplicat ivas, de increm ento 
y decrem ento, relacionales, de igualdad y de asignación. 
 Una operación unaria perm ite poner un signo delante: + 5, -2. 
 Una operación adit iva se refiere a la sum a y la resta: 2+ 3, 5-2. 
 Una operación m ult iplicat iva m ult iplica o divide dos valores: 5* 2, 5/ 2. El 
operador % calcula el resto de la división entera 5% 2. 
 Un increm ento o decrem ento aum enta o decrem enta en 1 el valor de 
una variable: + + num ero, num ero+ + , - -num ero, num ero- - . Si el 
operador va antes de la variable, pr im ero se realiza la operación y se 
m odifica el valor de la variable. Si el operador va después de la variable, 
su valor se m odifica al final. 
 Un operador relacional perm iten com parar dos valores: > , < , > = y < = . 
El resultado de la com paración es un valor booleano que indica si la 
relación es verdadera o falsa. 
 Un operador de igualdad com para si dos valores son iguales o no. El 
operador = = devuelve verdadero si los dos valores son iguales, el 
operador != devuelve verdadero si son diferentes. El resultado de la 
com paración es un valor booleano que indica si la igualdad o desigualdad 
es verdadera o falsa. 
 Un operador de asignación perm ite asignar un valor o el resultado de 
una operación a una variable: = , + = , -= , * = , / = , % = . 
Núm eros rea les . Con los núm eros reales se aplican los m ism os operadores 
que con los núm eros enteros. Si se realizan operaciones unar ias, adit ivas o 
m ult iplicat ivas, el resultado es un núm ero real. Tam bién se pueden aplicar 
los operadores relacionales para com parar dos núm eros reales. 
Booleanos . Los operadores que se aplican a los valores lógicos son: 
negación, Y lógico, O lógico. 
 La negación ( ! ) devuelve true si el operando es false . 
 El Y lógico (&&) devuelve false si uno de los operandos es false . 
 El O lógico ( | | ) devuelve true si uno de los operandos es true . 
 
Fundam entos de program ación en Java 
 2 1
Expresiones 
Una expresión perm ite realizar operaciones ent re valores ut ilizando dist intos 
operadores. Las expresiones son út iles para representar las fórm ulas 
m atem át icas que se ut ilizan para realizar cálculos. 
En Java se pueden definir expresiones tan com plejas com o sea necesario. 
Por ejem plo, para convert ir una tem peratura de grados Fahrenheit a 
Cent ígrados se ut iliza la fórm ula: 
C = ((F – 32) * 5) / 9 
En este ejem plo C representa la tem peratura en grados cent ígrados y F en 
grados Fahrenheit . La fórm ula en Java, ut ilizando las var iables 
centigrados y fahrenheit de t ipo double . 
centigrados = ((fahrenheit – 32.0) * 5.0)) / 9.0; 
 
Toda la expresión se evalúa a un valor. El orden de los cálculos depende del 
orden de prior idad de los operadores: pr im ero los operadores unarios, 
después los m ult iplicat ivos, de izquierda a derecha, después los operadores 
adit ivos, de izquierda a derecha, después los operadores de relación y por 
últ im o los operadores de asignación. 
Por ejem plo, la expresión x = -3 + 2 * 4 – 12 / 6 + 5 se calcula en el orden 
siguiente: 
Prim ero se aplica el operador unario ( - ) a 3 y se obt iene -3. A cont inuación 
se evalúan los operadores m ult iplicat ivos de izquierda a derecha. Se calcula 
el producto de 2 * 4 y se obt iene 8, después se divide 12 / 6 y se obt iene 2. 
Al finalizar estas operaciones la expresión queda x = -3 + 8 – 2 + 5. Por 
últ im o, se evalúan los operadores adit ivos de izquierda a derecha y se 
obt iene 8. 
Cuando se desea m odificar el orden de pr ior idad de los operadores es 
necesario ut ilizar paréntesis para indicar el orden de evaluación. Por 
ejem plo, al calcular el valor de y = -3 + 2 * (14 – 2) / 6 + 5 se obt iene 6. 
 
Est ructura de un program a Java 
 2 2
Expresiones ar itm ét ico- lógicas 
Una expresión ar itm ét ico- lógica devuelve un valor lógico verdadero o falso. 
En este t ipo de expresiones se ut ilizan operadores ar itm ét icos, operadores 
relacionales y de igualdad. Por ejem plo, una expresión lógica puede ser: 
(10 – 2) > (5 – 3) 
En este ejem plo la expresión aritm ét ico- lógica es verdadera porque el lado 
derecho de la expresión es m ayor que el lado izquierdo. 
En una expresión ar itm ét ico- lógica se pueden com binar varias expresiones 
con operadores lógicos. La precedecencia de los operadores lógicos es 
m enor que la de los operadores relacionales, por lo que prim ero se evalúan 
las desigualdadesy después los operadores lógicos. El orden de pr ior idad de 
los operadores lógicos es el siguiente: pr im ero la negación, después el Y 
lógico y por últ im o el O lógico. La pr ior idad de los operadores de asignación 
es la m enor de todas. 
Por ejem plo, la expresión 3 + 5 < 5 * 2 | | 3 > 8 && 7 > 6 – 2 se evalúa en 
el orden siguiente. 
Prim ero se evalúan las expresiones aritm ét icas y se obt iene la expresión 
lógica 8 < 10 | | 3 > 8 && 7 > 4. A cont inuación se evalúan los operadores 
relacionales y se obt iene true | | false && true . Ahora se evalúa el 
operador Y lógico con los operandos false && true y se obt iene false . 
Por últ im o, se evalúa el operador O lógico con los operandos true | | false 
y se obt iene true , el valor final de la expresión. 
Los operadores lógicos && y | | se evalúan por cortocircuito. Esto significa 
que al evaluar a && b, si a es falso, no es necesario evaluar b porque la 
expresión es falsa. De form a sim ilar, al evaluar a | | b, si a es verdadero, no 
es necesario evaluar b porque la expresión es verdadera. 
 
Conversión de t ipos 
Muchas veces es necesario realizar conversiones de t ipos cuando se evalúa 
una expresión aritm ét ica. Por ejem plo, si después de realizar el cálculo de 
conversión de grados Fahrenheit a Cent ígrados se quiere alm acenar el 
resultado en la variable de t ipo entero temperatura , es necesario hacer 
Fundam entos de program ación en Java 
 2 3
una conversión de t ipos. La fórm ula en Java, ut ilizando las variables 
centigrados y fahrenheit de t ipo double . 
centigrados = ((fahrenheit – 32.0) * 5.0)) / 9.0; 
 
Antes de asignar el valor resultante a la variable temperatura , que 
alm acena un valor entero, es necesario convert ir el valor de t ipo double de 
la variable centigrados a int . 
int temperatura = (int) centigrados; 
 
Las pa labras reservadas de Java 
En todos los lenguajes de program ación existen palabras con un significado 
especial. Estas palabras son reservadas y no se pueden ut ilizar com o 
nom bres de variables. 
abstract final public 
assert finally return 
boolean float short 
break for static 
byte if strictfp 
case implements super 
catch import switch 
char instanceof synchronized 
class int this 
continue interface throw 
default long throws 
do native transient 
double new true 
else null try 
enum package void 
extends private volatile 
false protected while 
Est ructura de un program a Java 
 2 4
En realidad, las palabras false , null y true son literales. No son palabras 
reservadas del lenguaje, pero no se pueden ut ilizar com o ident ificadores. 
 
 
 
 2 5
3 . Clases y objetos 
La program ación or ientada a objetos se enfoca en los elem entos de un 
sistem a, sus at r ibutos y las interacciones que se producen ent re ellos para 
diseñar aplicaciones inform át icas. Los elem entos abst ractos del m odelo 
or ientado a objetos se denom inan clases. 
Un program a orientado a objetos es, esencialm ente, una colección de 
objetos que se crean, interaccionan ent re sí y dejan de exist ir cuando ya no 
son út iles durante la ejecución de un program a. Una aplicación inform át ica 
puede llegar a ser m uy com pleja. La com plej idad es m ás m anejable cuando 
se descom pone y se organiza en partes pequeñas y sim ples, los objetos. 
Un program a Java ut iliza clases y objetos. Las clases representan un 
esquem a sim plificado de la casuíst ica de una aplicación inform át ica. Una 
clase es una representación abst racta de un conjunto de objetos que 
com parten los m ism os at r ibutos y com portam iento, es decir, una clase 
describe un t ipo de objetos. Un objeto es una instancia de una clase, t iene 
una ident idad propia y un estado. La ident idad de un objeto se define por su 
ident ificador. El estado de un objeto se define por el valor de sus at r ibutos. 
El com portam iento de un objeto queda determ inado por el com portam iento 
la clase a la que pertenece. Los objetos son unidades indivisibles y disponen 
de m ecanism os de interacción llam ados m étodos. 
Para entender el concepto de objeto es necesario saber que existe una 
relación directa ent re los elem entos que form an parte de una aplicación 
inform át ica y los objetos. Norm alm ente, para ident ificar los elem entos de 
una aplicación, debem os fij arnos en los sustant ivos que ut ilizam os para 
describir los objetos reales del sistem a. Para diseñar una aplicación 
orientada a objetos es necesar io responder las siguientes preguntas: 
 ¿Cuáles son los elem entos tangibles de un sistem a? 
 ¿Cuáles son sus at r ibutos? 
 ¿Cuáles son sus responsabilidades? 
 ¿Cóm o se relacionan los elem entos del sistem a? 
 ¿Qué objeto debe “ saber” ...? 
 ¿Qué objeto debe “hacer” ...? 
 
Clases y objetos 
 2 6
Por ejem plo, si se desea diseñar un program a Java para gest ionar las 
ventas de una t ienda, entonces habría que ident ificar y describir las 
característ icas elem entos com o: cliente, t ipo de cliente, producto, pedido, 
t ipo de ent rega, form a de pago, unidades en existencia de los productos, 
etc. Los procesos de gest ión de la t ienda incluir ían el regist ro de los 
clientes, el regist ro de los productos de la t ienda, el proceso de com pra del 
cliente y la realización de los pedidos, la ent rada y salida de productos del 
alm acén, etc. 
Si en vez de una t ienda se t rata de una aplicación para dibujar figuras 
geom étr icas en dos dim ensiones, entonces sería necesario ident ificar y 
describir las característ icas de las figuras y su posición. En este caso habría 
figuras de t ipo círculo, rectángulo, t r iángulo, etc. Las operaciones a realizar 
con las figuras incluir ían dibujar, borrar, m over o rotar. 
 
Clases 
En su form a m ás sim ple, una clase se define por la palabra reservada 
class seguida del nom bre de la clase. El nom bre de la clase debe em pezar 
por m ayúscula. Si el nom bre es com puesto, entonces cada palabra debe 
em pezar por m ayúscula. Circulo , Rectangulo , Triangulo y 
FiguraGeometrica son nom bres válidos de clases. 
Por ejem plo, la clase Circulo se define con t res at r ibutos: el radio y las 
coordenadas x, y que definen la posición del cent ro del círculo. 
 
/* Esta clase define los atributos de un círculo */ 
 
public class Circulo { 
 
 int x; 
 int y; 
 int radio; 
 
} 
 
 
 
Fundam entos de program ación en Java 
 2 7
Una vez que se ha declarado una clase, se pueden crear objetos a part ir de 
ella. A la creación de un objeto se le denom ina instanciación. Es por esto 
que se dice que un objeto es una instancia de una clase y el térm ino 
instancia y objeto se ut ilizan indist intam ente. 
Para crear objetos, basta con declarar una variable de alguno de los t ipos 
de figuras geom étr icas: 
Circulo circulo1; 
Circulo circulo2; 
 
Para crear el objeto y asignar un espacio de m em oria es necesario realizar 
la instanciación con el operador new. 
circulo1 = new Circulo(); 
circulo2 = new Circulo(); 
 
Después de crear los objetos, circulo1 y circulo2 alm acenan los valores 
predeterm inados de la clase Circulo . A part ir de este m om ento los objetos 
ya pueden ser referenciados por su nom bre. Los nom bres circulo1 y 
circulo2 son las referencias válidas para ut ilizar am bos objetos. 
 
Los e lem entos de una clase 
Una clase descr ibe un t ipo de objetos con característ icas com unes. Es 
necesario definir la inform ación que alm acena el objeto y su 
com portam iento. 
At r ibutos 
La inform ación de un objeto se alm acena en at r ibutos. Los at r ibutos pueden 
ser de t ipos pr im it ivos de Java o de t ipo objeto. Por ejem plo, para el 
catálogo de vehículos de una em presa de alquiler, es necesario conocer la 
m at rícula del coche, su m arca, m odelo, color, la tar ifa del alquiler y su 
disponibilidad. 
 
Clases y objetos 
 2 8public class Vehiculo { 
 
 String matricula; 
 String marca; 
 String modelo; 
 String color; 
 double tarifa; 
 boolean disponible; 
 
} 
 
 
En este ejem plo, los at r ibutos matricula , marca , modelo y color son 
cadenas de caracteres, tarifa es un núm ero real y disponible es un 
valor lógico. 
 
Métodos y const ructores 
Adem ás de definir los at r ibutos de un objeto, es necesario definir los 
m étodos que determ inan su com portam iento. Toda clase debe definir un 
m étodo especial denom inado const ructor para instanciar los objetos de la 
clase. Este m étodo t iene el m ism o nom bre de la clase. Por ejem plo, para la 
clase Vehiculo , el ident ificador del m étodo const ructor es Vehiculo . El 
m étodo const ructor se ejecuta cada vez que se instancia un objeto de la 
clase. Este m étodo se ut iliza para inicializar los at r ibutos del objeto que se 
instancia. 
Para diferenciar ent re los at r ibutos del objeto y los ident ificadores de los 
parám et ros del m étodo const ructor, se ut iliza la palabra this . De esta 
form a, los parám etros del m étodo pueden tener el m ism o nom bre que los 
at r ibutos de la clase. Esto perm ite hacer una asignación com o la que se 
m uest ra a cont inuación, donde this.marca se refiere al at r ibuto del objeto 
y marca al parám et ro del m étodo. 
this.marca = marca; 
 
 
Fundam entos de program ación en Java 
 2 9
En el siguiente ejem plo el m étodo const ructor inicializa los at r ibutos 
matricula , marca , modelo , color y tarifa . 
 
public class Vehiculo { 
 String matricula; 
 String marca; 
 String modelo; 
 String color; 
 double tarifa; 
 boolean disponible; 
 
 // el método constructor de la clase Vehiculo 
 
 public Vehiculo(String matricula, 
 String marca, 
 String modelo, 
 String color, 
 double tarifa) { 
 this,matricula = matricula; 
 this.marca = marca; 
 this.modelo = modelo; 
 this.color = color; 
 this.tarifa = tarifa; 
 this.disponible = false; 
 } 
} 
 
 
La instanciación de un objeto se realiza ejecutando el m étodo const ructor 
de la clase. 
Vehiculo vehiculo1 = new Vehiculo("4050 ABJ", 
 "VW", "GTI", 
 "Blanco", 
 100.0); 
 
En este ejem plo se instancia el objeto vehiculo1 . El m étodo const ructor 
crea el objeto vehiculo1 con la m at rícula “4050 ABJ” , m arca “VW” , 
m odelo “GTI ” , color “Blanco” y tar ifa 100.0 euros. 
Clases y objetos 
 3 0
Vehiculo vehiculo2 = new Vehiculo("2345 JVM", 
 "SEAT", 
 "León", 
 "Negro", 
 80.0); 
 
En este ejem plo se instancia el objeto vehiculo2 . El m étodo const ructor 
crea el objeto vehiculo2 con la m at rícula “2345 JVM” , m arca “SEAT” , 
m odelo “León” , color “Negro” y tar ifa 80.0 euros. 
La instanciación de un objeto consiste en asignar un espacio de m em oria al 
que se hace referencia con el nom bre del objeto. Los ident ificadores de los 
objetos perm iten acceder a los valores alm acenados en cada objeto. En 
estos ejem plos, los objetos vehiculo1 y vehiculo2 alm acenan valores 
diferentes y ocupan espacios de m em oria dist intos. 
Para acceder a los at r ibutos de los objetos de la clase Vehiculo se definen 
los m étodos ‘get ’ y ‘set ’. Los m étodos ‘get ’ se ut ilizan para consultar el 
estado de un objeto y los m étodos ‘set ’ para m odificar su estado. En la 
clase Vehiculo es necesario definir un m étodo ‘get ’ para cada uno de sus 
at r ibutos: getMatricula() , getMarca() , getModelo() , getColor() , 
getTarifa() y getDisponible() . Los m étodos ‘set ’ solo se definen para 
los at r ibutos que pueden ser m odificados después de que se ha creado el 
objeto. En este caso es necesario definir setTarifa(double tarifa) y 
setDisponible(boolean disponible) para m odificar la tar ifa del 
alquiler del vehículo y su disponibilidad, respect ivam ente. 
 
 
 
 
 
 
 
Fundam entos de program ación en Java 
 3 1
 
public class Vehiculo { 
 String matricula; 
 String marca; 
 String modelo; 
 String color; 
 double tarifa; 
 boolean disponible; 
 
 // los métodos ‘get’ y ‘set’ de la clase Vehiculo 
 
 public String getMatricula() { 
 return this.matricula; 
 } 
 public String getMarca() { 
 return this.marca; 
 } 
 public String getModelo() { 
 return this.modelo; 
 } 
 public String getColor() { 
 return this.color; 
 } 
 public double getTarifa() { 
 return this.tarifa; 
 } 
 public boolean getDisponible() { 
 return this.disponible; 
 } 
 public void setTarifa(double tarifa) { 
 this.tarifa = tarifa; 
 } 
 public void setDisponible(boolean disponible) { 
 this.disponible = disponible; 
 } 
} 
 
 
 
 
 
Clases y objetos 
 3 2
Representación de clases y objetos 
Representación de la clase vehículo ut ilizando un diagram a de clases. 
 
Una clase se representa com o un recuadro dividido en t res partes: el 
nom bre de la clase en la parte superior, la declaración de at r ibutos y la 
declaración de m étodos. 
El código Java de una clase se divide en dos partes, la declaración y su 
definición. La declaración com ienza por la palabra class y a cont inuación 
se indica el nom bre de la clase. La definición de una clase queda delim itada 
por la llave de inicio { y la llave de fin } . En el bloque de definición de la 
clase se declaran los at r ibutos de los objetos y los m étodos que definen su 
com portam iento. 
Los objetos se representan com o cajas que indican el nom bre del objeto, la 
clase a la que pertenecen y el estado del objeto. 
 
En este ejem plo, los objetos vehiculo1 y vehiculo2 son instancias de la 
clase Vehiculo . Am bos objetos com parten los m ism os at r ibutos, pero 
alm acenan dist intos valores. Los valores alm acenados en un objeto 
representan su estado. El estado del objeto vehiculo1 alm acena los 
valores: m at r icula “4050 ABJ” , m arca “VW” , m odelo “GTI ” , color “Blanco” , 
tar ifa 100.0 y disponible true . El estado del objeto vehiculo2 alm acena 
Fundam entos de program ación en Java 
 3 3
m atricula “2345 JVM” , m arca “SEAT” , m odelo “León” , color “Negro” , tar ifa 
80.0 y disponible false . 
El estado de un objeto puede cam biar durante la ejecución de un program a 
Java. En este ejem plo, se podría m odificar la tar ifa del alquiler y la 
disponibilidad de los objetos de la clase Vehiculo , el resto de los at r ibutos 
no se pueden m odificar. 
 
Objetos 
Un objeto se com pone de at r ibutos y m étodos. Para acceder a los 
elem entos de un objeto se escribe el nom bre del objeto, un punto y el 
nom bre del elem ento al que se desea acceder. 
Por ejem plo, para los objetos vehiculo1 y vehiculo2 , se podría acceder 
directam ente a sus at r ibutos com o se m uest ra a cont inuación: 
Vehiculo vehiculo1 = new Vehiculo("4050 ABJ", 
 "VW", "GTI", 
 "Blanco", 
 100.0); 
System.out.println("Matricula : " + 
 vehiculo1.matricula); 
System.out.println("Marca y modelo: " + 
 vehiculo1.marca + " " + 
 vehiculo1.modelo); 
System.out.println("Color : " + 
 vehiculo1.color); 
System.out.println("Tarifa : " + 
 vehiculo1.tarifa); 
 
 
 
 
Clases y objetos 
 3 4
La salida por la consola: 
Matrícula : 4050 ABJ 
Marca y modelo: VW GTI 
Color : Blanco 
Tarifa : 100.0 
 
Para acceder a un m étodo, adem ás de su nom bre hay que indicar la listade 
argum entos requeridos por el m étodo. Cuando la declaración del m étodo no 
incluye parám etros no es necesario pasar argum entos. 
El siguiente código Java crea el objeto vehiculo1 y m uest ra su m at rícula y 
su tar ifa. A cont inuación m odifica la tar ifa a 90.0 euros y la m uest ra de 
nuevo. 
Vehiculo vehiculo1 = new Vehiculo("4050 ABJ", 
 "VW", 
 "GTI", 
 "Blanco", 
 100.0); 
 
System.out.println("Matricula : " + 
 vehiculo1.getMatricula()); 
System.out.println("Tarifa : " + 
 vehiculo1.getTarifa()); 
 
vehiculo1.setTarifa(90.0); 
 
System.out.println("Matricula : " + 
 vehiculo1.getMatricula()); 
System.out.println("Tarifa : " + 
 vehiculo1.getTarifa()); 
 
Fundam entos de program ación en Java 
 3 5
La salida por la consola: 
Matrícula : 4050 ABJ 
Tarifa : 100.0 
Matrícula : 4050 ABJ 
Tarifa : 90.0 
 
Para m ost rar la tar ifa del objeto vehiculo1 se puede acceder directam ente 
al at r ibuto tarifa del objeto o se puede ejecutar el m étodo getTarifa() . 
Esto se debe a que los at r ibutos de clase Vehiculo son de acceso público 
porque se han declarado public en vez de private . Los at r ibutos de la 
clase se deben declarar private y para acceder a ellos se debe ut ilizar un 
m étodo ‘get ’. 
 
La referencia null 
Una referencia a un objeto puede no tener asignada una instancia. Esto 
puede ocurr ir porque se ha declarado el objeto pero no se ha instanciado, 
es decir no se ha creado un objeto con el operador new. Existe un valor 
especial, llam ado null que indica que un objeto no se ha instanciado. A 
cont inuación se declara el objeto vehiculo2 , pero no se crea una instancia 
para él. 
Vehiculo vehiculo2; 
Mient ras no se instancie el objeto vehiculo2 su referencia vale null . En 
un program a Java no se deben dejar referencias de objetos sin instanciar. 
Es necesario asegurarse que los objetos existen para evitar referencias 
null . 
El objeto se puede instanciar en la m ism a declaración o m ás adelante, com o 
se m uest ra en el siguiente ejem plo. 
Vehiculo vehiculo2; 
 
// el objeto vehiculo2 se declara pero no se instancia 
// la instancia se crea utilizando el operador new 
Clases y objetos 
 3 6
Vehiculo vehiculo2 = new Vehiculo("2345 JVM", 
 "SEAT", 
 "León", 
 "Negro", 
 80.0); 
 
Para saber si una referencia está instanciada o no, se puede com parar con 
null . 
if (vehiculo2 == null) { 
 System.out.print("vehiculo2 es una referencia null") 
} 
 
if (vehiculo2 != null) { 
 System.out.print("vehiculo2 está instanciado") 
} 
 
Si vehiculo2 es null , la pr im era expresión es true y la segunda false . 
En ese caso, el program a m uest ra por la consola el m ensaje: 
vehiculo2 es una referencia null 
 
Referencias com part idas por var ios objetos 
Un objeto puede tener varias referencias o nom bres. Un alias es ot ro 
nom bre que se referencia al m ism o objeto. Un alias es una referencia m ás 
al m ism o espacio de m em oria del objeto or iginal. Por ejem plo, si se crea el 
objeto vehiculo1 y después se declara ot ro objeto vehiculo3 y a 
cont inuación se asigna la referencia de vehiculo1 a vehiculo3 , entonces 
vehiculo3 es un alias de vehiculo1 . Esto significa que el espacio de 
m em oria de vehiculo1 y vehiculo3 es el m ism o. 
 
 
Fundam entos de program ación en Java 
 3 7
Vehiculo vehiculo1; 
Vehiculo vehiculo3; 
 
vehiculo1 = new Vehiculo("4050 ABJ", 
 "VW", 
 "GTI", 
 "Blanco", 
 100.0); 
 
// el objeto vehiculo1 se instancia, vehiculo3 solo 
// está declarado y es una referencia null 
 
vehiculo3 = vehiculo1; 
 
// al asignar la referencia de vehiculo1 a vehiculo3, 
// éste se convierte en alias de vehiculo1 y referencia 
// el mismo espacio de memoria 
 
System.out.println("Matricula : " + 
 vehiculo1.getMatricula()); 
System.out.println("Tarifa : " + 
 vehiculo1.getTarifa()); 
 
// se muestra la matricula y la tarifa de vehiculo1 
 
System.out.println("Matricula : " + 
 vehiculo3.getMatricula()); 
System.out.println("Tarifa : " + 
 vehiculo3.getTarifa()); 
 
Clases y objetos 
 3 8
// se muestra la matricula y la tarifa de vehiculo3, 
// un alias de vehiculo1, por lo que muestra de nuevo 
// la información correspondiente a vehiculo1 
 
La salida por la consola m uest ra dos veces los valores asignados al objeto 
vehiculo1 . 
Matrícula : 4050 ABJ 
Tarifa : 100.0 
Matrícula : 4050 ABJ 
Tarifa : 100.0 
 
Un alias se puede ut ilizar para m ost rar el estado de un objeto y tam bién 
para m odificar lo. Si se ejecuta setTarifa(90.0) con el objeto vehiculo3 
en realidad se m odifica la tar ifa de vehiculo1 . 
vehiculo3.setTarifa(90.0); 
 
// al modificar la tarifa de vehiculo3 en realidad se 
// modifica la tarifa de vehiculo1 
 
System.out.println("Matricula : " + 
 vehiculo1.getMatricula()); 
System.out.println("Tarifa : " + 
 vehiculo1.getTarifa()); 
 
System.out.println("Matricula : " + 
 vehiculo3.getMatricula()); 
System.out.println("Tarifa : " + 
 vehiculo3.getTarifa()); 
 
 
Fundam entos de program ación en Java 
 3 9
Se m uest ra la m at r ícula y la tar ifa de vehiculo1 y vehiculo3 . 
Matrícula : 4050 ABJ 
Tarifa : 90.0 
Matrícula : 4050 ABJ 
Tarifa : 90.0 
 
El objeto vehiculo3 es un alias de vehiculo1 y no t iene un espacio de 
m em oria propio. Ut iliza el m ism o espacio de m em oria que vehiculo1 . Es 
decir , vehiculo1 com parte con sus alias el m ism o espacio de m em oria. Si 
se m odifica el valor de la tar ifa alm acenada en vehiculo3 , en realidad se 
m odifica el valor de vehiculo1 . 
Esquem át icam ente, un alias se puede ver com o un objeto que apunta al 
espacio de m em oria de ot ro objeto, com o se m uest ra a cont inuación: 
 
 
En este esquem a, el objeto vehiculo3 es un alias de vehiculo1 y am bos 
objetos com parten el m ism o espacio de m em oria. El objeto vehiculo2 , 
t iene su espacio de m em oria propio y no lo com parte con ot ro objeto. 
 
El ciclo de vida de un objeto 
El ciclo de vida de un objeto em pieza por su declaración, su instanciación y 
su uso en un program a Java hasta que finalm ente desaparece. 
Cuando un objeto deja de ser ut ilizado, Java libera la m em oria asignada al 
objeto y la reut iliza. El entorno de ejecución de Java decide cuándo puede 
reut ilizar la m em oria de un objeto que ha dejado de ser út il en un 
program a. El program ador no debe preocuparse de liberar la m em oria 
Clases y objetos 
 4 0
ut ilizada por los objetos. A este proceso se le conoce com o recolección de 
basura. Java cuenta con un sistem a recolector de basura que se encarga de 
liberar los objetos y los espacios de m em oria que ocupan cuando éstos 
dejan de ser ut ilizados en un program a. 
 
At r ibutos 
Los at r ibutos son los elem entos que alm acenan el estado de un objeto. Se 
definen de la m ism a form a que las variables, pero dent ro del bloque de la 
clase. 
Existen dos t ipos de at r ibutos: los at r ibutos de clase y los at r ibutos de 
objeto. Los at r ibutos de clase existen siem pre, son independientes de que 
existan objetos instanciados. Los at r ibutos de clase se declaran ut ilizando 
static . Los at r ibutos de objeto existen durante el ciclo de vida de un 
objeto, es decir, se crean cuando se instancia el objeto y se pueden ut ilizar 
m ient ras el objeto exista. 
Un at r ibuto se declara con la siguiente sintaxis: 
tipo-de-acceso tipo nombre [ = valor-inicial ]; 
 
El t ipo de acceso puede ser private , protected o public . Los at r ibutos 
con acceso private solo se pueden acceder desde la propia clase que los 
define, m ient ras que los at r ibutos public se pueden acceder librem ente 
desde ot ras clases. Los at r ibutos protected se pueden acceder desde la 
propia clase que los define y desde sus subclases. El concepto de subclase 
se explica m ás adelante, en el apartado de extensión de clases. 
El t ipo puede ser un t ipo pr im it ivo de Java o el ident ificador de una clase. El 
nom bre del at r ibuto debe cum plir las norm as de los ident ificadores y se 
recom ienda ut ilizar un sustant ivo que sea representat ivo de la inform ación 
que alm acena. 
La inicialización del objeto es opcional. Se puede declarar un objeto que 
será instanciado después o se puede instanciar al m om ento de su 
declaración. 
 
Fundam entos de program ación en Java 
 4 1
 
public class Vehiculo { 
 String matricula; 
 String marca; 
 String modelo; 
 String color; 
 double tarifa = 0.0; 
 boolean disponible = false; 
} 
 
En el ejem plo anter ior, el at r ibuto tar ifa se inicializa a cero y disponible a 
false . Al resto de at r ibutos no se les asigna un valor inicial. Con esta 
declaración, cuando se instancia un objeto de t ipo Vehiculo se inicializan 
los valores de los at r ibutos tar ifa y disponible. Si no se define el t ipo de 
acceso, entonces el at r ibuto t iene acceso de t ipo public . 
La clase Vehiculo se debe declarar con at r ibutos pr ivados. Se ut iliza el t ipo 
de acceso private para que solo los m étodos ‘get ’ y ‘set ’ de la clase 
puedan acceder a ellos. 
 
public class Vehiculo { 
 private String matricula; 
 private String marca; 
 private String modelo; 
 private String color; 
 private double tarifa = 0.0; 
 private boolean disponible = false; 
} 
 
En esta nueva declaración, todos los at r ibutos t ienen acceso private y solo 
es posible acceder a ellos desde los m étodos de la clase. 
 
Métodos 
Los m étodos son funciones que determ inan el com portam iento de los 
objetos. Un objeto se com porta de una u ot ra form a dependiendo de los 
m étodos de la clase a la que pertenece. Todos los objetos de una m ism a 
clase t ienen los m ism os m étodos y el m ism o com portam iento. 
Clases y objetos 
 4 2
Existen t res t ipos de m étodos: m étodos de consulta, m étodos m odificadores 
y operaciones. Los m étodos de consulta sirven para ext raer inform ación de 
los objetos, los m étodos m odificadores sirven para m odificar el valor de los 
at r ibutos del objeto y las operaciones definen el com portam iento de un 
objeto. 
Los m étodos ‘get ’ son m étodos de consulta, m ient ras que los m étodos ‘set ’ 
son m étodos m odificadores. 
Los m étodos ‘get ’ se ut ilizan para ext raer el valor de un at r ibuto del objeto 
y los m étodos ‘set ’ para m odificarlo. En la clase Vehiculo es necesario 
definir un m étodo ‘get ’ para cada uno de sus at r ibutos: getMatricula() , 
getMarca() , getModelo() , getColor() , getTarifa() y 
getDisponible() . Los m étodos ‘set ’ solo se definen para los at r ibutos que 
pueden ser m odificados después de que se ha creado el objeto. En este 
caso es necesario definir los m étodos setTarifa(double tarifa) y 
setDisponible(boolean disponible) para m odificar la tar ifa del 
alquiler del vehículo y su disponibilidad, respect ivam ente. 
Un m étodo ‘get ’ se declara public y a cont inuación se indica el t ipo que 
devuelve. Es un m étodo de consulta. Por ejem plo, el m étodo getTarifa() 
devuelve double porque el at r ibuto tarifa es de t ipo double . La lista de 
parám etros de un m étodo ‘get ’ queda vacía. En el cuerpo del m étodo se 
ut iliza return para devolver el valor correspondiente al at r ibuto tarifa 
del objeto, al que se hace referencia com o this.tarifa . 
 
 
 
 
public double getTarifa() { 
 return this.tarifa; 
} 
 
 
 
Un m étodo ‘get ’ se 
declara public 
La lista de parám etros de un m étodo 
‘get ’ queda vacía 
El valor de retorno es double , igual 
que el at r ibuto tarifa 
Un m étodo ‘get ’ ut iliza return para devolver el valor del at r ibuto. En este caso el ident ificador 
del at r ibuto es tarifa y se refiere a él com o t his.tarifa 
Fundam entos de program ación en Java 
 4 3
El m étodo getAtributos() es un caso part icular de m étodo ‘get ’ que 
devuelve los valores concatenados de los at r ibutos del objeto. 
 
public class Vehiculo { 
 private String matricula; 
 private String marca; 
 private String modelo; 
 private String color; 
 private double tarifa = 0.0; 
 private boolean disponible = false; 
 
 public String getAtributos() { 
 return "Matrícula: " + this.matricula + 
 " Modelo: " + this.marca + " " + this.modelo + 
 " Color: " + this.color + 
 " Tarifa: " + this.tarifa + 
 " Disponible: " + this.disponible; 
 } 
} 
 
 
Un m étodo ‘set ’ se declara public y devuelve void . La lista de parám et ros 
de un m étodo ‘set ’ incluye el t ipo y el valor a m odificar. Es un m étodo 
m odificador. Por ejem plo, el m étodo setTarifa(double tarifa) debe 
m odificar el valor de la tar ifa del alquiler alm acenado en el objeto. El cuerpo 
de un m étodo ‘set ’ asigna al at r ibuto del objeto el parám etro de la 
declaración. 
 
 
 
 
public void setTarifa(double tarifa) { 
 this.tarifa = tarifa; 
} 
 
 
Un m étodo ‘set ’ se 
declara public 
La lista de parám etros de un m étodo ‘set ’ 
incluye el t ipo y el nom bre del parám etro 
El valor de retorno 
es void 
Un m étodo ‘set ’ m odifica el valor de un at r ibuto del objeto. En este caso el ident ificador del 
at r ibuto es tarifa y se refiere a él com o this.tarifa para asignarle el valor del parám etro 
Clases y objetos 
 4 4
Un m étodo de t ipo operación es aquel que realiza un cálculo o m odifica el 
estado de un objeto. Este t ipo de m étodos pueden incluir una lista de 
parám etros y puede devolver un valor o no. Si el m étodo no devuelve un 
valor, se declara void . 
Por ejem plo, la clase Circulo define dos m étodos de t ipo operación, uno 
para calcular el perím et ro y ot ro para calcular el área. 
 
public class Circulo { 
 public static final double PI = 3.1415926536; 
 private double radio; 
 
 public Circulo(double radio) { 
 this.radio = radio; 
 } 
 
 public double getRadio() { 
 return this.radio; 
 } 
 
 public double calcularPerimetro() { 
 return 2 * PI * this.radio; 
 } 
 
 public double calcularArea() { 
 return PI * this.radio * this.radio; 
 } 
 
} 
 
En este ejem plo, los m étodos calcularPerimetro() y calcularArea() 
devuelven un valor double y ninguno de ellos recibe parám et ros. 
 
Declaración de m étodos 
La declaración de un m étodo indica si el m étodo necesita o no argum entos. 
Los m étodos ‘get ’ no t ienen argum entos y devuelven un valor, los m étodos 
‘set ’ necesitan un argum ento para indicar el valor del at r ibuto que van a 
m odificar. 
Fundam entos de program ación en Java 
 4 5
El m étodo setTarifa(double tarifa) t iene un argum ento. El nom bre 
de este parám etro es tarifa y su t ipo es double . 
Un m étodo se declara con la siguiente sintaxis: 
tipo-de-acceso tipo nombre (lista-parametros); 
 
El t ipo de acceso puede ser private o public . Si el m étodo devuelve un 
valor se debe indicar su t ipo. Este valor puede ser de un t ipo pr im it ivo de 
Java o el ident ificador de una clase. Si el m étodo no devuelve un valor 
entonces el t ipo es void . El nom bre del at r ibuto debe cum plir las norm as

Continuar navegando

Materiales relacionados

320 pag.
Java_-_Jorge_Sanchez

ULT

User badge image

Manuel Rodrigues Monameo

462 pag.
null-5

SIN SIGLA

User badge image

Stiven Fajardo

172 pag.
JavaModulo2-2

Albert Einstein

User badge image

FREDY PICHIHUA