1. Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 1
Maestría en Sistemas Computacionales
Materia
TECNOLOGÍAS DE PROGRAMACIÓN
Capítulo
1.Introducción a Java
(Segunda parte)
semestre agosto – diciembre 2012
Instituto Tecnológico de la Laguna
División de Estudios de Posgrado e Investigación
2. Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 2
• Plataforma de desarrollo.
• Descripción de los diversos tipos de
aplicaciones.
• Tipos de Datos Primitivos y Estatutos de
Control.
1.1. Introducción a Java.Introducción a Java.
Contenido
3. Plataforma de desarrollo.
Herramientas de desarrollo de Java (JDK Java
Development Kit)
Java SDK (Software Development Kit) o JDK para
las versiones 1.2 -1.4
J2SE (Java 2 Standard Edition):Java 2 Standard
Edition Development Kit versión 5.0 o J2SE
5.0.
J2EE (Java 2 Entrerprise Edition)
J2ME (Java 2 Micro Edition)
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 3
4. Entornos Integrados de Desarrollo
Eclipse
http://www.eclipse.org
NetBeans
http://www.netbeans.org
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 4
5. Tipos de aplicaciones
Aplicaciones de Java
Modo consola
Interfaces Graficas de Usuario
Applets: Son aplicaciones que se
ejecutan desde un navegador.
Servlets: son módulos escritos en
Java que se utilizan en un servidor,
que puede ser o no ser servidor web.
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 5
6. Toda aplicación de Java debe
tener:
Public class NombreClase
{
public static void main(String[] args)
{
sentencias del programa
}
}
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 6
7. Comentarios
class HolaMundo
{
/*
* Punto de entrada a la aplicación.
*
* args: matriz de parámetros pasados a la aplicación
* mediante la línea de órdenes. Puede estar vacía.
*/
public static void main (String[] args)
{
System.out.println("Hola mundo!!!"); //muestra el letrero
}
}
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 7
8. Tipos de datos enteros
Tipo de datos
enteros
Requisitos de
almacenamient
o
Rango
int 4 bytes -2,147,483,648 a
2,147,483,647
Short 2 bytes -32,768 a 32,767
Long 8 bytes -9,223,372,036,854,775,808
a
9,223,372,036,854,775,807
Bye 1 byte -128 a 127
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 8
9. Tipos de datos de coma flotante
Tipo de coma
flotante
Requisitos de
almacenamiento
Rango
float 4 bytes ±3.40282347e+38F
(6-7 cifras significativas)
double 8 bytes ±1.79769313486231570E+308
(15 cifras decimales
significativas)
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 9
Desbordamientos y errores:
•Infinito positivo: numero positivo/0
•Infinito negativo: número negativo /0
•NaN (no es un número): 0/0 o la raíz cuadrada
de un número negativo
10. Tipo Char
Emplea el método de codificación
UNICODE.
UNICODE utiliza 16 bits para
representar un carácter.
En Java, el tipo char describe una
unidad de código con la codificación
UTF-16.
‘A’ es diferente a “A”.
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 10
11. Tipo boolean
Tiene dos valores posibles: false o
true.
No se pueden hacer conversiones
entre valores enteros y boolean.
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 11
12. Variables
Todas las variables tienen un tipo:
tipo nombreVariable;
double sueldo;
int diasVacaciones;
long poblacionTerrestre;
boolean hecho;
int i, j; // ambos son enteros
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 12
13. Variables
Iniciación de variables.
int diasVacaciones;
diasVacaciones = 12;
int diasVacaciones = 12;
En Java, se considera buen estilo
declarar las variables tan cerca del lugar
en que se utilicen por primera vez como
sea posible.
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 13
14. Constantes
En Java, para denotar una constante se emplea la
palabra reservada final.
public class Constantes
{
public class static void main(String[] args)
{
final double CM_POR_PULGADA = 2.54;
double anchuraPapel = 8.5;
double longitudPapel = 11;
System.out.println(“Tamaño del papel en centimetros: ¨ +
anchuraPapel * CM_POR_PULGADA + “ por “ + longitudPapel *
CM_POR_PULGADA);
}
}
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 14
15. Constantes
En Java, para denotar una constante de clase se
emplea las palabras reservadas static final.
public class Constantes2
{
public class static void main(String[] args)
{
double anchuraPapel = 8.5;
double longitudPapel = 11;
System.out.println(“Tamaño del papel en centimetros: ¨ +
anchuraPapel * CM_POR_PULGADA + “ por “ + longitudPapel *
CM_POR_PULGADA);
}
public static final double CM_POR_PULGADA = 2.54;
}
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 15
16. Operadores aritméticos
Operadores aritméticos: suma +,
resta -, multiplicación *, división / y
modulo %.
La división entera por cero da lugar a
una excepción, mientras que la
división de coma flotante por cero
produce un resultado infinito o NaN.
Ejemplo: x = x + 4 ó x +=4
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 16
17. Operadores incremento y decremento
Sufijo:
int n = 12;
n++;
Prefijo:
int n = 12;
++n;
Ejemplo:
int m = 7;
int n = 7;
int a = 2*++m; //ahora a es 16 y m es 8
int b = 2*n++; // ahora b es 14 y n es 8
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 17
18. Operadores relacionales y
booleanos
Operadores relacionales: menor <,
mayor >, menor o igual que <=,
mayor o igual que >=, igual ==, no
igual que !=.
Operadores booleanos: not “no” !,
and “y lógico” && y or “o lógico” ||.
Se evalúan por corto circuito.
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 18
19. Operador ternario ?
condición ? expresión1: expresión2
Si el valor de la evaluación de la
condición es true produce como
resultado la primera expresión, y el
valor de la segunda expresión en caso
contrario. Ejemplo:
x<y?x:y
produce el menor de los valores x e y.
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 19
20. Operadores de bits
Son operadores que trabajan con los
tipos de datos enteros.
Los operadores lógicos de bits son:
& (“y”)| (“o”) ^ (“xor”) - (“not”)
Otros operadores, que desplazan
tramas de bits hacía la izquierda
(<<) o hacía la derecha (>>).
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 20
21. Funciones y constantes matemáticas
Clase Math
Raíz cuadrada
double x = 4
double y = Math.sqrt(x);
System.out.println(y); // imprime 2.0
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 21
22. Elevar un número a una potencia:
double y =Math.pow(x,a);
Funciones trigonométricas:
Math.sin Math.tan
Math.cos Math.atan Math.atan2
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 22
24. Conversiones entre tipos numéricos
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 24
char
byte short int long
float double
Conversión sin
Pérdida de información
Conversión con
Pérdida de precisión.
Ejemplo:
int n = 123456789;
float f = n;
// f es 1.23456792E8
25. Cuando se combinan dos valores mediante
un operador binario:
Si alguno de los operadores es de tipo
double, el otro se traducirá a double.
En caso contrario, si alguno de los
operadores es de tipo float, el otro se
traducirá a float.
En caso contrario, si alguno de los
operadores es de tipo long, el otro se
traducirá long.
En caso contrario, ambos operadores se
traducirán a int.
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 25
26. Cast: conversión de tipos.
Cuando utilizamos el “cast” se puede
perder información.
La sintáxis del cast consiste en dar el
tipo de destino entre paréntesis,
poniendo después el nombre de la
variable.
Por ejemplo:
double x = 9.997;
int nx = (int)x; // nx tiene el valor de 9
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 26
27. Prioridad de operadoresOperadores Asociatividad
[].() (llamada a método) De izquierda a derecha
!~++--+(unario)-(unario)()(cast) new De derecha a izquierda
* / % De izquierda a derecha
+ - De izquierda a derecha
<< >> >>> De izquierda a derecha
< <= > >= instanceof 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 izquierda a derecha
?: De derecha a izquierda
= += -= *= /= %= &= |= ^= <<= >>= >>= De derecha a izquierda
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 27
28. Tipos enumerados
A partir del JDK 5.0 se pueden definir
tipos de datos enumerados:
enum talla {PEQUEÑA, MEDIANA, GRANDE, EXTRA_GRANDE};
talla s = talla.PEQUEÑA;
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 28
29. Cadenas
Clase estándar predefinida String.
String e =“”; // cadena vacía
String saludo = “hola”;
Método length
int n = saludo.length(); // n toma el valor de 4
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 29
30. La llamada saludo.charAt(n)
propociona la unidad de código que
se encuentra en la posición n, n está
entre 0 y saludo.length()-1.
char primero= saludo.charAt(0);// la primera es h
char ultimo = saludo.charAt(3); // la última es a
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 30
31. Subcadenas
Para extraer una subcadena de una cadena
más larga:
String saludo = “hola a todos”;
String s = saludo.substring(0,6);
Crea una cadena formada por los caracteres
“hola a”.
Modificar subcadenas:
saludo = saludo.substring(0,2)+”y!”;
Modifica el valor actual de saludo a “hoy!”;
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 31
32. Concatenación
Java permite emplear el signo + para
unir (concatenar) cadenas:
String mensaje1 = “no recomendada para”;
String mensaje2 = “menores de edad”;
String mensaje = mensaje1+mensaje2;
int edad = 13;
String recom= “no recomendada para menores de “ + edad;
System.out.println(“No recomendado para menores de “ + edad);
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 32
33. Igualdad de cadenas
Para comparar si dos cadenas son
iguales, utilice el método equals.
s.equals(t)
Proporciona true si las cadenas s y t
son iguales, y false en caso contrario.
También se puede comparar:
“Hola”.equalsIgnoreCase(“hola”)
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 33
34. Entrada y Salida
Flujo de salida estándar:
System.out
System.out.println(“Hola a todos”);
Flujo de entrada estándar:
System.in
Scanner entrada = new Scanner(System.in);
System.out.println(“¿Cómo te llamas? ”);
String nombre = entrada.nextLine();
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 34
35. Para leer una sola palabra:
String nombrePila = entrada.next();
Para leer un entero:
System.out.println(“¿Cuántos años tienes?”);
int edad = entrada.nextInt();
Análogamente, para leer un double se emplea nextDouble().
La clase Scanner está definida en el paquete java.util.
Siempre que se use una clase que no está definida en
java.lang es preciso utilizar el import al principio del
programa.
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 35
37. Fuente de información
Core JAVA Volumen I. Fundamentos
Cay S. Horstmann, Gary Cornell
Pearson Educación, 2006
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 37
38. Nina Martell Neira
nmartellneira@gmail.com
Verónica Amezcua Magallón
veroamezcua@hotmail.com
Carlos Barker del Río
car_barker@yahoo.com.mx
Lina Ernestina Arias Hernández Instituto Tecnológico de la Laguna 38