Vous êtes sur la page 1sur 59

GENERALITAT VALENCIANA

CONSELLERIA DE EDUCACIN

I.E.S. FUENTE DE SAN LUIS


Valencia

Desarrollo de Aplicaciones Web DAW

0485 Programacin PRG

Unidad 1 Elementos de un
programa informtico
Curso 2012-2013
Emiliano Torres Martnez

1. Introduccin a Java


Es un leguaje de programacin orientado a


objetos
Desarrollado por SUN cuya sintaxis est basada
en C++
Java se vio catapultado a la fama de la mano del
xito que tuvo la WWW.
Java fue la solucin para dotar a la web de mayor
dinamismo: applets
Es utilizado para programacin de todo tipo de
aplicaciones.

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

1.1 Historia de Java








Creado por Sun Microsystems


Inicialmente orientado a la programacin de
sistemas (proyecto OAK)
Difundido en 1995 por una nueva orientacin:
Internet
Sintaxis muy similar a C++
http://oracle.com.edgesuite.net/timeline/java/

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

1.2 Qu es Java?


http://www.oracle.com/es/technologies/java/overview/index.html

Java es la base de casi todos los tipos de aplicaciones en red y el


estndar global para el desarrollo y suministro de aplicaciones mviles,
juegos, contenido basado en web y software de empresa. Con ms de
9 millones de desarrolladores en todo el mundo, Java permite
desarrollar y desplegar de un modo eficiente interesantes aplicaciones
y servicios. Con un conjunto integral de herramientas, un ecosistema
maduro y un slido rendimiento, Java ofrece portabilidad de
aplicaciones incluso entre los entornos informticos ms dispares.

Es un lenguaje de programacin de alto nivel con el que se


pueden escribir tanto programas convencionales como para
Internet.
 Adems Java es:




un sistema de ejecucin (JRE),


un juego de herramientas de desarrollo (JDK) y
una interfaz de programacin de aplicaciones (API)

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

1.2 Qu es Java?


Java es la base de prcticamente todo tipo de


aplicaciones de red y es el estndar global para el
desarrollo y la entrega de aplicaciones mviles,
juegos, contenido basado en la web y software de
empresa.
 Es un lenguaje de programacin de alto nivel con
el que se pueden escribir tanto programas
convencionales como para Internet.
 Adems Java es:




un sistema de ejecucin (JRE),


un juego de herramientas de desarrollo (JDK) y
una interfaz de programacin de aplicaciones (API)

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

1.2.1 La plataforma Java




Una plataforma es el ambiente


de hardware y/o software en el
cual se ejecutan los programas.
En general, la mayora de las
plataformas pueden ser descritas
como una combinacin de
hardware y sistema operativo:
Windows, Solaris, Linux y
MacOS.
La plataforma Java es una
plataforma basada nicamente
en software que se ejecuta
sobre otra plataformas
hardware/software.
La plataforma Java consta de
dos componentes:


La Mquina Virtual de Java (JVM)


que es el intrprete Java
La Interfaz de Programacin de
Aplicaciones de Java (API Java):
conjunto de clases ya
desarrolladas que ofrecen un
gran abanico de posibilidades al
programador.

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

1.2.1 La plataforma Java




Existen distintas
ediciones de la
plataforma Java:
 J2ME: Java2 Micro
Edition
 J2SE: Java2 Standard
Edition
 J2EE: Java2
Enterprise Edition

http://www.oracle.com/es

http://es.wikipedia.org/
wiki/Plataforma_Java

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

1.3. Caractersticas de Java




Sencillo: los programadores se basaron en


C++, pero eliminaron sus complejidades






No soporta los tipos de datos: struct, union y puntero


No soporta typedef ni #define
No permite la sobrecarga de operadores
No soporta la herencia mltiple
Cuenta con un sistema automtico para asignar y
liberar memoria: Garbage Collector
Ausencia de punteros

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

1.3. Caractersticas de Java




Orientado a objetos. Es un lenguaje plenamente


orientado a objetos. Esto es una ventaja especialmente
en las etapas de especificacin y diseo, as como a la
hora de tratar con todos los aspectos de la
programacin en entornos grficos. Implementa los
siguientes conceptos OO:






Herencia
Encapsulacin
Abstraccin
Reutilizacin

Distribuido:



Est concebido para trabajar en un entorno conectado en red.


Cuenta con una amplia biblioteca de clases para comunicarse
mediante TCP/IP: HTTP, FTP
Permite manipular con gran facilidad recursos va URL

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

1.3. Caractersticas de Java




Interpretado:


Java no genera un ejecutable diferente cada vez que


compilamos en una plataforma distinta sino que,
independientemente de la plataforma, se generar el
mismo cdigo intermedio (bytecode), que despus ser
ejecutado en cualquier plataforma por un intrprete
especfico para la plataforma.
El intrprete de Java se llama Mquina Virtual Java o Java
Virtual Machin (JVM)
El hecho de que Java sea un lenguaje interpretado implica
necesariamente que sea ms lenta su ejecucin, pero Java
ofrece buenos resultados.

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

10

1.3. Caractersticas de Java




Robusto. Un programa robusto es aqul que es resistente a


errores, es decir, aqul que ante un determinado error, no detiene
su ejecucin bruscamente.





Un lenguaje de estas caractersticas suele tener ms restricciones a la


hora de programar.
Facilita el manejo de excepciones reduciendo los errores de ejecucin.
No permite sobreescribir memoria y corromper otros datos mediante
punteros.
Muchos errores que normalmente encontramos en tiempo de ejecucin
Java los detecta en tiempo de compilacin.

Seguro. Puesto que se pretende usar Java en entornos en red y


distribuidos se han cuidado mucho los aspectos relacionados con
seguridad.



Todos los navegadores poseen una sand box (aislamiento de procesos)


Existen tecnologas de firma digital para confiar en un determinado
cdigo Java.

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

11

1.3. Caractersticas de Java




Arquitectura neutral
 Los bytecodes son interpretados en cualquier plataforma
donde exista una JVM.
Portable. Adems de generarse un cdigo independiente de
la arquitectura se han cuidado al mximo todos los aspectos:
 Los tipos de datos ocupan estrictamente lo mismo en
cualquier plataforma (a diferencia de C/C++ donde un int
puede tener 16 o 32 bits segn la implementacin), y se
codifica todo en big endian.
 El uso de estndares como UNICODE, IEEE 754, etc.
Permite obtener los mismos resultados en todas las
plataformas.
 En programacin grfica con AWT puede funcionar con
ligeras diferencias

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

12

1.3. Caractersticas de Java




Alto rendimiento. Un lenguaje interpretado acostumbra a ser


entre 20 y 100 veces ms lento que el mismo programa
compilado y ejecutado. Teniendo esto en cuenta, el
rendimiento de Java es ms que aceptable, pero en valor
absoluto, hablar de alto rendimiento es una ligera
imprecisin.


Existen compiladores JIT(Just-in-time) que compilan en el


momento de la ejecucin.
A partir de la JVM 1.2.2 se introdujo un nuevo JIT llamado
HotSpot.
A pesar de todo, existe algn compilador real de Java
(perdemos la portabilidad y ganamos en rendimiento). Se
encuentran en desuso.
Informe Volano(comparativa JVM): http://www.volano.com/report

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

13

1.3. Caractersticas de Java




Multiflujo, multihilo, multithead


 Soporta la ejecucin de varias tareas a la vez
 Posee una serie de clases que facilitan su utilizacin
Dinmico. Java est diseado para adaptarse a entornos en
evolucin. En este sentido las libreras pueden aadir nuevos
mtodos y atributos a sus clases sin afectar a los clientes. Es
posible cargar nuevas clases en tiempo de ejecucin y
consultar los mtodos que estas tienen disponibles, etc. :
 El cdigo C++, a menudo requiere una recompilacin
completa si cambia una clase.
 Java emplea un mtodo de interfaces para evitar estas
dependencias y recompilaciones.
 Adems, Java permite la indireccin.

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

14

2. El entorno de desarrollo JDK




Tipos de programas en Java. Los programas en Java suelen estar en una de


las siguientes categoras:




Applets
Aplicaciones
Servlets

Algunas de las utilidades que se pueden encontrar en el JDK son:











javac. Es el compilador de Java. Se encarga de convertir el cdigo fuente escrito en


Java a bytecode.
java. Es el intrprete de Java, la mquina virtual de Java. Ejecuta el bytecode a partir
de los archivos class.
jdb es el depurador de consola de Java.
javadoc. Es un generador de documentacin. Se utiliza para crear documentacin en
formato HTML a partir del cdigo fuente Java y los comentarios que contiene.
javap. Es un desensamblador de Java.
jar. Es una herramienta utilizada para trabajar con los archivos JAR.
appletviewer. Es un visor de applets. En la mayora de las ocasiones puede utilizarse
en lugar de un Navegador Web.
javah.exe Es un integrador de C y C++ (JNI)

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

15

2.1. Instalacin



El JDK se puede obtener directamente de forma gratuita del sitio Web


http://www.oracle.com/technetwork/java/javase/downloads/index.html
Para conocer la versin de java basta ejecutar la instruccin


Una vez instalado el JDK se tiene que actualizar la variable de ambiente PATH
y crear una nueva variable llamada CLASSPATH.
Por ejemplo, si el JDK fue instalado en C:\Archivos de programa\Java,
hacemos lo siguiente:



java version

set PATH = C:\Archivos de programa\Java\jdk1.X.0_0X\bin;%PATH%


set CLASSPATH=C:\Archivos de programa\Java\jdk1.X.0_0X \lib;
C:\PRG\programas

En Linux la depende del shell utilizado pero habitualmente se aaden las lneas
al fichero /home/%usuario%/.bash_profile.sh (requiere hacer login de
nuevo, no rearrancar)
Instalacin de Java en Linux



http://java.com/es/download/help/linux_x64rpm_install.xml
http://www.guia-ubuntu.org/index.php?title=Java

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

16

2.2. El primer programa




Editar el fichero HolaMundo.java


// Autor: Fulanito
//Propsito: Saludar a todo el mundo
public class HolaMundo {
/* El mtodo main() es el punto de entrada de
la aplicacin */
public static void main(String[] args)
{
System.out.println("Hola Mundo");
}
}

Ejecutar las siguientes sentencias:





javac HolaMundo.java
java HolaMundo

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

17

2.2. El primer programa

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

18

3. La sintaxis de Java


Comentarios


Comentarios de varias lneas.


/*
Este es un ejemplo de
un comentario de varias
lneas.
*/

Comentarios de una sola lnea.


// Este es un comentario de una sola linea
//Este es otro comentario

Comentarios para documentacin.


/**
Este tipo de comentarios
los utiliza la
herramienta javadoc
*/

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

19

3. La sintaxis de Java


Puntos y coma, bloques y espacios en blanco




Una sentencia es una lnea simple de cdigo terminada en un punto y coma:


System.out.println("Hola Mundo");

Un bloque es un conjunto de sentencias agrupadas entre llaves {}:


while (trae)
{
X = 5 * 2;
X = x +1;
}

Los bloques pueden estar anidados


while (trae)
{
x = 5 * 2;
if (x > 0)
{
x = x + 1;
}
}

Java permite los espacios en blanco entre elementos de cdigo fuente

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

20

3. La sintaxis de Java


Identificadores


Son los nombres unvocos que se le dan a las


clases, mtodos y variables.
Hay que tener presente las siguientes reglas:








Comenzar con una letra del alfabeto, _ o $


Los dems caracteres sern letras alfabeto, dgitos,
subrayados o $
No pueden haber espacios en blanco
Distinguen entre maysculas y minsculas
Nunca pueden coincidir con una palabra reservada
No puede tener ms de 65.535 caracteres

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

21

3. La sintaxis de Java


Identificadores











identificador
2b
nombreUsuario
nombre_usuario
_sys_var2
$cambio
Camin
tod@s
if
vergenza

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

22

3. La sintaxis de Java


Variables


Una variable es un contenedor de datos identificado


mediante un nombre (identificador)
Dicho identificador se utilizar para referenciar el dato que
contiene.
Toda variable tiene un nombre que la identifica y cuatro
atributos bsicos:





Valor: Est codificado en la posicin de memoria asociada a


la variable.
Tipo: Describe el conjunto de valores que puede tomar una
variable as como las operaciones que soporta (dominio).
mbito: Rango de sentencias del programa en el que la
variable es conocida.
Tiempo de vida: Rango de sentencias en que la variable est
asociada a la posicin de memoria.

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

23

3. La sintaxis de Java


Variables
 Declaracin:




Inicializacin de variables:


tipo variable;
tipo variable1, variable2, variable3,... ;
tipo variable = expresin, ;

Operaciones bsicas sobre las variables:




Indireccin: Consiste en recuperar el valor de la variable haciendo


uso de su nombre. Ejemplo:



Asignacin: Consiste en modificar el valor de la variable. Ejemplo:





Si la variable X tiene valor 4


X + 3 ==> 4 + 3
X <- 3 //A partir de ahora X contendr el valor 3.
En Java x = 3;

Si no se le asigna un valor, se inicializar con el valor por defecto


para ese tipo

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

24

3. La sintaxis de Java


Constantes


Las constantes literales o


constantes son las ms
utilizadas y pueden ser de
los tipos: entero, real,
carcter, cadena o null.
Las constantes declaradas
almacenan en una zona de
memoria valores fijos que
no pueden ser alterados por
el programa.
Sintaxis:
final [static] tipo_datos
NOMBRE = valor;

Las constantes se declaran


en maysculas.

Constantes en blanco

Unidad 1. Elementos de un
programa informtico

Tipo de
dat
os

Ejemplos de constantes

boolean

final boolean VERDAD = trae;

char

final char VOCAL = a;

byte

final byte URGENCIAS = 112;

short

final short PRECIO = 130;

int

final int SALARIO = 33000;

long

final long SALDO = 2200 000 000;

float

final float PI = 3.1416;

double

final double PI_DOBLE = 3.1416;

String

final String MENSAJE = Pulse una


tecla;

IES Fuente de San Luis


Emiliano Torres

25

3. La sintaxis de Java


Tipos de datos


En Java existen dos tipos principales de datos:





Existen 8 tipos de datos primitivos clasificados en


4 grupos:





1) Tipos de datos simples.


2) Tipos complejos o referencias a objetos.

Lgico o booleno: boolean


Carcter : char
Enteros: byte, short, int, long
Reales: float, double

Siempre tienen el mismo tamao y capacidades,


independientemente del entorno.

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

26

3. La sintaxis de Java

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

27

3. La sintaxis de Java


Tipo de dato simple: lgico








Palabra reservada en Java: boolean


Sus posibles valores son: true o false
Valor por defecto: false
Operadores sobre tipos lgicos: &&, ||, !
Ejemplo:


boolean entendido = true;

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

28

3. La sintaxis de Java


Tipo de dato simple: entero


Tipos Longitud en bytes

Rango

byte

-27 a 27-1 = -128 a 127

short

-215 a 215-1 = -32768 a 32767

int

-231 a 231-1 = -2147483648 a 2147483647

long

-263 a 263-1 = - 9223372036854715808 a 9223372036854715807

Los valores tienen siempre signo, no se les puede poner


modificadores.
Valor por defecto: 0

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

29

3. La sintaxis de Java


Tipo de dato simple: entero


 Es posible escribir constantes enteras en distintas bases:
 decimal: 5 (por defecto es int) o 5L (long)
 octal: 076
 hexadecimal: 0x3A1
 Operadores sobre tipos lgicos:
 Aritmticas: +, -, *, /, % (Entre enteros / es la
divisin entera!!)
 Relacionales: ==, !=, <, >, <=, >=
 Ejemplos:
 byte unByte;
 short unShort = 5;
 int unInt = -5;
 int otroInt = 077;
 long unLong = 5; (long unLong = 5L);
 long otroLong = 0x5A;

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

30

3. La sintaxis de Java


Tipo de dato simple: real


Tipo




Longitud en bytes

Precisin

Rango

float (simple precisin)

7 cifras

-3.4 10-38 a 3.4 1038-1

double (doble precisin)

15 cifras

-1.7 10-308 a 1.7 10308-1

Valor por defecto: 0.0


Operaciones en sobre reales:
 Aritmticas: +, -, *, /
(Entre reales / es la divisin
real!!)
 Relacionales: !=, <, >, <=, >=, ==
Ejemplos:
 float unFloat = 0.17 (0.17F);
 double unDouble = -0.175 (-0.175D);
 double otroDouble = 5.02E10;

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

31

3. La sintaxis de Java


Tipo de dato simple: real


 Los tipos float y double disponen de tres valores especiales:
infinito positivo, infinito negativo y NaN (Nota Number). Estos
valores permiten representar situaciones como
desbordamientos y errores.
 Ejemplo:
public class Rangos {
{
public static void main(String[] args) {
System.out.println(Math.sqrt(-1));

//NaN

System.out.println(1.1e200*1.1e200); //Infinity
System.out.println(-1.1e200*1.1e200); //- Infinity

}
}
Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

32

3. La sintaxis de Java


Tipo de dato simple: carcter








Palabra reservada en Java: char


Valor por defecto: \u0000 -> null
Representa un carcter UNICODE
Su tamao es de 2 bytes (16 bits).
Sus posibles valores son:







Los valores alfanumricos suelen escribirse entre comillas simples.


Ejemplos:






Un carcter entre comillas simples: A (65)


Un carcter especial con \ por delante o secuencia de escape: \n, \t
Un cdigo UNICODE: \uxxxx donde xxxx es un valor hexadecimal

char
char
char
char
char

caracter1
caracter2
caracter3
caracter4
caracter5

=
=
=
=
=

A;
\n;
\u0041;
\0x4A;
077;

En Java existe un tipo complejo para las cadenas de caracteres: la


clase String

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

33

3. La sintaxis de Java


Tipos de dato complejos


 La palabra reservada es el nombre de la clase del
objeto que va a contener la variable
 Posibles valores: Referencias a objetos (o
instancias) en memoria.
 Su valor por defecto es: null
 Ver documentacin en:


http://download.oracle.com/javase/1.5.0/d
ocs/api/index.html
http://download.oracle.com/javase/6/docs/
api/index.html
http://download.oracle.com/javase/7/docs/
api/index.html

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

34

3. La sintaxis de Java


Tipos de datos complejos para caracteres


 Hay tres tipos:



Character: para trabajar con un carcter


String: para tiras de caracteres cuyo contenido
no cambia(constantes). Ejemplo:
 String saludo = Hola;
StringBuffer: para tiras de caracteres cuyo
contenido y longitud puede cambiar. Ejemplo:
 StringBuffer tira = new
StringBuffer(longitud);

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

35

3. La sintaxis de Java


Tipos de datos complejos numricos




En Java hay definidos tipos objeto numricos para:




Enteros: Byte, Short, Integer, Long

Reales: Float, Double

Estas clases son envoltorios de los tipos bsicos ya vistos y


proporcionan funcionalidad extendida y atributos de los mismos,
como indicaciones de rango (MAX_VALUE y MIN_VALUE), etc.

Dentro de cada envoltorio, a excepcin de Boolean, Character y


Void, existe un mtodo parse que permite convertir una cadena
en el tipo bsico correspondiente, algo de gran utilidad para
intercambiar los datos en formato de texto. Ejemplo:
int num = Integer.parseInt(123);

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

36

3. La sintaxis de Java


Tipos de datos complejos numricos


public class Envoltorios {
{
public static void main(String[] args) {
System.out.println(Integer.parseInt(123));
System.out.println(Long.parseLong(165));
System.out.println(Byte.parseByte(12));
System.out.println(Short.parseShort(55));
System.out.println(Float.parseFloat(55.66));
System.out.println(Double.parseDouble(5.5e6));
}
}

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

37

3. La sintaxis de Java


Tipo de dato complejo: enumerado


 Soportado a partir de la versin 5.0. Se
trata de un tipo de datos complejo algo
especial.
 Implementa una clase que tiene un atributo
que puede tomar varios valores y slo
esos.
 La palabra reservada es: enum
 Ejemplo:


enum Semaforo {rojo, verde, ambar};

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

38

3. La sintaxis de Java
// Este programa permite comprobar los tipos enumerados
public class Enumerado
{
enum Semaforo {verde, rojo, ambar};
public static void main(String[] args)
{
Semaforo miSemaforo = Semaforo.verde;
System.out.println("Puedo pasar? " + miSemaforo);
System.out.println("Puedo pasar? " + (miSemaforo == Semaforo.verde));
}
}
Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

39

3. La sintaxis de Java


Variables primitivas vs. complejas











Una variable de tipo primitivo contiene el dato


directamente:
byte a = 10;
a 00001010
Una variable de tipo complejo contiene una
referencia (puntero) a la zona de memoria donde
est el objeto:
String s = new String(Hola mundo);
referencia
s
Hola
mundo

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

40

3. La sintaxis de Java
 Ejemplo tipos de datos primitivos
public class testVaribles1 {
static boolean unBoolean;
static byte unByte;
static short unShort;
static int unInt;
static long unLong;
static float unFloat;
static double unDouble;
static char unChar;
static String unString;
public static void main(String[] args) {
System.out.println("El boolean vale: " + unBoolean);
System.out.println("El byte vale: " + unByte);
System.out.println("El short vale: " + unShort);
System.out.println("El int vale: " + unInt);
System.out.println("El long vale: " + unLong);
System.out.println("El float vale: " + unFloat);
System.out.println("El double vale: " + unDouble);
System.out.println("El char vale: " + unChar);
System.out.println("El String vale:" + unString);
}
}
Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

41

3. La sintaxis de Java
 Ejemplo tipos de datos primitivos
public class testVaribles1 {
static boolean unBoolean = true;
static byte unByte = 10;
static short unShort = 10;
static int unInt = 10;
static long unLong = 10;
static float unFloat = 3.14F;
static double unDouble = 3.14;
static char unChar = 'A';
static String unString = new String("Hola mundo");
public static void main(String[] args) {
System.out.println("El boolean vale: " + unBoolean);
System.out.println("El byte vale: " + unByte);
System.out.println("El short vale: " + unShort);
System.out.println("El int vale: " + unInt);
System.out.println("El long vale: " + unLong);
System.out.println("El float vale: " + unFloat);
System.out.println("El double vale: " + unDouble);
System.out.println("El char vale: " + unChar);
System.out.println("El String vale:" + unString);
}
}
Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

42

3. La sintaxis de Java


mbito de las variables








El mbito de una variable es la zona de cdigo donde se puede referenciar dicha variable a
travs de su identificador.
La declaracin se debe realizar dentro de un bloque de cdigo.
El lugar de definicin de una variable establece su mbito.
mbitos:





Atributos (o variables miembro).


Parmetros de mtodo.
Variables locales: siempre hay que inicializarlas.
Variables de bloque: siempre ha

public class testAmbito


{
// Declaracin de atributos
public static void main(String[] args) // Parmetros
{
// Declaracin de variables locales
if (true)
{
// Declaracin de variables de bloque
}
}
} 1. Elementos de un
Unidad
IES Fuente de San Luis
programa informtico

Emiliano Torres

43

3. La sintaxis de Java


Ejemplos de mbito de las variables


public class ambitoTest1
{
public static void main(String[] args)
{
if (true)
{
int i = 10;
}
System.out.println(El valor de i es: + i);
}
}

// Este programa permite comprobar el ambito de la variable i
public class testAmbito2
{
static int i = 5;
public static void main(String[] args)
{
int i = 10;
System.out.println(El valor de i es: + i);
}
}

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

44

3. La sintaxis de Java


Conversiones entre tipos


 Java es un lenguaje fuertemente tipado, lo que significa
que no se pueden declarar variables de un tipo y
asignarles directamente valores de otro tipo.


Existen cuatro entornos de conversin en Java:










Promocin aritmtica. (ej: short a int a float).


Asignacin. (ej: long l = 42;).
Casting. (ej: int i = (int)42L).
Llamada a mtodos con parmetros. (ej: f(long p) -> f(5)).

Las conversiones implcitas se resuelven en tiempo de


compilacin.
El upcasting se realizan implcitamente.
El downcasting se realizan explcitamente y se resuelve en
tiempo de ejecucin.

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

45

3. La sintaxis de Java


Conversiones entre tipos




Ejemplo de conversiones implcitas:


int longitud = 3;
float espacio, expresin;
espacio = longitud; //conversin implcita de int a float
expresin = espacio * longitud; //conversin de longitud a float
La conversin explcita se lleva a cabo segn la siguiente sintaxis:

variable = (tipo_datos) expresin;




As el ejemplo anterior se puede programar como sigue:


int longitud = 3;
float espacio, expresin;
espacio = (float) longitud;
expresin = espacio * (float) longitud;
Especialmente interesante para la conversin de tipos es el uso de constantes literales y
asignaciones de tipo que se efectan por defecto en la mquina virtual de Java. Por ejemplo:
float euro;
euro = 166.386;
Dara error, porque Java espera una variable de tipo double en la parte izquierda. Este
problema admite dos soluciones:



Especificar el valor literal como 166.386F.


Convertir el valor literal explcitamente: (float) 166.386

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

46

3. La sintaxis de Java


Conversiones entre tipos Ejemplo:

public class Conversiones {


{
public static void main(String[] args) {
char c = a, c2;
int I = 23, i2;
short s;
double d;
i2 = c;
s = c;
d = c;
s = 678;
double dou = 123.67;
int dest = (int)dou;
dou = 3.40282347e+50;
float fl = (float) dou;
int in = 257;
byte b;
b = (byte) in;
}

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

47

3. La sintaxis de Java


Conversiones entre tipos Ejemplo:

public class Conversiones {


{
public static void main(String[] args) {
char c = a, c2;
int I = 23, i2;
short s;
double d;
i2 = c; //correcto compatible y cabe
s = c; //incorrecto posible prdida de informacin
d = c; // correcto compatible y cabe
s = 678; //correcto int->short implicita del literal
double dou = 123.67;
int dest = (int)dou; //se trunca el 123
dou = 3.40282347e+50;
float fl = (float) dou; //el resultado es infinito
int in = 257;
byte b;
b = (byte) in; //Resultado: 257 modulo 256 = 1
}

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

48

3. La sintaxis de Java
Ejercicio




Identificar qu sentencias son correctas y cules no:


1.
int x = 34.5;
2.
boolean boo = x;
3.
int g = 17;
4.
int y = g;
5.
y = y + 10;
6.
short s;
7.
s = y;
8.
byte b = 3;
9.
byte v = b;
10. short n = 12;
11. v = n;
12. byte k = 128;
13. int p = 3 * g + y;

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

49

3. La sintaxis de Java
Solucin




Identificar qu sentencias son correctas y cules no:


1.
int x = 34.5; -> int x = (int)34.5;
2.
boolean boo = x; -> no hay solucin.
3.
int g = 17;
4.
int y = g;
5.
y = y + 10;
6.
short s;
7.
s = y; -> s = (short)y;
8.
byte b = 3;
9.
byte v = b;
10. short n = 12;
11. v = n; -> v = (byte)n;
12. byte k = 128; -> byte k = (byte)128;
13. int p = 3 * g + y;

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

50

3. La sintaxis de Java
Expresiones y operadores
















Una expresin es una combinacin de operadores y operandos que especifica un


clculo.
Los operandos pueden ser variables, constantes, expresiones o funciones.
Una expresin es la representacin de un clculo necesario para la obtencin de un
resultado.
Una constante o un variable, o la combinacin de ambas, mediante funciones o
smbolos se denomina expresin. Se define una expresin de la siguiente manera:
Un valor es una expresin: 1.25, ANA.
Una constante o variable es una expresin: PI, E, X
Una funcin es una expresin: COS(X), SQR(25).
Una combinacin de valores, constantes, variables, funciones y operadores que
cumplen determinadas reglas de construccin es una expresin: COS(PI*X)+1.25
A los smbolos que permiten el enlace para crear las expresiones se los denomina
operadores. Un operador es un smbolo que indica al compilador que lleve a cabo
especficas manipulaciones matemticas o lgicas.
En funcin del nmero de operandos los operadores pueden ser:
Unarios: operando operador operador operando (Ejemplo: +variable)
Binarios: operando operador operando (ejemplo: variable + 1)
Tternarios: operando operando : operador

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

51

3. La sintaxis de Java
Operador de asignacin

Sintaxis:




+=

a += b

a=a+b

-=

a -= b

a=a-b

*=

a *= b

a=a*b

/=

a /= b

a=a/b

a = 45;

El operador = es asociativo por


la derecha, lo cual permite
realizar asignaciones mltiples.

Sentencia abreviada Sentencia no abreviada

variable = expresin;

El operador = asigna el valor de


la expresin derecha a la
variable situada a su izquierda.

Operador

a = b = c = 45;
// equivale a a = (b = (c = 45));

Operadores de asignacin en
Java:
Otros: %=, &=, |=, ^=, <<=, >>=,
>>>=

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

52

3. La sintaxis de Java


Operadores aritmticos

Expresiones numricas son las que producen resultados de tipo
numrico. Se construyen mediante los operadores aritmticos:
Operador
+[1]

Precedencia

Asociatividad

Ms unario

I-D

Menos unario (equivale a multiplicar por -1)

I-D

Suma

I-D

Resta

I-D

Multiplicacin

I-D

Divisin entera o en coma flotante

I-D

Resto de una divisin entera o divisin en coma flotante

I-D

%
[1]

Accin

Convierte al operando en int en caso de que fuese byte, short o char

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

53

3. La sintaxis de Java


Operadores de incremento y decremento

El operador ++ suma 1 a su argumento y el operador -- resta 1 a su argumento.


Incremento






++n
n += 1
n = n + 1

Decremento






--n
n -= 1
n = n - 1

Si los operadores ++ y -- estn de prefijos, la operacin de incremento se efecta


antes que la operacin de asignacin; si los operadores ++ y -- estn de sufijos, la
asignacin se efecta en primer lugar y el incremento o decremento a
continuacin.
Ejemplo:






int a = 1, b;
b = a++;
// b vale 1 y a vale 2
b = ++a;
// b vale 2 y a vale 2

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

54

3. La sintaxis de Java
Operadores relacionales

Una expresin booleana es una


secuencia de operandos y
operadores que se combinan
para producir uno de los valores
true o false.

Operador

Los operadores relacionales


tienen menos prioridad que los
operadores aritmticos, y
asociatividad de izquierda a
derecha.

Accin

>

mayor que

>=

mayor o igual que

<

menor que

<=

menor o igual que

==

igual

!=

<> distinto o no igual

Ejemplos:










double x, a, b, c;
int numero;
char inicial;
x < 5.75;
b * b >= 5.0 * a * c;
numero == 100;
inicial != 5;

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

55

3. La sintaxis de Java



Operadores lgicos
Los operadores lgicos o
booleanos[1] como los
relacionales operan con la
idea de cierto o true y falso o
false. Actan juntos.
[1] En honor a George Boole,
creador del lgebra de Boole.
Precedencia de los
operadores relacionales y
lgicos:

mayor

menor

!
> >= < <=
== <>
&&
||

Unidad 1. Elementos de un
programa informtico

Operador

Accin

Precedencia

negacin (NOT o NO)

&&

conjuncin (AND o Y)

||

disyuncin (OR u O)

IES Fuente de San Luis


Emiliano Torres

56

3. La sintaxis de Java



Operadores lgicos
Evaluacin en cortocircuito: si el operando de la izquierda de && es
falso o el de || es verdadero, el operando de la derecha no se evala.
Beneficios:

Una expresin booleana se puede utilizar para guardar un operacin
potencialmente insegura en una segunda expresin booleana.

Se puede ahorrar tiempo en la evaluacin de condiciones complejas.
Ejemplos:
(x >= 0.0) && (sqr(x) >=2)
//evita calcular la raz
cuadrada de nmeros negativos
(n = 0) && (x < 1.0 / n)
//evita que se haga una
divisin por cero

p && q

p || q

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

57

3. La sintaxis de Java
Operadores de manipulacin
de bits

Los operadores de manipulacin


de bits ejecutan operaciones
lgicas sobre cada uno de los
bits de los operandos.

Operador

Accin

&

Y (AND) lgica bita bit

O (OR) lgica (inclusiva) bit a bit

Se aplican a variables y
constantes char, int y long, y no

O (XOR) lgica (exclusiva) bit a bit

a datos en coma flotante.

Complemento a uno (inversin de todos los bits)

<<

Desplazamiento de bits a la izquierda

>>

Desplazamiento de bits a la derecha

>>>

Desplazamiento de bits a la derecha pero sin signo

p &q

p|q

P^q

~q

Unidad 1. Elementos de un
programa informtico

IES Fuente de San Luis


Emiliano Torres

58

3. La sintaxis de Java
Operadores de manipulacin de bits
1.
2.
3.
4.
5.

public class Multiplicador


{
public static void main(String[] args)
{
int a = 6;
a = a << 1;
System.out.println(a = " + a);
a = a << 1;
System.out.println(a = " + a);
a = a << 1;
System.out.println(a = " + a);
a = a << 1;
System.out.println(a = " + a);
a = a << 1;
System.out.println(a = " + a);

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.

1.
2.

Unidad 1. Elementos de un
programa informtico

1.
2.
3.
4.
5.

public class Dividor


{
public static void main(String[] args)
{
int a = 192;
a = a >> 1;
System.out.println(a = " + a);
a = a >> 1;
System.out.println(a = " + a);
a = a >> 1;
System.out.println(a = " + a);
a = a >> 1;
System.out.println(a = " + a);
a = a >> 1;
System.out.println(a = " + a);

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.

1.
2.

IES Fuente de San Luis


Emiliano Torres

59

Vous aimerez peut-être aussi