PROGRAMACIÓN II Programación Orientada a Objetos con JAVA M.T. María Luisa Juárez Aguilar [email_address]
Evaluación   20  % PROYECTO FINAL 4 3 2 1 10  % PRACTICAS 10  % LABORATORIO 60  % EXÁMENES PARCIALES
Observaciones   Para poder obtener el Promedio Final el alumno debe cumplir con los cuatro puntos anteriores de la evaluación. Para tener derecho de presentar el  proyecto final  el alumno debe cumplir con los puntos 1, 2 y 3 de la evaluación y obtener una  calificación aprobatoria, de lo contrario, debe presentar su examen extraordinario en la fecha programada por el departamento escolar. La asistencia debe ser del 80% mínimo por parcial.
CONTENIDO DEL PROGRAMA
Historia de Java
Historia de Java Sun anunció formalmente a Java en 1995. Actualmente Java se utiliza para desarrollar aplicaciones empresariales a gran escala, para mejorar la funcionalidad de los  servidores  de WWW  (las computadoras que proporcionan el contenido que vemos en nuestros navegadores Web),  para proporcionar aplicaciones para los dispositivos domésticos (teléfonos celulares, radiolocalizadores y asistentes digitales personales) y para muchos otros propósitos.
Historia de Java El JDK incluye herramientas para construcción de interfaces gráficas de usuario (GUI,  Graphical User Interface ), trabajo en red e implantación de applets, pequeños programas de Java que agregan contenido dinámico a las páginas Web. La  independencia de la plataforma  es una razón importante del éxito de Java. Sus programas se compilan en códigos de bytes ( bytecodes ) y pueden ejecutarse en cualquier computadora con un  intérprete  o una  máquina virtual de Java  (JVM,  Java Virtual Machine ), proporcionando un ambiente en tiempo de ejecución para ejecutar programas de Java.
Historia de Java Java es un nuevo lenguaje de programación orientado a objetos desarrollado por Sun Microsystems  Descrito como:  Simple, orientado a objetos, distribuido, interpretado, robusto, seguro, de arquitectura neutral, portable, de alto rendimiento, multitarea y dinámico.
Características de Java Simple: Elimina la complejidad de los lenguajes como "C", mantiene las facilidades básicas de lenguaje en un mínimo y proporciona un gran número de extras con las librerías de clases.   Orientado a objetos: Encapsulacion Herencia  Polimorfismo   Distribuido: Capacidades de interconexión TCP/IP, además de los protocolos http, ftp.
Características de Java Robusto:  Busca errores en tiempo de compilación como en ejecución. El sistema de Java maneja la memoria de la computadora por lo que no es necesario reocuparse por apuntadores, memoria que no se esté utilizando, etc.  Portable: Como el código compilado de Java (conocido como bytecode) es interpretado, un programa compilado de Java puede ser utilizado por cualquier computadora que tenga implementado el intérprete de Java.
Características de Java Seguro: El sistema de Java tiene ciertas políticas que evitan se puedan codificar virus con este lenguaje. Existen muchas restricciones, especialmente para los applets, que limitan lo que se puede y no puede hacer con los recursos críticos de una computadora. Arquitectura neutral: Compila su código a un archivo objeto de formato independiente.
Características de Java Multitarea: El lenguaje soporta la concurrencia a través de hilos, o sea que puede ejecutar varios procedimientos en paralelo. Dinámico: Java no requiere compilar todas las clases de un programa para que funcione, si se realiza una modificación a una clase, Java se encarga de encontrar cada clase.
Otros lenguajes Alto nivel:  FORTRAN  (FORmula TRANslator),  COBOL  (COmmon Business Oriented Language),  Pascal ,  ADA ,  BASIC  (Beginner ´s All-Purpose Symbolic Instruction Code, Código de instrucciones simbólicas de uso general para principiantes) .
Otros lenguajes ANSI C ,  evolucionó de otros dos lenguajes, BCPL y B. L enguaje de desarrollo para el S.O. UNIX. En la actualidad todos los nuevos sistemas operativos importantes se escriben en C o C  ++.   C ++  evolucionó de C, proporciona un conjunto de características que “mejoran” a C pero lo más importante es que proporciona la capacidad de una  programación orientada a objetos.
Otros lenguajes Visual Basic, se introdujo para simplificar el desarrollo de aplicaciones para Microsoft Windows. Visual Basic.NET, diseñado para la nueva plataforma de programación de Microsoft: .NET ofrece una orientación a objetos mejorada, hace uso de la biblioteca .NET. Visual C ++ es una implementación de Microsoft de C++.
Otros lenguajes .NET y C #, la plataforma .NET permite la distribución de aplicaciones basadas en Web a muchos dispositivos (incluso celulares) y computadoras de escritorio. El lenguaje de programación C#, desarrollado en Microsoft, fue diseñado específicamente para la plataforma .NET como un lenguaje que permitiera a los programadores migrar fácilmente a .NET.
Internet y World Wide Web Internet (red global de computadoras) desarrollada hace más de cuatro décadas, patrocinada por el Departamento de Defensa de los Estados Unidos. En principio, conectaba los sistemas de cómputo principales de una docena de universidades y organizaciones de investigación, hoy día, es utilizada por cientos de millones de computadoras en todo el mundo.
Internet y World Wide Web World Wide Web permite a los usuarios de computadoras localizar y ver documentos basados en multimedia, sobre casi cualquier tema, a través de Internet. Con la introducción de WWW, Internet se ha convertido explosivamente en uno de los principales mecanismos de comunicación en todo el mundo. Internet y WWW se encuentran, entre las creaciones más importantes de la humanidad.
Pasos para editar y ejecutar un programa en Java
Elementos básicos del lenguaje Java Definición del método main: public static void main ( String  args [ ]  ) { } NOTA: Es obligatorio que los tipos de los parámetros de main y el tipo de resultado sean los mostrados arriba.
Tipos de datos Primitivos: byte, short, int, long, float, double, char, boolean Definidos por el usuario Se refiere a los nuevos tipos de objeto, llamados  clases
True & False Variable booleana boolean Caracter Unicode char 15 d.s.  10^(-324) a 10^308 Punto flotante, 64 bits double 6 dígitos significativos 10^(-46) a (10^38) Punto flotante, 32 bits float -(2^63) a (2^63)-1 Entero 64 bits long -2,147,483,648 a 2,147,483,647 Entero 32 bits int -32,768 a 32767 Entero 16 bits short -128 a 127 Entero 8 bits byte
Literales   Por default, una constante entera es de tipo int. Por default, una constate con decimales es double. Para cambiar estos default podemos hacer uso de las literales l y f. ejemplos : 123l, se cambia a long 23.8f, se cambia a float
Identificadores  Se usan para nombrar variables, constantes, métodos, clases, etc. Deben iniciar con letra (a-z, A-Z) Solo pueden contener letras, números, underline (_) y $ Pueden ser de cualquier longitud Se hace diferenciación entre mayúsculas y minúsculas
Estándares para identificadores  Por estándar, se utiliza la primera letra minúscula para nombres de métodos, variables y constantes. Por estándar, se utiliza la primera letra mayúscula para nombres de clases. Si el nombre esta compuesto por más de una palabra se recomienda se utilice mayúscula en la primera letra de cada una de las palabras (p.e. ImpuestoPredial, EmpleadoVentas).
Identificadores Ejemplos: Válidos no válidos Empleado  2004ventas x _area gastos2004 tu edad
Palabras clave while super new for continue volatile static native float class void short long finally char try return interface final catch throws public int extends case throw protected instanceof else byte this private import double break synchronized package implements do boolean switch null if default abstract
Secuencias de escape \n carácter de nueva línea \t tabulador horizontal \r retorno de carro \\ carácter de barra inclinada \’ carácter comilla simple \” carácter de dobles comillas \0 caracter nulo
Comentarios   /* Heredado de C */ // Heredado de C++
Constantes Son valores que no cambian mientras el programa está ejecutando. Ejemplos: e pi  velocidad de la luz aceleración debido a la gravedad
Constantes (cont.) Enteras: Se representan en notación decimal, octal o hexadecimal Para octales: prefijo 0 Para Hexadecimales: prefijo 0x Tipo carácter: Se encierran entre dos comillas simples (por ejemplo, ‘x’) Tipo cadena: Se encierran entre dobles comillas (por ejemplo, “cadena”)
Constantes (cont.) Un enfoque es escribir los valores directamente en el programa. Ejemplos: area  = 3.1416  * r * r ; energia  = masa * altura * 9.8f;
Constantes (cont.)  Otro enfoque es declarar tales números como variables que tienen un valor constante y asignarles un nombre. final  tipo_dato   constante  = valor; Ejemplo: final float g  = 9.8f; … . energia  = masa * altura * 9.8f;
Variables  ¿Qué es? Es un espacio en memoria que nos sirve para almacenar información. El tamaño de este espacio de memoria varía dependiendo de la información que se desea guardar, esto es, depende del tipo de dato con que se declare la variable. El nombre con que se referencia una variable sigue la regla para identificadores. Ver página 45
Declaración de variables  Tipo_dato  lista_de_variables; Donde lista_de_variables puede ser el nombre de una variable o una lista de variables separadas por comas. No se permite el uso de palabras reservadas ni reutilizar nombres de identificadores. Java es sensible a mayúsculas
Declaración de variables (cont.) Ejemplos: int num3; int x = 0, num2 = 5; int num1 = num2;
Operadores aritméticos  Aritm é ticos +   suma -   resta * multiplicación /   división %   residuo de la división ++ incremento en uno -- decremento en uno /  para datos enteros, regresa la parte entera del resultado Ver página 46
Operadores aritméticos(cont.) Ejemplos: 7 / 3 regresa 2 int x = 7/3; asigna a x un 2 double y = 7/3; asigna a y un 2.0 double y = 7/3.0; asigna a y un 2.333
Operadores relacionales y de igualdad  Relacionales: <  x > y x es mayor que y >  x < y x es menor que y <=  x <= y x es menor o igual que y >= x >= y x es mayor o igual que y De igualdad: == x == y x es igual a y != x != y x no es igual a y
Operadores lógicos(cont.) &&   AND condicional || OR condicional ! NOT lógico o negación lógica Ver página 167
Operadores de asignación Común: = Compuestos: +=,  -=,  *=,  /= Expresión equivale a expresión c  += a c = c + a Modifican el valor de la variable situada en el lado izquierdo del operador.
Prioridad de los operadores  Nivel operador asociatividad 1 !,--, ++,- (negativo),  +  (positivo)   de derecha a izquierda *, /, %   de izquierda a derecha +, -   de izquierda a derecha <, <=, >, >=   de izquierda a derecha ==, !=   de izquierda a derecha &&   de izquierda a derecha ||   de izquierda a derecha =,  +=, -=,*=, /=, %=  de derecha a izquierda
Expresiones  int a = 5; a = 5 b = 8  + a++; b = (8 + 5) = 13,  a = 6 c = 8  + ++a;  c = (8 + 7) = 15,  a = 7 Ver p ágina 46
Expresiones (ejercicios) Para las variables int a = 5, p = 6 y q = 3 y las variables double b, y r, evaluar las siguientes expresiones: r = 5 – 3 * 9 / 2  + ++p; b = 5 / 2  + --a; r = q++ -p - +2;
Conversiones de tipo (casting) Es un proceso que convierte un tipo de dato a otro tipo de dato. Tipos de casting: Implícito. Explícito.
Conversiones de tipo (cont.) Casting implícito: Se realiza de forma automática cuando un tipo de menor capacidad se asigna a un tipo de mayor capacidad, también llamado promoción numérica. byte - > short -> int -> long -> float -> double ejemplo: double  n; int  x = 7; n = 2.0 n = x / 3;
Conversiones de tipo (cont.) Casting explícito: Es necesario utilizar un operador de tipo cast. Ejemplo: double  n; int  a = 7; n = (double) a / 3; n = 2.333
Conversiones de tipo (cont.) int x = 6, y = 10; double cociente; Como solución se usaría la siguiente conversión de tipo: cociente = (double) x / y;
Ejercicios   ¿Cuál de las siguientes formas es la forma correcta de realizar el casting y por qué? a)   b) int n; int n; double x = 2.1; double x = 2.1; n = x; n = (int) x;
Funciones básicas (predefinidas) La clase  Math  proporciona una colección de métodos que le permitirán realizar cálculos matemáticos comunes. Para usar cualquiera de las funciones o constantes, la forma general de uso es la siguiente: variable = Math.función( parámetros);  variable = Math.constante; O usarse como argumento, como parte de una expresión,etc.
Funciones básicas (predefinidas, cont.) Ejemplos: y =  Math.sqrt( x )  *  x; y =  Math.PI   *  Math.pow( radio, 2 ); calcula(  Math.round(y) ,  20,  valor);
Funciones básicas (predefinidas) abs( x ) pow( x, y ) ceil( x ) sin( x ) cos( x ) sqrt( x ) exp( x ) tan( x ) floor( x ) log( x ) max( x, y ) min( x, y )   ver página 191
Funciones básicas predefinidas (cont.) Ejercicios: Para variables int i = 4 y j = 2, evalúa las siguientes funciones predefinidas: abs( i – 2 * j ) sqrt( i * i  + j * j ) pow( i, j )
Entrada y salida estándar Para leer y escribir de/en la consola se utiliza la clase  System . System.in : permite introducir datos del teclado. System.out : permite enviar datos a la pantalla
Escritura   Print  escribe y no brinca de l í nea Println  escribe y brinca de línea Nota : todo lo que se escribe se debe convertir a String
Primer programa ejemplo // Programa para imprimir texto en la pantalla public class Bienvenido1 { public static void main ( String args [] ) { System.out.println ( “ Bienvenido a la  programación en Java! ” ); } //fin de main } //fin de la class Bienvenido1
Outline Welcome4.java main printf Program  output System.out.print  despliega datos formateados en pantalla.
Lectura estándar Se leen datos desde el teclado. Utilice el compilador jdk1.5.0_04 Ver el siguiente ejemplo
Lectura est ándar Otra forma de dar entrada a datos desde el teclado es la siguiente: Use la clase BufferedReader y el método readLine() como se muestra a continuación:   Private BufferedReader teclado;   Teclado = new BufferedReader (new InputStreamReader(System.in,1); Nota : el 1 indica el tamaño del buffer (puede omitirse).
Lectura estándar Para leer la línea de datos, se utiliza: String  cadena = teclado.readLine();
import java.io.*;  //importa el paquete java.io public class nombre { public static void main(String args[]) throws IOException  //excepciones que lanza el método {   private BufferedReader teclado;    String nombre;  //declara una variable cadena     //se crea la conexión con el teclado   teclado = new BufferedReader(new InputStreamReader(System.in),1);   System.out.println( &quot;Cual es tu nombre?&quot;);   nombre = teclado.readLine();   System.out.print(&quot;Felicidades  &quot;);   System.out.print(nombre);   System.out.println(&quot; ! se leyo tu nombre del teclado&quot;);   System.out.println(&quot;Bye&quot;); } }
import java.io.*;  //importa el paquete java.io public class Cuadrado { public static void main(String args[]) throws IOException  //excepciones que lanza el método {   private BufferedReader teclado;    String nombre, dato;  //declara una variable cadena   float numero;     //se crea la conexión con el teclado   teclado = new BufferedReader(new InputStreamReader(System.in));   System.out.println( &quot;Cual es tu nombre?&quot;);   nombre = teclado.readLine();   System.out.println( “Dame un numero real (con punto decimal)&quot;);   dato = teclado.readLine();   //convertir el string a numero   numero = Float.parseFloat(dato);
  // se despliegan resultados     System.out.print(“El cuadrado del numero que  &quot;);   System.out.print(nombre);   System.out.println(&quot; tecleo es: “ + (numero * numero));   System.out.println(&quot;Bye&quot;); } }
Instrucciones condicionales
Instrucción if - else Estatuto  if   : if (condición)   instrucción uno; else   instrucción dos; Nota :  las instrucciones uno o dos pueden ser compuestas, en la forma {  inst 1;  …  inst n ; }
if simple También puede omitirse la parte else: if (condición) instrucción;
Operadores relacionales y de igualdad
Outline Comparison.java (1 of 2) 1. Class  Comparison 1.1  main 1.2 Declarations 1.3 Input data ( nextInt ) 1.4 Compare two inputs using if statements Al evaluarse la igualdad, despliega el resultado usando printf. Compara dos n ú meros usando  operador   relacional <.
Outline Comparison.java (2 of 2) Program output Compara dos números usando  operadores   relacionales >, <= y >=.
Errores comunes de programación Olvidar el paréntesis derecho/izquierdo en la condición del estatuto if. Confundir el operador de igualdad == con el operador de asignación =. Contener espacios en los operadores relacionales  ==, !=, >= y <= entre sus símbolos = =, ! =, > = y < =, respectivamente.
Errores comunes de programación Colocar al revés los operadores  !=, >= y <=, =!, => y =<. Colocar un punto y coma inmediatamente después del paréntesis derecho de la condición del estatuto if. Nota: todos estos son errores de compilación.
Instrucción switch switch (expresion) { case constante 1  :  sentencia 1 ; case constante 2  :  sentencia 2 ;   case constante n  :  sentencia n ;   default :  sentencia; }
Instrucción switch (cont.) switch (calif) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: System.out.println(“REPROBADO”); break; case 7: case 8: System.out.println(“ALUMNO REGULAR”); break; case 9: case 10: System.out.println(“ALUMNO EXCELENTE”); break; default: System.out.println(“CALIFICACION INVALIDA”); break; }
Notas generales La condici ón de un  if  debe estar dentro de paréntesis. Si el  if  o el else tienen varias sentencias, estos deben estar entre llaves {}. Todas las sentencias dentro del  if  o dentro del  else  deben ser seguidos por un punto y coma. La expresión a evaluar dentro de un  switch  debe de ser  int ,  char ,  short  o  byte . Es importante no olvidar la instrucción  break  en cada caso a trabajar dentro del  switch .
Instrucciones repetitivas ( ciclos )
Tipos de ciclos while for do-while
Ciclo while while ( condición ) instrucción; El cuerpo del ciclo while puede ser compuesto y para ello debe utilizar las llaves { inst 1 ; …; inst 2;   } Ver ejemplo:
Ciclo for for (inicialización; condicion; actualización) instrucción; Donde  instrucción  puede ser más de una instrucción encerradas entre llaves {}.

Java Ago Dic07

  • 1.
    PROGRAMACIÓN II ProgramaciónOrientada a Objetos con JAVA M.T. María Luisa Juárez Aguilar [email_address]
  • 2.
    Evaluación 20 % PROYECTO FINAL 4 3 2 1 10 % PRACTICAS 10 % LABORATORIO 60 % EXÁMENES PARCIALES
  • 3.
    Observaciones Para poder obtener el Promedio Final el alumno debe cumplir con los cuatro puntos anteriores de la evaluación. Para tener derecho de presentar el proyecto final el alumno debe cumplir con los puntos 1, 2 y 3 de la evaluación y obtener una calificación aprobatoria, de lo contrario, debe presentar su examen extraordinario en la fecha programada por el departamento escolar. La asistencia debe ser del 80% mínimo por parcial.
  • 4.
  • 5.
  • 6.
    Historia de JavaSun anunció formalmente a Java en 1995. Actualmente Java se utiliza para desarrollar aplicaciones empresariales a gran escala, para mejorar la funcionalidad de los servidores de WWW (las computadoras que proporcionan el contenido que vemos en nuestros navegadores Web), para proporcionar aplicaciones para los dispositivos domésticos (teléfonos celulares, radiolocalizadores y asistentes digitales personales) y para muchos otros propósitos.
  • 7.
    Historia de JavaEl JDK incluye herramientas para construcción de interfaces gráficas de usuario (GUI, Graphical User Interface ), trabajo en red e implantación de applets, pequeños programas de Java que agregan contenido dinámico a las páginas Web. La independencia de la plataforma es una razón importante del éxito de Java. Sus programas se compilan en códigos de bytes ( bytecodes ) y pueden ejecutarse en cualquier computadora con un intérprete o una máquina virtual de Java (JVM, Java Virtual Machine ), proporcionando un ambiente en tiempo de ejecución para ejecutar programas de Java.
  • 8.
    Historia de JavaJava es un nuevo lenguaje de programación orientado a objetos desarrollado por Sun Microsystems Descrito como: Simple, orientado a objetos, distribuido, interpretado, robusto, seguro, de arquitectura neutral, portable, de alto rendimiento, multitarea y dinámico.
  • 9.
    Características de JavaSimple: Elimina la complejidad de los lenguajes como &quot;C&quot;, mantiene las facilidades básicas de lenguaje en un mínimo y proporciona un gran número de extras con las librerías de clases. Orientado a objetos: Encapsulacion Herencia Polimorfismo Distribuido: Capacidades de interconexión TCP/IP, además de los protocolos http, ftp.
  • 10.
    Características de JavaRobusto: Busca errores en tiempo de compilación como en ejecución. El sistema de Java maneja la memoria de la computadora por lo que no es necesario reocuparse por apuntadores, memoria que no se esté utilizando, etc. Portable: Como el código compilado de Java (conocido como bytecode) es interpretado, un programa compilado de Java puede ser utilizado por cualquier computadora que tenga implementado el intérprete de Java.
  • 11.
    Características de JavaSeguro: El sistema de Java tiene ciertas políticas que evitan se puedan codificar virus con este lenguaje. Existen muchas restricciones, especialmente para los applets, que limitan lo que se puede y no puede hacer con los recursos críticos de una computadora. Arquitectura neutral: Compila su código a un archivo objeto de formato independiente.
  • 12.
    Características de JavaMultitarea: El lenguaje soporta la concurrencia a través de hilos, o sea que puede ejecutar varios procedimientos en paralelo. Dinámico: Java no requiere compilar todas las clases de un programa para que funcione, si se realiza una modificación a una clase, Java se encarga de encontrar cada clase.
  • 13.
    Otros lenguajes Altonivel: FORTRAN (FORmula TRANslator), COBOL (COmmon Business Oriented Language), Pascal , ADA , BASIC (Beginner ´s All-Purpose Symbolic Instruction Code, Código de instrucciones simbólicas de uso general para principiantes) .
  • 14.
    Otros lenguajes ANSIC , evolucionó de otros dos lenguajes, BCPL y B. L enguaje de desarrollo para el S.O. UNIX. En la actualidad todos los nuevos sistemas operativos importantes se escriben en C o C ++. C ++ evolucionó de C, proporciona un conjunto de características que “mejoran” a C pero lo más importante es que proporciona la capacidad de una programación orientada a objetos.
  • 15.
    Otros lenguajes VisualBasic, se introdujo para simplificar el desarrollo de aplicaciones para Microsoft Windows. Visual Basic.NET, diseñado para la nueva plataforma de programación de Microsoft: .NET ofrece una orientación a objetos mejorada, hace uso de la biblioteca .NET. Visual C ++ es una implementación de Microsoft de C++.
  • 16.
    Otros lenguajes .NETy C #, la plataforma .NET permite la distribución de aplicaciones basadas en Web a muchos dispositivos (incluso celulares) y computadoras de escritorio. El lenguaje de programación C#, desarrollado en Microsoft, fue diseñado específicamente para la plataforma .NET como un lenguaje que permitiera a los programadores migrar fácilmente a .NET.
  • 17.
    Internet y WorldWide Web Internet (red global de computadoras) desarrollada hace más de cuatro décadas, patrocinada por el Departamento de Defensa de los Estados Unidos. En principio, conectaba los sistemas de cómputo principales de una docena de universidades y organizaciones de investigación, hoy día, es utilizada por cientos de millones de computadoras en todo el mundo.
  • 18.
    Internet y WorldWide Web World Wide Web permite a los usuarios de computadoras localizar y ver documentos basados en multimedia, sobre casi cualquier tema, a través de Internet. Con la introducción de WWW, Internet se ha convertido explosivamente en uno de los principales mecanismos de comunicación en todo el mundo. Internet y WWW se encuentran, entre las creaciones más importantes de la humanidad.
  • 19.
    Pasos para editary ejecutar un programa en Java
  • 20.
    Elementos básicos dellenguaje Java Definición del método main: public static void main ( String args [ ] ) { } NOTA: Es obligatorio que los tipos de los parámetros de main y el tipo de resultado sean los mostrados arriba.
  • 21.
    Tipos de datosPrimitivos: byte, short, int, long, float, double, char, boolean Definidos por el usuario Se refiere a los nuevos tipos de objeto, llamados clases
  • 22.
    True & FalseVariable booleana boolean Caracter Unicode char 15 d.s. 10^(-324) a 10^308 Punto flotante, 64 bits double 6 dígitos significativos 10^(-46) a (10^38) Punto flotante, 32 bits float -(2^63) a (2^63)-1 Entero 64 bits long -2,147,483,648 a 2,147,483,647 Entero 32 bits int -32,768 a 32767 Entero 16 bits short -128 a 127 Entero 8 bits byte
  • 23.
    Literales Por default, una constante entera es de tipo int. Por default, una constate con decimales es double. Para cambiar estos default podemos hacer uso de las literales l y f. ejemplos : 123l, se cambia a long 23.8f, se cambia a float
  • 24.
    Identificadores Seusan para nombrar variables, constantes, métodos, clases, etc. Deben iniciar con letra (a-z, A-Z) Solo pueden contener letras, números, underline (_) y $ Pueden ser de cualquier longitud Se hace diferenciación entre mayúsculas y minúsculas
  • 25.
    Estándares para identificadores Por estándar, se utiliza la primera letra minúscula para nombres de métodos, variables y constantes. Por estándar, se utiliza la primera letra mayúscula para nombres de clases. Si el nombre esta compuesto por más de una palabra se recomienda se utilice mayúscula en la primera letra de cada una de las palabras (p.e. ImpuestoPredial, EmpleadoVentas).
  • 26.
    Identificadores Ejemplos: Válidosno válidos Empleado 2004ventas x _area gastos2004 tu edad
  • 27.
    Palabras clave whilesuper new for continue volatile static native float class void short long finally char try return interface final catch throws public int extends case throw protected instanceof else byte this private import double break synchronized package implements do boolean switch null if default abstract
  • 28.
    Secuencias de escape\n carácter de nueva línea \t tabulador horizontal \r retorno de carro \\ carácter de barra inclinada \’ carácter comilla simple \” carácter de dobles comillas \0 caracter nulo
  • 29.
    Comentarios /* Heredado de C */ // Heredado de C++
  • 30.
    Constantes Son valoresque no cambian mientras el programa está ejecutando. Ejemplos: e pi velocidad de la luz aceleración debido a la gravedad
  • 31.
    Constantes (cont.) Enteras:Se representan en notación decimal, octal o hexadecimal Para octales: prefijo 0 Para Hexadecimales: prefijo 0x Tipo carácter: Se encierran entre dos comillas simples (por ejemplo, ‘x’) Tipo cadena: Se encierran entre dobles comillas (por ejemplo, “cadena”)
  • 32.
    Constantes (cont.) Unenfoque es escribir los valores directamente en el programa. Ejemplos: area = 3.1416 * r * r ; energia = masa * altura * 9.8f;
  • 33.
    Constantes (cont.) Otro enfoque es declarar tales números como variables que tienen un valor constante y asignarles un nombre. final tipo_dato constante = valor; Ejemplo: final float g = 9.8f; … . energia = masa * altura * 9.8f;
  • 34.
    Variables ¿Quées? Es un espacio en memoria que nos sirve para almacenar información. El tamaño de este espacio de memoria varía dependiendo de la información que se desea guardar, esto es, depende del tipo de dato con que se declare la variable. El nombre con que se referencia una variable sigue la regla para identificadores. Ver página 45
  • 35.
    Declaración de variables Tipo_dato lista_de_variables; Donde lista_de_variables puede ser el nombre de una variable o una lista de variables separadas por comas. No se permite el uso de palabras reservadas ni reutilizar nombres de identificadores. Java es sensible a mayúsculas
  • 36.
    Declaración de variables(cont.) Ejemplos: int num3; int x = 0, num2 = 5; int num1 = num2;
  • 37.
    Operadores aritméticos Aritm é ticos + suma - resta * multiplicación / división % residuo de la división ++ incremento en uno -- decremento en uno / para datos enteros, regresa la parte entera del resultado Ver página 46
  • 38.
    Operadores aritméticos(cont.) Ejemplos:7 / 3 regresa 2 int x = 7/3; asigna a x un 2 double y = 7/3; asigna a y un 2.0 double y = 7/3.0; asigna a y un 2.333
  • 39.
    Operadores relacionales yde igualdad Relacionales: < x > y x es mayor que y > x < y x es menor que y <= x <= y x es menor o igual que y >= x >= y x es mayor o igual que y De igualdad: == x == y x es igual a y != x != y x no es igual a y
  • 40.
    Operadores lógicos(cont.) && AND condicional || OR condicional ! NOT lógico o negación lógica Ver página 167
  • 41.
    Operadores de asignaciónComún: = Compuestos: +=, -=, *=, /= Expresión equivale a expresión c += a c = c + a Modifican el valor de la variable situada en el lado izquierdo del operador.
  • 42.
    Prioridad de losoperadores Nivel operador asociatividad 1 !,--, ++,- (negativo), + (positivo) de derecha a izquierda *, /, % de izquierda a derecha +, - de izquierda a derecha <, <=, >, >= de izquierda a derecha ==, != de izquierda a derecha && de izquierda a derecha || de izquierda a derecha =, +=, -=,*=, /=, %= de derecha a izquierda
  • 43.
    Expresiones inta = 5; a = 5 b = 8 + a++; b = (8 + 5) = 13, a = 6 c = 8 + ++a; c = (8 + 7) = 15, a = 7 Ver p ágina 46
  • 44.
    Expresiones (ejercicios) Paralas variables int a = 5, p = 6 y q = 3 y las variables double b, y r, evaluar las siguientes expresiones: r = 5 – 3 * 9 / 2 + ++p; b = 5 / 2 + --a; r = q++ -p - +2;
  • 45.
    Conversiones de tipo(casting) Es un proceso que convierte un tipo de dato a otro tipo de dato. Tipos de casting: Implícito. Explícito.
  • 46.
    Conversiones de tipo(cont.) Casting implícito: Se realiza de forma automática cuando un tipo de menor capacidad se asigna a un tipo de mayor capacidad, también llamado promoción numérica. byte - > short -> int -> long -> float -> double ejemplo: double n; int x = 7; n = 2.0 n = x / 3;
  • 47.
    Conversiones de tipo(cont.) Casting explícito: Es necesario utilizar un operador de tipo cast. Ejemplo: double n; int a = 7; n = (double) a / 3; n = 2.333
  • 48.
    Conversiones de tipo(cont.) int x = 6, y = 10; double cociente; Como solución se usaría la siguiente conversión de tipo: cociente = (double) x / y;
  • 49.
    Ejercicios ¿Cuál de las siguientes formas es la forma correcta de realizar el casting y por qué? a) b) int n; int n; double x = 2.1; double x = 2.1; n = x; n = (int) x;
  • 50.
    Funciones básicas (predefinidas)La clase Math proporciona una colección de métodos que le permitirán realizar cálculos matemáticos comunes. Para usar cualquiera de las funciones o constantes, la forma general de uso es la siguiente: variable = Math.función( parámetros); variable = Math.constante; O usarse como argumento, como parte de una expresión,etc.
  • 51.
    Funciones básicas (predefinidas,cont.) Ejemplos: y = Math.sqrt( x ) * x; y = Math.PI * Math.pow( radio, 2 ); calcula( Math.round(y) , 20, valor);
  • 52.
    Funciones básicas (predefinidas)abs( x ) pow( x, y ) ceil( x ) sin( x ) cos( x ) sqrt( x ) exp( x ) tan( x ) floor( x ) log( x ) max( x, y ) min( x, y ) ver página 191
  • 53.
    Funciones básicas predefinidas(cont.) Ejercicios: Para variables int i = 4 y j = 2, evalúa las siguientes funciones predefinidas: abs( i – 2 * j ) sqrt( i * i + j * j ) pow( i, j )
  • 54.
    Entrada y salidaestándar Para leer y escribir de/en la consola se utiliza la clase System . System.in : permite introducir datos del teclado. System.out : permite enviar datos a la pantalla
  • 55.
    Escritura Print escribe y no brinca de l í nea Println escribe y brinca de línea Nota : todo lo que se escribe se debe convertir a String
  • 56.
    Primer programa ejemplo// Programa para imprimir texto en la pantalla public class Bienvenido1 { public static void main ( String args [] ) { System.out.println ( “ Bienvenido a la programación en Java! ” ); } //fin de main } //fin de la class Bienvenido1
  • 57.
    Outline Welcome4.java mainprintf Program output System.out.print despliega datos formateados en pantalla.
  • 58.
    Lectura estándar Seleen datos desde el teclado. Utilice el compilador jdk1.5.0_04 Ver el siguiente ejemplo
  • 59.
    Lectura est ándarOtra forma de dar entrada a datos desde el teclado es la siguiente: Use la clase BufferedReader y el método readLine() como se muestra a continuación: Private BufferedReader teclado; Teclado = new BufferedReader (new InputStreamReader(System.in,1); Nota : el 1 indica el tamaño del buffer (puede omitirse).
  • 60.
    Lectura estándar Paraleer la línea de datos, se utiliza: String cadena = teclado.readLine();
  • 61.
    import java.io.*; //importa el paquete java.io public class nombre { public static void main(String args[]) throws IOException //excepciones que lanza el método { private BufferedReader teclado; String nombre; //declara una variable cadena //se crea la conexión con el teclado teclado = new BufferedReader(new InputStreamReader(System.in),1); System.out.println( &quot;Cual es tu nombre?&quot;); nombre = teclado.readLine(); System.out.print(&quot;Felicidades &quot;); System.out.print(nombre); System.out.println(&quot; ! se leyo tu nombre del teclado&quot;); System.out.println(&quot;Bye&quot;); } }
  • 62.
    import java.io.*; //importa el paquete java.io public class Cuadrado { public static void main(String args[]) throws IOException //excepciones que lanza el método { private BufferedReader teclado; String nombre, dato; //declara una variable cadena float numero; //se crea la conexión con el teclado teclado = new BufferedReader(new InputStreamReader(System.in)); System.out.println( &quot;Cual es tu nombre?&quot;); nombre = teclado.readLine(); System.out.println( “Dame un numero real (con punto decimal)&quot;); dato = teclado.readLine(); //convertir el string a numero numero = Float.parseFloat(dato);
  • 63.
    //se despliegan resultados System.out.print(“El cuadrado del numero que &quot;); System.out.print(nombre); System.out.println(&quot; tecleo es: “ + (numero * numero)); System.out.println(&quot;Bye&quot;); } }
  • 64.
  • 65.
    Instrucción if -else Estatuto if : if (condición) instrucción uno; else instrucción dos; Nota : las instrucciones uno o dos pueden ser compuestas, en la forma { inst 1; … inst n ; }
  • 66.
    if simple Tambiénpuede omitirse la parte else: if (condición) instrucción;
  • 67.
  • 68.
    Outline Comparison.java (1of 2) 1. Class Comparison 1.1 main 1.2 Declarations 1.3 Input data ( nextInt ) 1.4 Compare two inputs using if statements Al evaluarse la igualdad, despliega el resultado usando printf. Compara dos n ú meros usando operador relacional <.
  • 69.
    Outline Comparison.java (2of 2) Program output Compara dos números usando operadores relacionales >, <= y >=.
  • 70.
    Errores comunes deprogramación Olvidar el paréntesis derecho/izquierdo en la condición del estatuto if. Confundir el operador de igualdad == con el operador de asignación =. Contener espacios en los operadores relacionales ==, !=, >= y <= entre sus símbolos = =, ! =, > = y < =, respectivamente.
  • 71.
    Errores comunes deprogramación Colocar al revés los operadores !=, >= y <=, =!, => y =<. Colocar un punto y coma inmediatamente después del paréntesis derecho de la condición del estatuto if. Nota: todos estos son errores de compilación.
  • 72.
    Instrucción switch switch(expresion) { case constante 1 : sentencia 1 ; case constante 2 : sentencia 2 ; case constante n : sentencia n ; default : sentencia; }
  • 73.
    Instrucción switch (cont.)switch (calif) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: System.out.println(“REPROBADO”); break; case 7: case 8: System.out.println(“ALUMNO REGULAR”); break; case 9: case 10: System.out.println(“ALUMNO EXCELENTE”); break; default: System.out.println(“CALIFICACION INVALIDA”); break; }
  • 74.
    Notas generales Lacondici ón de un if debe estar dentro de paréntesis. Si el if o el else tienen varias sentencias, estos deben estar entre llaves {}. Todas las sentencias dentro del if o dentro del else deben ser seguidos por un punto y coma. La expresión a evaluar dentro de un switch debe de ser int , char , short o byte . Es importante no olvidar la instrucción break en cada caso a trabajar dentro del switch .
  • 75.
  • 76.
    Tipos de cicloswhile for do-while
  • 77.
    Ciclo while while( condición ) instrucción; El cuerpo del ciclo while puede ser compuesto y para ello debe utilizar las llaves { inst 1 ; …; inst 2; } Ver ejemplo:
  • 78.
    Ciclo for for(inicialización; condicion; actualización) instrucción; Donde instrucción puede ser más de una instrucción encerradas entre llaves {}.