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

Programacin en Java 1

Tipos, Variables, Operadores

Adolfo R. de Soto
Escuela de Ingenieras Industrial e Informtica
Universidad de Len

Programacin I
ltima revisin 05-03-2013 17:29

Adolfo R. de Soto (EIII)

Programacin en Java 1

PI 2012-13

1 / 20

Objetivos

Aprender lo bsico como para hacer algo til con Java.


Aprender lo que son tipos, variables, expresiones.

Adolfo R. de Soto (EIII)

Programacin en Java 1

PI 2012-13

2 / 20

El ordenador

El ordenador

Memoria

CPU
(Unidad Central
De Procesamiento)

stdin
Dispositivos
Entrada/
Salida
stdout

Adolfo R. de Soto (EIII)

Programacin en Java 1

PI 2012-13

3 / 20

Compilar y Ejecutar

Compilar y Ejecutar Java

Cdigo Fuente
*.java

Adolfo R. de Soto (EIII)

javac

Cdigo Objeto
Byte Code
*.class

Programacin en Java 1

java

PI 2012-13

4 / 20

Primer Programa en Java

public class MiPrimerPrograma{


public static void main( String[] args){
java.util.Scanner lee = new java.util.Scanner (System.in) ;

3
5

String nombre = lee.next() ;


7

System.out.println ("Hola" + nombre);


}

Adolfo R. de Soto (EIII)

Programacin en Java 1

PI 2012-13

5 / 20

Primer Programa en Java Comentado


2
4
6
8

10

12

/* Mi primera definicin de una clase pblica. El fichero debe llamarse


MiPrimerPrograma.java
*/
public class MiPrimerPrograma{
/*Mi primera definicin de un mtodo de una clase.
main es el mtodo que se ejecuta cuando
java MiPrimerPrograma
*/
public static void main ( String[] args){
// Mi primera creaccin de un objeto de la clase java.util.Scanner
// Para leer de la entrada estndar
java.util.Scanner lee = new java.util.Scanner (System.in) ;
// Mi primera declaracin y definicin de una variable.
// Mi primera llamada a un mtodo
String nombre = lee.next() ;

14

16

// La segunda ejecucin de un mtodo. Para escribir en la salida estndar


System.out.println ("Hola" + nombre);

18

20

Adolfo R. de Soto (EIII)

Programacin en Java 1

PI 2012-13

6 / 20

Sentencias

Unidad fundamental de ejecucin.


Debe ser sintcticamente correcta.
Hay muchos tipos que iremos viendo.
Se ejecutan secuencialmente (algunas provocan saltos).
Contienen componentes internas: por ejemplo expresiones.
La sentencia de asignacin (Ojo!!: Esto no es matemticas)
x = x + 1;

Adolfo R. de Soto (EIII)

Programacin en Java 1

PI 2012-13

7 / 20

Expresiones
Definicin (Expresin)
Es una combinacin bien escrita de valores literales, constantes, variables,
operadores y llamadas a mtodos que son interpretadas de acuerdo a
ciertas reglas de precedencia y asociacin, y que producen un valor de
cierto tipo.
Toda expresin devuelve un valor de un cierto tipo.
Hay un valor especial de retorno void que no puede ser usado en
ninguna expresin y que se desecha.
Hay que asegurarse de comprender las reglas de precedencia, sino
(parntesis).
Una expresin puede dar lugar a efectos colaterales.
Se evalan de izquierda a derecha.
Adolfo R. de Soto (EIII)

Programacin en Java 1

PI 2012-13

8 / 20

Tipos
Definicin (Tipo)
Es un conjunto de valores y las operaciones que pueden hacerse con esos
valores, el significado atribuido a los valores y a las operaciones y las
formas en que esos valores pueden almacenarse.
Java distingue entre distintas familias de tipos:
1 Tipos primitivos
2 Tipos array
3 Tipos Clases
4 Tipos Enumerados
En general los elementos de un tipo no pueden mezclarse con los de otro
tipo, aunque hay conversiones de tipo tanto implcitas como explcitas.

Definicin (Compatibilidad de tipos)


Dos tipos se dicen compatibles sin son el mismo o hay una conversin de
tipo automtica del tipo ms pequeo (tipo origen) al tipo ms grande
(tipo destino). P.e.: int ->long. Pero NO: bool-> int
Adolfo R. de Soto (EIII)

Programacin en Java 1

PI 2012-13

9 / 20

Variables

Permiten almacenar y recuperar valores.


x = x + 1;
Se nombran con identificadores vlidos.
Deben declararse de cierto tipo antes de usarse: int x.
Deben inicializarse antes de usarse (valores por defecto, en algunos
casos)
Les daremos diferentes nombres segn su uso:
Variables instancia,
Variables de clase, (campos estticos)
Variables locales,
Parmetros.

Adolfo R. de Soto (EIII)

Programacin en Java 1

PI 2012-13

10 / 20

Identificadores Java

Comienzan por una letra o por los smbolos especiales: _ $


Pueden contener cualquier nmero de letras, nmeros o los smbolos
especiales indicados. Admite codificacin Unicode, pero por ahora
mejor no utilizar ni la ni acentos en los identificadores.
Se distingue maysculas de minsculas.
No pueden ser palabras reservadas ni valores literales.
Hay algunos convenios, no obligatorios, pero que seguiremos aqu.
Pocos.

Adolfo R. de Soto (EIII)

Programacin en Java 1

PI 2012-13

11 / 20

Literales

Definicin (Literal)
Un valor de un tipo escrito directamente en el cdigo fuente. Por ejemplo:
0,-3,c, true, 5.7, 2f, -3.0e23,"hola,0xFF,011, \u032
Literales enteros son tipo int. Usar l o L para tipo Long.
Literales en coma flotante son double. Para float usar f o F.
Literales en hexadecimal (0xFF), en octal (011) o en binario (Java
7.0) (0b10).
Hay carcteres especiales como retorno de carro (\r), fin de lnea
(\n), comillas, ... El carcter escape es \

Adolfo R. de Soto (EIII)

Programacin en Java 1

PI 2012-13

12 / 20

Tipos primitivos

Tipo
byte
short
int
long
float
double
char
boolean

Tamao
1 byte
2 bytes
4 bytes
8 bytes
4 bytes
8 bytes
2 bytes
1 bit

Tipo
byte
short
int
long
float
double
char
boolean

Adolfo R. de Soto (EIII)

Almacenamiento
complemento a 2 con signo
complemento a 2 con signo
complemento a 2 con signo
complemento a 2 con signo
IEEE 754 coma flotante
IEEE 754 coma flotante
Unicode
No precisado

Valor mnimo
27 = 128
215 = 32768
231 = 2, 147, 483, 648
263 = 9, 223, 372, 036, 854, 775, 808
1,4e 45
4,9e 324
\u0000
false

Valor Mximo
27 1 = 127
2 1 = 32767
231 1 = 2, 147, 483, 647
63
2 1 = 9, 223, 372, 036, 854, 775, 807
3,4028235e38
1,7976931348623157e308
\uffff
true
15

Programacin en Java 1

Valor por defecto


0
0
0
0L
0.0f
0.0d
\u0000
false

PI 2012-13

13 / 20

Operadores

Definicin (Operador)
Smbolo que representa una operacin bien definida para uno o varios
tipos.
Asegurarse de entender el significado del operador para el tipo de
datos involucrado.
Asegurarse de comprender las reglas de precedencia y asociatividad.
El operador ms usado: la asignacin.
Clasificacin de operadores en Java: aritmticos, relacionales y lgicos.

Adolfo R. de Soto (EIII)

Programacin en Java 1

PI 2012-13

14 / 20

Asignacin
var = expresin;
El tipo de var debe ser compatible con el de expresin.
Es un operador porque es vlido:
x=y=z=100;
Observar que es asociativo por la derecha.
Hay operadores de asignacin abreviados:
+=
%=

=
&=

=
|=

/=
=

Conversin de tipo explcita:


int x;
long y;
x = (int) y;
Adolfo R. de Soto (EIII)

Programacin en Java 1

PI 2012-13

15 / 20

Operadores aritmticos

Operador
+
*
/
/
%
++

Significado
suma (tb ms unario)
resta (tb menos unario)
multiplicacin
divisin entera
divisin
mdulo
incremento
decremento

Tipos
enteros, coma flotante
enteros, coma flotante
enteros, coma flotante
enteros
coma flotante
enteros, coma flotante
enteros, coma flotante
enteros, coma flotante

Prefijo: ++x : primero incremento y despus devuelvo el valor.


Sufijo: x++ : primero devuelvo el valor y despus incremento.

Adolfo R. de Soto (EIII)

Programacin en Java 1

PI 2012-13

16 / 20

Operadores relacionales

Operador
==
!=
>
<
>=
<=

Significado
Igual a
No igual a
Mayor que
Menor que
Mayor o igual que
Menor o igual que

Adolfo R. de Soto (EIII)

todos
todos
todos
todos

Tipos
todos
todos
los primitivos
los primitivos
los primitivos
los primitivos

Programacin en Java 1

Tipo devuelto
boolean
boolean
boolean
boolean
boolean
boolean

PI 2012-13

17 / 20

Operadores lgicos y de bit


Operador
&
|

&&
||
!

Operador
<<
>>
>>>

Adolfo R. de Soto (EIII)

Significado
y lgico
o lgico
o exclusivo
y lgico evaluacin corta
o lgico evaluacin corta
no lgico

Tipos
boolean
boolean
boolean
boolean
boolean
boolean

Significado
desplazamiento a la izquierda
desplazamiento a la derecha con signo
desplazamiento a la derecha sin signo
complemento binario

Programacin en Java 1

Tipos
enteros
enteros
enteros
enteros

PI 2012-13

18 / 20

Precedencia de operadores
Precedencia de operadores. Todos asociativos a la izquierda, excepto los de asignacin.
Las expresiones se evalan de izquierda a derecha
Tipo Operador
Operadores sufijos
Operadores unarios
Creacin o cast
Multiplicativos
Aditivos
Desplazamiento
Relacionales
Igualdad
AND de bit
OR de bit exclusivo
OR de bit inclusivo
AND lgico
OR lgico
Condicional
Asignacin

Adolfo R. de Soto (EIII)

Operador
[] . (parametros) expr++ expr
++expr expr +expr -expr !
new (tipo)expr
* /%
+<< >> >>>
< > >= <= instanceof
== !=
&

|
&&
||
?:
= += = = /= %=
> >= < <= >>>= & = = | =

Programacin en Java 1

PI 2012-13

19 / 20

Expresiones vlidas

Sintxis completa en: especificacin formal de expresiones en Java.

Definicin
Expresin bien formada Una expresin en Java es correcta si puede
analizarse sintcticamente de forma correcta usando la especificacin del
lenguaje Java.
Nos basaremos en una definicin intuitiva de una expresin correcta que
iremos ampliando.

Adolfo R. de Soto (EIII)

Programacin en Java 1

PI 2012-13

20 / 20

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