La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Introducción a JAVA CI-2693 LABORATORIO DE ALGORITMOS Y ESTRUCTURAS III SECCIÓN 1 – 2 PROFESOR: GUILLERMO PALMA PREPARADOR: MANUEL GONZALEZ CORREO:

Presentaciones similares


Presentación del tema: "Introducción a JAVA CI-2693 LABORATORIO DE ALGORITMOS Y ESTRUCTURAS III SECCIÓN 1 – 2 PROFESOR: GUILLERMO PALMA PREPARADOR: MANUEL GONZALEZ CORREO:"— Transcripción de la presentación:

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.

6

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!


Descargar ppt "Introducción a JAVA CI-2693 LABORATORIO DE ALGORITMOS Y ESTRUCTURAS III SECCIÓN 1 – 2 PROFESOR: GUILLERMO PALMA PREPARADOR: MANUEL GONZALEZ CORREO:"

Presentaciones similares


Anuncios Google