Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porMilagros Toro Prado Modificado hace 8 años
1
Introducción a JAVA CI-2693 LABORATORIO DE ALGORITMOS Y ESTRUCTURAS III SECCIÓN 1 – 2 PROFESOR: GUILLERMO PALMA PREPARADOR: MANUEL GONZALEZ CORREO: manuelggonzalezm@gmail.com
2
¿De que se tratará la materia? Grafos…
3
Evaluaciones Proyecto 1 semana 3-5 10 % Proyecto 2 semana 6-8 20 % Examen 1 semana 7 20 % Proyecto 3 semana 10-12 20 % Examen 2 semana 11 20 % Laboratorios todos los días de clase, se corregirá uno solo 10 %.
4
Normas del curso Se utilizara Java 7 (versión 1.7) Equipos de 2 personas No copiar! O les traerá graves consecuencias! Posiblemente se les hagan algunas preguntas de la implementación del proyecto. Si no responden correctamente se penalizará la nota.
5
¿Por qué JAVA? Es un lenguaje orientado a objetos. Es más seguro. Tiene una vasta biblioteca de objetos y operaciones predefinidas. Actualmente es ampliamente utilizado. Lo usa por ejemplo Android. Independiente de la plataforma.
7
Maquina virtual “Computadora ideal” de JAVA Es la encargada de proveer la independencia de la plataforma Hay varias versiones de la maquina virtual que hace difícil una completa independencia de la plataforma.
8
Fases de un programa en Java Editar con Gedit Disco Fase 1 Compilar usando: javac HolaMundo.java Disco Fase 2 HolaMundo.java HolaMundo.class
9
Fases de un programa en Java Disco HolaMundo.class Cargador de clases Fase 3 Ejecutar con: java HolaMundo.... Memoria principal Verificador de bytecodigo Fase 4 Interprete Fase 5 ¡Y LISTO! Rápido ¿No?
10
“Hola mundo!” en JAVA class HolaMundo { public static void main (String[ ] args){ System.out.println(“Hola mundo!"); } Pasos 1.Abrir editor 2.Escribir el programa 3.Ubicarse en el directorio 4.Compilar javac HolaMundo.java 5.Ejecutar java HolaMundo 6.Salida: “Hola mundo!”
11
Variables básicas(parecido a C) Mismas reglas que otros Enteros: byte 8 bits short 16 bits int 32 bits long 64 bits Reales: float 32 bits double 64 bits Booleanos: boolean (true o false) Caracteres: char Ejemplo: int a,b,c; a = 1 b = 2 c = a+ b;
12
Expresiones(parecido a C) Las asignaciones se parecen a las de C; =, +=, *=, -=, /=, quizas otro que se me olvide. Operadores aritméticos: +,-,*,/,% Java ademas tiene ++ y -- Booleanos: &&(and), ||(or), ! (negación) Comparadores: =, > Java no tiene el tipo de dato “puntero” Ejemplo: int a,b,c; b = 2 a = b++;
13
Instrucciones de control I (parecido a C) if (x < y) menor = x; if (x < y){ menor = x;sum += x;} else { menor = y; sum += y; } while (x < y) { y = y - x; } do { y = y - x; } while (x < y) for (int i = 0; i < max; i++) sum += i; Las condiciones deben ser de tipo booleanas !
14
Java tiene una estructura “try..catch” para capturer excepciones. switch (n + 1) { case 0: m = n - 1; break; case 1: m = n + 1; break; case 3: m = m * n; break; default: m = -n; } Instrucciones de control II (parecido a C)
15
Java no es C ! Sorpresa! En C, casi todo esta como funciones En Java, casi todo esta en clases Hay frequentemente una clase por archivo. Tiene que haber solo una clase publica por archivo El nombre del archivo debe ser igual al de esa clase publica y terminar en “.java”
16
Como se ve un programa en Java Un típico programa en java se vería mas o menos así import java.awt.*; import java.util.*; /*Soy un comentario de muchas lineas */ public class HaceAlgo { // Comentario de una linea... } Advertencia no esperada: Esto tiene que estar en un archivo llamado “ HaceAlgo.java ”
17
¿Qué es una clase? Una clase consiste generalmente de Una coleccion de variables Todas las operaciones (llamados metodos) que utilizaran esas variables o/y nuevas para desempeñar una accion. En Java se declaran comenzando por class
18
Convenciones de nombres Java es case-sensitive Nombres de clases comienzan con letra mayuscula Los demas con letra minusculas Subsequentes palabras son capitalizadas: HolaMundo Olvidense de los underscores de python Estas convenciones son seguidas rigidamentes!
19
Primer programa en JAVA Pasos de creación 1.Abrir editor 2.Escribir el programa 3.Ubicarse en el directorio 4.Compilar: javac HolaMundo.java 5.Ejecutar: java HolaMundo 6.Salida: “Hola mundo!” Descargar de aula virtual el archivo: AreaRectangulo.java Problema: Realizar un programa que dados tres números por el usuario diga cual es el mayor.
20
Un ejemplo de una clase: class Persona { String nombre; int edad; void cumpleanio( ) { edad++; System.out.println(nombre+ ' tiene ahora ' + edad + ' años' ); } } Debe estar en archivo: Persona.java
21
Otro ejemplo de una clase class Conductor extends Persona { long numeroDeLicencia; Date FechaDeExpiracion; } Hereda de
22
Crear y usar un objeto Persona juan; juan = new Persona( ); juan.nombre = “Juan Gonzalez"; juan.edad = 37; Persona iranid = new Persona ( ); iranid.nombre = “Iranid Perez"; iranid.edad = 33; iranid.cumpleanio( );
23
Un array es un objeto Persona iranid= new Persona ( ); int miArray[ ] = new int[5]; o: int miArray[ ] = {1, 4, 9, 16, 25}; String lenguajes[ ] = {“Python", "Java"};
24
Definición de métodos: Son el equivalente a los procedimientos de los lenguajes no OO. Un método es un bloque de código definido dentro de una clase. Proporciona un mecanismo para indicarle a un objeto que realice una acción. Un método tiene acceso a todos los atributos de su clase. Un método puede invocar otros métodos La ejecución de todos las aplicaciones se inicia en el método main de alguna de las clases.
25
Definición de métodos: Sintaxis: ( ){ } La declaración de un método tiene cuatro partes básicas: El nombre del método (nombreMetodo) El tipo del valor de regreso del método (tipo). Si no devuelve ningun valor debe ser void. Una lista de parámetros (parametros). Cada parámetro tiene la forma. Se separan con comas. El cuerpo del método (instrucciones).
26
Si devuelve un valor debe finalizar con la sentencia return return ; Debe ser del mismo con que se ha declarado el metodo. El código se ejecuta hasta alcanzar la instrucción return (si devuelve un valor) o hasta el final del método. Se pueden declarar variables locales si son necesarias. Definición de métodos:
27
Ejemplos de métodos: public double obtRadio( ){ return radio ; } public void asigRadio(int nuevoRadio){ radio = nuevoRadio; } public double Area( ) { return radio*radio*Math.PI ; }
28
Parámetros de los métodos: Se cumplen las mismas que en python, C,…. Deben coincidir en numero los parámetros declarados en el método y los pasados. Deben coincidir en orden. … Todo parámetro distinto de un objeto es pasado por valor, sino por referencia.
29
Parámetro por referencia: Ejemplo class PruebaPasoPorReferencia { public static void main (String[] args){ Circulo miCirculo; String colorNuevo = “negro”; miCirculo = new Circulo(5.0, "blanco"); imprimeCirculo(miCirculo); colorCirculo(miCirculo, colorNuevo); imprimeCirculo(miCirculo); } public static void colorCirculo( Circulo c, String color) { c.color = color; } public static void imprimeCirculo(Circulo c) { System.out.println("El área del circulo de radio " + c.getRadio( ) + " es " +c.Area()); System.out.println("El color del Circulo es " + c.color); }
30
Alcance de las variables(I) En java se dispone de tres tipos de variables: Las variables miembro pertenecientes a una clase. Argumentos de un método de la clase. Variables locales de un método de la clase. Los argumentos trabajan como variables locales. public class Ejemplo { private int x; // variable miembro public metodo (int y){ // argumento int z; // variable local x = y + z; }
31
Alcance de las variables (II) Las variables miembros son visibles desde cualquier parte de la clase. Los argumentos y variables locales solo son visibles dentro del metodo al que pertenece, dejan de existir al finalizar el metodo. Dentro de un metodo, si coincide el identificador de un argumento o variable local con el de una variable miembro, solo se accede a la variable del metodo.
32
Ejemplo Alcance: public class A { int x; public void metodo(){ int x = 1; System.out.println("x vale:" + x); } public void setX(int a){ x = a; } public class PruebaAlcance{ public static void main(String[] args){ int arg = 4; A obj = new A(); obj.setX(256); obj.metodo(); } Archivo A.java Archivo PruebaAlcance.java Se compila: javac PruebaAlcance.java Se corre: java PruebaAlcance Salida: x vale 1 En la misma carpeta
33
La referencia this Se emplea para referirse al objeto actual dentro de un método. Con this se hace accesible una variable miembro de la clase cuyo identificador coincide con una variable local. System.out.println("x vale:" + x); -- System.out.println("x vale:" + this.x);
34
Constructores (I) Un constructor es un tipo especial de método que permite construir un objeto de una clase. Usado para inicializaciones Ejemplo: public class Circulo { public Circulo(){…} public Circulo(double r){…} public Circulo(double r, String c){…} } Se utilizan junto con la palabra reservada new que hace la invocación Circulo c1 = new Circulo(27);
35
Constructores (II) Los constructores se pueden sobrecargar y son opcionales Si no se define ningún constructor, Java proporciona uno por defecto (sin parámetros). Si se define un constructor con argumentos se pierde el constructor por defecto Normalmente en el constructor se inicializan las variables miembro.
36
Destructores En Java no hay destructores El garbage collector es el encargado de liberar la memoria. Cuando se detecta objetos no referenciados Al final de un bloque que haya utilizado objetos.
37
Más conceptos de OO Encapsulamiento Herencia Polimorfismo
38
Modificadores para restringir el acceso (I) La definición de los miembros de una clase se puede ampliar añadiendo modificadores al principio.: [modificador] ; (Variables) [modificador] ( ){...} (Métodos) Los modificadores permiten acceder a los datos o métodos de manera restringida
39
Modificadores para restringir el acceso (II) public : El miembro de la clase es accesible desde cualquier parte del código. private : El miembro de la clase sólo es accesible desde código perteneciente a la propia clase. Note que las subclases tampoco tienen acceso. protected : Sólo las subclases de la clase y nadie más pueden acceder a las variables y métodos.
40
Ejemplo encasulamiento public class Circulo { // Atributos private double radio; private String color; // Metodos public void asigRadio( ){ … } public double getRadio( ){…} } public static main(String args[] ) { Circulo c1; double r1; c1 = new Circulo(); r1 = c1.radio; // Incorrecto!!! r1= c1.getRadio(); // Correcto
41
Herencia (I) Jerarquia de clases basada en agrupar atributos y/o métodos comunes Las clases ascendientes se llaman superclases. Las clases descendientes se llaman subclases. Las subclases heredan características y métodos de las superclases incluso los privados (excepto los constructores) Las partes comunes se pueden agrupar en una misma clase, manteniendo las otras dos con las partes no comunes y heredando de esta nueva clase con la palabra reservada extends.
42
Ejemplo de herencia: public class Empleado { protected int codigo; protected String nombre; protected Int numDep; } public class Jefe extends Empleado{ private int numSupervisados; } public class Secretaria extends Empleado { private Jefe trabajaPara; }
43
Herencia (III) Para saber si la relación de herencia es correcta, se plantea la pregunta “La subclase es una superclase?”. La respuesta debe ser sí. ¿Una secretaria es una persona? Si una clase hereda de una única clase se considera herencia simple. Si una clase hereda de varias clases se considera herencia múltiple. Java sólo permite herencia simple. La herencia simple hace que el código sea reutilizable Para llamar al constructor del padre usar super(argumentos)
44
Ejemplo de polimorfismo: Persona v[]=new Persona[10]; // Se introducen alumnos, profesores y personas en v v[0] = new Persona(); v[1] = new Profesor(); v[2] = new Alumno(); v[3] = new ProfesorJubilado();.... v[9] = new ProfesorJubilado(); for (int i=0 ; i<10; i++){ System.out.println(v[i].toString()); }
45
Declarando una clase Partes de la declaracion [public abstract final] class Name extends SuperClase Implements Interfaces { cuerpo... } Por defecto: no public, no abstract, no final, extends Object Si no, es pública. Sólo visible en el mismo paquete.
46
Declarando un atributo Nivel de acceso private, protected, etc. static si es una var de clase final es constante
47
Sobrecarga de métodos(Ejemplo): public class DemoOverloading { void print(int a, int b) {... } void print(int a, char b) {... } void print(char a, int b) {... } void print(int a, int b, int c) {... } }
48
Directa aclaratoria de Java: public class Error{ int x ; public static int y ; public static void main (String args[]) { Y = 15 ; //OK x = 20 ; //ERROR } En main solo se pueden usar Variables y métodos estáticos O variables locales
49
Ejemplo de uso de referencias: public class Persona { String ci, nombre; Persona madre, padre; public Persona(String nombre, String ci) { this.ci = ci; this.nombre = nombre; } public Persona(String nombre, String ci Persona madre, Persona padre){ this(ci, nombre); this.madre = madre; this.padre = padre; } a = new Persona(“Josefina”,”22-900750”) B= new Persona(“Romero”,”21-21-222”, new Persona(“hola”,”Hola”), null) Error muy común: tratar de acceder a referencias null.
50
Otro ejemplo con referencias: Public class Ficha{ public int id; Public Ficha(int i) { id = i; } public class RefDemo { public static void main(String[] args) { Ficha f1; Ficha f2; f1 = new Ficha(2); f2 = new Ficha(4); f2 = f1; f1.id++; f2.id;++; } Notar asignación
51
Ejercicio: Crear una lista simplemente enlazada Valor 0 pts (sube tu exp) Descargense los archivos: ClienteLista.java,ListaSimple.java,Nodo.java Muevanlos para que estén en la misma carpeta Compilen : javac ClienteLista.java Corran : java ClienteLista Ejercicio: ¡HAGAN QUE FUNCIONE!
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.