Download Lenguaje de programación Java

Document related concepts
no text concepts found
Transcript
Lenguaje de
programación Java
UNIVERSIDAD REGIONAL
DEL SURESTE
Bienvenidos a Java
Elementos
•
•
•
•
•
•
Objetos vs. clases
Métodos y miembros
Tipos primitivos
Variables e instancias de objetos
Definición de métodos
Acceso a miembros y métodos
HolaMundo.java
public class HolaMundo{
public static void main(String[] args){
System.out.println(“Hola Oaxaca”);
}
}
Acceso
Nombre de clase
Método main
Objeto System
Objetos vs Clases
• Clase es la definición a partir de la cual se
pueden crear objetos.
• Las clases consisten en la declaración de
los miembros y los métodos.
• Un miembro es una variable que guarda
información del estado de un objeto.
• Un método es una forma de interactuar
con el objeto.
Estructura general de una clase
acceso class NombreClase{
acceso tipo miembro;
acceso modificador tipo_retorno
nombreMetodo(parametros){
cuerpo del método
}
}
Miembros de una clase
• Los miembros de una clase pueden ser
tipos primitivos o instancias de otros
objetos.
• Los tipos primitivos son los tipos de datos
básicos como texto, enteros y números de
punto flotante.
• Se definen de la misma forma que la
declaración de una variable.
Declaración de variables
• Tipo identificador [= valor inicial];
Ejem.: int a = 5; float x; String linea = new
String(“Hola\n”);
• Las variables de tipo objeto son solo
referencias y no se reserva memoria hasta
que el objeto se instancia con new.
• Se recomienda dar valores iniciales a
todas las variables.
Tipos primitivos
Palabra
Descripción
Tam/Formato
byte
entero de un byte
8-bit complemento a 2
short
Entero corto
16-bit complemento a 2
int
Entero
32-bit complemento a 2
long
Entero largo
64-bit complemento a 2
Enteros
Ejemplos:
int a = 5;
long x1 = 18000000000L;
byte asciiCode = 64;
Tipos primitivos (cont.)
Numeros de punto flotante
float
Precisión simple
32-bit IEEE 754
double
Doble precisión
64-bit IEEE 754
char
Un caracter
16-bit Carácter Unicode
boolean
Valor lógico (true or false)
true or false
Otros tipos
Ejemplos:
float pi = 3.14159F;
char respuesta = ‘s’;
boolean ordenado = false;
double velocidadMaxima = 1.544e6;
Identificadores de variables
• Los identificadores no pueden iniciar con
numero.
• No pueden contener espacios.
• No pueden corresponder a palabras
reservadas.
• Por convención inician con minúsculas.
• Si se componen de dos o mas palabras, a
partir de la segunda inician con
mayúscula.
Ejemplo con variables
public class Ejemplo1{
public static void main(String[] args){
int a, b, c;
a = 3; b = 5;
c = a + b;
System.out.println(“La suma de “ + a + “ y “ +
b + “ es “ + c);
}
}
Definición de métodos
• Acceso modificador tipo_retorno
nombreMetodo(parametros){ Cuerpo }
• Acceso restringe a los usuarios del método
(public, protected, private).
• Modificador da características especiales al
método (static, abstract).
• tipo_retorno es el tipo de valor regresado por el
método (puede ser de tipo simple o un objeto o
sin valor en cuyo caso se usa void).
Definición de métodos (cont.)
• nombreMetodo es un identificador del método y
sigue las mismas reglas que los identificadores
de variables.
• Parámetros son variables para pasar datos al
método, cada una debe definir su tipo. Si no hay
parámetros se usan paréntesis vacíos.
• En el cuerpo se definen las operaciones del
método, puede contener variables locales y
hacer uso de los miembros de la clase.
Constructores
• Son un tipo especial de métodos cuyo nombre
es exactamente el mismo que el nombre de la
clase.
• Su objetivo es inicializar los valores de los
miembros de la clase, para que tengan un
estado consistente al instanciar objetos de dicha
clase.
• Pueden estar sobrecargados.
• No tienen tipo de retorno, no se permite void.
Manipuladores de los miembros
• Existen métodos cuyo objetivo es
manipular los miembros de la clase de
una manera segura y controlada.
• Se clasifican en métodos para recuperar
el valor de un miembro y métodos para
alterar dicho valor.
• Tienen la ventaja de poder validar los
datos y en su caso rechazarlos indicando
el error en los mismos.
Ejemplo de métodos
public class Punto{
int x;
int y;
public Punto(int a,int b){ x = a; y = b; }
public void setX(int a){ x = a;}
public void setY(int a){ y = a;}
public int getX(){ return x;}
public int getY(){ return y;}
}
Clase que usa a Punto
public class Rectangulo{
Punto origen;//esquina inf. Izquierda
int altura;
int ancho;
public Rectangulo(){ origen = new Punto(0,0); altura =
ancho = 0;}
public Rectangulo(Punto or, int h, int w){
origen = or; altura = h; ancho = w;}
public void mover(Punto nuevo){ origen = nuevo;}
public int area(){ return altura*ancho;}
}
Acceso a los miembros
public class Prueba1{
public static void main(String[] args){
Punto lugar1 = new Punto( 0, 0);
lugar1.setX(45);
lugar1.setY(30);
System.out.println(“El punto esta en (“ +
lugar1.getX() +”,”+lugar1.getY()+”)”);
}
}
Acceso a los miembros (cont.)
• public class Prueba2{
• public static void main(String[] args){
•
Punto posicion1 = new Punto(15,15);
•
Rectangulo figura = new Rectangulo();
•
figura.mover(posicion1);
•
System.out.println("El area de la figura es "
+ figura.area());
• }
• }
Operadores aritméticos
Operador
Uso
Descripción
+
op1 + op2
Suma op1 con op2; también concatena cadenas
-
op1 - op2
resta op2 de op1
*
op1 * op2
Multiplica op1 por op2
/
op1 / op2
Divide op1 entre op2
%
op1 % op2 Calcula el residuo de la división de op1 entre op2
++
op++
Incrementa op por 1; evalúa antes de incrementar
++
++op
Incrementa op por 1; evalúa después de
incrementar
--
op--
Decrementa op por 1; evalua antes del decremento
--op
Decrementa op por 1; evalua después del
decremento
--
Operadores relacionales
Operador
Uso
Descripción
>
op1 > op2
Devuelve verdadero si op1 es mayor que op2
>=
op1 >= op2 Devuelve verdadero si op1 es mayor o igual que op2
<
op1 < op2
<=
op1 <= op2 Devuelve verdadero si op1 es menor o igual que op2
==
op1 == op2 Devuelve verdadero si op1 y op2 son iguales
!=
op1 != op2
Devuelve verdadero si op1 es menor que op2
Devuelve verdadero si op1 y op2 son diferentes
Operadores lógicos
Operador
Uso
Descripción
&&
op1 && op2 Operador lógico y, verdadero si ambos verdaderos
||
op1 || op2
Operador lógico o, verdadero si alguno verdadero
!
!op
Negación, verdadero si op es falso
op1 & op2
Operador lógico y, funciona a nivel de bit o si los
operadores son de tipo boolean
op1 | op2
Operador lógico o, funciona a nivel de bit o si los
operadores son de tipo boolean
op1 ^ op2
Operador lógico o exclusivo, funciona a nivel de bit o
si los operadores son de tipo boolean
&
|
^
Ciclo while
while(Expresión lógica){
cuerpo del ciclo
}
• Una expresión lógica es aquella que
evalúa a falso o verdadero
• Se construye con operadores relacionales
y lógicos
• (numero > 100 && numero < 1000)
Ciclo do-while
do{
cuerpo del ciclo
}while(expresión lógica);
• A diferencia del ciclo while este se ejecuta
al menos una vez
• En el cuerpo del ciclo pueden ir cualquier
tipo de sentencias incluyendo otros ciclos
Ciclo for
for(inicialización; terminación; incremento){
cuerpo del ciclo
}
• Para situaciones de ciclos controlados por
contador
• Java incluye mejoras para cuando se usa
con ciertos tipos de datos como arreglos y
enumeraciones
Selector if, if-else
if(expresión lógica){
cuerpo de la selección
}
if(expresión lógica){
sentencias ejecutadas si evalúa verdadero
}else{
sentencias ejecutadas si evalúa falso
}
Selector multiple switch-case
switch(expresion entera o tipo enumerado){
case valor1: sentencias;
break;
case valorN: sentencias;
break;
default:
sentencias;
break;
}
Instrucciones de salto
• break rompe un ciclo o se sale de un
bloque de sentencias limitado entre { y }
• continue salta al inicio del ciclo while o
do-while; o bien al incremento en un ciclo
for
• return provoca que un método regrese al
área de código que lo invoco, puede o no
devolver un valor
Ejercicios
• Básicos
– Calcular el promedio de datos en un arreglo
– Ordenar arreglo por burbuja mejorado
– Hacer una búsqueda lineal
– Hacer una búsqueda binaria
Ejercicios (cont.)
• Medios/avanzados
– Juego de ahorcados que cargue lista de
palabras de archivo y use Math.random()
– Juego de dados con gráficos que use
Math.random()
– Juego de gato con gráficos y que capture
eventos del ratón
Soporte para java
• http://java.sun.com/j2se/1.5.0/docs/api/ove
rview-summary.html
• Thinking in Java, Bruce Eckel
• http://java.sun.com/docs/books/tutorial/ind
ex.html