+ Java en 2 horas Rodrigo Santamaría
+ Generaidades 2 Desarroado por Sun en 1995 Hereda mucha de a sintaxis de C (1972) Fuertemente tipado y orientado a objetos Apicaciones compiadas a bytecode Gestión interna de a reserva de memoria Desde 2007, e Java de Sun es software ibre Savo as bibiotecas de cases para ejecutar programas java (OpenJDK) IcedTea es una versión de a OpenJDK totamente ibre
+ Bytecode 3 Un programa Java no se compia a código de a máquina, si no a bytecode Código intermedio entre e código máquina y e enguaje de ato nive que permite que un programa Java corra en distintas pataformas sin recompiar Tan sóo es necesario tener instaada a Máquina Virtua de Java (JVM), que se encarga de ejecutar as instrucciones de bytecode
+ JRE y JDK 4 Java Runtime Environment (JRE) Contiene a JVM en su versión más simpe Suee incuir as bibiotecas de cases estándar (API de Java, o J2SE, hoy Java Standard Edition o JSE) - Vamos por a versión 1.6 Java Deveopment Kit (JDK) JRE para desarroar programas java API de Java (código fuente ibre) Compiador de Java (javac), generador de documentación (javadoc), visor de appets, depurador, etc.
+ Hoa Mundo 5 case cass Hoa método pubic static void main(string[] args) System.out.printn("Hoa, mundo."); Tipos básicos como en C javac Hoa.java java Hoa
+ Sintaxis básica 6 Contro de fujo Tipos básicos Arrays Idéntico a C Operadores aritmético-ógicos Formato de cadenas: variabes entre texto String cad= hoa, +nombre+, buenos días ; Paabras cave particuares: package, cass, pubic, private, extends, impements, this...
+ Entornos de Desarroo Integrado (IDE) 7 Integran bibiotecas, compiador, intérprete, depurador, editor y otros compementos en un soo entorno: Netbeans Ecipse InteiJ IDEA Anjuta En esta asignatura utiizaremos Ecipse Es gratuito y con icencia de software ibre (EPL) Tiene una instaación impia, disponibe en e aua Ampiaciones (pugins) para desarroo web
+ Paquetes y Cases 8 Paquete: contenedor de cases (carpeta) Case: contenedor de métodos y atributos (fichero) Convención: en minúscua en mayúscua package introduccion cass Hoa... introduccion Herencia.java paquete2 dentro de paquete1: paquete1.paquete2
+ Cases y objetos 9 Case: diseño abstracto de un concepto Define atributos (variabes de a case) Define métodos (operaciones de a case) Objeto: cada instancia concreta de a case Permite dar vaor a os atributos Permite ejecutar os métodos
+ Cases y Objetos case pubic cass Coche foat veocidad; int numpuertas; String coor; pubic Coche(int numpuertas, foat veocidad, String coor) this.veocidad=veocidad; this.numpuertas=numpuertas; this.coor=coor; pubic int getnumpuertas() return numpuertas; pubic void aceerar(int nuevaveocidad) if(nuevaveocidad>veocidad) veocidad=nuevaveocidad; 10 import Coche objeto pubic cass Main pubic static void main(string [] args) Coche miferrari=new Coche(3,0, rojo ); System.out.printn( Mi coche tiene " +miferrari.getnumpuertas()+ puertas ); miferrari.aceerar(100);
+ Variabes y atributos Acance 11 package introduccion; /** * Taba de mutipicar * (Variabes y atributos) */ cass Mut int m; //Atributo de a case Mut pubic static void main(string[] args) if (args.ength!=1) System.err.printn("USO: java Mut <n>"); return; m int n=integer.parseint(args[0]);//variabe de método main for (int i=1;i<=10;i++) System.out.printn(n+"x"+i+"="+n*i); n...
+ Privacidad 12 pubic: accesibe desde fuera y dentro de a case private: accesibe sóo desde a case protected (por defecto) accesibe desde dentro de a case o de cases hijas Atendiendo a a moduaridad, es recomendabe que os atributos de una case sean privados o protegidos. Atendiendo a a caridad de código y eficiencia de recursos, os atributos púbicos pueden ser úties.
+ Herencia 13 Constructor por defecto ~ super() Vehícuo Coche Moto
+ Cases abstractas 14 No se pueden instanciar en objetos Paabra cave abstract antes de cass
+ Poimorfismo 15 pubic cass Coche extends Vehicuo impements Coneabe pubic Coche(int numpuertas, int veocidad, String coor) this.veocidad=veocidad; this.numpuertas=numpuertas; this.coor=coor; this.numruedas=4; pubic Coche(String coor) this.veocidad=0; this.numpuertas=3; this.coor=coor; this.numruedas=4; pubic Coche() this.veocidad=0; this.numpuertas=3; this.coor="negro"; this.numruedas=4; Varios métodos con e mismo nombre, siempre que os parámetros sean distintos
+ Métodos estáticos 16 pubic cass Coche extends Vehicuo pubic Coche(int numpuertas, int veocidad, String coor) this.veocidad=veocidad; this.numpuertas=numpuertas; this.coor=coor; this.numruedas=4;... pubic static String getautordelacase() return "Rodrigo Santamaría"; En un método estático no podemos hacer uso de atributos o métodos no estáticos pubic cass Main pubic static void main(string [] args) System.out.printn("Autor de a case Coche: " +Coche.getAutorDeLaCase());...
+ Gestión de a memoria 17 Reserva de memoria expícita (new) Liberación automática (garbage coector) Detecta objetos no utiizados/accesibes y os borra Puede reducir e rendimiento Soicitud expícita con System.gc(); Asignación de objetos por referencia Para asignación por vaor: coche1=coche2.cone(); Sóo si Coche impementa Coneabe - Y redefine e método cone() pubic Object cone() Coche obj=new Coche(); obj.numpuertas=this.numpuertas; obj.veocidad=this.veocidad; obj.coor=this.coor; return obj;
+ Contro de Errores E método indica qué excepciones pueden ocurrire 18 Y cuando ocurren, as anza A usar métodos que pueden anzar excepciones, deben estar en una sección try/catch, de forma que si se producen, as detectemos y gestionemos correctamente
+ Seriaización 19
+ Concuyendo... 20 Organización en: paquetes, cases y objetos atributos y métodos Programación Orientada a objetos: moduaridad, herencia, poimorfismo Gestión sencia de memoria, errores, I/O Mutipataforma (bytecode + máquina virtua) Sofware ibre API oficia Mutitud de paquetes desarroados
+ Documentación 21 Tutoria: http://java.sun.com/docs/books/tutoria/index.htm Documentación: http://java.sun.com/javase/8/docs/api Paquetes en a red para todo tipo de propósitos
+ Ejercicio 22 Definir una case Fruta y as cases hijas Naranja y Manzana. Deben tener os atributos genéricos - peso, en kios (atributo rea) - hechazumo, faso por defecto (atributo ógico) - La manzana debe tener también e atributo entero numpepitas Deben tener os métodos siguientes - Constructor por defecto y constructor que permita a usuario iniciar todos os atributos - Un método hacerzumo() que modifique e estado de a fruta si hechazumo es faso.
+ Ejercicio 23 Definir una case Principa que: Instancie dos frutas, una manzana y una naranja Nos diga e peso de a manzana Haga zumo de naranja Tratamiento de errores E método hacerzumo debe anzar una excepción si se intenta hacer zumo de una fruta ya exprimida La case Principa debe capturar a excepción y avisar a usuario
+ Ejercicio 24 cont. Seriaización La case Fruta debe impementar un método congear(string ugar) que guarde a fruta en a ruta especificada por ugar Para eo deberá impementar a interfaz Seriaizabe Utiizar e método para guardar e zumo de naranja en e fichero heado dentro de a carpeta nevera
25
Duke, a mascota de Java 26