320 likes | 445 Views
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{
E N D
Lenguaje de programación Java UNIVERSIDAD REGIONAL DEL SURESTE
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 Ejemplos: int a = 5; long x1 = 18000000000L; byte asciiCode = 64;
Tipos primitivos (cont.) 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()); • } • }
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/overview-summary.html • Thinking in Java, Bruce Eckel • http://java.sun.com/docs/books/tutorial/index.html