Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introduccion Java

1,086 views

Published on

Elementos básicos de programación en Java

Published in: Education
  • Be the first to comment

  • Be the first to like this

Introduccion Java

  1. 1. Introducción a Java
  2. 2. Java <ul><li>Lenguaje de programación Orientado a Objetos </li></ul><ul><li>Desde la versión 1.2 (conocida como Java 2) </li></ul><ul><ul><li>Java SE </li></ul></ul><ul><ul><li>Java EE </li></ul></ul><ul><ul><li>Java ME </li></ul></ul>
  3. 3. Máquina virtual de Java Archivo .java Archivo .class Máquina virtual de Java Compilar Ejecutar
  4. 4. Contenido <ul><li>Consideraciones generales </li></ul><ul><li>Tipos de datos </li></ul><ul><li>Variables y constantes </li></ul><ul><li>Operaciones </li></ul><ul><li>Estructuras de programación </li></ul><ul><li>Métodos </li></ul>
  5. 5. Consideraciones generales <ul><li>Bloques de código enmarcados por llaves: { } </li></ul><ul><li>“ Programa” Java: </li></ul><ul><ul><li>Conjunto de clases </li></ul></ul><ul><ul><li>Una clase es ejecutable si tiene el método main </li></ul></ul>
  6. 6. Consideraciones generales <ul><li>Comentarios </li></ul><ul><ul><li>// Una línea </li></ul></ul><ul><ul><li>/* … */ Varias líneas </li></ul></ul><ul><ul><li>/** … */ Para ser incluido en la documentación (herramienta Javadoc de Java) </li></ul></ul>
  7. 7. Consideraciones generales <ul><li>Identificadores </li></ul><ul><ul><li>Comenzar con una letra </li></ul></ul><ul><ul><li>Pueden contener letras, números, símbolo de subrayado y signo de dólar </li></ul></ul><ul><ul><li>Java es sensible a mayúsculas y minúsculas </li></ul></ul><ul><ul><ul><li>Es diferente “unaLetra” a “unaletra” </li></ul></ul></ul><ul><ul><li>No se deben usar las palabras reservadas, ni los valores true, false, null </li></ul></ul>
  8. 8. Consideraciones generales <ul><li>Identificadores </li></ul><ul><ul><li>Clases comienzan con mayúscula, métodos y variables con minúscula </li></ul></ul><ul><ul><li>Las demás minúsculas, excepto el comienzo de una palabra intermedia </li></ul></ul><ul><ul><li>Ej: </li></ul></ul><ul><ul><ul><li>Clases: Empleado, VehículoTerrestre </li></ul></ul></ul><ul><ul><ul><li>Métodos/variables: precio, nombreEmpresa </li></ul></ul></ul>
  9. 9. Consideraciones generales <ul><li>Identificadores </li></ul><ul><ul><li>Constantes en mayúscula sostenida y las palabras se separan con signo de subrayado </li></ul></ul><ul><ul><li>Ej: </li></ul></ul><ul><ul><ul><li>PESO_MÁXIMO </li></ul></ul></ul><ul><ul><ul><li>DESCUENTO </li></ul></ul></ul>
  10. 10. Contenido <ul><li>Consideraciones generales  </li></ul><ul><li>Tipos de datos </li></ul><ul><li>Variables y constantes </li></ul><ul><li>Operaciones </li></ul><ul><li>Estructuras de programación </li></ul><ul><li>Métodos </li></ul>
  11. 11. Tipos de datos <ul><li>Clasificación </li></ul><ul><ul><li>Primitivos o básicos </li></ul></ul><ul><ul><ul><li>Se comportan como valores simples </li></ul></ul></ul><ul><ul><li>Referenciados </li></ul></ul><ul><ul><ul><li>Permiten definir estructuras que internamente tienen varios valores </li></ul></ul></ul><ul><ul><ul><li>Prestan servicios (permiten usar métodos) </li></ul></ul></ul>
  12. 12. Tipos de datos básicos <ul><li>Numéricos enteros </li></ul><ul><ul><li>byte: de -127 a 128 </li></ul></ul><ul><ul><li>short: de -32.768 a 32.767 </li></ul></ul><ul><ul><li>int: de -2.147’483.648 a 2.147.483.647 </li></ul></ul><ul><ul><li>long: de -9'223.372'036.854'775.808 a 9'223.372'036.854'775.807 </li></ul></ul><ul><ul><li>char: representa un carácter ( 0 a 65.536 ) </li></ul></ul>
  13. 13. Tipos de datos básicos <ul><li>Numéricos decimales: </li></ul><ul><ul><li>float: precisión de 7 dígitos </li></ul></ul><ul><ul><li>double: precisión de 15 dígitos </li></ul></ul><ul><li>Lógico: </li></ul><ul><ul><li>boolean: true o false </li></ul></ul>
  14. 14. Tipos de datos <ul><li>Algunos tipos de datos referenciados </li></ul><ul><ul><li>String: representa una cadena de caracteres </li></ul></ul><ul><ul><li>Arreglos: conjunto finito (y estático) de valores de un mismo tipo </li></ul></ul>
  15. 15. Tipos de datos <ul><li>Literales </li></ul><ul><ul><li>Enteros: Java los toma como tipo int, a menos que terminen en L o l, que son de tipo long. Ej: </li></ul></ul><ul><ul><ul><li>5874  int </li></ul></ul></ul><ul><ul><ul><li>5874L  long </li></ul></ul></ul><ul><ul><li>Caracteres: Deben ir entre comillas simples </li></ul></ul>
  16. 16. Tipos de datos <ul><li>Literales </li></ul><ul><ul><li>Decimales: Java los toma como double, a menos que terminen en F o f, que son de tipo float. Ej: </li></ul></ul><ul><ul><ul><li>20.5  double </li></ul></ul></ul><ul><ul><ul><li>20.5f  float </li></ul></ul></ul><ul><ul><li>Cadenas: deben ir entre comillas dobles </li></ul></ul>
  17. 17. Tipos de datos <ul><li>Conversiones </li></ul><ul><ul><li>Siempre deben ser entre tipos compatibles de datos </li></ul></ul><ul><ul><li>Automáticas: El destino es más grande que el origen, ej: </li></ul></ul><ul><ul><ul><li>byte tamaño = 12; </li></ul></ul></ul><ul><ul><ul><li>double tamañoReal = tamaño; </li></ul></ul></ul>
  18. 18. Tipos de datos <ul><li>Conversiones </li></ul><ul><ul><li>Explícita (cast): el destino es menor que el origen, por lo que se puede perder información. El programador debe escribir entre paréntesis el tipo de dato al cual desea convertir: </li></ul></ul><ul><ul><ul><li>int valorPequeño = 34; </li></ul></ul></ul><ul><ul><ul><li>byte valorNormal = (byte) valorPequeño; </li></ul></ul></ul>
  19. 19. Contenido <ul><li>Consideraciones generales  </li></ul><ul><li>Tipos de datos  </li></ul><ul><li>Variables y constantes </li></ul><ul><li>Operaciones </li></ul><ul><li>Estructuras de programación </li></ul><ul><li>Métodos </li></ul>
  20. 20. Variables y constantes <ul><li>Declaración de variables: </li></ul><ul><ul><li>Tipo nombre; </li></ul></ul><ul><ul><li>Tipo nombre = valor inicial; </li></ul></ul><ul><li>Ej: </li></ul><ul><ul><ul><li>char letra; // Después se debe inicializar </li></ul></ul></ul><ul><ul><ul><li>int unEntero = 34; </li></ul></ul></ul>
  21. 21. Variables y constantes <ul><li>Declaración de constantes </li></ul><ul><ul><li>final tipo nombre; </li></ul></ul><ul><ul><li>final tipo nombre = valor; </li></ul></ul><ul><li>Ej: </li></ul><ul><ul><ul><li>final float IVA = 0.15F; </li></ul></ul></ul><ul><ul><ul><li>final boolean ESTADO; </li></ul></ul></ul>
  22. 22. Variables y constantes <ul><li>Declaración de arreglos </li></ul><ul><ul><li>tipo[ ] nombre = new tipo[cantidad]; </li></ul></ul><ul><ul><li>cantidad puede ser un literal, una variable o una expresión enteros. </li></ul></ul><ul><li>Ej: </li></ul><ul><ul><ul><li>short[] valores = new short[20]; </li></ul></ul></ul><ul><ul><ul><li>int máximo = 10; </li></ul></ul></ul><ul><ul><ul><li>double[ ][ ] pesos = new double[2][máximo]; </li></ul></ul></ul>
  23. 23. Variables y constantes <ul><li>Java inicializa cada posición del arreglo </li></ul><ul><li>Las posiciones en Java comienzan en cero </li></ul><ul><ul><li>char[ ] niveles = new char[3]; </li></ul></ul><ul><ul><li>char[0] = 4; </li></ul></ul><ul><ul><li>char[1] = 23; </li></ul></ul><ul><ul><li>char[2] = char[1]; </li></ul></ul><ul><ul><li>// Esto sería error: char[3] = 6; </li></ul></ul>
  24. 24. Contenido <ul><li>Consideraciones generales  </li></ul><ul><li>Tipos de datos  </li></ul><ul><li>Variables y constantes  </li></ul><ul><li>Operaciones </li></ul><ul><li>Estructuras de programación </li></ul><ul><li>Métodos </li></ul>
  25. 25. Operaciones <ul><li>Asignación simple </li></ul><ul><ul><li>= </li></ul></ul><ul><li>Aritméticas </li></ul><ul><ul><li>+ Suma </li></ul></ul><ul><ul><li>- Resta </li></ul></ul><ul><ul><li>* Multiplicación </li></ul></ul><ul><ul><li>/ División </li></ul></ul><ul><ul><li>% Módulo (residuo de la división) </li></ul></ul>
  26. 26. Operaciones <ul><li>Aritméticas </li></ul><ul><ul><li>El resultado es del tipo de dato con mayor precisión en la expresión </li></ul></ul><ul><ul><li>Ejemplo: </li></ul></ul><ul><ul><ul><li>int resultado = 3 – 2.0; // Error: da double </li></ul></ul></ul><ul><ul><ul><li>int cociente = 3 / 2; // Correcto </li></ul></ul></ul><ul><ul><ul><li>double precio = 8.0 % 3; // Correcto </li></ul></ul></ul>
  27. 27. Operaciones <ul><li>Aritméticas </li></ul><ul><ul><li>var ++: Incrementa en uno la variable, pero las demás operaciones en la expresión las realiza con el valor anterior </li></ul></ul><ul><ul><li>++ var: Incrementa en uno la variable y realiza las demás operaciones en la expresión con el nuevo valor </li></ul></ul><ul><ul><li>-- : Decrementa en uno (igual al incremento) </li></ul></ul>
  28. 28. Operaciones <ul><li>Ejemplo: </li></ul><ul><ul><li>int valorInicial = 5; </li></ul></ul><ul><ul><li>int evaluación = valorInicial++; </li></ul></ul><ul><ul><li>// valorInicial queda con valor 6, y evaluación con valor 5 </li></ul></ul><ul><ul><li>int valorInicialDos = 5; </li></ul></ul><ul><ul><li>int evaluaciónDos = ++valorInicialDos; </li></ul></ul><ul><ul><li>// valorInicialDos y evaluaciónDos quedan con valor 6. </li></ul></ul>
  29. 29. Operaciones <ul><li>Relacionales </li></ul><ul><ul><li>> Mayor </li></ul></ul><ul><ul><li>>= Mayor igual </li></ul></ul><ul><ul><li>< Menor </li></ul></ul><ul><ul><li><= Menor igual </li></ul></ul><ul><ul><li>== Igual </li></ul></ul><ul><ul><li>!= Diferente </li></ul></ul>
  30. 30. Operaciones <ul><li>Lógicas </li></ul><ul><ul><li>! Negación (unaria) </li></ul></ul><ul><ul><li>& AND </li></ul></ul><ul><ul><li>&& AND cortocircuito (si el primer operador es false no evalúa el segundo) </li></ul></ul><ul><ul><li>| OR </li></ul></ul><ul><ul><li>|| OR cortocircuito (si el primer operador es true no evalúa el segundo) </li></ul></ul><ul><ul><li>^ OR excluyente </li></ul></ul>
  31. 31. Operaciones <ul><li>Las operaciones aritméticas y lógicas (excepto las cortocircuito) pueden combinarse con la asignación </li></ul><ul><ul><li>La expresión: a = a + b; </li></ul></ul><ul><ul><li>Se puede cambiar por: a+= b; </li></ul></ul><ul><ul><li>Ej: </li></ul></ul><ul><ul><li>int valor = 2; </li></ul></ul><ul><ul><li>valor+=5; // en valor queda 7 </li></ul></ul>
  32. 32. Operaciones <ul><li>? : Evalúa la expresión (que debe ser boolean) que está antes de la interrogación, y si es verdadera toma el valor que está justo después de la interrogación (y antes de los dos puntos), pero si es falsa toma el valor que hay después de los dos puntos. </li></ul>
  33. 33. Operaciones <ul><ul><li>Ejemplo: </li></ul></ul><ul><ul><ul><li>byte número = 46; </li></ul></ul></ul><ul><ul><ul><li>int resultado = (número > 20) ? número - 11 : número; </li></ul></ul></ul><ul><ul><ul><li>// En resultado queda 35 (número no se afecta) </li></ul></ul></ul><ul><ul><ul><li>char par = (resultado % 2 == 0) ? ‘s’ : ‘n’; </li></ul></ul></ul><ul><ul><ul><li>// En par queda el carácter n </li></ul></ul></ul>
  34. 34. Contenido <ul><li>Consideraciones generales  </li></ul><ul><li>Tipos de datos  </li></ul><ul><li>Variables y constantes  </li></ul><ul><li>Operaciones  </li></ul><ul><li>Estructuras de programación </li></ul><ul><li>Métodos </li></ul>
  35. 35. Estructuras secuenciales <ul><li>Cada sentencia Java termina en ; </li></ul><ul><li>Instrucciones que se ejecutan una después de la otra </li></ul><ul><li>Se pueden tener bloques de código </li></ul><ul><li>Las variables sólo se conocen en el bloque de código donde son definidas </li></ul>
  36. 36. Estructuras secuenciales <ul><li>public class EjemploAlcance{ </li></ul><ul><li>public static void main(String[] arg) { </li></ul><ul><li>char letra = 's'; </li></ul><ul><li>{ </li></ul><ul><li>String cadena = (letra=='s')?&quot;Sí&quot;:&quot;No&quot;; </li></ul><ul><li>} </li></ul><ul><li>System.out.println(cadena); //Error </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  37. 37. Estructuras secuenciales <ul><li>public class ValorPago { </li></ul><ul><li>public static void main (String arg[] ) { </li></ul><ul><li>final double DESCUENTO = 0.15; </li></ul><ul><li>int númeroHoras = 30; </li></ul><ul><li>int valorHora = 20000; </li></ul><ul><li>double valorBruto = númeroHoras * valorHora; </li></ul><ul><li>double valorNeto = valorBruto * (1 - DESCUENTO); </li></ul><ul><li>// La siguiente instrucción muestra un mensaje por pantalla </li></ul><ul><li>System.out.println (&quot;Valor a pagar: &quot;+valorNeto); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  38. 38. Estructuras de decisión <ul><li>If </li></ul><ul><ul><li>if (condición) { </li></ul></ul><ul><ul><li>// instrucciones </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><ul><li>else { </li></ul></ul><ul><ul><li>// instrucciones </li></ul></ul><ul><ul><li>} </li></ul></ul>
  39. 39. Estructuras de decisión <ul><li>El paréntesis es obligatorio para la condición </li></ul><ul><li>El else es opcional </li></ul><ul><li>Si hay una sola instrucción las llaves son opcionales (pero se recomienda usarlas siempre) </li></ul>
  40. 40. Estructuras de decisión <ul><li>final double DESCUENTO = 0.15; </li></ul><ul><li>int númeroHoras = Consola.leerEntero(&quot;Horas: &quot;); </li></ul><ul><li>int valorHora = Consola.leerEntero(&quot;Valor hora: &quot;); </li></ul><ul><li>double valor = númeroHoras * valorHora; </li></ul><ul><li>if (valor > 500000) { </li></ul><ul><li>valor -= valor*DESCUENTO; </li></ul><ul><li>} </li></ul><ul><li>System.out.println (&quot;Valor a pagar: &quot;+valor); </li></ul>
  41. 41. Estructuras de decisión <ul><li>switch </li></ul><ul><ul><li>switch (variable de control) { </li></ul></ul><ul><ul><li>case valorUno : // instrucciones </li></ul></ul><ul><ul><li> break; </li></ul></ul><ul><ul><li>case valorDos : // instrucciones </li></ul></ul><ul><ul><li>break; </li></ul></ul><ul><ul><li>default : // instrucciones </li></ul></ul><ul><ul><li>} </li></ul></ul>
  42. 42. Estructuras de decisión <ul><li>La variable de control es de tipo numérico (y debe ir entre paréntesis) </li></ul><ul><li>Cada caso es para un solo valor (el orden no importa) </li></ul><ul><li>El default es opcional </li></ul><ul><li>Si se omite el break se ejecutarán las siguientes instrucciones (no importa si hacen parte de otro caso) </li></ul>
  43. 43. Estructuras de decisión <ul><li>int númeroHoras = Consola.leerEntero(&quot;Horas trabajadas: &quot;); </li></ul><ul><li>int valorHora = Consola.leerEntero(&quot;Valor hora: &quot;); </li></ul><ul><li>int categoría = Consola.leerEntero(&quot;Categoría Salarial: &quot;); </li></ul><ul><li>double valor = númeroHoras * valorHora; </li></ul><ul><li>switch (categoría) { </li></ul><ul><li>case 1: break; </li></ul><ul><li>case 2: valor = valor - (valor*0.07); </li></ul><ul><li>break; </li></ul><ul><li>case 3: valor = valor - (valor*0.1); </li></ul><ul><li>break; </li></ul><ul><li>default:valor = valor - (valor*0.15); </li></ul><ul><li>} </li></ul><ul><li>System.out.println (&quot;Valor a pagar: &quot;+valor); </li></ul>
  44. 44. Estructuras de decisión <ul><li>Ej: Un médico determina el nivel de estrés de los pacientes como 1, 2 o 3. Si es nivel 1 le debe ordenar hacer ejercicio. Si es nivel 2 le debe ordenar, además de hacer ejercicio, cambiar su rutina diaria. Si es nivel 3, además de lo anterior debe recomendarle que tome vacaciones. </li></ul>
  45. 45. Estructuras de decisión <ul><li>int estrés = Console.readInt(&quot;Nivel de estrés:&quot;); </li></ul><ul><li>switch (estrés) { </li></ul><ul><li>case 3: System.out.println(&quot;Tomar vacaciones&quot;); </li></ul><ul><li>case 2: System.out.println(&quot;Cambiar de rutina&quot;); </li></ul><ul><li>case 1: System.out.println(&quot;Hacer ejercicio&quot;); </li></ul><ul><li>} </li></ul>
  46. 46. Estructuras repetitivas <ul><li>While </li></ul><ul><ul><li>while (condición) { </li></ul></ul><ul><ul><li>// instrucciones </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><li>La condición es obligatoria (debe ir entre paréntesis) </li></ul><ul><li>Si hay una sola instrucción las llaves son opcionales </li></ul>
  47. 47. Estructuras repetitivas <ul><ul><li>public class Números { </li></ul></ul><ul><ul><li>public static void main (String arg[] ) { </li></ul></ul><ul><ul><li>int número = 1; </li></ul></ul><ul><ul><li>while (número <= 10) { </li></ul></ul><ul><ul><li>System.out.println(número); </li></ul></ul><ul><ul><li>número ++; </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><ul><li>} </li></ul></ul>
  48. 48. Estructuras repetitivas <ul><li>Do-while </li></ul><ul><ul><li>do { </li></ul></ul><ul><ul><li>// instrucciones </li></ul></ul><ul><ul><li>} while (condición); </li></ul></ul><ul><li>Igual al while pero se ejecuta al menos una vez </li></ul>
  49. 49. Estructuras repetitivas <ul><li>for </li></ul><ul><ul><li>for (incialización; condición; iteración) { </li></ul></ul><ul><ul><li>// instrucciones </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><li>La inicialización, condición e iteración son opcionales, pero los punto y coma son obligatorios </li></ul>
  50. 50. Estructuras repetitivas <ul><li>La inicialización es una instrucción que se hace sólo una vez (antes de iniciar el ciclo) </li></ul><ul><li>La iteración es una instrucción que se ejecuta al final de cada ciclo. </li></ul>
  51. 51. Estructuras repetitivas <ul><ul><li>import utilitarios.*; </li></ul></ul><ul><ul><li>public class Arreglo { </li></ul></ul><ul><ul><li>public static void main (String arg[]) { </li></ul></ul><ul><ul><li>int[] números = new int[10]; </li></ul></ul><ul><ul><li>for (int i = 0; i < 10; i++){ </li></ul></ul><ul><ul><li>números[i] = Consola.leerEntero(&quot;Valor: &quot;); </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><ul><li>} </li></ul></ul>
  52. 52. Estructuras repetitivas <ul><li>Break </li></ul><ul><ul><li>Permite salir de un ciclo. Ejemplo: </li></ul></ul><ul><ul><ul><li>int número; </li></ul></ul></ul><ul><ul><ul><li>while (true){ </li></ul></ul></ul><ul><ul><ul><li> número = Consola. leerEntero (&quot;Número &quot;); </li></ul></ul></ul><ul><ul><ul><li> if ( (número %3) == 0){ </li></ul></ul></ul><ul><ul><ul><li> break; </li></ul></ul></ul><ul><ul><ul><li> } </li></ul></ul></ul><ul><ul><ul><li>} </li></ul></ul></ul>
  53. 53. Contenido <ul><li>Consideraciones generales  </li></ul><ul><li>Tipos de datos  </li></ul><ul><li>Variables y constantes  </li></ul><ul><li>Operaciones  </li></ul><ul><li>Estructuras de programación  </li></ul><ul><li>Métodos </li></ul>
  54. 54. Métodos <ul><li>Encapsulan una funcionalidad </li></ul><ul><li>Sintaxis: </li></ul><ul><ul><li>modificadores tipoRetorno nombre(parámetros) { // cuerpo (instrucciones) } </li></ul></ul><ul><li>Parámetros: </li></ul><ul><ul><li>Separados por comas </li></ul></ul><ul><ul><li>Sintaxis: tipo nombre </li></ul></ul>
  55. 55. Métodos <ul><li>Ej: </li></ul><ul><ul><li>int sumar(int valorUno, double valorDos) {…} </li></ul></ul><ul><ul><ul><li>Método que recibe dos parámetros: el primero de tipo entero, el segundo double, y retorna un valor entero </li></ul></ul></ul><ul><ul><li>boolean validarRango() {…} </li></ul></ul><ul><ul><ul><li>Método que no recibe parámetros, retorna un valor boolean </li></ul></ul></ul>
  56. 56. Métodos <ul><li>Cuando no hay valor de retorno se usa la palabra reservada void </li></ul><ul><li>Ej: </li></ul><ul><ul><li>void mostrar(char letra) {…} </li></ul></ul><ul><ul><ul><li>Método que recibe un char como parámetro, y no retorna nada </li></ul></ul></ul>
  57. 57. Métodos <ul><li>Para retornar el valor se usa la instrucción return </li></ul><ul><li>Puede ir en cualquier punto del método, y termina la ejecución del mismo </li></ul>
  58. 58. Métodos <ul><li>Ej: </li></ul><ul><ul><ul><li>public double multiplica(double valor, int veces){ </li></ul></ul></ul><ul><ul><ul><li> int resultado = valor * veces; </li></ul></ul></ul><ul><ul><ul><li> return resultado; </li></ul></ul></ul><ul><ul><ul><li>} </li></ul></ul></ul><ul><ul><ul><li>public boolean comparar(int valor, int otroValor) { </li></ul></ul></ul><ul><ul><ul><li> if (valor >= otroValor) </li></ul></ul></ul><ul><ul><ul><li>return true; </li></ul></ul></ul><ul><ul><ul><li>return false; </li></ul></ul></ul><ul><ul><ul><li>} </li></ul></ul></ul>
  59. 59. Contenido <ul><li>Consideraciones generales  </li></ul><ul><li>Tipos de datos  </li></ul><ul><li>Variables y constantes  </li></ul><ul><li>Operaciones  </li></ul><ul><li>Estructuras de programación  </li></ul><ul><li>Métodos  </li></ul>

×