Вы находитесь на странице: 1из 29

Tema 2:

Fundamentos de
Introduccin a
Porogramacin II
Java

Elementos principales del


lenguaje Java
Objetivos y contenido
Objetivos:
Recordar conceptos bsicos de programacin que ya se vieron en la
FP I (Lenguaje C), y relacionarlos con Java.
Conocer las principales particularidades del lenguaje Java.
Ver elementos principales de Java: tipos de datos, clases,
restricciones lxicas, variables.

Contenido:
1) Historia de Java
2) Ejecucin de Java
3) Elementos de desarrollo de Java
4) Elementos de un programa de Java
5) Tipos en Java
6) Variables y expresiones

FPII curso 2016/2017 M. Alonso & J. Flores Tema 2 - 2


Historia de Java
Java es un lenguaje de programacin de propsito general orientado a objetos,
desarrollado por Sun Microsystems de EE.UU. en 1991.
Originalmente se llam Oak (roble) por James Gosling (uno de los inventores del
lenguaje). Java fue inventado para el desarrollo de software para electrnica de
consumo, dispositivos como televisores, tostadoras, etc. El objetivo principal:
simple, porttil y fiable.
A partir de 1993 empieza el auge de los navegadores o browsers (Mosaic), y Sun
desarrolla HotJava usando Oak, que pas a llamarse Java (1995). Empieza a tener
gran aceptacin, sobre todo por la decisin de distribuirlo gratuitamente. Se
desarrollan aplicaciones que se distribuyen y ejecutan en los navegadores (applets).
Aparece as un nuevo lenguaje de propsito general, que empieza a competir
fuertemente con otros lenguajes similares, como C, Pascal, Ada, ...

FPII curso 2016/2017 M. Alonso & J. Flores Tema 2 - 3


Historia de Java II

FPII curso 2016/2017 M. Alonso & J. Flores Tema 2 - 4


Historia de Java iii: principios bsicos

Ms detalle en:
https://es.wikibooks.org/wiki/Programacin_en_Java/Caractersticas_del_lenguaje
http://ei.cs.vt.edu/~history/Youmans.Java.html

FPII curso 2016/2017 M. Alonso & J. Flores Tema 2 - 5


Ejecucin de Java
Java es un lenguaje interpretado. Se compila a un cdigo intermedio o bytecode.
Tras la edicin del cdigo hay una fase de compilacin (traduccin a un cdigo
estndar, bytecode), y otra de interpretacin (ejecucin de dicho cdigo).
El cdigo de bytes de Java no puede ser ejecutado directamente en el hardware
como lo hace el cdigo compilado en C. E interpretado por la mquina virtual de
Java (JVM).
De esta forma, los programas compilados no dependen del computador ni del
sistema operativo donde se ejecuten, siempre que cada uno disponga de su
propia mquina virtual (JVM).

FPII curso 2016/2017 M. Alonso & J. Flores Tema 2 - 6


Ejecucin de Java ii

FPII curso 2016/2017 M. Alonso & J. Flores Tema 2 - 7


Ejecucin de Java iii: pasos bsicos

FPII curso 2016/2017 M. Alonso & J. Flores Tema 2 - 8


Elementos de desarrollo de Java
JDK (Java Development Kit)
El kit de desarrollo de Java es una implementacin de Java SE, plataformas Java EE
o Java ME, lanzado por Oracle Corporation en forma de un producto binario
dirigido a los desarrolladores de Java en Solaris, Linux, Mac OS X o Windows.
Se integra normalmente en un IDE (Entorno de desarrollo integrado), como
NetBeans.
Contiene una coleccin de herramientas:
javac: Compilador del lenguaje Java (Java Bytecode).
java: Intrprete de Java para invocacin directa (Bytecode Ejecucin).
jdb: Depurador del lenguaje Java.
javah: Proporciona conectividad entre cdigo Java y cdigo escrito en C.
javap: Desensambla ficheros Java compilados (Bytecode Java).
javadoc: Genera documentacin en formato HTML para el cdigo Java
(Java html).
jar: Crea y administra archivos JAR (Java ARchive) (comprimido para distribuir
programas y libreras).
appletviewer: Permite ejecutar applets sin un navegador web.

FPII curso 2016/2017 M. Alonso & J. Flores Tema 2 - 9


Elementos de desarrollo de Java ii
JRE (Java Runtime Environment)
El entorno de ejecucin de Java es lo que se obtiene cuando se
descarga el software de Java.
El JRE consiste en la mquina virtual de Java (JVM), las clases bsicas
de la plataforma de Java, y el soporte a libreras de la plataforma de
Java.
El JRE es la parte de ejecucin del software de Java, que es todo lo que
necesitamos para funcionar en nuestro navegador web.
JRE es parte del kit de desarrollo de Java (JDK), pero se puede
descargar por separado.

FPII curso 2016/2017 M. Alonso & J. Flores Tema 2 - 10


Elementos de desarrollo de Java ii
API (Application Programming Interfaces):
Bibliotecas o conjunto de clases con utilidades para ser usadas
en otros programas. Se organizan en paquetes de clases
relacionadas.
En programacin, una interfaz de programacin de
aplicaciones (API) es una interfaz que define las formas en que
un programa de aplicacin puede solicitar los servicios a partir
de libreras.
Ver http://docs.oracle.com/javase/8/docs/api/

FPII curso 2016/2017 M. Alonso & J. Flores Tema 2 - 11


Elementos de un programa Java
Los programas de Java se escriben en un archivo con
extensin .java.
Las aplicaciones son archivos .java con un mtodo
main().
Ejecutamos el compilador en un archivo .java:
javac MiPrograma.java
Ejecutamos el intrprete en un archivo .class:
java MiPrograma
Ejemplo 2.1
//Esta aplicacin muestra Bienvenido a Java!
package tema2;
public class Bienvenido {
public static void main(String[] args) {
System.out.println("Bienvenido a Java!");
}
}

FPII curso 2016/2017 M. Alonso & J. Flores Tema 2 - 12


Elementos de un programa Java ii

El cdigo se escribe en las clases (que se agrupan en


paquetes).
Es posible incluir ms de una clase en un archivo
.java; pero se recomienda que un archivo .java
contenga una nica clase y que el archivo y la clase
tengan el mismo nombre.
MiClase1.java: MiClase2.java:
class MiClase1 { class MiClase2 {
.. ..
} }

FPII curso 2016/2017 M. Alonso & J. Flores Tema 2 - 13


Elementos de un programa Java iii
Clases en Java
Todas las clases se agrupan en paquetes.
Varias clases pueden pertenecer al mismo paquete.
Cada clase (incluso si un archivo contiene dos o ms definiciones de
clases) producir un archivo nombredeclase.class despus del
proceso de compilacin.
Para poder ejecutar esta clase, debe existir un mtodo llamado main().

class Ejemplo{
public static void main(String args[]) {
System.out.println(Hola mundo!);
for (int i=0; i<args.length; i++)
System.out.println(args[i]);
}
}

En este caso, no ser necesario declarar objetos de la clase de tipo


Ejemplo, La clave es el modificador static.
args [] son los argumentos en lnea de comandos suministrados como
una serie de objetos String.
FPII curso 2016/2017 M. Alonso & J. Flores Tema 2 - 14
Elementos de un programa Java iv
Cuestiones sintcticas
Espacios en blanco: formato libre sin reglas de indentacin,
salvo legibilidad.
Comentarios:
// una sola lnea
/* varias lneas */
/** varias lneas para generar documentacin */
Identificadores: para designar paquetes, clases, mtodos y
variables. Empiezan por carcter (no nmero), _ o $. Se
permiten caracteres especiales como , acentos, etc., y no hay
lmite de longitud. Se distinguen maysculas de minsculas.
Literales: valores constantes, como 2, 4.3, 0x4e,
4.6e12, true, false, a, b, 7 ,
cadena , 345,
FPII curso 2016/2017 M. Alonso & J. Flores Tema 2 - 15
Elementos de un programa Java v
Palabras reservadas:
abstract assert boolean break byte
case catch char class const
continue default do double else
enum extends final finally float
for goto if implements import
instanceof int interface long native
new package private protected public
return short static strictfp Super
switch synchronized this throw throws
transient try void volatile while

Adems, Java define tres literales especiales: true,


false, null.
goto y const no se usan.

FPII curso 2016/2017 M. Alonso & J. Flores Tema 2 - 16


Tipos en Java
Tipos primitivos (o bsicos)
Java determina el tamao de cada tipo primitivo. Estos tamaos no
cambian de una arquitectura de la mquina a otra.
byte, int, long, short, float, double, char, boolean
Se utilizan como en C, no hay necesidad de ser tratados como objetos.
Cada uno de los tipos primitivos tiene una clase envolvente o
contenedora (wrapper) correspondiente, que se encuentra en el paquete
java.lang.
Cada clase de contenedor tiene una variedad de mtodos, incluyendo
uno devolver el valor del tipo.
Byte,Integer,Long,Short,Float,Double,Character,Boolean

Ver
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

FPII curso 2016/2017 M. Alonso & J. Flores Tema 2 - 17


Tipos en Java ii
Clases envolventes y sus tipos primitivos
Tipos en Java iii
Tipos referencia (Objetos, instancias de clases)
Contienen referencias a objetos y proporcionan un medio para acceder a
dichos objetos almacenado en algn lugar de la memoria. Las posiciones
de memoria son irrelevantes para los programadores.
Todos los tipos referencia son una subclase de tipo java.lang.Object
Hay cinco tipos referencia de Java: Annotation, Array, Class,
Enumeration, Interface.
Los objetos deben ser creados (construidos) antes de ser utilizados, para
ubicarlos en memoria.
Por ejemplo,
Integer x = new Integer(5); // new crea el objeto
crea un objeto de clase Integer que contiene entre otras cosas - el
valor 5, y su posicin se guarda en x. Antes de esto, x tiene el valor null,
un valor especial que representa una direccin no accesible.
Tipos conocidos como vectores o strings son objetos.

FPII curso 2016/2017 M. Alonso & J. Flores Tema 2 - 19


Tipos en Java iv
Diferencias entre tipos referencias y primitivos/bsicos
Las variables de tipo primitivo nos permiten almacenar valores primitivos como
nmeros o caracteres. Las variables de tipo referencia NO almacenan valores,
sino que nos permiten acceder a mtodos y atributos de un objeto (podemos
verlo como una direccin, o como los punteros de C).
En Java, el paso de
parmetros es por valor. Para
hacer un paso por referencia
(cambiar el contenido de un
argumento en un mtodo),
pasamos el objeto tipo
referencia, un array tambin
valdra. En realidad est
usando la direccin de
memoria, que no se va a
cambiar, su contenido s.
Podis consultar https://cafelojano.wordpress.com/2007/06/27/en-
java-el-paso-de-parametros-es-por-valor/

FPII curso 2016/2017 M. Alonso & J. Flores Tema 2 - 20


Tipos en Java v
Variables
Similar a otros lenguajes como C. Guardan datos de tipo simple u
objetos.
Se declaran como en C, y pueden inicializarse en la declaracin.
Pueden ser de tipo simple u objetos (variables de instancia).
Por defecto pueden tener un valor. Segn el tipo: numrico: 0, lgico:
false, carcter: \u000 y objetos: null.
Su mbito queda restringido, en general, al bloque {} donde se declara.
Segn su declaracin, pueden ser:
Locales (como en los procedimientos de C).
Atributos, representando estados de un objeto (veremos).
Parmetros de mtodos (caso particular de variables locales).
Parmetros de excepciones (veremos).
Como en C, las expresiones que involucran literales (datos escritos de
forma directa) y variables tienen asociado el tipo de su resultado, que es
comprobado en tiempo de compilacin.

FPII curso 2016/2017 M. Alonso & J. Flores Tema 2 - 21


Tipos en Java vi
Expresiones
De forma parecida a otros lenguajes como C pueden construirse
expresiones combinado literales (datos escritos de forma directa) y
variables con tipo apropiado segn los operadores.

3 + 5 6, false && true || false,

Tienen asociado el tipo de su resultado, que es comprobado en


tiempo de compilacin.

Los parmetros que no son objetos pueden instanciarse con


expresiones (factorial(4+5),)

Slo existe paso de parmetros por valor (cuando se trata de


objetos, lo que realmente se pasa es el valor de la referencia al
objeto).

FPII curso 2016/2017 M. Alonso & J. Flores Tema 2 - 22


Identificadores en Java
Los identificadores son los que nombran variables, funciones, clases
y objetos
Comienza con una letra, un subrayado (_) o un smbolo de dlar ($).
Los siguientes caracteres pueden ser letras o dgitos.
Se distinguen las maysculas de las minsculas.
No hay una longitud mxima establecida para el identificador.
VARIABLES: Sirven para referirse tanto a objetos como a tipos
primitivos.
Tienen que declararse antes de usarse:
tipo identificador;
int posicion;
Se puede inicializar mediante una asignacin:
tipo identificador = valor; int posicion = 0;
Definicin de constantes:
static final float PI = 3.14159f;

FPII curso 2016/2017 M. Alonso & J. Flores Tema 2 - 23


Bibliografa
Lecturas recomendadas:

Robert Liguori, Patricia Liguori.


Java 7 Pocket Guide, 2nd Edition
OReilly Media, 2013.

Oracle Online Java Tutorial


http://docs.oracle.com/javase/tutorial/java/nutsan
dbolts/index.html
Web

FPII curso 2016/2017 M. Alonso & J. Flores Tema 2 - 24


Ejercicio 2.1 Elementos de Java
import java.util.Scanner;
/*
* Este programa pide al usuario que introduzca un nmero, lee un entero de teclado, lo muestra en
pantalla.
*/
public class EcoNumero {

public static void main(String[ ] args) {


Scanner teclado =new Scanner(System.in);
int numero;
System.out.println("Introduce un nmero entero");
numero= teclado.nextInt();
System.out.println ("Introdujiste el siguiente nmero: "+numero);
}
}
Como se puede ver, EchoNumber.java es un programa muy simple, pero
ilustra una serie de conceptos bsicos de programacin Java.
Identificar estos elementos:
Comentarios Variables
Espacios en blanco y formato Tipos de datos
Identificadores Sentencias de asignacin

FPII curso 2016/2017 M. Alonso & J. Flores Tema 2 - 25


Ejercicio 2.1.b. Ojo con un mal formateo

Del cdigo debe ser no slo correcto (en el sentido de compilar), sino
legible, con las indentaciones correctas. Esto se valorar tambin en la
asignatura.
http://www.um.es/docencia/vjimenez/ficheros/practicas/ConvencionesCodigoJava.pdf

FPII curso 2016/2017 M. Alonso & J. Flores Tema 2 - 26


Normas ms bsicas de formateo
Usar las indentaciones para que se vea bien el mbito de cada
bloque.
Emplear lneas en blanco cuando esto ayude
El uso de comentarios donde se considere clarificador para seguir
el cdigo.
Poner la llave de apertura en la misma lnea donde comienza el
bloque, y la de cierre en una nica lnea indentado correctamente
con el inicio de ese bloque.
Adems por convencin: los nombres de las clases empiezan por
mayscula, los de los mtodos por minscula, si concatenan varias
palabras se usa mayscula para cada inicio, ejemplos:
- clases: MiClase, Persona, AnimalesNoVertebrados
- mtodos: escribeMisDatos(), informa()
Usar estas normas y convenciones os servir para que vuestro cdigo
se lea mejor, pero tambin para facilitaros la comprensin vuestra del
cdigo escrito por otros.
(En NetBeans existe la opcin Source Format)

FPII curso 2016/2017 M. Alonso & J. Flores Tema 2 - 27


Ejercicio 2.2 Identificadores

Cul de los identificadores anteriores no son vlidos de


acuerdo con las reglas de Java de los identificadores?
Por qu no son vlidos?
Busca una correccin vlida cuando sea aplicable.

FPII curso 2016/2017 M. Alonso & J. Flores Tema 2 - 28


Ejercicio 2.3 Expresiones
Teniendo en cuenta las siguientes declaraciones de variables:
byte b; float f;
short s; double d;
int i; char c;
long l; boolean b1, b2;
Decir de qu tipo es cada una de las siguientes expresiones:
A. b+10L F. l+1.5f
B. (b+i)*l G. i<10
C. (b+i)*l+f H. b1 == (f >= 5.0)
D. s/f + Math.sin(f) I. b1 && !b2
E. c == b

FPII curso 2016/2017 M. Alonso & J. Flores Tema 2 - 29

Вам также может понравиться