Capítulo I:Capítulo I:Fundamentos de Fundamentos de
programación en javaprogramación en java
Fundamentos del lenguajeFundamentos del lenguaje
Para empezar a estudiar este lenguaje, Para empezar a estudiar este lenguaje,
primeramente se necesita conocer qué primeramente se necesita conocer qué
datos es capaz de manejar, qué datos es capaz de manejar, qué
posibilidades de manejo de esos datos nos posibilidades de manejo de esos datos nos
proporciona, que herramientas para proporciona, que herramientas para
controlar la ejecución nos permite y qué controlar la ejecución nos permite y qué
interacción con el usuario nos ofrece.interacción con el usuario nos ofrece.
Tipos básicos de datosTipos básicos de datos
Los bloques en los que se encuentran Los bloques en los que se encuentran divididos los tipos básicos en java son:divididos los tipos básicos en java son: Enteros: Son cuatro tipos que nos permiten Enteros: Son cuatro tipos que nos permiten
representar números enteros.representar números enteros. Coma flotante: Son dos tipos usados para Coma flotante: Son dos tipos usados para
representar datos reales.representar datos reales. Caracteres: Un tipo que nos permite representar Caracteres: Un tipo que nos permite representar
caracteres de cualquier idioma mundial.caracteres de cualquier idioma mundial. Lógicos: Un tipo para representar valores Lógicos: Un tipo para representar valores
lógicos.lógicos.
EnterosEnteros
NombreNombre TamañoTamaño RangoRango
longlong 64 bits64 bits -9.233.372.036.854.775.808L a -9.233.372.036.854.775.808L a 9.233.372.036.854.775.808 9.233.372.036.854.775.808
intint 32 bits32 bits -2.147.483.648 a -2.147.483.648 a 2.147.483.6472.147.483.647
shortshort 16 bits16 bits -32.768 a 32767-32.768 a 32767
bytebyte 8 bits8 bits -128 a 127-128 a 127
Coma flotanteComa flotante
NombreNombre TamañoTamaño RangoRango
floatfloat 32 bits32 bits ±3.40282347E+38F±3.40282347E+38F
doubledouble 64 bits64 bits ±1.79769313486231570E+308±1.79769313486231570E+308
CaracteresCaracteres
SecuenciaSecuencia DescripciónDescripción
\b\b RetrocesoRetroceso
\t\t TabuladorTabulador
\r\r Retorno de carroRetorno de carro
\n\n Nueva líneaNueva línea
\’\’ Comilla simpleComilla simple
\”\” Comilla dobleComilla doble
\\\\ Barra invertidaBarra invertida
LógicosLógicos
Para representar valores lógicos Java Para representar valores lógicos Java
utiliza, el tipo boolean, el cual permite tomar utiliza, el tipo boolean, el cual permite tomar
dos valores: verdadero y falso.dos valores: verdadero y falso.
EnvoltoriosEnvoltorios
TipoTipo EnvoltorioEnvoltorio
intint IntegerInteger
longlong LongLong
floatfloat FloatFloat
doubledouble DoubleDouble
shortshort ShortShort
bytebyte ByteByte
charchar CharacterCharacter
booleanboolean BooleanBoolean
voidvoid VoidVoid
Literales y constantesLiterales y constantesTipoTipo LiteralLiteral ComentariosComentarios
intint 123123 Todos los enteros por defecto son intTodos los enteros por defecto son int
longlong 123L123L Es necesario indicar una L Es necesario indicar una L
charchar ‘‘a’a’ Comillas simplesComillas simples
floatfloat 5.9F5.9F Es posible usar también la notación Es posible usar también la notación exponencial 1.8E9exponencial 1.8E9
doubledouble 7.97.9 Todos los reales por defecto son Todos los reales por defecto son double. Se pueden finalizar con una double. Se pueden finalizar con una
DD
booleanboolean truetrue true y false son los únicos valores true y false son los únicos valores válidosválidos
StringString ““hola”hola” Comillas doblesComillas dobles
VariablesVariables
La forma más sencilla de almacenar La forma más sencilla de almacenar
información es utilizar variables. Antes de información es utilizar variables. Antes de
usar cualquier variable, independientemente usar cualquier variable, independientemente
de su tipo, es necesario declararla.de su tipo, es necesario declararla.
Declaración de variablesDeclaración de variablesLa declaración de estas puede realizarse en La declaración de estas puede realizarse en
cualquier parte de una clase o método. La cualquier parte de una clase o método. La
forma de declarar indica el nombre y el tipo forma de declarar indica el nombre y el tipo
de la misma , pero puede ir acompañada de de la misma , pero puede ir acompañada de
más información, como el valor inicial o la más información, como el valor inicial o la
Declaración de más variables del mismo Declaración de más variables del mismo
tipo.tipo.
tipo identificador[=valor] [, identificador[=valor]…]; tipo identificador[=valor] [, identificador[=valor]…];
int i=0, j;int i=0, j;
double d = Math.sqrt(i*5); double d = Math.sqrt(i*5);
Ámbito y tiempo de vida de Ámbito y tiempo de vida de variablesvariables
El ámbito se produce dentro de un bloque El ámbito se produce dentro de un bloque
de código.de código.
El tiempo de vida es el tiempo que El tiempo de vida es el tiempo que
transcurre entre la declaración de la variable transcurre entre la declaración de la variable
y su destrucción.y su destrucción.{{
int a;int a;
a=9;a=9;
{{
int b=a+1;int b=a+1;
}}
a=10;a=10;
}}
Uso básico de cadenas deUso básico de cadenas de caracterescaracteres
Es posible definir literales de tipo cadena Es posible definir literales de tipo cadena
entrecomillando texto con comillas doblesentrecomillando texto con comillas dobles, ,
imprimir con System.out.println() estas imprimir con System.out.println() estas
cadenas e incluso concatenarlas usando el cadenas e incluso concatenarlas usando el
operador +.operador +.
System.out.println(“Hola”+” mundo”);System.out.println(“Hola”+” mundo”);
también se puede hacer de ésta manera:también se puede hacer de ésta manera:
String a, b;String a, b;
a=“Hola”;a=“Hola”;
b=“ mundo”;b=“ mundo”;
String c=a+b;String c=a+b;
System.out.println(c);System.out.println(c);
ArraysArrays
Es un conjunto de datos homogéneos que Es un conjunto de datos homogéneos que
ocupan posiciones de memoria contiguas y ocupan posiciones de memoria contiguas y
que es posible referenciar a través de un que es posible referenciar a través de un
nombre único.nombre único.
Declaración de arrays de una Declaración de arrays de una dimensióndimensión
La declaración de la referencia del array se realiza La declaración de la referencia del array se realiza
especificando el tipo del array seguido de [], después viene especificando el tipo del array seguido de [], después viene
el nombre de la variable.el nombre de la variable.
int[] a;int[] a;
Una vez que se tiene la referencia, se tiene que reservar la Una vez que se tiene la referencia, se tiene que reservar la
memoria para almacenar el array, para ello se utiliza el memoria para almacenar el array, para ello se utiliza el
operador new. New se utiliza cuando se quiere crear un operador new. New se utiliza cuando se quiere crear un
nuevo elemento de forma dinámica dentro de los nuevo elemento de forma dinámica dentro de los
programas.programas.
a=new int [10];a=new int [10];
Acceso a un array de una Acceso a un array de una dimensióndimensión
Se accede mediante la referencia y un Se accede mediante la referencia y un
índice único, el índice del array es un índice único, el índice del array es un
número entero comprendido entre 0 y la número entero comprendido entre 0 y la
dimensión -1.dimensión -1.
int a[]={1,2,3};int a[]={1,2,3};
System.out.println(b[1]);System.out.println(b[1]);
Se imprimirá 2Se imprimirá 2
Declaración de un array Declaración de un array multidimensionalmultidimensional
Un array bidimensional, es un array de Un array bidimensional, es un array de
arrays y se lo define de la siguiente manera:arrays y se lo define de la siguiente manera:
int [][] tabla=new int [2][3];int [][] tabla=new int [2][3];
Pero solo es obligatorio indicar el número de Pero solo es obligatorio indicar el número de
filas, después se puede reservar memoria filas, después se puede reservar memoria
para el resto de forma independiente.para el resto de forma independiente.int [][] tabla=new int [2][];int [][] tabla=new int [2][];
tabla [0]=new int [3];tabla [0]=new int [3];
tabla [1]=new int [3];tabla [1]=new int [3];
Acceso a un array Acceso a un array multidimensionalmultidimensional
Es de la misma manera que en los arrays Es de la misma manera que en los arrays
de una dimensión, solo se le aumenta un de una dimensión, solo se le aumenta un
nuevo grupo de corchetes con el índice de nuevo grupo de corchetes con el índice de
la siguiente dimensión.la siguiente dimensión.
System.out.println(tabla[1][1]);System.out.println(tabla[1][1]);
OperadoresOperadores
Dispondremos de operadores para realizar Dispondremos de operadores para realizar
desde operaciones aritméticas sencillas desde operaciones aritméticas sencillas
hasta operaciones a nivel de bit, los cuales hasta operaciones a nivel de bit, los cuales
son: aritméticos, relacionales, lógicos, a son: aritméticos, relacionales, lógicos, a
nivel de bit, de asignación, el ternario y nivel de bit, de asignación, el ternario y
precedencia de los operadores.precedencia de los operadores.
Operadores aritméticosOperadores aritméticos
Operador Descripción
+ Suma
- Reta
* Multiplicación
/ División
% Módulo
++ Incremento
-- Decremento
Operadores relacionalesOperadores relacionales
Operador Descripción
== Igual
!= Distinto
> Mayor que
< Menor que
>= Mayor o igual
<= Menor o igual
Operadores lógicosOperadores lógicos
Operador Descripción
& AND
| OR
^ XOR
&& AND en cortocircuito
|| OR en cortocircuito
! NOT
Operadores a nivel de bitOperadores a nivel de bit
Operador Descripción
~ NOT
& AND
| OR
^ XOR
>> Desplazamiento a la derecha
>>> Desplazamiento a la derecha sin signo
<< Desplazamiento a la izquierda
Operadores de asignaciónOperadores de asignación
Operador Descripción
~ NOT
+= Suma y asignación
-= Resta y asignación
*= Multiplicación y asignación
/= División y asignación
%= Módulo y asignación
&= AND y asignación
|= OR y asignación
^= XOR y asignación
<<= Desplazamiento a la izquierda y asignación
>>= Desplazamiento a la derecha y asignación
>>>= Desplazamiento a la derecha sin signo y asignación
El operador tenarioEl operador tenario
El operador ? : es el operador ternario. El operador ? : es el operador ternario.
Puede sustituir a una sentencia if-then-else. Puede sustituir a una sentencia if-then-else.
Su sintaxis es: exp1 ? exp2: exp3;Su sintaxis es: exp1 ? exp2: exp3;
Donde exp1 es una expresión booleana.Donde exp1 es una expresión booleana.
Precedencia de los operadoresPrecedencia de los operadoresOperador Asociatividad
() [] . izquierda a derecha
++ - ! +(unario) -(unario) () (cast) new izquierda a derecha
* / % izquierda a derecha
+ - izquierda a derecha
>> >>> << izquierda a derecha
> >= <= > instanceof 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
Control de flujoControl de flujo
Existen las sentencias condicionales y los Existen las sentencias condicionales y los
bucles.bucles.
Sentencias condicionales: if-else y switch.Sentencias condicionales: if-else y switch.
Bucles: while, for, do-whileBucles: while, for, do-while
Sentencia if-elseSentencia if-else
Sirve para tomar decisiones, nos permite Sirve para tomar decisiones, nos permite
decidir entre dos posibles opciones decidir entre dos posibles opciones
excluyentes. La sintaxis es la siguiente:excluyentes. La sintaxis es la siguiente:
If (expresión)If (expresión)
sentencia-1sentencia-1
[else[else
sentencia-2]sentencia-2]
Sentencia switchSentencia switch
Sirve para reemplazar if anidados.Sirve para reemplazar if anidados.
La sintaxis es la siguiente:La sintaxis es la siguiente:
switch(expresión) {switch(expresión) {
case valor1: sentencia;case valor1: sentencia;
… …....
[break;][break;]
… …
[default : sentencia;[default : sentencia;
sentencia;]sentencia;]
}}
Bucle whileBucle while
En este bucle una serie de sentencias se En este bucle una serie de sentencias se
repiten mientras se cumple una determinada repiten mientras se cumple una determinada
condición. Una característica es que el condición. Una característica es que el
cuerpo del bucle se ejecuta 0 o N veces.cuerpo del bucle se ejecuta 0 o N veces.
La sintaxis es:La sintaxis es:
While (expresión)While (expresión)
sentencia sentencia
Bucle forBucle for
Es equivalente a un bucle while con la Es equivalente a un bucle while con la
diferencia de que permite realizar diferencia de que permite realizar
asignaciones y cambios en la variable de asignaciones y cambios en la variable de
control dentro del mismo bucle.control dentro del mismo bucle.
La sintaxis es:La sintaxis es:
for(exp1;exp2;exp3)for(exp1;exp2;exp3)
sentenciasentencia
Pueden omitirse cualquiera de las tres Pueden omitirse cualquiera de las tres
expresiones, pero los punto y coma deben expresiones, pero los punto y coma deben
permanecer.permanecer.
Bucle do-whileBucle do-while
La comprobación de la condición del bucle La comprobación de la condición del bucle
se evalúa después de ejecutar el cuerpose evalúa después de ejecutar el cuerpo
La sintaxis es:La sintaxis es:
dodo
sentenciasentencia
while(expresión);while(expresión);
Se ejecuta 1 o N veces.iSe ejecuta 1 o N veces.i