Documentos de Académico
Documentos de Profesional
Documentos de Cultura
JAVA Tema 2
JAVA Tema 2
Ejemplo: archivo fuente llamado Clase3.java que contiene tres clases, una de ellas pública.
Como la clase pública se llama Clase3, el nombre del archivo fuente que contiene estas clases debe
llamarse Clase3.java. De otra forma obtendríamos un error de compilación.
Aunque un mismo archivo de código puede contener varias clases, lo más habitual es escribir cada una
de las clases que componen el proyecto en un archivo fuente independiente:
Página 1 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
El concepto de clase es la base para la programación orientada a objetos y se estudia a fondo más
adelante durante el curso, ahora no debes preocuparte si no tienes claro en qué consiste o porqué
tienes que usarla. No es el momento de explicarlo ahora, solo debes conocer la estructura de un
programa y empezar a escribir programas básicos.
Como ejemplo vamos a escribir el típico programa Hola Mundo
El programa simplemente mostrará en pantalla el mensaje “Hola Mundo!!!” y acabará.
Como se trata de nuestro primer programa vamos a explicar los pasos a seguir para escribirlo y
ejecutarlo.
2. PRIMER PROGRAMA JAVA: HolaMundo con NetBeans
1. Ejecutar NetBeans
Haz doble click en el icono de NetBeans IDE en el escritorio para iniciar el IDE NetBeans.
Aparece la página de inicio de NetBeans:
Página 2 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
Página 3 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
Deja seleccionada la opción Create Main Class. Seleccionando esta opción, NetBeans creará una clase
principal para el proyecto que por defecto se llamará igual que el proyecto. Esta clase será la que
contenga el método main. Si quieres cambiar el nombre de la clase principal, lo puedes modificar.
Finalmente, pulsa en Finish para crear el proyecto.
En la ventana que aparece a continuación vemos arriba a la izquierda el proyecto que acabamos de
crear. El proyecto aparece dentro de la pestaña Projects.
La ventana grande de la derecha es la del editor. Aquí es donde se escribe el código del proyecto.
Vemos el archivo fuente que nos ha creado NetBeans por defecto. Este archivo fuente se llama
HolaMundo.java. Observa que el nombre del archivo coincide con el nombre de la clase pública que
contiene. Observa también que dentro de esta clase se ha creado el método main.
Página 4 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
Lo que haremos ahora será escribir la instrucción que hará que aparezca el mensaje HolaMundo!!! por
pantalla.
Escribe dentro del método main esta instrucción:
System.out.println("Hola Mundo!!!");
tal y como se muestra en la imagen:
3. Ejecutar el proyecto
Para ejecutar el proyecto y ver el resultado de la ejecución del código lo podemos hacer de varias
formas. Algunas de ellas son:
Pulsando la tecla F6.
También lo podemos ejecutar pulsando sobre el icono Run Project
Otra opción es pulsar sobre el nombre del proyecto con el botón derecho del ratón y seleccionando Run.
Otra forma de ejecutarlo es pulsar con el botón derecho del ratón sobre la clase principal y seleccionar
la opción Run File
Página 5 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
Elige cualquiera de ellas y verás el resultado de la ejecución del programa. En este caso se mostrará en la
ventana de salida (Output) el mensaje Hola Mundo!!!
Además NetBeans nos indica que el programa se ha compilado y ejecutado de forma correcta mediante
el mensaje BUILD SUCCESSFUL
Página 6 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
Si situamos el puntero del ratón sobre el círculo rojo sin pulsar en él, nos indica el tipo de error que
estamos cometiendo, en este caso nos dice que se espera un ;
Igual que en el ejemplo anterior, si situamos el puntero sobre la bombilla sin pulsar nos da una idea de
lo que está ocurriendo, en este caso nos dice que system no existe.
Pero este caso es diferente al anterior. Cuando aparece una bombilla como indicador de error podemos
pulsar sobre ella y nos aparece una o varias acciones posibles que podemos realizar para corregirlo. En
este caso NetBeans nos ofrece una posible solución para arreglar este error.
Página 7 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
En este caso la solución que nos propone es importar una clase llamada system.
Importante: Mucho cuidado con hacer caso siempre a las sugerencias de NetBeans!! Es solo una posible
solución que la mayoría de veces es la buena pero en este caso particular esta solución no nos sirve ya
que esa clase no es la que necesitamos para mostrar un mensaje por pantalla. Para arreglarlo
simplemente vuelve a cambiar la s por la S mayúscula.
Con esto ya hemos creado nuestro primer programa Java con NetBeans.
Aunque el programa es muy simple, contiene muchos de los conceptos de la programación orientada a
objetos en Java.
La primera línea del programa:
public class HolaMundo{
declara una clase pública llamada HolaMundo.
Todo lo que se encuentre entre la llave abierta { y la llave cerrada } pertenece a la clase HolaMundo.
Este programa solo contiene la clase HolaMundo. La clase HolaMundo contiene el método main. En un
programa Java, la clase que contiene el método main se le llama Clase principal.
Todo programa independiente escrito en Java empieza a ejecutarse a partir del método
main().
El método main se declara de esta forma:
public static void main(String[] args){
public: indica que el método es público y, por tanto, puede ser llamado desde otras clases. El
método main debe ser público para poder ejecutarse desde el intérprete Java.
static: indica que no es necesario crear ningún objeto del la clase para poder utilizar el método.
También indica que el método es el mismo para todas las instancias que pudieran crearse de la
clase.
void: indica que el método main no devuelve ningún valor.
El método main tiene como parámetro un array de Strings, que contendrá los posibles
argumentos que se le pasen al programa desde la línea de comandos, aunque como es nuestro
caso, no se utilice.
No te preocupes si hay cosas que no has entendido. Todos estos conceptos se estudian en
profundidad a lo largo del curso. Ahora solo debes saber que la cabecera del método main
hay que escribirla siempre de esta forma.
La instrucción que realmente realiza el trabajo es:
System.out.println("Hola Mundo!!!");
Para mostrar información por pantalla se utiliza la clase System, que contiene un atributo out que a
su vez contiene el método println.
println muestra el mensaje y realiza un salto de línea colocándose el cursor al principio de la línea
siguiente.
Existe otro método (print) que muestra el mensaje pero no salta de línea.
Algunos aspectos a tener en cuenta a la hora de escribir código:
Java diferencia entre mayúsculas y minúsculas.
La mayoría de líneas de código terminan con punto y coma salvo excepciones que veremos
durante el curso.
Una instrucción puede ocupar más de una línea.
Vuelvo a repetir, no te preocupes si muchos de los conceptos teóricos que se han comentado no te
han quedado claros. Lo importante ahora es que has conseguido crear tu primer programa Java.
Página 8 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
El conjunto ASCII extendido utiliza 8 bits para cada código, dando como resultado 128 códigos
adicionales, numerados desde el 128 hasta el 255.
ASCII extendido
En el conjunto de caracteres ASCII básico, los primeros 32 valores (Códigos del 0 al 31) son caracteres no
imprimibles y están asignados a códigos de control. Por ejemplo, el código 13 corresponde a la tecla
Página 9 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
ENTER representada en la tabla por cr (CR por carriage return o “retorno de carro” término que
provienen de las máquinas de escribir). También existen caracteres de control usados en
teleprocesamiento como ACK (Acknowledge - aviso de mensaje recibido), BEL (bell - aviso por señal
sonora), ETX (end of text – fin de texto), STX (start of text – comienzo de texto), etc.
Los 96 códigos restantes del código básico corresponden a los caracteres imprimibles y se asignan a los
dígitos del 0 al 9, a las letras mayúsculas y minúsculas del alfabeto anglosajón, operadores aritméticos,
etc.
Los códigos correspondientes al ASCII extendido, del 128 al 255, se asignan a aquellos caracteres que no
pertenecen al alfabeto anglosajón, por ejemplo, las vocales con tilde, la ñ y en general todos los
caracteres especiales que utilizan los distintos lenguajes.
Debido a lo limitado de su tamaño, el código ASCII no es suficiente para representar caracteres de
alfabetos como el Japonés, Chino o árabe. La solución a este problema ha sido crear un código más
grande con el que poder representar cualquier carácter de cualquier idioma: el código Unicode.
El código UNICODE proporciona una única representación numérica para cada símbolo,
independientemente del ordenador, el programa o el lenguaje de programación que se use.
La codificación Unicode se ha transformado en un estándar adoptado por las principales empresas de
hardware y software.
Java utiliza la codificación Unicode para la representación de caracteres. El código Unicode actualmente
representa los caracteres de la mayoría de idiomas escritos en todo el mundo.
Los 127 primeros caracteres de Unicode corresponden al código ASCII básico.
La descripción completa del estándar y las tablas de caracteres están disponibles en la página web oficial
de Unicode https://home.unicode.org/
Java soporta el sistema de codificación UNICODE y esto supone que el conjunto de caracteres del
lenguaje sea muy amplio. ASCII es un subconjunto de UNICODE por lo tanto los caracteres ASCII siguen
siendo válidos en Java.
Por lo tanto, una vez visto lo anterior, los caracteres que pueden aparecer en un programa Java para
formar las constantes, variables, expresiones, etc., son estos:
Las letras mayúsculas y minúsculas de la A(a) a la Z(z) de los alfabetos internacionales. La ñ y Ñ son
válidas así como las vocales acentuadas.
Dígitos (0, 1, 2, ..., 9)
Los caracteres ' _ ' '$' y cualquier otro carácter considerado como letra en el sistema de codificación
Unicode.
Los operadores y caracteres especiales siguientes:
+ - * / = % & # ! ? ^ “ ‘ ~ \ | < > ( ) [ ] { } :: ; . , ... @
Separadores: espacio, tabulador y salto de línea.
Los separadores como el tabulador y el salto de línea ayudan a que el programa sea más legible por
las personas.
Por ejemplo, podemos escribir el método main de la forma:
public static void main(String [] args){System.out.println("Hola Mundo!!!");}
El programa se ejecuta de forma correcta pero queda mucho más claro si al escribirlo introducimos
tabuladores y saltos de línea:
public static void main(String [] args){
System.out.println("Hola Mundo!!!");
}
Página 10 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
Secuencias de escape: Una secuencia de escape está formada por una barra inversa seguida de una
letra, un carácter o de una combinación de dígitos.
Una secuencia de escape siempre representa un solo carácter aunque se escriba con dos o más
caracteres.
Se utilizan para realizar acciones como salto de línea o para usar caracteres no imprimibles. Algunas
secuencias de escape definidas en Java son:
Secuencia
Descripción
de escape
\n Salto de línea. Sitúa el cursor al principio de la línea siguiente
\b Retroceso. Mueve el cursor un carácter atrás en la línea actual.
Tabulador horizontal. Mueve el cursor hacia adelante una distancia determinada
\t
para el tabulador.
\r Mueve el cursor al principio de la línea actual.
\" Comillas. Permite mostrar por pantalla el carácter comillas dobles
\' Comilla simple. Permite mostrar por pantalla el carácter comilla simple
\\ Barra inversa.
\udddd Carácter Unicode. d representa un dígito hexadecimal del carácter Unicode
Ejemplo 2: Uso de la secuencia de escape \r. Provoca que el cursor se sitúe al principio de la línea
siguiente.
System.out.println("Lunes\rMartes, Miércoles");
Ejemplo 3: Uso de la secuencia de escape \b. Provoca que el cursor retroceda un carácter.
System.out.println("Lunes\bMartes");
Ejemplo 4: Uso de la secuencia de escape \t. Provoca que el cursor avance una distancia
determinada.
System.out.println("Lunes\tMartes\tMiércoles");
Ejemplo 5: Uso de las secuencias de escape \" y \'. Permite mostrar estos caracteres por pantalla.
System.out.println("\"Lunes\",\"Martes\",\'Miércoles\'");
Página 11 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
4. IDENTIFICADORES
Los identificadores son los nombres que el programador asigna a variables, constantes, clases, métodos,
paquetes, etc. de un programa.
Características de un identificador Java:
Están formados por letras y dígitos.
No pueden empezar por un dígito.
No pueden contener ninguno de los operadores y caracteres especiales vistos en el punto anterior.
No puede ser una palabra reservada del lenguaje. Las palabras reservadas de Java aparecen en el
punto siguiente. Las palabras true, false y null aunque no son palabras reservadas tampoco pueden
usarse como identificadores.
Ejemplo de identificadores válidos:
Edad nombre _Precio Año año_nacimiento
AÑO0 $cantidad _$cantidad cantidad_10_1 PrecioVenta
num4 bl4nc0 miércoles PrIvAdo máximo
En los ejemplos se puede comprobar que tanto los caracteres ñ y Ñ como las vocales acentuadas
son caracteres válidos para crear identificadores en Java.
Java diferencia mayúsculas y minúsculas, por lo tanto, nombre y Nombre son identificadores
distintos.
Ejemplo de identificadores NO válidos:
4num -> Identificador no válido porque comienza por un dígito
z# -> No válido porque contiene el carácter especial #
"Edad" -> No válido porque no puede contener comillas
Tom's -> No válido porque contiene el carácter '
año-nacimiento -> no válido porque contiene el carácter -
public -> no válido porque es una palabra reservada del lenguaje
__precio@final -> no válido porque contiene el carácter @
5. PALABRAS RESERVADAS
Las palabras reservadas son identificadores predefinidos que tienen un significado para el
compilador y por tanto no pueden usarse como identificadores creados por el usuario en los
programas.
Las palabras reservadas en Java son las siguientes:
Página 12 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
6. COMENTARIOS
Un comentario es un texto que se escribe dentro de un programa con el fin de facilitar la comprensión
del mismo. Se utilizan para explicar el código fuente.
En Java se pueden utilizar tres tipos de comentarios:
Comentario tradicional
Son los mismos que se usan en C/C++
Las características de los comentarios tradicionales Java son las siguientes:
Empieza con los caracteres /* y acaba con */.
Pueden ocupar más de una línea y pueden aparecer en cualquier lugar donde pueda aparecer un
espacio en blanco.
No pueden anidarse.
Ejemplos:
/* Programa Ecuación segundo grado
Calcula las soluciones de una ecuación de segundo grado */
/* Lectura de datos por teclado */
/*
Salida de datos por pantalla
*/
Ejemplo de comentario no válido:
/* linea comentario 1
/* linea comentario 2
linea comemtario 3
*/
linea comentario 4
*/
Comentario no válido. Los comentarios no se pueden anidar.
Comentarios de una sola línea.
Las características de los comentarios de una línea son las siguientes:
Comienzan con una doble barra ( // )
Pueden escribirse al principio de la línea o a continuación de una instrucción.
No tienen carácter de terminación.
Ejemplos:
// Programa Ecuación segundo grado
// Calcula las soluciones de una ecuación de segundo grado
//Salida de datos por pantalla
double p; // precio del producto
Comentarios de documentación.
Son comentarios especiales para generar documentación del programa.
También se conocen como comentarios Javadoc.
Comienza con /** y termina con */
Ejemplo:
/**
*
* @author Enrique García
* @version 2.0
*
*/
Página 13 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
7. TIPOS DE DATOS
REPRESENTACIÓN INTERNA DE LOS DATOS
En el mundo real los datos que manejamos se representan mediante letras, números, símbolos,
imágenes, sonidos, etc.
Esto se conoce como representación externa de los datos.
Pero si queremos introducirlos en un ordenador, todos estos elementos se deben transformar ó
codificar.
Un ordenador está compuesto fundamentalmente por circuitos electrónicos digitales. Los datos circulan
por estos circuitos en forma de impulsos eléctricos.
De forma muy simplificada podemos decir que por un circuito pasa o no pasa corriente y esto lo
podemos representar con dos dígitos: 0 y 1.
Todos los datos e información que contiene un ordenador, están representados de forma interna
mediante secuencias de ceros y unos.
Un sistema de representación que utiliza solamente dos símbolos 0 - 1 se llama sistema
binario.
Por tanto, los datos tal y como los expresamos de forma natural se deben codificar de forma interna en
binario para que puedan ser tratados por el ordenador.
El sistema binario utiliza solamente dos dígitos 0 y 1 llamados bits.
La palabra bit procede de la unión de las palabras binary digit.
Un bit es la unidad mínima de representación de información.
Utilizando 1 bit podremos solamente representar dos valores posibles: 0, 1.
Utilizando 2 bits podemos representar 4 valores: 00, 01, 10, 11.
Utilizando 3 bits podemos representar 8 valores:
000, 001, 010, 011, 100, 101, 110, 111.
Utilizando 4 bits podemos representar 16 valores:
0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111,
1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111
En general, utilizando N bits podremos representar 2N valores.
Ocho bits forman un byte.
El byte es la unidad básica de medida de la información.
Un byte es la cantidad más pequeña de información que el ordenador puede manejar.
Con un byte se pueden representar 28 = 256 caracteres.
En el interior del ordenador los datos se transmiten y almacenan en grupos de bytes llamados palabras.
La longitud de palabra depende de cada tipo de ordenador: 8, 16, 32, 64.
La mayoría de ordenadores de propósito general utilizan palabras de 32 o 64 bits.
Página 14 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
void - - - - Void
Aunque void no es un tipo de dato básico en java, se utiliza para indicar que algo no tiene tipo. Por
ejemplo, cuando se escribe un método se debe indicar el tipo del valor que devuelve. Si un método no
devuelve nada se utiliza el tipo void.
Java también proporciona el tipo String para almacenar cadenas de caracteres.
El tipo String no es un tipo primitivo. Los String en java son objetos. Aunque los String se explicarán a
fondo más adelante, su uso es muy común en cualquier programa y por eso es importante que se
conozcan desde el principio.
Cuando necesitamos procesar enteros cuyo valor está fuera del rango de los tipos int o long, Java
proporciona el tipo BigInteger.
El tipo BigInteger no es un tipo primitivo. Los números de tipo BigInteger son objetos.
Veremos algún ejemplo de uso durante el curso. En este enlace puedes ver documentación y ejemplos.
https://codegym.cc/es/groups/posts/es.648.clase-biginteger-de-java
Java también proporciona el tipo BigDecimal para trabajar con números reales con mayor precisión que
la que ofrecen los tipos float y double.
Página 15 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
Los tipos de datos lógicos son también conocidos como booleanos en honor del matemático inglés
George Bool, que desarrolló la teoría conocida como álgebra de bool que fue la base para la
representación de los circuitos lógicos.
Página 16 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
8. LITERALES
Un literal en Java es un valor de tipo entero, real, lógico, carácter, cadena de caracteres o un valor nulo
(null), que puede aparecer dentro de un programa.
Por ejemplo: 150, 12.4, “ANA”, null, ‘t’.
Los literales suelen aparecer en la asignación de valores a las variables o formando parte de expresiones
aritméticas y lógicas. Por ejemplo:
x = 25;
precio = 120.99;
mes = "enero";
descuento = precio – (precio * 5 / 100);
if(a > 3 && a < 5)
Cuando se utilizan literales, es muy importante tener en cuenta que Java es un lenguaje fuertemente
tipado, esto quiere decir que realiza un control estricto de los tipos de datos que pueden contener las
variables.
Por ejemplo, si una variable se ha declarado como int no podremos asignarle un valor de tipo double.
int n = 2.5; //Esta asignación no es correcta
Esta asignación provocaría un error ya que estamos asignando un valor no entero (2.5) a una variable n
declarada como int. Por lo tanto es muy importante saber de qué tipo es un literal para trabajar de
forma correcta con ellos y no obtener resultados inesperados.
Los literales en Java pueden ser:
Literales de tipo entero
o Literales en base decimal
o Literales en binario
o Literales en base octal
o Literales en base hexadecimal
Literales de tipo real
Literales de tipo carácter
Literales de cadenas de caracteres
LITERALES DE TIPO ENTERO
El tipo del literal entero es int a no ser que su valor absoluto sea mayor que el de un int o se especifique
el sufijo l (ele minúscula) ó L en cuyo caso será de tipo long.
El signo + al principio es opcional y el signo – será obligatorio si el número es negativo.
Los literales de tipo entero pueden expresarse de cuatro formas distintas:
base decimal (base 10), binario (base 2), octal (base 8) y hexadecimal (base 16).
Literales de tipo entero en Base decimal
Están formados por 1 o más dígitos del 0 al 9.
El primer dígito debe ser distinto de cero.
Por ejemplo:
982 literal entero de tipo int
-25 literal entero de tipo int
+1200 literal entero de tipo int
1234 literal entero de tipo int
1234L literal entero de tipo long. Lo indica la L final
123400000000 literal entero de tipo long porque supera el rango de los int
Página 17 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
También pueden representarse utilizando la notación científica. En este caso se utiliza una E (mayúscula
o minúscula) seguida del exponente (positivo o negativo). El exponente está formado por dígitos del 0 al
9.
Por ejemplo, el número 14*10-3 en notación científica se escribe 14E-3
Más ejemplos:
2.15E2 -> 2.15 * 102
.0007E4 -> 0.0007 * 104
-50.445e-10 -> -50.445 * 10-10
El tipo de estos literales es siempre double, a no ser que se añada el sufijo F ó f para indicar que es float.
Por ejemplo:
2.15 literal de tipo double
2.15F literal de tipo float
.23e5 literal de tipo double
+74.336E-2F literal de tipo float
Página 18 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
También de forma opcional se pueden utilizar los sufijos d ó D para indicar que el literal es de tipo
double:
12.002d literal de tipo double
Los literales de tipo entero escritos en cualquier base y los literales de tipo real, pueden
contener el carácter _ para facilitar la lectura del número.
Por ejemplo:
2_014_120 0xCAFE_BABE
1234_5678_9019_3456L 0x7fff_ffff_ffff_ffffL
999_99_9999L 0b0010_0101
3.14_15F 0b11010010_01101001_10010100_10010010
0xFF_EC_DE_5E
Este carácter solo puede aparecer entre dígitos. No puede aparecer en los siguientes lugares:
Al principio o final de un número.
Junto a un punto decimal en un número de tipo real.
Antes de los sufijos F ó L.
Entre el 0X hexadecimal o el 0B binario
Ejemplos de literales válidos y no válidos que contienen el carácter _
3_.1415F No Válido
3._1415F No Válido
999_99_9999_L No Válido
_52 No Válido
5_2 Válido
52_ No Válido
5_______2 Válido
0_x52 No Válido
0x_52 No Válido
0x5_2 Válido
0x52_ No Válido
0_52 Válido
05_2 Válido
052_ No Válido
LITERALES DE TIPO CARÁCTER
Contienen un solo carácter encerrado entre comillas simples.
Son de tipo char.
Las secuencias de escape se consideran literales de tipo carácter.
Por ejemplo:
'a'
'4'
'\n'
'\u0061'
LITERALES DE CADENAS DE CARACTERES
Están formados por 0 ó más caracteres encerrados entre comillas dobles.
Pueden incluir secuencias de escape.
Por ejemplo:
"Esto es una cadena de caracteres"
"Pulsa \"C\" para continuar"
"" -> cadena vacía
"T" -> cadena de un solo carácter, es diferente a 't' que es de tipo char.
Las cadenas de caracteres en Java son objetos de tipo String. Se estudian a fondo más adelante.
Página 19 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
9. VARIABLES
Los datos que maneja un programa se almacenan en la memoria del ordenador. A cada dato se le asigna
una posición o dirección de memoria. Esta dirección será la que se use para acceder al dato.
Las direcciones de memoria se expresan mediante un número binario o hexadecimal.
La siguiente figura muestra de una forma muy simplificada como se guardan los datos en memoria.
MEMORIA DIRECCIONES DE MEMORIA
1111111100000001
20 1111111100000010
1111111100000011
1111111100000100
1111111100000101
“ALICANTE” 1111111100000110
1111111100000111
Página 20 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
Página 21 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
11. OPERADORES
OPERADORES JAVA
ARITMÉTICOS RELACIONALES LÓGICOS UNITARIOS A NIVEL DE BITS ASIGNACIÓN CONDICIONAL
+ < && + & = ? :
- <= || - | +=
* > ! ++ ^ -=
/ >= -- << *=
% != ~ >> /=
== ! >>> %=
<<=
>>=
>>>=
&=
|=
^=
OPERADORES ARITMÉTICOS
+ Operador suma. Los operandos pueden ser enteros o reales
- Operador Resta. Los operandos pueden ser enteros o reales
* Operador Multiplicación. Los operandos pueden ser enteros o reales
/ Operador División. Los operandos pueden ser enteros o reales.
-Si ambos operandos son enteros el resultado de la división es entero (sin decimales).
-En cualquier otro caso el resultado de la división es real ( se obtienen decimales).
% Operador Resto de la división. Los números pueden ser enteros o reales.
Ejemplo:
Supongamos que tenemos las siguientes variables:
int a = 10, b = 3;
double v1 = 12.5, v2 = 2.0;
char c1='P', c2='T';
En la tabla se muestran distintas operaciones aritméticas que podemos hacer con ellas:
Operación Valor Operación Valor Operación Valor
a+b 13 v1+v2 14.5 c1 80
a-b 7 v1-v2 10.5 c1 + c2 164
a*b 30 v1*v2 25.0 c1 + c2 + 5 169
a/b 3 v1/v2 6.25 c1 + c2 + '5' 217
a%b 1 v1%v2 0.5
En las operaciones aritméticas donde intervienen variables de tipo char, el valor usado para
realizar el cálculo es el valor numérico del carácter correspondiente según la tabla ASCII ( o
UNICODE en su caso).
Por eso, según vemos en el ejemplo: c1 + c2 = 164.
c1 = ‘P’ y el valor numérico de ‘P’ según la tabla ASCII es 80.
c2 = ‘T’ y el valor numérico de ‘T’ según la tabla ASCII es 84.
Por lo tanto cuando realizamos c1 + c2 el resultado es 80 + 84 = 164.
Como ya se ha comentado antes, Java es un lenguaje fuertemente tipado. Por eso es importante saber
de qué tipo es el resultado de una operación aritmética si intervienen datos de tipos distintos.
Página 22 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
En aquellas operaciones aritméticas en las que aparecen operandos de distinto tipo, java convierte los
valores al tipo de dato de mayor precisión de todos los datos que intervienen y este será el tipo del
resultado. Esta conversión se realiza de forma temporal, solamente para realizar la operación. Los tipos
de datos originales permanecen igual después de la operación. Esto es muy importante tenerlo en
cuenta para poder asignar el resultado de la operación a una variable del mismo tipo.
Los tipos short, byte y char se convierten automáticamente a int.
Por ejemplo, dadas las siguientes variables:
int i = 7;
double f = 5.5;
char c = 'w';
byte b = 1;
long ln = 10;
En la tabla se puede ver el resultado que se obtiene al realizar operaciones esntre ellas y de qué tipo es
este resultado (double, int, char, etc)
Operación Valor Tipo del resultado
i + f 12.5 double
i + c 126 int
i + c – ‘0’ 78 int
(i + c) – (2 * f / 5) 123.8 double
b + c 120 int
ln + i 17 long
2.5 + ln 10.5 double
OPERADORES RELACIONALES
Los operadores relacionales comparan dos operandos y dan como resultado de la comparación
verdadero ó falso.
Los operadores relacionales son:
< Menor que
> Mayor que
<= Menor o igual
>= Mayor o igual
!= Distinto
== Igual
Los operandos tienen que ser de tipo primitivo.
Por ejemplo:
int a = 7, b = 9, c = 7;
Operación Resultado
a == b false
a >= c true
b < c false
a != c false
Página 23 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
OPERADORES LÓGICOS
Los operadores lógicos se utilizan con operandos de tipo boolean. Se utilizan para construir expresiones
lógicas, cuyo resultado es de tipo true o false.
Los operadores lógicos son:
&& Operador AND.
El resultado es verdadero si los dos operandos son verdaderos.
El resultado es falso en caso contrario.
Si el primer operando es falso no se evalúa el segundo, ya que el resultado será falso.
|| Operador OR.
El resultado es falso si los dos operandos son falsos.
Si uno es verdadero el resultado es verdadero.
Si el primer operando es verdadero no se evalúa el segundo.
! Operador NOT.
Se aplica sobre un solo operando.
Cambia el valor del operando de verdadero a falso y viceversa.
Las definiciones de las operaciones OR, AND y NOT se recogen en unas tablas conocidas como tablas de
verdad.
A B A OR B A B A AND B A NOT A
F F F F F F F V
F V V F V F V F
V F V V F F
V V V V V V
Como ejemplo, en la siguiente tabla vemos una serie de expresiones lógicas y su valor:
int i = 7;
float f = 5.5F;
char c = ‘w’;
Expresión Resultado
i >= 6 && c != ‘w’ false
i + f <= 10 false
Las expresiones lógicas se evalúan sólo hasta que se ha establecido el valor cierto o falso del conjunto.
Cuando, por ejemplo, una expresión va a ser seguro falsa por el valor que ha tomado uno de sus
operandos, java ya no evalúa el resto de expresión.
Página 24 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
OPERADORES UNITARIOS.
– + Operadores signo negativo y positivo
++ -- Operadores incremento y decremento
~ Operador complemento a 1
! Operador NOT. Negación
Estos operadores afectan a un solo operando.
El operador ++ (incremento) incrementa en 1 el valor de la variable.
Ejemplo:
int i = 1;
i++; // Esta instrucción incrementa en 1 la variable i.
// Es lo mismo que hacer i = i + 1; i toma el valor 2
Los operadores incremento y decremento pueden utilizarse como prefijo o sufijo, es decir, pueden
aparecer antes o después de la variable.
Por ejemplo:
i = 5;
i++; // i vale ahora 6
++i; // i vale ahora 7
Cuando estos operadores intervienen en una expresión, si preceden al operando (++i), el valor se
modificará antes de que se evalúe la expresión a la que pertenece.
En cambio, si el operador sigue al operando (i++), entonces el valor del operando se modificará después
de evaluar la expresión a la que pertenece.
Por ejemplo:
int x, i = 3;
x = i++;
En esta asignación a x se le asigna el valor de i (3) y a continuación i se incrementa, por lo tanto, después
de ejecutarla:
x contiene 3, i contiene 4.
Si las instrucciones son:
int x, i = 3;
x = ++i;
En esta instrucción primero se incrementa el valor de i y el resultado se asigna a x. Por lo tanto, después
de ejecutarla:
x contiene 4, i contiene 4.
Otro ejemplo:
int i = 1;
System.out.println(i);
System.out.println (++i);
System.out.println (i);
Página 25 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
El operador complemento a 1 ~ cambia de valor todos los bits del operando (cambia unos por ceros y
ceros por unos). Solo puede usarse con datos de tipo entero. El carácter ~ es el ASCII 126.
Por ejemplo:
int a = 1, b;
b = ~a;
Página 26 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
Ejemplos de asignaciones:
x += 3 -> es lo mismo que escribir x = x + 3;
y *= 3 -> es lo mismo que escribir y = y * 3;
En general:
variable op= expresión equivale a: variable = variable op expresión
En la siguiente tabla vemos más ejemplos de asignaciones:
int i = 5, j = 7, x = 2, y = 2, z = 2;
float f = 5.5F, g = -3.25F;
En general, en una asignación del tipo A = B, si el rango de valores que puede almacenar A es mayor que
el rango de valores que puede almacenar B (puedes consultar el rango de cada tipo en la tabla que
aparece en el punto 7 del tema) entonces la asignación se podrá realizar. Por ejemplo, si A es de tipo
double y B de tipo float la asignación A = B se puede hacer pero no se podrá realizar en el caso contrario
(siendo A float y B double).
Por último, indicar que en Java están permitidas las asignaciones múltiples.
Ejemplo: a = b = c = 3; equivale a a = 3; b = 3; c = 3;
La asignación del valor a las variables en una asignación múltiple se realiza de derecha a izquierda. En el
ejemplo, primero se asigna el valor 3 a c, a continuación el valor de c se asigna a b y finalmente el valor
de b se le asigna a la variable a.
Página 27 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
OPERADOR CONDICIONAL
Se puede utilizar en sustitución de la sentencia de control if-else, pero hace las instrucciones menos
claras.
Los forman los caracteres ? y :
Se utiliza de la forma siguiente:
expresión1 ? expresión2 : expresión3
Si expresión1 es cierta entonces se evalúa expresión2 y éste será el valor de la expresión condicional. Si
expresión1 es falsa, se evalúa expresión3 y éste será el valor de la expresión condicional.
Por ejemplo:
int i = 10, j;
j = (i < 0) ? 0 : 100;
Esta expresión asigna a j el valor 100. Su significado es: si el valor de i es menor que 0 asigna a j el valor
0, sino asigna a j el valor 100. Como i vale 10, a j se le asigna 100.
La instrucción anterior es equivalente a escribir:
if(i < 0)
j = 0;
else
j = 100;
Más Ejemplos:
int a = 1, b = 2, c = 3;
c += (a > 0 && a <= 10) ? ++a : a / b; // c toma el valor 5
int a = 50, b = 10, c = 20;
c + =(a > 0 && a <= 10) ? ++a : a / b; // c toma el valor 25
Página 28 de 29
Java Tema 2. Conceptos básicos Módulo: Programación
CFGS. Desarrollo de Aplicaciones Web
Operador Asociatividad
() [] . Izquierda a derecha
++ -- ~ ! Derecha a izquierda
new Derecha a izquierda
* / % Izquierda a derecha
+ - Izquierda a derecha
>> >>> << Izquierda a derecha
> >= < <= Izquierda a derecha
== != Izquierda a derecha
& Izquierda a derecha
^ Izquierda a derecha
| Izquierda a derecha
&& Izquierda a derecha
|| Izquierda a derecha
?: Derecha a izquierda
= += -= *= ... Derecha a izquierda
Página 29 de 29