Whole Site

  • View
    224

  • Download
    10

Embed Size (px)

Transcript

Introduccin a Java y Eclipsendice1 Introduccin al lenguaje Java....................................................................................... 31.1 Java.......................................................................................................................... 31.2 Conceptos previos de POO...................................................................................... 31.3 Componentes de un programa Java......................................................................... 51.4 Herencia e interfaces..............................................................................................141.5 Clases tiles........................................................................................................... 161.6 Estructuras de datos............................................................................................... 222 Ejercicios de Introduccin al lenguaje Java............................................................... 252.1 Uso de interfaces (1 punto).................................................................................... 252.2 Refactorizacin (1 punto)...................................................................................... 262.3 Documentacin (0.5 puntos).................................................................................. 262.4 Centro cultural (1 punto)........................................................................................263 Colecciones de datos.................................................................................................. 283.1 Colecciones............................................................................................................ 283.2 Comparacin de objetos.........................................................................................383.3 Polimorfismo e interfaces...................................................................................... 413.4 Tipos de datos bsicos en las colecciones..............................................................424 Ejercicios de colecciones............................................................................................434.1 Implementaciones e interfaces (1 punto)............................................................... 434.2 Uso de listas (1.5 puntos).......................................................................................435 Tratamiento de errores................................................................................................455.1 Introduccin........................................................................................................... 455.2 Errores en tiempo de ejecucin: Excepciones....................................................... 455.3 Errores en tiempo de compilacin......................................................................... 506 Ejercicios de tratamiento de errores........................................................................... 566.1 Captura de excepciones (0.5 puntos)..................................................................... 56Copyright 2012-13 Dept. Ciencia de la Computacin e IA All rights reserved.6.2 Lanzamiento de excepciones (1 punto)..................................................................566.3 Excepciones anidadas en la aplicacin filmotecas (1.5 puntos)............................ 587 Serializacin de datos................................................................................................. 597.1 Introduccin........................................................................................................... 597.2 Flujos de datos de entrada/salida........................................................................... 597.3 Entrada, salida y salida de error estndar...............................................................607.4 Acceso a ficheros................................................................................................... 617.5 Acceso a los recursos............................................................................................. 627.6 Acceso a la red....................................................................................................... 637.7 Codificacin de datos.............................................................................................637.8 Serializacin de objetos......................................................................................... 648 Ejercicios de Serializacin......................................................................................... 668.1 Leer un fichero de texto (0.5 puntos).....................................................................668.2 Lectura de una URL (0.5 puntos).......................................................................... 668.3 Gestin de productos (1 punto)..............................................................................668.4 Guardar datos de la filmoteca (1 punto)................................................................ 679 Hilos........................................................................................................................... 699.1 Creacin de hilos....................................................................................................699.2 Ciclo de vida y prioridades.................................................................................... 709.3 Sincronizacin de hilos.......................................................................................... 729.4 Bloques vigilados...................................................................................................739.5 Tipos de interbloqueos........................................................................................... 769.6 Mecanismos de alto nivel.......................................................................................7710 Ejercicios de Hilos.................................................................................................... 8310.1 Creacin de hilos (0.5 puntos)..............................................................................8310.2 Prioridades (0.5 puntos)....................................................................................... 8310.3 Productor/Consumidor (1 punto)......................................................................... 8410.4 Pool de hilos (1 punto)......................................................................................... 84Introduccin a Java y Eclipse2Copyright 2012-13 Dept. Ciencia de la Computacin e IA All rights reserved.1. Introduccin al lenguaje Java1.1. JavaJava es un lenguaje de programacin creado por Sun Microsystems, (empresa queposteriormentefuecompradapor Oracle) parapoder funcionar endistintos tipos deprocesadores.SusintaxisesmuyparecidaaladeCoC++,eincorporacomopropiasalgunas caractersticas que en otros lenguajes son extensiones: gestin de hilos, ejecucinremota, etc.El cdigo Java, una vez compilado, puede llevarse sin modificacin alguna sobrecualquier mquina, yejecutarlo. Estosedebeaqueel cdigoseejecutasobreunamquina hipottica o virtual, la Java Virtual Machine, que se encarga de interpretar elcdigo (ficheros compilados.class) y convertirlo a cdigo particular de la CPU que seest utilizando (siempre que se soporte dicha mquina virtual).1.2. Conceptos previos de POOJavaesunlenguajeorientadoaobjetos(OO), porloque, antesdeempezaraverquelementos componen los programas Java, conviene tener claros algunos conceptos de laprogramacin orientada a objetos (POO).1.2.1. Concepto de clase y objetoEl elemento fundamental a la hora de hablar de programacin orientada a objetos es elconceptodeobjetoens, as comoel conceptoabstractodeclase. Unobjetoesunconjunto de variables junto con los mtodos relacionados con stas. Contiene lainformacin (las variables) y la forma de manipular la informacin (los mtodos). Unaclase es el prototipo que define las variables y mtodos que va a emplear un determinadotipo de objeto, es la definicin abstracta de lo que luego supone un objeto en memoria.Poniendo un smil fuera del mundo de la informtica, la clase podra ser el concepto decoche, donde nos vienen a la memoria los parmetros que definen un coche (dimensiones,cilindrada, maletero, etc), y las operaciones que podemos hacer con un coche (acelerar,frenar, adelantar, estacionar). La idea abstracta de coche que tenemos es lo queequivaldraalaclase, ylarepresentacinconcretadecochesconcretos(porejemplo,Peugeot 307, Renault Megane, Volkswagen Polo...) seran los objetos de tipo coche.1.2.2. Concepto de campo, mtodo y constructorTodaclaseuobjetosecomponeinternamentedeconstructores, camposy/omtodos.Veamosqurepresentacadaunodeestosconceptos: uncampoesunelementoqueIntroduccin a Java y Eclipse3Copyright 2012-13 Dept. Ciencia de la Computacin e IA All rights reserved.contiene informacinrelativa a la clase, yunmtodoes unelementoque permitemanipular la informacin de los campos. Por otra parte, un constructor es un elementoque permite reservar memoria para almacenar los campos y mtodos de la clase, a la horade crear un objeto de la misma.1.2.3. Concepto de herencia y polimorfismoCon la herencia podemos definir una clase a partir de otra que ya exista, de forma que lanueva clase tendr todas las variables y mtodos de la clase a partir de la que se crea, mslas variables y mtodos nuevos que necesite. A la clase base a partir de la cual se crea lanueva clase se le llama superclase.Por ejemplo, podramos tener una clase genrica Animal, y heredamos de ella para formarclases ms especficas, como Pato, Elefante, o Len. Estas clases tendran todo lo de laclase padre Animal, y adems cada una podra tener sus propios elementos adicionales.Unacaractersticaderivadadelaherenciaesque, porejemplo, si tenemosunmtododibuja(Animal a), que se encarga de hacer un dibujo del animal que se le pasa comoparmetro, podremospasarleaestemtodocomoparmetrotantounAnimalcomounPato, Elefante, ocualquierotrosubtipodirectooindirectodeAnimal. Estoseconocecomo polimorfismo.1.2.4. Mo