Actualizado el 21 de Marzo del 2018 (Publicado el 1 de Diciembre del 2017)
1.517 visualizaciones desde el 1 de Diciembre del 2017
402,9 KB
22 paginas
Creado hace 19a (10/10/2005)
3.El lenguaje Java
3.1 Identificadores
- sintaxis
- tipos primitivos
3.2 Operadores
3.3 Control de flujo
3.4 Clase Array
El lenguaje de programación Java
1
3.1 Identificadores
• Nombran variables, funciones, clases y objetos
• Comienza con una letra, un subrayado (_) o un símbolo
de dólar ($). Los siguientes caracteres pueden ser letras
o dígitos.
• Se distinguen las mayúsculas de las minúsculas
• No hay una longitud máxima establecida para el
identificador.
El lenguaje de programación Java
2
1
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 asignación:
tipo identificador = valor;
int posicion = 0;
• Definición de constantes:
static final float PI = 3.14159f;
El lenguaje de programación Java
3
Tipos de datos primitivos
• Se pueden utilizar valores de los siguientes tipos:
– byte (entero de 8 bits)
– short (entero de 16 bits)
– int (entero de 32 bits)
– long (entero de 64 bits)
– float (decimal de 32 bits)
– double (decimal de 64 bits)
– char (Unicode de 16 bits)
– boolean (true, false)
• No se pueden definir tipos.
El lenguaje de programación Java
4
2
3.2 Operadores
• En orden de precedencia:
Operadores
()
++ -- + - !
* / %
+ -
< <= > >=
== !=
&
^
|
&&
| |
?:
Asociatividad
Tipo
izquierda a derecha
derecha a izquierda
izquierda a derecha
izquierda a derecha
izquierda a derecha
izquierda a derecha
izquierda a derecha
izquierda a derecha
izquierda a derecha
izquierda a derecha
izquierda a derecha
derecha a izquierda
paréntesis
unarios
multiplicativos
aditivos
relacionales
de igualdad
AND lógico booleano
OR exclusivo lógico booleano
OR inclusivo lógico booleano
AND lógico
OR lógico
condicional
expresion ? sentencia1 : sentencia2
asignación ej. x += y (cid:217) x = x + y;
= += -= *= /= %=
derecha a izquierda
El lenguaje de programación Java
5
3.3 Control de flujo
• Control de saltos:
if( expresión-booleana )
{
sentencias;
}
[else {
sentencias;
}]
switch(expresión) {
case valor1:
sentencias;
break;
case valor2:
sentencias;
break;
[default:
sentencias;]
}
El lenguaje de programación Java
6
3
Ejemplos
1) int saldo;
…
if (saldo<0)
System.out.println(“Cuenta en números rojos”);
2) int dia;
…
switch (dia){
case 1: System.out.println(“Lunes”); break;
case 2: System.out.println(“Martes”); break;
…
case 7: System.out.println(“Domingo”); break;
}
El lenguaje de programación Java
7
Bucles
[inicialización;]
do {
sentencias;
[iteración;]
}while(expresión-booleana );
for( inicialización; exp-booleana; iteración ) {
sentencias;
}
[inicialización;]
while( expresión-booleana ) {
sentencias;
[iteración;]
}
8
4
Ejemplos
1. for (int index=0; i<tabla.length; index++){
System.out.println(tabla[index]);
};
2. int i=0;
};
while (i< tabla.length){
System.out.println(tabla[i]);
++i;
El lenguaje de programación Java
9
3.4 Array
• Declaración:
tipoDeElementos[] nombreDelArray = new tipoDeElemetos[tamañoDelArray];
• Creación:
Aquí NO!!
– un array vacío:
int []lista = new int[50];
Determinar
el tamaño
– con valores iniciales:
String [] nombres = {
};
"Juan","Pepe","Pedro","Maria"
• Los índices de un array siempre empiezan en 0
• Permite la asignación de un array a otro (dos ref a objetos)
10
El lenguaje de programación Java
5
4. Clases y Objetos
– Estructura de una clase
– Atributos de instancia y de clase (static)
– Control de acceso.
– Métodos
– Creación de objetos: constructores e inicialización
– this
– main
–
– Comentarios y documentación (javadoc)
Paquetes
11
Estructura de una clase
class NombreDeLaClase {
// declaración de las variables de instancia
// declaración de las variables de la clase
metodoDeInstancia() {
// variables locales
// código
}
metodoDeClase() {
// variables locales
// código
}
}
• Todo forma parte de una clase
• Java NO soporta funciones o variables GLOBALES
El lenguaje de programación Java
12
6
Atributos
– Atributos de clase:
• Común a todas las instancias de una clase
• Sólo se inicializan una vez.
Ej: static public int nextCodigo;
– Atributos de instancia:
• determina el estado de los objetos
• cada objeto reserva memoria para todas las variables de instancia
• Declaración:
[acceso][static][final] tipo nombreAtributo [= valor_inicial];
El lenguaje de programación Java
13
Inicialización de los atributos
• Si un atributo no se inicializa se le asigna un valor por
defecto en función de su tipo:
Tipo
boolean
char
byte,short,int,long
float
double
Referencia a objeto
Valor Inicial
false
‘\u000’
0
+0.0f
+0.0d
null
El lenguaje de programación Java
14
7
Control de acceso
• public – los miembros que se declaran como public
son accesibles en cualquier parte donde la clase sea
accesible
• private – miembros declarados como private sólo
accesibles en la propia clase
public class A{
public int at1;
private int at2;
…
A a;
//creamos el objeto
a.at1 = 6 //OK
a.at2 = 5 //ERROR
}
• Atributos privados y acceso a través de métodos públicos
(set/get)
El lenguaje de programación Java
15
Métodos
• Código que “entiende” y manipula el estado de un objeto
• Pueden ser llamados dentro de la clase o por otras clases
• Es obligatorio indicar el tipo de retorno o void
• Declaración:
[acceso][static] tipoRetorno nomMet ([argumentos]){
//cuerpo del metodo
[return valorRetorno;]
}
• Invocación: Notación punto
objReceptor.nomMet(argumentos);
16
8
Métodos de clase
• Se invocan sobre la clase, no sobre un objeto
• Sólo puede acceder a las variables y métodos de clase
(static)
• Ejemplos:
1. int i = Integer.parseInt(“123”);
2. public class Ejemplo{
static private int at;
static public int getAt(){
}
return at;
}
Se invoca Ejemplo.getAt();
El lenguaje de programación Java
17
Métodos
•
Java soporta sobrecarga de métodos
– el mismo nombre pero con DIFERENTE lista de argumentos
– SIEMPRE devuelven el mismo tipo
public class ListaEnteros{
…
public void add (int elem){…}
public void add (int elem, int index){…}
}
• Paso de parámetros siempre por valor
– los valores de los parámetros son copias de los valores que especifica el que
lo invoca
– tipos primitivos no cambian
– los objetos pueden cambiar su estado (cid:198) se pasa por valor la referencia
18
9
Paso de parámetros
public class Contador {
int valor;
…
public void sincronizar(Contador c){
c.setValor(valor);
}
}
c1.sincroniza(c2);
c=c2
c1
23
valor
c2
23
45
valor
Se puede modificar el estado del objeto
pero no la referencia
c
El lenguaje de programación Java
19
Constructores
• Procedimiento con el mismo nombre que la clase
• Se invoca automáticamente cada vez que se crea un
objeto de la clase
• No pueden especificar tipos ni valores de retorno
• Permite sobrecarga para especificar formas distintas de
inicializar los objetos
• Si no se define, el compilador crea uno por defecto sin
argumentos que inicializa los atributos a los valores por
defecto
• El programador también puede definir un constructor sin
argumentos.
El lenguaje de programación Java
20
10
Constructor de copia
public class Ejemplo{
private int at1;
…
public Ejemplo (Ejemplo e){
at1 = e.at1;
}
}
El lenguaje de programación Java
21
Ejemplo: Clase Contador v1
public class Contador{
// Variables de instancia
private int valor;
// Constructores
public Contador (){
valor = 0;
22
11
}
public void incrementar(){
valor++;
}
public int getValor(){
return valor;
}
}
Creación de objetos
• Un objeto es una instancia de una clase.
• La creación de un objeto se realiza en tres pasos
– Declaración, proporcionar un nombre al objeto
Contador miContador;
(null)
– Instanciación, asignar memoria al objeto
miContador = new Contador();
semántica referencia!!!
objContador
– Inicialización, opcionalmente se pueden proporcionar valores
iniciales a las variables de instancia del objeto en la declaración o
mediante CONSTRUCTORES.
El lenguaje de programación Java
23
Ejemplo. Clase de prueba v1
public class TestContador{
public static void main (String [] args){
Contador c = new Contador();
c.incrementar();
c.incrementar();
System.out.println(“C = “ + c.getValor());
}
}
El lenguaje de programación Java
24
12
Igualdad vs. Identidad
c1
47
0
valor
valorInicial
c2
47
0
valor
valorInicial
¡¡OJO!!
== y != compara REFERENCIAS de manera que:
Contador c1 = new Contador();
Contador c2 = new Contador();
c1 == c2
c1.equals(c2) --> true compara el CONTENIDO de los objetos
--> false, luego c1!=c2
si lo redefinimos en la clase
(por defecto es igual que ==)
El lenguaje de programación Java
25
this
Invocación a otro de los constructores de la clase:
•
public Contador (int i) {
valor=i;
valorInicial=i;
}
public Contador(){
this(0);
}
• Instancia actual:
– Pasar el objeto actual como parámetro de otro método
servicio.añadir(this);
– En cualquier método del objeto actual
this.otroMetodo();
El lenguaje de programación Java
26
13
Reglas de alcance
• Porción del programa en el que se puede hacer referencia al
identificador
• Un identificador debe ser único dentro de su ámbito
• Alcance de CLASE:
– los métodos de una clase pueden modificar directamente los atributos de
clase y de instancia
– Un método de clase (static) sólo puede acceder a atributos de clase.
• Alcance de Bloque:
– variables locales y parámetros de un método
– cuando se anidan los bloques y existen dos identificadores con nombres
iguales el compilador da error de sintaxis (variable ya definida)
– si una variable local tiene igual nombre que un atributo de la clase éste
queda oculto.
El lenguaje de programación Java
27
Reglas de alcance
class MiClase{
…
public static void metodo1(…){
{
}
…//bloque
}
public void metodo2(…){
…
}
}
variables de clase
parámet
Comentarios de: 3.El lenguaje Java (0)
No hay comentarios