lenguaje de programación java universidad regional del sureste
TRANSCRIPT
Lenguaje de Lenguaje de programación Javaprogramación Java
UNIVERSIDAD REGIONAL UNIVERSIDAD REGIONAL DEL SURESTEDEL SURESTE
Bienvenidos a JavaBienvenidos a Java
ElementosElementos
• 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.javaHolaMundo.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 ClasesObjetos 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 claseEstructura general de una clase
acceso class NombreClase{
acceso tipo miembro;
acceso modificador tipo_retorno nombreMetodo(parametros){
cuerpo del método
}
}
Miembros de una claseMiembros 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 variablesDeclaració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 primitivosTipos primitivosPalabra Descripción Tam/Formato
Enteros
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
Ejemplos:
int a = 5;
long x1 = 18000000000L;
byte asciiCode = 64;
Tipos primitivos (cont.)Tipos primitivos (cont.)
Ejemplos:
float pi = 3.14159F;
char respuesta = ‘s’;
boolean ordenado = false;
double velocidadMaxima = 1.544e6;
Numeros de punto flotante
float Precisión simple 32-bit IEEE 754
double Doble precisión 64-bit IEEE 754
Otros tipos
char Un caracter 16-bit Carácter Unicode
boolean Valor lógico (true or false) true or false
Identificadores de variablesIdentificadores 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 variablesEjemplo 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étodosDefinició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.)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.
ConstructoresConstructores
• 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 miembrosManipuladores 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étodosEjemplo de métodospublic 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 PuntoClase 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 miembrosAcceso 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.)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éticosOperadores aritméticosOperador 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
++ ++opIncrementa op por 1; evalúa después de incrementar
-- op-- Decrementa op por 1; evalua antes del decremento
-- --opDecrementa op por 1; evalua después del decremento
Operadores relacionalesOperadores 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 Devuelve verdadero si op1 es menor que 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 y op2 son diferentes
Operadores lógicosOperadores 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 & op2Operador lógico y, funciona a nivel de bit o si los operadores son de tipo boolean
| op1 | op2Operador lógico o, funciona a nivel de bit o si los operadores son de tipo boolean
^ op1 ^ op2Operador lógico o exclusivo, funciona a nivel de bit o si los operadores son de tipo boolean
Ciclo whileCiclo 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-whileCiclo 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 forCiclo 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-elseSelector 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-caseSelector multiple switch-case
switch(expresion entera o tipo enumerado){ case valor1: sentencias; break; case valorN: sentencias; break; default: sentencias; break;}
Instrucciones de saltoInstrucciones 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
EjerciciosEjercicios
• 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.)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 javaSoporte para java
• http://java.sun.com/j2se/1.5.0/docs/api/overview-summary.html
• Thinking in Java, Bruce Eckel
• http://java.sun.com/docs/books/tutorial/index.html