Factores ecosistemas: interacciones, energia y dinamica
Programación en Java (y II)
1. Desarrollo de Funciones en el Sistema Informático
Curso 2009/2010
Programación en Java (II)
Presentación en diapositivas (PRE08)
2. Desarrollo de Funciones en el Sistema Informático
Curso 2009/2010
Diferencias entre C++ y Java
Aunque Java se basa en C++ ...
● Intenta mejorarlo en muchos aspectos
● Elimina la “no orientación a objetos”
Entrada/salida
● Java está pensado para trabajar de forma gráfica
● La entrada/salida en modo texto se gestiona de manera básica
● Gestión de entrada/salida con la clase System (librería java.lang)
3. Desarrollo de Funciones en el Sistema Informático
Curso 2009/2010
Entrada/salida
Destacan 3 objetos (clase System):
● System.in. Entrada estándar (normalmente el teclado)
● System.out. Salida estándar (normalmente la pantalla)
● System.err. Mensajes de error (normalmente la pantalla)
Métodos básicos de los anteriores objetos:
● System.in.read(). Lee un carácter y lo devuelve como entero
● System.out.print(var). Imprime una variable de un tipo primitivo
● System.out.println(var). Como el anterior junto a un salto de línea
4. Desarrollo de Funciones en el Sistema Informático
Curso 2009/2010
Entrada/salida
La salida de datos es bastante natural... pero la entrada NO lo es
Ejemplo (salida):
int unEntero = 3;
System.out.println (“El número entero es ” + unEntero);
Gráficamente:
System.out
System.out.println(); (int) Consola
Ejemplo (entrada):
InputStreamReader unIsr = new InputStreamReader (System.in);
BufferedReader unBr = new BufferedReader (unIsr);
String unString;
unString = unBr.readLine();
Gráficamente:
BufferedReader InputStreamReader System.in
unBr.readLine(); (String) (int) (byte) Teclado
5. Desarrollo de Funciones en el Sistema Informático
Curso 2009/2010
El preprocesador
Java no tiene preprocesador. Se eliminan las instrucciones:
●
defines. En Java, las constantes se declaran como variables final.
● include. En Java, las librerías (paquetes) se incluyen con import.
6. Desarrollo de Funciones en el Sistema Informático
Curso 2009/2010
La declaración de variables y constantes
VARIABLES
La declaración ES IGUAL en Java que en C++
CONSTANTES
La declaración CAMBIA de la siguiente forma:
● Antecede a la declaración la palabra reservada final
●
No es necesario asignar un valor en el momento de la declaración
● Una vez asignado un valor, ya no puede ser modificado
Ejemplo:
final int i; // declaramos la constante i sin asignar ningún valor
int j = 5;
…
i = j + 1; // en este momento asignamos un valor a i, por tanto ya no se podrá modificar
7. Desarrollo de Funciones en el Sistema Informático
Curso 2009/2010
Los tipos de datos (I)
2 tipos:
● Tipos de datos primitivos. Contiene el valor
Ejemplo:
int unInt;
Gráficamente:
unInt (int)
● Tipos de datos referencias. Contiene la dirección de memoria
Ejemplo:
int[] unArrayDeInt;
Gráficamente:
unArrayDeInt
null (al reservar memoria se apuntará a valores int)
8. Desarrollo de Funciones en el Sistema Informático
Curso 2009/2010
Los tipos de datos (II)
Tipos primitivos:
● byte
● short
● int El tamaño es el mismo, no importa la plataforma
● long No existe el especificador unsigned
● float
● double
● char Utiliza Unicode (16 bits). 0-127 igual que ASCII
● boolean
Si no se inicializa una variable, Java lo hace automáticamente.
9. Desarrollo de Funciones en el Sistema Informático
Curso 2009/2010
Los tipos de datos (III)
Tipos referencia:
●
Vectores
● Clases Puede asimilarse a los punteros de otros lenguajes,
● Interfaces pero para acceder basta con utilizar su nombre
Se han eliminado:
● struct Se pueden implementar con class
● union
● enum Se puede emular con final
● typedef
10. Desarrollo de Funciones en el Sistema Informático
Curso 2009/2010
Los tipos de datos (y IV)
CASTING
Sólo se permiten coerciones automáticas seguras:
Ejemplo:
int a float
float a int (se debería indicar explícitamente)
VECTORES
● Se tratan como objetos reales
●
Genera un error (excepción) cuando se superan los límites
●
Dispone de un miembro length que indica su longitud
CADENAS DE CARACTERES
Java dispone de los tipos String (estático) y StringBuffer (dinámico).
11. Desarrollo de Funciones en el Sistema Informático
Curso 2009/2010
La gestión de variables dinámicas
USO DE PUNTEROS EN C/C++ EN JAVA NO SON NECESARIOS
cadenas y vectores Proporciona objetos de ambos casos
paso de parámetros por variable Utiliza referencias
TRABAJO PUNTEROS EN C++ LAS OPERACIONES SE REALIZAN
Con su dirección (puntero) referencia es diferente a puntero
Con su contenido (*puntero) puntero=contenido, nuevo=new, asignación<>duplicación
LIBERAR MEMORIA EN C++ LIBERAR MEMORIA EN JAVA
delete se realiza automáticamente con:
recolector de basura (garbage collector)
basta con asignar la referencia a null
12. Desarrollo de Funciones en el Sistema Informático
Curso 2009/2010
Las funciones y el paso de parámetros
En Java... sólo se permite programación orientada a objetos:
funciones independientes (se incluirán dentro de las clases)
funciones globales
En Java... todos los parámetros se pasan por valor:
●
Datos primitivos. Recibe una copia del valor original, no modificable
●
Datos referencia. Recibe una copia del valor original, modificable
NOTA:
Si se desea modificar los parámetros, se debe incluir como variables
miembro de la clase y pasar la referencia como argumento
13. Desarrollo de Funciones en el Sistema Informático
Curso 2009/2010
Programación en Java (II)
Presentación en diapositivas (PRE08)
Esta obra de Cristian Jorge Garcia Marcos está bajo una licencia Reconocimiento-Compartir bajo la misma licencia 3.0 España de Creative Commons.
Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-sa/3.0/es/ o envíe una carta a Creative Commons, 171
SecondStreet, Suite 300, San Francisco, California 94105, USA
Basado en el documento:
López, J. A. P., Xirgo, L. R. (2008, February 18). Introducción al desarrollo de software. Retrieved February 25, 2010, from UOCOpenCourseWare Web site: http://ocw.uoc.edu/informatica-
tecnologia-y-multimedia/introduccion-al-desarrollo-de-software, publicado bajo una licencia GNU Free Document License.