Fundamentos de programación Java

17,922 views

Published on

0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
17,922
On SlideShare
0
From Embeds
0
Number of Embeds
2,675
Actions
Shares
0
Downloads
778
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide

Fundamentos de programación Java

  1. 1. Fundamentos de programación
  2. 2. Diseccionando mi primer programa Java <ul><li>public class Hello </li></ul><ul><li>{ </li></ul><ul><li>/** </li></ul><ul><li> * My first Java program </li></ul><ul><li> */ </li></ul><ul><li>public static void main( String[] args ){ </li></ul><ul><li>//prints the string Hello world on screen </li></ul><ul><li>System.out.println(“Hello world”); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  3. 3. <ul><li>Indica el nombre de la clase, Hello </li></ul><ul><li>Todo el código debe ir dentro de una declaración de clase </li></ul><ul><li>La clase usa un especificador de acceso público, lo que indica que nuestra clase es accesible desde otras clases de otros paquetes (colección de clases). </li></ul>Diseccionando mi primer programa Java <ul><li>public class Hello </li></ul><ul><li>{ </li></ul><ul><li>/** </li></ul><ul><li> * My first Java program </li></ul><ul><li> */ </li></ul>
  4. 4. <ul><li>La próxima línea contiene una llave { indica el comienzo de un bloque </li></ul><ul><li>También se puede escribir al final de la declaración de clase, quedando así: </li></ul><ul><li>public class Hello { </li></ul>Diseccionando mi primer programa Java <ul><li>public class Hello </li></ul><ul><li>{ </li></ul><ul><li>/** </li></ul><ul><li> * My first Java program </li></ul><ul><li> */ </li></ul>
  5. 5. <ul><li>La siguiente línea es un comentario en Java </li></ul>Diseccionando mi primer programa Java <ul><li>public class Hello </li></ul><ul><li>{ </li></ul><ul><li>/** </li></ul><ul><li> * My first Java program </li></ul><ul><li> */ </li></ul>
  6. 6. <ul><li>Indica el nombre del método principal de la clase Hello </li></ul><ul><li>public class Hello </li></ul><ul><li>{ </li></ul><ul><li>/** </li></ul><ul><li> * My first Java program </li></ul><ul><li> */ </li></ul><ul><li>public static void main( String[] args ){ </li></ul>Diseccionando mi primer programa Java
  7. 7. Diseccionando mi primer programa Java <ul><li>El método principal es el punto de inicio de un programa Java. </li></ul>
  8. 8. <ul><li>Otra manera de hacer un comentario en Java </li></ul>Diseccionando mi primer programa Java <ul><li>public class Hello </li></ul><ul><li>{ </li></ul><ul><li>/** </li></ul><ul><li> * My first Java program </li></ul><ul><li> */ </li></ul><ul><li>public static void main( String[] args ){ </li></ul><ul><li>//prints the string “Hello world” on screen </li></ul>
  9. 9. <ul><li>El comando System.out.println() , imprime el texto entre los paréntesis. </li></ul>Diseccionando mi primer programa Java <ul><li>public class Hello </li></ul><ul><li>{ </li></ul><ul><li>/** </li></ul><ul><li> * My first Java program </li></ul><ul><li> */ </li></ul><ul><li>public static void main( String[] args ){ </li></ul><ul><li>//prints the string “Hello world” on screen </li></ul><ul><li>System.out.println(“Hello world”); </li></ul>
  10. 10. <ul><li>Las siguientes líneas son para cerrar las llaves abiertas para la clase y para el método. </li></ul>Diseccionando mi primer programa Java <ul><li>public class Hello </li></ul><ul><li>{ </li></ul><ul><li>/** </li></ul><ul><li> * My first Java program </li></ul><ul><li> */ </li></ul><ul><li>public static void main( String[] args ){ </li></ul><ul><li>//prints the string “Hello world” on screen </li></ul><ul><li>System.out.println(“Hello world”); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  11. 11. Directrices de codificación <ul><li>1. Tus programas Java deben acabar siempre con la extensión . java </li></ul><ul><li>2. Los nombres de archivo debe coincidir con el nombre de su clase pública . Por ejemplo, si el nombre de la clase pública es Hello, debe guardarlo en un archivo llamado Hello.java. </li></ul><ul><li>3. Usted debe escribir comentarios en el código que explica lo que hace una cierta clase, o lo que hace un determinado método. </li></ul>
  12. 12. Comentarios Java <ul><li>Comentarios </li></ul><ul><ul><li>Se trata de notas escritas a un código a efectos de documentación. </li></ul></ul><ul><ul><li>Estos textos no son parte del programa y no afecta el flujo del programa. </li></ul></ul><ul><li>3 tipos de comentarios en Java </li></ul><ul><ul><li>C++ estilo de comentarios </li></ul></ul><ul><ul><li>C estilo de comentarios </li></ul></ul><ul><ul><li>Especial comentarios Javadoc </li></ul></ul>
  13. 13. <ul><li>C++-Style Comments </li></ul><ul><ul><li>Comienzan con // </li></ul></ul><ul><ul><li>Todo el texto tras // es tratado como comentario. </li></ul></ul><ul><ul><li>Por ejemplo: // This is a C++ style or single line comments </li></ul></ul>Comentarios Java
  14. 14. <ul><li>C-Style Comments </li></ul><ul><ul><li>C-estilo de los comentarios o también llamados comentarios multilínea comienza con un / * y termina con un * /. </li></ul></ul><ul><ul><li>Todo el texto entre los dos se tratan como comentarios. </li></ul></ul><ul><ul><li>A diferencia del estilo de comentario de C + +, pueden extenderse a varias líneas. Por ejemplo: /* this is an exmaple of a C style or multiline comments */ </li></ul></ul>Comentarios Java
  15. 15. <ul><li>Comentarios especiales de Javadoc </li></ul><ul><ul><li>Especial Javadoc comentarios se utilizan para la generación de una documentación HTML para sus programas de Java. Puede crear javadoc comentarios empezando por la línea con /** y termina con */. </li></ul></ul><ul><ul><li>Al igual que los comentarios de estilo C, también puede abarcar varias líneas . </li></ul></ul><ul><ul><li>También puede contener ciertas etiquetas para añadir más información a sus comentarios. Por ejemplo: /** This is an example of special java doc comments used for generating an html documentation. It uses tags like: @author Florence Balagtas @version 1.2 */ </li></ul></ul>Comentarios Java
  16. 16. Documentación Java <ul><li>API Java </li></ul><ul><li> http://java.sun.com/reference/api/ </li></ul><ul><li>JSE </li></ul><ul><li> http://java.sun.com/j2se/1.5.0/docs/api/ </li></ul><ul><li>JEE </li></ul><ul><ul><li>http://java.sun.com/javaee/5/docs/api/ </li></ul></ul>
  17. 17. Declaraciones Java <ul><li>Declaración </li></ul><ul><ul><li>una o más líneas de código, termina con punto y coma. </li></ul></ul><ul><ul><li>Ejemplo: System.out.println(“Hello world”); </li></ul></ul>
  18. 18. Bloques Java <ul><li>Bloque </li></ul><ul><ul><li>es de una o más declaraciones limitada por una apertura y cierre de llaves de las declaraciones que los grupos como una unidad. </li></ul></ul><ul><ul><li>Bloque de declaraciones se pueden anidar indefinidamente. </li></ul></ul><ul><ul><li>Cualquier cantidad de espacio en blanco está permitido. </li></ul></ul><ul><ul><li>Ejemplo: public static void main( String[] args ){ System.out.println(&quot;Hello&quot;); System.out.println(&quot;world”); } </li></ul></ul>
  19. 19. Java declaraciones y directrices de los bloques de codificación <ul><li>1. En la creación de bloques, puede colocar la llave de apertura de conformidad con la declaración. Por ejemplo: </li></ul><ul><ul><li>public static void main( String[] args ) { </li></ul></ul><ul><li>o puede colocar la llave en la línea siguiente, como , </li></ul><ul><ul><li>public static void main( String[] args )‏ </li></ul></ul><ul><ul><li>{ </li></ul></ul>
  20. 20. <ul><li>2. Usted debe introducir las próximas declaraciones tras el inicio de un bloque. Por ejemplo: </li></ul><ul><ul><li>public static void main( String[] args ){ </li></ul></ul><ul><ul><ul><li>System.out.println(&quot;Hello&quot;); </li></ul></ul></ul><ul><ul><ul><li>System.out.println(&quot;world&quot;); </li></ul></ul></ul><ul><ul><li>} </li></ul></ul>Java declaraciones y directrices de los bloques de codificación
  21. 21. Identificadores Java <ul><li>Identificadores </li></ul><ul><ul><li>son fichas que representan los nombres de variables, métodos, clases, etc. </li></ul></ul><ul><ul><li>Ejemplos: Hello, main, System, out. </li></ul></ul><ul><li>Los identificadores Java son sensibles a mayúsculas / minúsculas. </li></ul><ul><ul><li>Esto significa que el identificador de Hola no es lo mismo que hola. </li></ul></ul>
  22. 22. <ul><li>Identificadores deben comenzar con una letra o bien, un guión de subrayado &quot;_&quot; o un signo de dólar &quot;$&quot;. Letras puede ser mayúsculas o minúsculas. Los siguientes caracteres pueden usar números de 0 a 9. </li></ul><ul><li>No puede utilizar como identificadores las palabras clave de Java, como class, public, void , etc. </li></ul>Identificadores Java
  23. 23. <ul><li>1. Para los nombres de las clases, en mayúscula la primera letra del nombre de clase. Por ejemplo, </li></ul><ul><ul><li>ThisIsAnExampleOfClassName </li></ul></ul><ul><li>2. Para los nombres de los métodos y variables, la primera letra de la palabra debe comenzar con una minúscula. Por ejemplo, </li></ul><ul><ul><li>thisIsAnExampleOfMethodName </li></ul></ul>Java declaraciones y directrices de los bloques de codificación
  24. 24. <ul><li>3. En el caso de varias palabras identificadores, utilice letras mayúsculas para indicar el inicio de la palabra, excepto la primera palabra. Por ejemplo, </li></ul><ul><ul><li>charArray, fileNumber, ClassName. </li></ul></ul><ul><li>4. Evite el uso de barra baja al comienzo de la identificación como _read o _write. </li></ul>Java declaraciones y directrices de los bloques de codificación
  25. 25. Palabras clave Java <ul><li>Las palabras clave son identificadores predefinidos reservados por Java para un propósito específico. </li></ul><ul><li>Usted no puede utilizar palabras clave como nombres de variables, clases, métodos ... etc. </li></ul><ul><li>La siguiente diapositiva contiene la lista de palabras clave de Java. </li></ul>
  26. 26. Palabras clave Java
  27. 27. Literales y Primitivos <ul><li>Los tipos primitivos son tipos de datos especiales incrustados dentro del lenguaje, no son objetos creados de una clase. </li></ul><ul><li>Un literal es la representación en código fuente de un valor fijo, los literales se representan directamente en su código sin necesidad de computación. </li></ul><ul><li>Es posible asignar un literal a una variable de un tipo primitivo, como se muestra a continuación: </li></ul><ul><ul><li>boolean result = true; </li></ul></ul><ul><ul><li>char capitalC = 'C'; </li></ul></ul><ul><ul><li>byte b = 100; </li></ul></ul><ul><ul><li>short s = 10000; </li></ul></ul><ul><ul><li>int i = 100000; </li></ul></ul>
  28. 28. Literales Java <ul><li>Un valor constante en Java se crea utilizando una representación literal de él. </li></ul><ul><li>Un literal es la representación en código fuente de un valor fijo, los literales se representan directamente en su código sin necesidad de computación. </li></ul><ul><li>Los diferentes tipos de literales en Java son: </li></ul><ul><ul><li>Enteros </li></ul></ul><ul><ul><li>Coma flotante </li></ul></ul><ul><ul><li>Booleanos </li></ul></ul><ul><ul><li>Caracteres </li></ul></ul><ul><ul><li>Cadenas </li></ul></ul>
  29. 29. Literales Java: Enteros / Integer <ul><li>Integer literals vienen en distintas formas: </li></ul><ul><ul><li>decimal (base 10)‏ </li></ul></ul><ul><ul><li>hexadecimal (base 16)‏ </li></ul></ul><ul><ul><li>octal (base 8). </li></ul></ul>
  30. 30. <ul><ul><li>Decimal </li></ul></ul><ul><ul><ul><li>Sin una notación especial </li></ul></ul></ul><ul><ul><ul><li>ejemplo: 12 </li></ul></ul></ul><ul><ul><li>Hexadecimal </li></ul></ul><ul><ul><ul><li>Precedido por 0x ó 0X </li></ul></ul></ul><ul><ul><ul><li>ejemplo: 0xC </li></ul></ul></ul><ul><ul><li>Octal </li></ul></ul><ul><ul><ul><li>Precedido por 0 </li></ul></ul></ul><ul><ul><ul><li>ejemplo: 014 </li></ul></ul></ul>Literales Java: Enteros / Integer
  31. 31. Literales Java: Coma flotante / Floating Point <ul><li>Representa números con punto decimal </li></ul><ul><ul><li>Ejemplo: 3.1416 </li></ul></ul><ul><li>Puede ser expresado de manera estándar o con notación científica. </li></ul><ul><ul><li>Ejemplo : 583.45 (estándar), 5.8345e2 (científico)‏ </li></ul></ul>
  32. 32. Literales Java : booleano <ul><li>Sencillamente true o false </li></ul>
  33. 33. Literales Java: char <ul><li>Una variable de tipo char almacena un carácter Unicode. </li></ul><ul><li>Carácter Unicode </li></ul><ul><ul><li>Un carácter de 16-bit sustituye el character de 8-bit usado en ASCII. </li></ul></ul><ul><ul><li>Unicode permite la inclusión de símbolos y caracteres especiales de otros idiomas. </li></ul></ul>
  34. 34. <ul><li>Un literal de tipo char se expresa encerrando el carácter entre comillas simples. </li></ul><ul><li>Por ejemplo </li></ul><ul><ul><li>la letra a, se representa como ‘a’ . </li></ul></ul><ul><ul><li>caracteres especiales, como un carácter de nueva línea, se utiliza una barra invertida seguida por el código de caracteres. Por ejemplo, ' n' para el carácter de nueva línea, ' r' para el retorno de carro, ' b' para retroceder. </li></ul></ul>Literales Java: char
  35. 35. Literales Java: String <ul><li>Un String representa múltiples caracteres. </li></ul><ul><li>Para indicar una cadena de caracteres se encierran entre comillas dobles. </li></ul><ul><li>Un ejemplo de Cadena es, “Hello World”. </li></ul>
  36. 36. Tipo de datos Primitivo <ul><li>Llamamos tipos primitivos de un lenguaje cuando hablamos de tipos de datos ya definidos en el lenguaje y de los que se puede partir para la construcción de expresiones o tipos de compuestos. </li></ul><ul><li>Se definen 8 tipos: </li></ul><ul><ul><li>boolean </li></ul></ul><ul><ul><li>char </li></ul></ul><ul><ul><li>byte </li></ul></ul><ul><ul><li>short </li></ul></ul><ul><ul><li>int </li></ul></ul><ul><ul><li>long </li></ul></ul><ul><ul><li>double </li></ul></ul><ul><ul><li>float </li></ul></ul>
  37. 37. Tipo de datos Primitivo: char <ul><li>Un tipo de datos de carácter (char), representa un único carácter Unicode. </li></ul><ul><li>Se debe tener su literal cerrado entre comillas simples ( ‘’ ). </li></ul><ul><li>Por ejemplo, ‘a’ //La letra a ‘ ’ //Un tab </li></ul><ul><li>Para representar los caracteres especiales como '(comillas simples) o &quot;(comillas dobles), utilice el carácter de escape . Por ejemplo, ''' //comillas simples '&quot;' //comillas dobles </li></ul>
  38. 38. Tipo de datos Primitivo: Entero – byte, short, int & long <ul><li>Tipo de datos entero en Java utiliza tres formas – decimal, octal or hexadecimal. </li></ul><ul><li>Ejemplos, 2 //el valor decimal 2 077 //el 0 indica un valor octal 0xBACC //el 0x indica un valor hexadecimal </li></ul><ul><li>Tipo Entero tiene a int como tipo de datos predeterminado. </li></ul><ul><li>Usted puede definir su valor a Long añadiendo la letra l ó L. Por ejemplo: 10L </li></ul>
  39. 39. <ul><li>Rango de tipo de datos enteros: </li></ul>Tipo de datos Primitivo: Entero – byte, short, int & long
  40. 40. Tipo de datos Primitivo: Floating Point – float and double <ul><li>Floating point tiene double como tipo de dato por defecto. </li></ul><ul><li>De punto flotante, ya sea literal incluye un punto decimal o uno de los siguientes, E or e //(add exponential value) F or f //(float) D or d //(double) </li></ul><ul><li>Ejemplos, 3.14 //A simple floating-point value (a double) 6.02E23 //A large floating-point value 2.718F //A simple float size value 123.4E+306D//A large double value with redundant D </li></ul>
  41. 41. Tipo de datos Primitivo: Floating Point – float and double <ul><li>Rango de coma flotante: </li></ul>
  42. 42. Tipo de datos Primitivo: Resumen
  43. 43. Variables <ul><li>Las variables son la manera en que indicamos al compilador el espacio en memoria que debe de reservar para almacenar la información. </li></ul><ul><li>Una variable tiene: </li></ul><ul><ul><li>Tipo de dato </li></ul></ul><ul><ul><ul><li>El tipo de datos indica el tipo de valor que la variable puede contener. </li></ul></ul></ul><ul><ul><li>nombre </li></ul></ul><ul><ul><ul><li>El nombre de la variable debe seguir las reglas para los identificadores. </li></ul></ul></ul>
  44. 44. Declarando e inicializando Variables <ul><li>Declara una variable de la siguiente manera : </li></ul><ul><li><data type> <name> [=initial value]; </li></ul><ul><li>Nota: Los valores encerrados en <> son valores necesarios, mientras que los valores en [] son opcionales. </li></ul>
  45. 45. Declarando e inicializando Variables : Ejemplo <ul><li>public class VariableSamples { </li></ul><ul><li>public static void main( String[] args ){ </li></ul><ul><li>//declare a data type with variable name </li></ul><ul><li>// result and boolean data type </li></ul><ul><li>boolean result; </li></ul><ul><li>//declare a data type with variable name </li></ul><ul><li>// option and char data type </li></ul><ul><li>char option; </li></ul><ul><li>option = 'C'; //assign 'C' to option </li></ul><ul><li>//declare a data type with variable name </li></ul><ul><li>//grade, double data type and initialized </li></ul><ul><li>//to 0.0 </li></ul><ul><li>double grade = 0.0; </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  46. 46. Declarando e inicializando Variables: Directrices de codificación <ul><li>1. Es siempre bueno inicializar las variables cuando se declaran . </li></ul><ul><li>2. Utilice nombres descriptivos de las variables. Como por ejemplo, si usted quiere tener una variable que contiene un grado de un estudiante, como nombre, categoría y no sólo algunas letras al azar que usted elija. </li></ul>
  47. 47. <ul><li>3. Declarar una variable en cada línea de código. Por ejemplo, la declaraciones de variables, </li></ul><ul><li>double exam=0; double quiz=10; double grade = 0; </li></ul><ul><li>es preferible a lo siguiente, </li></ul><ul><ul><li>double exam=0, quiz=10, grade=0; </li></ul></ul>Declarando e inicializando Variables: Directrices de codificación
  48. 48. Salida de datos de variables <ul><li>Con el fin de mostrar el valor de una determinada variable, podemos usar los siguientes comandos: </li></ul><ul><ul><li>System.out.println() </li></ul></ul><ul><ul><li>System.out.print() </li></ul></ul>
  49. 49. Salida de datos de variables: Programa ejemplo <ul><li>public class OutputVariable { </li></ul><ul><li>public static void main( String[] args ){ </li></ul><ul><li>int value = 10; </li></ul><ul><li>char x; </li></ul><ul><li>x = ‘A’; </li></ul><ul><li>System.out.println( value ); </li></ul><ul><li>System.out.println( “The value of x=“ + x ); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>El programa mostrará lo siguiente por pantalla: 10 The value of x=A
  50. 50. System.out.println() vs. System.out.print() <ul><li>System.out.println()‏ </li></ul><ul><ul><li>Añade una nueva línea al final de la salida de datos </li></ul></ul><ul><li>System.out.print() </li></ul><ul><ul><li>No añadir una nueva línea al final de la salida de datos </li></ul></ul>
  51. 51. <ul><li>Programa 1: Output: HelloWorld </li></ul><ul><li>Programa 2: </li></ul><ul><li>Output: Hello World </li></ul>System.out.print(“Hello”); System.out.print(“World”); System.out.println(“Hello”); System.out.println(“World”); System.out.println() vs. System.out.print()
  52. 52. Variables por Referencia vs. Variables primitivas <ul><li>Dos tipos de variables en Java: </li></ul><ul><ul><li>Variables primitivas </li></ul></ul><ul><ul><li>Variables de referencia </li></ul></ul><ul><li>Variables primitivas </li></ul><ul><ul><li>variables con tipos de datos primitivos como int o largo. </li></ul></ul><ul><ul><li>almacena los datos en la memoria real de la ubicación donde la variable está </li></ul></ul>
  53. 53. <ul><li>Variables de referencia </li></ul><ul><ul><li>las variables que almacena la dirección en la ubicación de la memoria </li></ul></ul><ul><ul><li>apunta a otra ubicación de memoria donde los datos reales están </li></ul></ul><ul><ul><li>Cuando declara una variable de una determinada clase, en realidad está declarando una variable de referencia con el objeto de cierta clase. </li></ul></ul>Variables por Referencia vs. Variables primitivas
  54. 54. Ejemplo <ul><li>Supongamos que tenemos dos variables con tipos de datos int y string. int num = 10; // primitive type String name = &quot;Hello&quot;; // reference type </li></ul>
  55. 55. Ejemplo <ul><li>La imagen se muestra a continuación es la memoria de su ordenador, que tiene la dirección de la memoria de las células, el nombre de la variable y los datos que posean. </li></ul>
  56. 56. Operadores <ul><li>Distintos tipos de operadores : </li></ul><ul><ul><li>operadores aritméticos </li></ul></ul><ul><ul><li>operadores relacionales </li></ul></ul><ul><ul><li>operadores lógicos </li></ul></ul><ul><ul><li>operadores condicionales </li></ul></ul><ul><li>Estos operadores siguen un cierto tipo de preferencia para que el compilador sepa que operador evaluar en primer lugar en caso de múltiples operadores en una misma declaración. </li></ul>
  57. 57. Operadores Aritméticos
  58. 58. Operadores Aritméticos: Ejemplo de programa <ul><li>public class ArithmeticDemo { </li></ul><ul><li>public static void main(String[] args){ </li></ul><ul><li>//a few numbers </li></ul><ul><li>int i = 37; </li></ul><ul><li>int j = 42; </li></ul><ul><li>double x = 27.475; </li></ul><ul><li>double y = 7.22; </li></ul><ul><li>System.out.println(&quot;Variable values...&quot;); </li></ul><ul><li>System.out.println(&quot; i = &quot; + i); </li></ul><ul><li>System.out.println(&quot; j = &quot; + j); </li></ul><ul><li>System.out.println(&quot; x = &quot; + x); </li></ul><ul><li>System.out.println(&quot; y = &quot; + y); System.out.println(&quot;Adding...&quot;); </li></ul><ul><li>System.out.println(&quot; i + j = &quot; + (i + j)); </li></ul><ul><li>System.out.println(&quot; x + y = &quot; + (x + y)); </li></ul>
  59. 59. Operadores Aritméticos: Ejemplo de programa <ul><li>//subtracting numbers </li></ul><ul><li>System.out.println(&quot;Subtracting...&quot;); </li></ul><ul><li>System.out.println(&quot; i - j = &quot; + (i – j)); </li></ul><ul><li>System.out.println(&quot; x - y = &quot; + (x – y)); </li></ul><ul><li>//multiplying numbers </li></ul><ul><li>System.out.println(&quot;Multiplying...&quot;); </li></ul><ul><li>System.out.println(&quot; i * j = &quot; + (i * j)); </li></ul><ul><li>System.out.println(&quot; x * y = &quot; + (x * y)); </li></ul><ul><li> //dividing numbers </li></ul><ul><li>System.out.println(&quot;Dividing...&quot;); </li></ul><ul><li>System.out.println(&quot; i / j = &quot; + (i / j)); </li></ul><ul><li>System.out.println(&quot; x / y = &quot; + (x / y)); </li></ul>
  60. 60. Operadores Aritméticos: Ejemplo de programa <ul><li>//computing the remainder resulting from dividing </li></ul><ul><li> // numbers </li></ul><ul><li>System.out.println(&quot;Computing the remainder...&quot;); </li></ul><ul><li>System.out.println(&quot; i % j = &quot; + (i % j)); </li></ul><ul><li>System.out.println(&quot; x % y = &quot; + (x % y)); </li></ul><ul><li>//mixing types </li></ul><ul><li>System.out.println(&quot;Mixing types...&quot;); </li></ul><ul><li>System.out.println(&quot; j + y = &quot; + (j + y)); </li></ul><ul><li>System.out.println(&quot; i * x = &quot; + (i * x)); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  61. 61. Operadores Aritméticos: Ejemplo de programa Variable values... i = 37 j = 42 x = 27.475 y = 7.22 Adding... i + j = 79 x + y = 34.695 Subtracting... i - j = -5 x - y = 20.255 Multiplying... i * j = 1554 x * y = 198.37 Dividing... i / j = 0 x / y = 3.8054 Computing the remainder... i % j = 37 x % y = 5.815 Mixing types... j + y = 49.22 i * x = 1016.58
  62. 62. <ul><li>¿Qué pasa si los operandos no son del mismo tipo? </li></ul><ul><li>Se convierten automáticamente según el siguiente orden de generalidad: </li></ul><ul><li>byte  short  int  long  float  double </li></ul><ul><li>El resultado de una expresión se convierte al tipo más general </li></ul>Operadores Aritméticos
  63. 63. <ul><li>Ejemplos: </li></ul><ul><li>double goodDouble = 17.5 + 4; </li></ul><ul><li>int badInt = 5 – 3.0; </li></ul><ul><li>float goodFloat = 491 + 5162631234L; </li></ul><ul><li>float badFloat = 16.2 / 7; </li></ul><ul><li>¡A veces el resultado no es lo que uno desea! </li></ul><ul><li>double cociente = 15 / 4; </li></ul>Operadores Aritméticos
  64. 64. Los operadores de incremento y decremento <ul><li>incremento operador de unidad(++) </li></ul><ul><li>decremento operador de unidad(--)‏ </li></ul><ul><li>Operadores de incremento y decremento aumentan y disminuyen un valor almacenado en un número variable más 1. </li></ul><ul><li>Por ejemplo, count=count + 1;//increment the value of count by 1 es lo mismo que, count++; </li></ul>
  65. 65. Los operadores de incremento y decremento
  66. 66. <ul><li>Los operadores de incremento y decremento se pueden colocar antes o después de un operando. </li></ul><ul><li>Cuando se utiliza antes de un operando, que provoca la variable que se incrementa o decrementa en 1, y luego el nuevo valor se utiliza en la expresión en la que aparece </li></ul><ul><li>Por ejemplo, </li></ul>Los operadores de incremento y decremento int i = 10; int j = 3; int k = 0; k = ++j + i; //will result to k = 4+10 = 14
  67. 67. Los operadores de incremento y decremento <ul><li>Cuando los operadores de incremento y decremento se colocan después del operando, el antiguo valor de la variable se utiliza en la expresión que aparece. </li></ul><ul><li>Por ejemplo, </li></ul>int i = 10; int j = 3; int k = 0; k = j++ + i; //will result to k = 3+10 = 13
  68. 68. Los operadores de incremento y decremento: Directrices de codificación <ul><li>Siempre mantenga las expresiones que contienen operadores de incremento y decremento simple y fácil de entender. </li></ul>
  69. 69. Operadores relacionales <ul><li>Los operadores relacionales comparan dos valores y determina la relación entre esos valores. </li></ul><ul><li>El resultado de la evaluación son los valores booleanos verdadero o falso. </li></ul>
  70. 70. Operadores relacionales: Programa de ejemplo <ul><li>public class RelationalDemo{ </li></ul><ul><li>public static void main(String[] args){ </li></ul><ul><li>//a few numbers </li></ul><ul><li>int i = 37; </li></ul><ul><li>int j = 42; </li></ul><ul><li>int k = 42; </li></ul><ul><li>System.out.println(&quot;Variable values...&quot;); </li></ul><ul><li>System.out.println(&quot; i = &quot; +i); </li></ul><ul><li>System.out.println(&quot; j = &quot; +j); </li></ul><ul><li>System.out.println(&quot; k = &quot; +k); </li></ul><ul><li>//greater than </li></ul><ul><li>System.out.println(&quot;Greater than...&quot;); </li></ul><ul><li>System.out.println(&quot; i > j = &quot;+(i>j));//false </li></ul><ul><li>System.out.println(&quot; j > i = &quot;+(j>i));//true </li></ul><ul><li>System.out.println(&quot; k > j = &quot;+(k>j));//false </li></ul>
  71. 71. Operadores relacionales: Programa de ejemplo <ul><ul><ul><ul><ul><li>//greater than or equal to </li></ul></ul></ul></ul></ul><ul><li>System.out.println(&quot;Greater than or equal to...&quot;); </li></ul><ul><li>System.out.println(&quot; i >= j = &quot;+(i>=j));//false </li></ul><ul><li>System.out.println(&quot; j >= i = &quot;+(j>=i));//true </li></ul><ul><li>System.out.println(&quot; k >= j = &quot;+(k>=j));//true </li></ul><ul><li>//less than </li></ul><ul><li>System.out.println(&quot;Less than...&quot;); </li></ul><ul><li>System.out.println(&quot; i < j = &quot;+(i<j));//true </li></ul><ul><li>System.out.println(&quot; j < i = &quot;+(j<i));//false </li></ul><ul><li>System.out.println(&quot; k < j = &quot;+(k<j));//false </li></ul><ul><li>//less than or equal to </li></ul><ul><li>System.out.println(&quot;Less than or equal to...&quot;); </li></ul><ul><li>System.out.println(&quot; i <= j = &quot;+(i<=j));//true </li></ul><ul><li>System.out.println(&quot; j <= i = &quot;+(j<=i));//false </li></ul><ul><li>System.out.println(&quot; k <= j = &quot;+(k<=j));//true </li></ul>
  72. 72. Operadores relacionales: Programa de ejemplo <ul><li>//equal to </li></ul><ul><li>System.out.println(&quot;Equal to...&quot;); </li></ul><ul><li>System.out.println(&quot; i == j = &quot; + (i==j));//false </li></ul><ul><li>System.out.println(&quot; k == j = &quot; + (k==j));//true </li></ul><ul><li>//not equal to </li></ul><ul><li>System.out.println(&quot;Not equal to...&quot;); </li></ul><ul><li>System.out.println(&quot; i != j = &quot; + (i!=j));//true </li></ul><ul><li>System.out.println(&quot; k != j = &quot; + (k!=j));//false </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  73. 73. Operadores relacionales: Programa de ejemplo output Variable values... i = 37 j = 42 k = 42 Greater than... i > j = false j > i = true k > j = false Greater than or equal to... i >= j = false j >= i = true k >= j = true Less than... i < j = true j < i = false k < j = false Less than or equal to... i <= j = true j <= i = false k <= j = true Equal to... i == j = false k == j = true Not equal to... i != j = true k != j = false
  74. 74. Operadores Lógicos <ul><li>tienen uno o dos operandos booleanos que producen un resultado booleano . </li></ul><ul><li>Hay seis operadores lógicos: </li></ul>O lógica boolean binario | Y lógica boolean binario && NO boolean unario ! O exclusiva boolean binario ^ O lógica boolean binario || Y lógica boolean binario & Significado Operandos Categoría
  75. 75. Operadores Lógicos <ul><li>La expresión básica para una operación es, x1 op x2 donde, x1, x2 – pueden ser expresiones booleana, variables o constantes. </li></ul><ul><li>La tabla que se muestra a continuación resume el resultado de cada operación para todas las posibles combinaciones de x1 y x2. </li></ul>
  76. 76. <ul><li>Tabla de verdad para && y &, </li></ul>Operadores Lógicos: &&(logical) and &(boolean logical) AND
  77. 77. La diferencia básica entre && y & operadores: <ul><li>&& soporta evaluaciones parciales, mientras que & no lo soporta. </li></ul>
  78. 78. Dada una expresión: exp1 && exp2 <ul><li>Evaluará la expresión exp1, y de inmediato devolverá false si exp1 es falso. </li></ul><ul><li>Si exp1 es false, el operador nunca evaluara exp2 porque el resultado del operador será falso independientemente del valor de exp2. </li></ul><ul><ul><li>En cambio, el operador & siempre evalúa ambos antes de devolver un valor. </li></ul></ul><ul><li>Operadores Lógicos: &&(logical) y &(boolean logical) AND </li></ul>
  79. 79. Operadores Lógicos: &&(logical) y &(boolean logical) AND <ul><li>public class TestAND { </li></ul><ul><li> public static void main( String[] args ){ </li></ul><ul><li>int i = 0; </li></ul><ul><li>int j = 10; </li></ul><ul><li>boolean test= false; </li></ul><ul><li>//demonstrate && </li></ul><ul><li>test = (i > 10) && (j++ > 9); </li></ul><ul><li>System.out.println(i); </li></ul><ul><li>System.out.println(j); </li></ul><ul><li>System.out.println(test); </li></ul><ul><li>//demonstrate & </li></ul><ul><li>test = (i > 10) & (j++ > 9); </li></ul><ul><li>System.out.println(i); </li></ul><ul><li>System.out.println(j); </li></ul><ul><li>System.out.println(test); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  80. 80. <ul><li>La salida del programa es, 0 10 false 0 11 false </li></ul><ul><li>Tenga en cuenta que la j++ en la línea que contiene el operador && no se evalúa desde la primera expresión (i> 10) ya que es igual a false. </li></ul>Operadores Lógicos: &&(logical) y &(boolean logical) AND
  81. 81. Operadores Lógicos: || (logical) y | (boolean logical) inclusive OR <ul><li>Tabla de verdad para || y |, </li></ul>
  82. 82. La diferencia básica entre | | y | operadores: <ul><li>&& soporta evaluaciones parciales, mientras que & no lo soporta. </li></ul>
  83. 83. Dada la expresión: exp1 || exp2 <ul><li>Evaluará la expresión exp1, y de inmediato devolverá true si exp1 es true. </li></ul><ul><li>Si exp1 es true, el operador nunca evaluara exp2 porque el resultado del operador será true independientemente del valor de exp2. </li></ul><ul><ul><li>En cambio, el operador | siempre evalúa ambos antes de devolver un valor. </li></ul></ul><ul><li>Operadores Lógicos: || (logical) y | (boolean logical) inclusive OR </li></ul>
  84. 84. Operadores Lógicos: || (logical) y | (boolean logical) inclusive OR <ul><li>public class TestOR { </li></ul><ul><li> public static void main( String[] args ){ </li></ul><ul><li> int i = 0; </li></ul><ul><li> int j = 10; </li></ul><ul><li> boolean test= false; </li></ul><ul><li> //demonstrate || </li></ul><ul><li> test = (i < 10) || (j++ > 9); </li></ul><ul><li> System.out.println(i); </li></ul><ul><li> System.out.println(j); </li></ul><ul><li> System.out.println(test); </li></ul><ul><li> //demonstrate | </li></ul><ul><li> test = (i < 10) | (j++ > 9); </li></ul><ul><li> System.out.println(i); </li></ul><ul><li> System.out.println(j); </li></ul><ul><li> System.out.println(test); </li></ul><ul><li> } </li></ul><ul><li>} </li></ul>
  85. 85. <ul><li>La salida del programa es, </li></ul><ul><li> 0 10 true 0 11 true </li></ul><ul><li>Tenga en cuenta que la j++ en la línea que contiene el operador && no se evalúa desde la primera expresión (i> 10) ya que es igual a true. </li></ul>Operadores Lógicos: || (logical) y | (boolean logical) inclusive OR
  86. 86. Operadores Lógicos: ^ (boolean logical exclusive OR) <ul><li>Tabla de verdad para ^, </li></ul><ul><li>El resultado de una operación exclusiva OR es TRUE, si y sólo si un operando es true y el otro es false. </li></ul><ul><li>Tenga en cuenta que ambos operandos deben siempre ser evaluados con el fin de calcular el resultado de un exclusivo OR. </li></ul>
  87. 87. Operadores Lógicos: ^ (boolean logical exclusive OR)‏ <ul><li>public class TestXOR { </li></ul><ul><li>public static void main( String[] args ){ </li></ul><ul><li> boolean val1 = true; </li></ul><ul><li> boolean val2 = true; </li></ul><ul><li> System.out.println(val1 ^ val2); </li></ul><ul><li> val1 = false; val2 = true; </li></ul><ul><li> System.out.println(val1 ^ val2); </li></ul><ul><li> val1 = false; val2 = false; </li></ul><ul><li> System.out.println(val1 ^ val2); </li></ul><ul><li> val1 = true; val2 = false; </li></ul><ul><li> System.out.println(val1 ^ val2); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  88. 88. <ul><li>La salida del programa es, false true false true </li></ul>Operadores Lógicos: ^ (boolean logical exclusive OR)‏
  89. 89. Operadores Lógicos: ! ( logical NOT)‏ <ul><li>El NOT lógico puesto en un argumento, cuando ese argumento puede ser una expresión, variable o constante. </li></ul><ul><li>Tabla de verdad para !, </li></ul>
  90. 90. Operadores Lógicos: ! ( logical NOT)‏ <ul><li>La salida del programa es, false true </li></ul><ul><li>public class TestNOT { </li></ul><ul><li>public static void main( String[] args ){ </li></ul><ul><li>boolean val1 = true; </li></ul><ul><li>boolean val2 = false; </li></ul><ul><li>System.out.println(!val1); </li></ul><ul><li>System.out.println(!val2); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  91. 91. Operadores Lógicos: Conditional Operator (?:)‏ <ul><li>El operador condicional?: </li></ul><ul><ul><li>es un operador ternario. </li></ul></ul><ul><ul><ul><li>Esto significa que se toma en tres argumentos que forman juntos una expresión condicional . </li></ul></ul></ul><ul><ul><li>La estructura de una expresión utilizando un operador condicional es exp1?exp2:exp3 </li></ul></ul><ul><ul><ul><li>donde, </li></ul></ul></ul><ul><ul><ul><li>exp1 – es una expresión booleana cuyo resultado deber ser true o false. </li></ul></ul></ul><ul><ul><li>Resultado: </li></ul></ul><ul><ul><ul><li>Si exp1 es true, exp2 es el valor devuelto. </li></ul></ul></ul><ul><ul><ul><li>Si es false, entonces exp3 es devuelto. </li></ul></ul></ul>
  92. 92. Operadores Lógicos: Conditional Operator (?:)‏ <ul><li>La salida de este programa es, Passed </li></ul><ul><li>public class ConditionalOperator { </li></ul><ul><li>public static void main( String[] args ){ </li></ul><ul><li>String status = &quot;&quot;; </li></ul><ul><li>int grade = 80; </li></ul><ul><li>//get status of the student </li></ul><ul><li>status = (grade >= 60)?&quot;Passed&quot;:&quot;Fail&quot;; </li></ul><ul><li>//print status </li></ul><ul><li>System.out.println( status ); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  93. 93. Operadores Lógicos: Conditional Operator (?:)‏
  94. 94. Prioridad y Asociatividad <ul><li>Determinan el orden de evaluación </li></ul><ul><li>Los operadores se evalúan en orden de prioridad </li></ul><ul><li>Si dos operadores tienen la misma prioridad, se evalúan según asociatividad </li></ul><ul><li>Asociatividad izquierda-derecha significa que el operador a la izquierda se evalúa primero </li></ul><ul><li>Siempre se puede utilizar paréntesis para cambiar el orden de evaluación </li></ul>
  95. 95. Prioridad de Operadores der-izq asignación = += -= *= /= %= 10 izq-der O lógica || 9 izq-der Y lógica && 8 izq-der O exclusiva ^ 7 izq-der igual/distinto == != 6 izq-der mayor/menor > >= < <= 5 izq-der ad/sust/concatenación + - + 4 izq-der mult/div/resto * / % 3 der-izq sgn/inc/dec/NO/casting + - ++ -- ! (tipo) 2 paréntesis () 1
  96. 96. <ul><li>Dada una expresión complicada, 6%2*5+4/2+88-10 podemos volver a escribir la expresión y colocar algunos paréntesis basado el la prioridad de operadores, ((6%2)*5)+(4/2)+88-10; </li></ul>Prioridad de Operadores
  97. 97. Prioridad de Operadores: Directrices de codificación <ul><li>Para evitar confusiones en la evaluación de las operaciones matemáticas, mantener su uso de expresiones sencillas y paréntesis . </li></ul>

×