1 / 80

Una introducción a Java Capitulo 0.

Una introducción a Java Capitulo 0. Dra. Maria Lucia Barrón Estrada luciabarron@gmail.com Aesoria: 13:00-14:00 Oficina de posgrado Agosto-Diciembre 2007. Contenido. Instalación de Java Fundamentos del lenguaje Java Conceptos de POO con Java. Instalación de Java.

lynch
Download Presentation

Una introducción a Java Capitulo 0.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Una introducción a JavaCapitulo 0. Dra. Maria Lucia Barrón Estrada luciabarron@gmail.com Aesoria: 13:00-14:00 Oficina de posgrado Agosto-Diciembre 2007

  2. Contenido • Instalación de Java • Fundamentos del lenguaje Java • Conceptos de POO con Java

  3. Instalación de Java • Descargar el Java SE http://java.sun.comhttp://java.sun.com/javase/downloads/index.jsp • Instalar el JDK 6 siguiendo las instrucciones • Verificar que se hayan creado todos los directorios. • Verificar la instalación con un programa de prueba

  4. Directorio de archivos instalados

  5. Editar, Compilar y Ejecutar un programa • Crear el archivo fuente. Almacenarlo en el directorio bin con el mismo nombre de la clase y extensión java. • Compilar el programa usando: • javac Nombre.java • Si el programa no tiene errores se creara un archivo de bytecodes llamado Nombre.class, si tiene errores se debe editar el programa y corregirlos. • Ejecutar el programa con el interprete de java: • java Nombre

  6. Editar el programa

  7. Compilar y ejecutar

  8. Fundamentos del Lenguaje Palabras reservadas y comentarios Estructura de un programa Tipos de datos Variables. Operadores. Expresiones. Instrucciones. Bloques. Control de flujo

  9. Comentarios • Los comentarios permiten a los programadores comunicar sus pensamientos independientemente del codigo escrito. • Los comentarios NO generan codigo ejecutable, el compilador los ignora. • En Java existen dos tipos de comentarios • De fin de linea - inician con // • Entre lineas - estan delimitados por /* */

  10. Palabras Reservadas Son palabras que tienen un significado especial en el lenguaje y no pueden ser usadas como identificadoes.

  11. Estructura de un programa • Los programas Java tienen una estructura basica simple que se basa en la definicion de una clase. comentario // Definicion de la clase HolaMundo.java publicclassHolaMundo { public static void main (String[] args) { System.out.println(“Hola Mundo!"); } } Encabezado de la clase Metodo principal Cuerpo de la clase

  12. Tipos de Datos En el lenguaje de programación Java, existen dos categorías de datos: Primitivos Referenciales Una variable de tipo primitivo contiene un valor simple del tamaño y formato apropiado para su tipo: un número, un carácter, o un valor booleano (condicional verdadero ó falso). Una variable de tipo referencial contiene una referencia a un objeto del tipo especificado o cualquier otro derivado de el.

  13. Tipos de Datos Primitivos La siguiente tabla lista, por palabras reservadas, todos los tipos de datos primitivos soportados por Java, sus tamaños y formatos, y una breve descripción de cada uno:

  14. Datos Tipo Referencia Arreglos, clases e interfaces son datos tipo referencia. El valor de un dato tipo referencia, en contraste con uno de tipo primitivo, es que es una referencia a (una dirección de) el valor, o conjunto de valores representados por la variable. Una referencia es denominada apuntador ó dirección de memoria en otros lenguajes. Java no soporta el uso explicito de direcciones como otros lenguajes. Se emplea el nombre de variable en su lugar.

  15. Datos Tipo Referencia public class MiFecha{ private int dia=1; private int mes = 1; private int año=2000  public String toString(){ return dia+”-”+mes+”-”+año; } } // Podemos usar la clase MiFecha como sigue:  public class PruebaMiFecha { public static void main(String[] args) { MiFecha hoy = new MiFecha(); } } La variable hoy es una referencia a un objeto de tipo MiFecha.

  16. Variables El nombre de variable debe ser un identificador válido, -- un número ilimitado de caracteres Unicode que comienza con una letra. No debe ser una palabra reservada, un literal booleano (true or false), ó la palabra reservada null. Debe ser única dentro de su ámbito. Un nombre de variable puede ser repetida si su declaración aparece en un ámbito diferente. El tipo de variable determina que valores puede contener y que operaciones se pueden realizar en ella. Una variable debe ser declarada para poder ser utilizada Ejemplos. int x; // define una variable de tipo entero llamada x String nombre; // define una variable de tipo string llamada nombre Object c; Bicicleta miBici;

  17. Programa de Ejemplo Declaración de Variables public class MaxVariablesDemo { public static void main(String args[]) { // integers byte largestByte = Byte.MAX_VALUE; short largestShort = Short.MAX_VALUE; int largestInteger = Integer.MAX_VALUE; long largestLong = Long.MAX_VALUE; // real numbers float largestFloat = Float.MAX_VALUE; double largestDouble = Double.MAX_VALUE; // other primitive types char aChar = 'S'; boolean aBoolean = true; } }

  18. Ámbito de las Variables El ámbito de una variable es la región de un programa dentro del cual la variable puede ser referenciada con su nombre simple. Ámbito es diferente de visibilidad, el cual aplica sólo a variables miembro y determina si la variable puede ser usada desde fuera de la clase dentro de la cual es declarada. La visibilidad se establece con un modificador de acceso.

  19. Ámbito de las Variables 2 La localización de la declaración de la variable dentro del programa establece su ámbito y la coloca dentro de una de estas cuatro categorías: Variable miembro (pertenece a una clase). Variable local Parámetro de método. Parámetro de manejador de excepciones.

  20. Inicialización de Variables Las variables locales y variables miembro pueden ser inicializadas con una instrucción de asignación en el momento que son declaradas. El tipo de dato debe ser acorde al valor asignado. Ej. byte largestByte = Byte.MAX_VALUE; short largestShort = Short.MAX_VALUE; int largestInteger = Integer.MAX_VALUE; long largestLong = Long.MAX_VALUE; Los parámetros de métodos y los parámetros de manejadores de excepciones no pueden ser inicializados de esta forma. El valor para un parámetro es fijado por el llamador.

  21. Constantes (final) Se puede declarar una variable en cualquier ámbito para que sea final. El valor de una variable finalno puede cambiar después de que ha sido inicializada. Tales variables son similares a las constantes en otros lenguajes. Para declarar una variable final, emplee la palabra reservada final antes del tipo: Ej. final int aFinalVar = 0; En el caso del ejemplo, se ha declarado e inicializado la variable en un solo paso. Se puede hacer en dos pasos si se prefiere. Hecho esto, si se intenta asignar posteriormente un valor a ésta variable, produciría un error de compilación.

  22. Resumen - Variables Existen dos categorías: primitivas y de referencia. La ubicación de una declaración de variable indica implícitamente el ámbito de la variable. Hay cuatro categorías de ámbito: miembro de variable, variable local, parámetro y parámetro de manejador de excepciones. Se puede proveer un valor inicial para una variable dentro de su declaración empleando el operador de asignación (=). Se puede declarar una variable como final. El valor de una variable final no puede ser cambiado después de que ha sido inicializada.

  23. Class Byte • java.lang Class Byte java.lang.Object java.lang.Number java.lang.Byte All Implemented Interfaces:Serializable, Comparable<Byte> • public final class Byte extends Numberimplements Comparable<Byte> • The Byte class wraps a value of primitive type byte in an object. An object of type Byte contains a single field whose type is byte. • In addition, this class provides several methods for converting a byte to a String and a String to a byte, as well as other constants and methods useful when dealing with a byte. • Since: JDK1.1 • See Also:Number, Serialized Form

  24. Campos de la clase

  25. Constructores

  26. Métodos de la clase  byte byteValue()       Returns the value of this Byte as a byte. int compareTo(Byte anotherByte) Compares two Byte objects numerically static Bytedecode(String nm) Decodes a String into a Byte.  Double doubleValue() Returns the value of this Byte as a double.  Boolean equals(Object obj) Compares this object to the specified object. float floatValue()   Returns the value of this Byte as a float. int hashCode()           Returns a hash code for this Byte. int intValue() Returns the value of this Byte as an int.  long longValue()      Returns the value of this Byte as a long. static byte parseByte(String s) Parses the string argument as a signed decimal byte. static byte parseByte(String s, int radix) Parses the string argument as a signed byte in the radix specified by the second argument.  short shortValue() Returns the value of this Byte as a short.  StringtoString()           Returns a String object representing this Byte's value. static StringtoString(byte b)           Returns a new String object representing the specified byte. static BytevalueOf(byte b)           Returns a Byte instance representing the specified byte value. static BytevalueOf(String s)           Returns a Byte object holding the value given by the specified String. static BytevalueOf(String s, int radix)           Returns a Byte object holding the value extracted from the specified String when parsed with the radix given by the second argument.

  27. Usando la clase Byte

  28. Operadores Un operador realiza una función en uno, dos o tres operandos. Un operador que requiere un operando es denominado operador unario. Ej. ++ es un operador unitario que incrementa en uno el valor de su operando. Un operador que requiere dos operandos es un operador binario. Ej. = es un operador binario. Se usa para asignación de valores a variables. Un operador que requiere tres operadores se denomina ternario. Existe un operador ternario ?: que es una abreviación de la instrucción if-else. Existen también tres modalidades de notación: prefija, postfija e infija.

  29. Operadores Aritméticos Java soporta varios operadores aritméticos para todos los números enteros y de punto flotante: + (suma), - (resta), * (multiplicación), / (división) y % módulo. Ej. ArithmeticDemo.java

  30. Operadores Aritméticos 2 Los operadores abreviados de incremento/decremento son sumarizados en la siguiente tabla:

  31. Operadores Relacionales Un operador relacional compara dos valores y determina la relación entre ellos. Por ejemplo, != retorna verdadero si los dos operandos son diferentes. A continuación una tabla de opradores: Ej. RelationalDemo.java

  32. Operadores Condicionales Los operadores relacionales frecuentemente son empleados con operadores condicionales para construir más complejas expresiones de toma de decisiones. El lenguaje de programación Java soporta seis operadores condicionales – cinco binarios y uno unario - como aparece en la siguiente tabla:

  33. Otros Operadores La siguiente tabla lista los otros operadores que el lenguaje Java soporta:

  34. Expresiones Variables y operadores, los cuales aparecen en las secciones previas, son bloques básicos que conforman los programas. Se pueden combinar literales, variables, y operadores para formar expresiones – segmentos de código que realizan cálculos y retornan valores. Una expresión es una serie de variables, operadores y llamadas a métodos (construidas de acuerdo a la sintaxis del lenguaje) que resultan en un valor simple. Ej.count = 1 (count == 0) x1 = -b + Math.sqrt((Math.sqr(b) + a*c)/ (2*a)) contador++ carácter = s1.charAt(0) bandera = !bandera Character.isUpperCase(aChar)

  35. public class Cuadrado{ //atributo int lado; // constructor public Cuadrado (int l){ lado = l; } // metodos public int perimetro(){ return 4*lado; } public int area(){ return lado*lado; } public String toString(){ return "Cuadrado Lado = "+lado; } }

  36. public class PruebaCuadrado{ public static void main(String[] args){ Cuadrado c = new Cuadrado(5); System.out.println(c); System.out.println("El perimetro es "+ c.perimetro()); System.out.println("El area es "+ c.area()); } }

  37. Instrucciones (Sentencias) Una instrucción forma una completa unidad de ejecución. Los siguientes tipos de expresiones pueden ser convertidas en instrucciones finalizando la expresión con un punto y coma, ( ; ). Expresiones de asignación. Cualquier uso de ++ ó --. llamadas a métodos. Expresiones de creación de objetos.

  38. Bloques Un bloque es un grupo de cero o más instrucciones entre llaves balanceadas (que abren y cierran) y que puede ser usada en cualquier sitio donde una simple instrucción sea permitida. El listado siguiente muestra dos bloques del programa MaxVariablesDemo, conteniendo una instrucción simple: if (Character.isUpperCase(aChar)) { System.out.println("The character " + aChar + " is upper case."); } else { System.out.println("The character " + aChar + " is lower case."); }

  39. Instrucciones de Control de Flujo Se pueden emplear instrucciones de control de flujo para: condicionalmente ejecutar instrucciones, repetidamente ejecutar bloques de instrucciones y cambiar el flujo secuencial de control. Ej: char achar; ... if (Character.isUpperCase(aChar)) System.out.println("The character " + aChar + " is upper case."); else System.out.println("The character " + aChar + " is NOT a upper case.");

  40. If/Else if (expression) statement if (expression) statement else statement La instrucción if / else permite al programa ejecutar selectivamente otras instrucciones, basando la selección en el resultado de una expresión booleana. La forma general sería: Ej: IfElseDemo.java

  41. Ejemplos usando if if (height <= MAX) adjustment = 0; else adjustment = MAX-height; if (total < 7) System.out.println(“Total menor que 7”); if (firstCh != ‘a’ && limit < MAX) count++; else count = count /2;

  42. class IfElseDemo { public static void main(String[] args) { int testscore = 76; char grade; if (testscore >= 90) { grade = 'A'; } else if (testscore >= 80) { grade = 'B'; } else if (testscore >= 70) { grade = 'C'; } else if (testscore >= 60) { grade = 'D'; } else { grade = 'F'; } System.out.println("Grade = " + grade); } }

  43. La Instrucción Switch switch (expresion) { case expresion : estatutos; break; case expresion : estatutos; break; // mas casos default : estatutos } Se emplea la instrucción switch para condicionalmente ejecutar instrucciones basadas en expresiones de enteros. Ej: SwitchDemo.java

  44. La instrucción switch evalúa su expresión, y ejecuta la instrucción (case) adecuada. • La expresion debe ser de tipo char, byte, short o int. • La expresion de cada caso, debe ser del mismo tipo de la expresion del switch. • La expresion de cada caso debe ser UNICA. • La seccion default es opcional y se ejecuta cuando ningun caso coincide con la expresion. • Instrucción break después de cada caso (case). Cada instrucción break termina el bloque de switch, y el flujo de control continúa con la primera instrucción que sigue después del bloque de switch. Si no se colocaran instrucciones break, el cursor de ejecución seguiría ejecutando otros bloques case.

  45. Ejemplo usando switch char opcion; System.out.println(“Selecciona la opcion deseada (A o B)”); opcion = Keyboard.readChar(); switch (opcion){ case ‘A’ : System.out.println(“Seleccionaste la opcion A”); break; case ‘b’ : // acepta b o B case ‘B’ : System.out.println(“Seleccionaste la opcion B”); break; default : System.out.println(“Opcion Invalida”); }

  46. class SwitchDemo { public static void main(String[] args) { int month = 8; switch (month) { case 1: System.out.println("January"); break; case 2: System.out.println("February"); break; case 3: System.out.println("March"); break; case 4: System.out.println("April"); break; case 5: System.out.println("May"); break; case 6: System.out.println("June"); break; case 7: System.out.println("July"); break; case 8: System.out.println("August"); break; case 9: System.out.println("September"); break; case 10: System.out.println("October"); break; case 11: System.out.println("November"); break; case 12: System.out.println("December"); break; default: System.out.println("Invalid month.");break; } } }

  47. class SwitchDemo2 { public static void main(String[] args) { int month = 2; int year = 2000; int numDays = 0; switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: numDays = 31; break; case 4: case 6: case 9: case 11: numDays = 30; break; case 2: if ( ((year % 4 == 0) && !(year % 100 == 0)) || (year % 400 == 0) ) numDays = 29; else numDays = 28; break; default: System.out.println("Invalid month."); break; } System.out.println("Number of Days = " + numDays); } }

  48. Instrucción For La instrucción for provee una forma compacta de iterar sobre un rango de valores. La forma general de la instrucción for puede ser expresada como esto: for (initialization; termination; increment) { estatuto } La expresion initialization es una expresión que inicializa el bucle. Es ejecutada una vez al comienzo del bucle. La expresión termination determina cuando terminar el bucle. Esta expresión es evaluada al tope de cada iteración del bucle. Cuando la expresión evalúa a falso, el bucle termina. La expresión increment es invocada después de cada iteración. Todos esos componentes son opcionales. Los bucles for son frecuentemente utilizados para iterar sobre los elementos de un arreglo, o los caracteres de un String. Ej. ForDemo.java

More Related