Capítulo I: Fundamentos de programación en java
Fundamentos del lenguaje Para empezar a estudiar este lenguaje,  primeramente se necesita conocer qué  datos es capaz de manejar, qué  posibilidades de manejo de esos datos nos  proporciona, que herramientas para  controlar la ejecución nos permite y qué  interacción con el usuario nos ofrece.
Tipos básicos de datos Los bloques en los que se encuentran  divididos los tipos básicos en java son: Enteros: Son cuatro tipos que nos permiten representar números enteros. Coma flotante: Son dos tipos usados para representar datos reales. Caracteres: Un tipo que nos permite representar caracteres de cualquier idioma mundial. Lógicos: Un tipo para representar valores lógicos.
Enteros Nombre Tamaño Rango long 64 bits -9.233.372.036.854.775.808L a 9.233.372.036.854.775.808  int 32 bits -2.147.483.648 a 2.147.483.647 short 16 bits -32.768 a 32767 byte 8 bits -128 a 127
Coma flotante Nombre Tamaño Rango float 32 bits ±3.40282347E+38F double 64 bits ±1.79769313486231570E+308
Caracteres Secuencia Descripción \b Retroceso \t Tabulador \r Retorno de carro \n Nueva línea \’ Comilla simple \” Comilla doble \\ Barra invertida
Lógicos Para representar valores lógicos Java  utiliza, el tipo boolean, el cual permite tomar  dos valores: verdadero y falso.
Envoltorios Tipo Envoltorio int Integer long Long float Float double Double short Short byte Byte char Character boolean Boolean void Void
Literales y constantes Tipo Literal Comentarios int 123 Todos los enteros por defecto son int long 123L Es necesario indicar una L  char ‘ a’ Comillas simples float 5.9F Es posible usar también la notación exponencial 1.8E9 double 7.9 Todos los reales por defecto son double. Se pueden finalizar con una D boolean true true y false son los únicos valores válidos String “ hola” Comillas dobles
Variables La forma más sencilla de almacenar  información es utilizar variables. Antes de  usar cualquier variable, independientemente  de su tipo, es necesario declararla.
Declaración de variables La declaración de estas puede realizarse en  cualquier parte de una clase o método. La  forma de declarar indica el nombre y el tipo  de la misma , pero puede ir acompañada de  más información, como el valor inicial o la  Declaración de más variables del mismo  tipo. tipo identificador[=valor] [, identificador[=valor]…];  int i=0, j; double d = Math.sqrt(i*5);
Ámbito y tiempo de vida de variables El ámbito se produce dentro de un bloque  de código. El tiempo de vida es el tiempo que  transcurre entre la declaración de la variable  y su destrucción. { int a; a=9; { int b=a+1; } a=10; }
Uso básico de cadenas de   caracteres Es posible definir literales de tipo cadena  entrecomillando texto con comillas dobles ,  imprimir  con System.out.println() estas  cadenas e incluso concatenarlas usando el  operador +. System.out.println(“Hola”+” mundo”); también se puede hacer de ésta manera: String a, b; a=“Hola”; b=“ mundo”; String c=a+b; System.out.println(c);
Arrays Es un conjunto de datos homogéneos que  ocupan posiciones de memoria contiguas y  que es posible referenciar a través de un  nombre único.
Declaración de arrays de una dimensión La declaración de la referencia del array se realiza  especificando el tipo del array seguido de [], después viene  el nombre de la variable. int[] a; Una vez que se tiene la referencia, se tiene que reservar la  memoria para almacenar el array, para ello se utiliza el  operador new. New se utiliza cuando se quiere crear un  nuevo elemento de forma dinámica dentro de los  programas. a=new int [10];
Acceso a un array de una dimensión Se accede mediante la referencia  y un  índice único, el índice del array es un  número  entero comprendido entre 0 y la  dimensión -1. int a[]={1,2,3}; System.out.println(b[1]); Se imprimirá 2
Declaración de un array multidimensional Un array bidimensional, es un array de  arrays y se lo define de la siguiente manera: int [][] tabla=new int [2][3]; Pero solo es obligatorio indicar el número de  filas, después se puede reservar memoria  para el resto de forma independiente. int [][] tabla=new int [2][]; tabla [0]=new int [3]; tabla [1]=new int [3];
Acceso a un array multidimensional Es de la misma manera que en los arrays  de una dimensión, solo se le aumenta un  nuevo grupo de corchetes con el índice de  la siguiente dimensión. System.out.println(tabla[1][1]);
Operadores Dispondremos de operadores para realizar  desde operaciones aritméticas sencillas  hasta operaciones a nivel de bit, los cuales  son: aritméticos, relacionales, lógicos, a  nivel de bit, de asignación, el ternario y  precedencia de los operadores.
Operadores aritméticos Operador Descripción + Suma - Reta * Multiplicación / División % Módulo ++ Incremento -- Decremento
Operadores relacionales Operador Descripción == Igual != Distinto > Mayor que < Menor que >= Mayor o igual <= Menor o igual
Operadores lógicos Operador Descripción & AND | OR ^ XOR && AND en cortocircuito || OR en cortocircuito ! NOT
Operadores 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ó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 tenario El operador ? : es el operador ternario.  Puede sustituir a una sentencia if-then-else.  Su sintaxis es: exp1 ? exp2: exp3; Donde exp1 es una expresión booleana.
Precedencia de los operadores Operador 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 flujo Existen las sentencias condicionales y los  bucles. Sentencias condicionales: if-else y switch. Bucles: while, for, do-while
Sentencia if-else Sirve para tomar decisiones, nos permite  decidir entre dos posibles opciones  excluyentes. La sintaxis es la siguiente: If (expresión) sentencia-1 [else sentencia-2]
Sentencia switch Sirve para reemplazar if anidados. La sintaxis es la siguiente: switch(expresión) { case valor1: sentencia; … .. [break;] … [default : sentencia; sentencia;] }
Bucle while En este bucle una serie de sentencias se  repiten mientras se cumple una determinada  condición. Una característica es que el  cuerpo del bucle se ejecuta 0 o N veces. La sintaxis es: While (expresión) sentencia
Bucle for Es equivalente a un bucle while con la  diferencia de que permite realizar  asignaciones y cambios en la variable de  control dentro del mismo bucle. La sintaxis es: for(exp1;exp2;exp3) sentencia Pueden omitirse cualquiera de las tres  expresiones, pero los punto y coma deben  permanecer.
Bucle do-while La comprobación de la condición del bucle  se evalúa después de ejecutar el cuerpo La sintaxis es: do sentencia while(expresión); Se ejecuta 1 o N veces.i

Fundamentos de programacion en java

  • 1.
    Capítulo I: Fundamentosde programación en java
  • 2.
    Fundamentos del lenguajePara empezar a estudiar este lenguaje, primeramente se necesita conocer qué datos es capaz de manejar, qué posibilidades de manejo de esos datos nos proporciona, que herramientas para controlar la ejecución nos permite y qué interacción con el usuario nos ofrece.
  • 3.
    Tipos básicos dedatos Los bloques en los que se encuentran divididos los tipos básicos en java son: Enteros: Son cuatro tipos que nos permiten representar números enteros. Coma flotante: Son dos tipos usados para representar datos reales. Caracteres: Un tipo que nos permite representar caracteres de cualquier idioma mundial. Lógicos: Un tipo para representar valores lógicos.
  • 4.
    Enteros Nombre TamañoRango long 64 bits -9.233.372.036.854.775.808L a 9.233.372.036.854.775.808 int 32 bits -2.147.483.648 a 2.147.483.647 short 16 bits -32.768 a 32767 byte 8 bits -128 a 127
  • 5.
    Coma flotante NombreTamaño Rango float 32 bits ±3.40282347E+38F double 64 bits ±1.79769313486231570E+308
  • 6.
    Caracteres Secuencia Descripción\b Retroceso \t Tabulador \r Retorno de carro \n Nueva línea \’ Comilla simple \” Comilla doble \\ Barra invertida
  • 7.
    Lógicos Para representarvalores lógicos Java utiliza, el tipo boolean, el cual permite tomar dos valores: verdadero y falso.
  • 8.
    Envoltorios Tipo Envoltorioint Integer long Long float Float double Double short Short byte Byte char Character boolean Boolean void Void
  • 9.
    Literales y constantesTipo Literal Comentarios int 123 Todos los enteros por defecto son int long 123L Es necesario indicar una L char ‘ a’ Comillas simples float 5.9F Es posible usar también la notación exponencial 1.8E9 double 7.9 Todos los reales por defecto son double. Se pueden finalizar con una D boolean true true y false son los únicos valores válidos String “ hola” Comillas dobles
  • 10.
    Variables La formamás sencilla de almacenar información es utilizar variables. Antes de usar cualquier variable, independientemente de su tipo, es necesario declararla.
  • 11.
    Declaración de variablesLa declaración de estas puede realizarse en cualquier parte de una clase o método. La forma de declarar indica el nombre y el tipo de la misma , pero puede ir acompañada de más información, como el valor inicial o la Declaración de más variables del mismo tipo. tipo identificador[=valor] [, identificador[=valor]…]; int i=0, j; double d = Math.sqrt(i*5);
  • 12.
    Ámbito y tiempode vida de variables El ámbito se produce dentro de un bloque de código. El tiempo de vida es el tiempo que transcurre entre la declaración de la variable y su destrucción. { int a; a=9; { int b=a+1; } a=10; }
  • 13.
    Uso básico decadenas de caracteres Es posible definir literales de tipo cadena entrecomillando texto con comillas dobles , imprimir con System.out.println() estas cadenas e incluso concatenarlas usando el operador +. System.out.println(“Hola”+” mundo”); también se puede hacer de ésta manera: String a, b; a=“Hola”; b=“ mundo”; String c=a+b; System.out.println(c);
  • 14.
    Arrays Es unconjunto de datos homogéneos que ocupan posiciones de memoria contiguas y que es posible referenciar a través de un nombre único.
  • 15.
    Declaración de arraysde una dimensión La declaración de la referencia del array se realiza especificando el tipo del array seguido de [], después viene el nombre de la variable. int[] a; Una vez que se tiene la referencia, se tiene que reservar la memoria para almacenar el array, para ello se utiliza el operador new. New se utiliza cuando se quiere crear un nuevo elemento de forma dinámica dentro de los programas. a=new int [10];
  • 16.
    Acceso a unarray de una dimensión Se accede mediante la referencia y un índice único, el índice del array es un número entero comprendido entre 0 y la dimensión -1. int a[]={1,2,3}; System.out.println(b[1]); Se imprimirá 2
  • 17.
    Declaración de unarray multidimensional Un array bidimensional, es un array de arrays y se lo define de la siguiente manera: int [][] tabla=new int [2][3]; Pero solo es obligatorio indicar el número de filas, después se puede reservar memoria para el resto de forma independiente. int [][] tabla=new int [2][]; tabla [0]=new int [3]; tabla [1]=new int [3];
  • 18.
    Acceso a unarray multidimensional Es de la misma manera que en los arrays de una dimensión, solo se le aumenta un nuevo grupo de corchetes con el índice de la siguiente dimensión. System.out.println(tabla[1][1]);
  • 19.
    Operadores Dispondremos deoperadores para realizar desde operaciones aritméticas sencillas hasta operaciones a nivel de bit, los cuales son: aritméticos, relacionales, lógicos, a nivel de bit, de asignación, el ternario y precedencia de los operadores.
  • 20.
    Operadores aritméticos OperadorDescripción + Suma - Reta * Multiplicación / División % Módulo ++ Incremento -- Decremento
  • 21.
    Operadores relacionales OperadorDescripción == Igual != Distinto > Mayor que < Menor que >= Mayor o igual <= Menor o igual
  • 22.
    Operadores lógicos OperadorDescripción & AND | OR ^ XOR && AND en cortocircuito || OR en cortocircuito ! NOT
  • 23.
    Operadores a nivelde bit Operador Descripción ~ NOT & AND | OR ^ XOR >> Desplazamiento a la derecha >>> Desplazamiento a la derecha sin signo << Desplazamiento a la izquierda
  • 24.
    Operadores de asignaciónOperador 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
  • 25.
    El operador tenarioEl operador ? : es el operador ternario. Puede sustituir a una sentencia if-then-else. Su sintaxis es: exp1 ? exp2: exp3; Donde exp1 es una expresión booleana.
  • 26.
    Precedencia de losoperadores Operador 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
  • 27.
    Control de flujoExisten las sentencias condicionales y los bucles. Sentencias condicionales: if-else y switch. Bucles: while, for, do-while
  • 28.
    Sentencia if-else Sirvepara tomar decisiones, nos permite decidir entre dos posibles opciones excluyentes. La sintaxis es la siguiente: If (expresión) sentencia-1 [else sentencia-2]
  • 29.
    Sentencia switch Sirvepara reemplazar if anidados. La sintaxis es la siguiente: switch(expresión) { case valor1: sentencia; … .. [break;] … [default : sentencia; sentencia;] }
  • 30.
    Bucle while Eneste bucle una serie de sentencias se repiten mientras se cumple una determinada condición. Una característica es que el cuerpo del bucle se ejecuta 0 o N veces. La sintaxis es: While (expresión) sentencia
  • 31.
    Bucle for Esequivalente a un bucle while con la diferencia de que permite realizar asignaciones y cambios en la variable de control dentro del mismo bucle. La sintaxis es: for(exp1;exp2;exp3) sentencia Pueden omitirse cualquiera de las tres expresiones, pero los punto y coma deben permanecer.
  • 32.
    Bucle do-while Lacomprobación de la condición del bucle se evalúa después de ejecutar el cuerpo La sintaxis es: do sentencia while(expresión); Se ejecuta 1 o N veces.i