Download Java - Beatriz Beltrán Martínez
Document related concepts
no text concepts found
Transcript
Programación Orientada a Objetos MC Beatriz Beltrán Martínez Primavera 2015 Primavera 2015 FCC - BUAP • La tecnología Java se creó como una herramienta de programación para ser usada en un proyecto de set-topbox en una pequeña operación denominada «the Green Project» en Sun Microsystems en el año 1991. • El lenguaje se denominó inicialmente Oak (por un roble que había fuera de la oficina de Gosling), luego pasó a denominarse Green tras descubrir que Oak era ya una marca comercial registrada para adaptadores de tarjetas gráficas y finalmente se renombró a Java. • El término Java fue acuñado en una cafetería frecuentada por algunos de los miembros del equipo. BBM Historia 72 Primavera 2015 BBM • Todo programa en lenguaje JAVA debe tener la siguiente extensión: file.java //en UNIX, Windows, Linux FCC - BUAP Preliminares • Comentarios en JAVA /* Este es un comentario */ /* Este también es un comentario multilíneas */ // comentario unilineal 73 Primavera 2015 FCC - BUAP • Todas las aplicaciones deben tener un main. • public static void main(String args[]) es la forma de definir. • Las llaves { } denotan el cuerpo del programa. • Toda declaración termina con un punto y coma (“;”). • La sintaxis es muy parecida a la del lenguaje C. BBM Programa Principal 74 Primavera 2015 FCC - BUAP • Es un lenguaje simple, orientado a objetos, distribuido, interpretado, robusto, seguro, de arquitectura neutra, portable, de alto desempeño, de hilos múltiples y dinámico. • Es un lenguaje de programación orientado a objetos. • Como los programas de Java se compilan en un formato de bytecode (código de bytes) de arquitectura neutral, una aplicación de Java se puede ejecutar en cualquier sistema, siempre y cuando dicho sistema instrumente la máquina virtual de Java. BBM JAVA 75 Primavera 2015 FCC - BUAP • El compilador no compila para la plataforma de origen, sino para una plataforma abstracta llamada máquina virtual de Java, o JVM-Java Virtual Machine. • Características: • Lenguaje Distribuido. • Robusto y confiable. • Carencia de apuntadores. • Seguro. • De hilos múltiples. BBM Características 76 Primavera 2015 FCC - BUAP • Simplicidad. • Java no posee aritmética de punteros. • No se necesita hacer delete. • No hay herencia múltiple. • Independiente de Plataforma. • La independencia de la plataforma es la capacidad del programa de trasladarse con facilidad de un sistema computacional a otro. • A nivel de código fuente, los tipos primitivos de datos Java, tiene tamaños consistentes, en todas las plataformas de desarrollo. • Los archivos binario Java, se encuentran en una forma llamada bytecode. BBM Características 77 Código JAVA Pentium ByteCode JAVA Primavera 2015 FCC - BUAP Intérprete JAVA Compilador JAVA BBM Características Power PC SPARC 78 Primavera 2015 FCC - BUAP • Seguridad. • La seguridad es un aspecto importante en Java, el visualizador baja el código de toda la red y lo ejecuta en el anfitrión del usuario. • El propio lenguaje Java incluye restricciones cerradas de acceso a memoria. • Una rutina de verificación de códigos de byte en el intérprete de Java verifica que los códigos de byte (Bytecodes) no violen ninguna construcción del lenguaje. BBM Características 79 Primavera 2015 FCC - BUAP • Flexibilidad. • Java combina flexibilidad, robustez y legibilidad gracias a una mezcla de chequeo de tipos durante la compilación y durante la ejecución. • En Java se pueden tener punteros a objetos de un tipo específico y también se pueden tener apuntadores a objetos de cualquier tipo. • El programador usa entonces apuntadores de tipo específico en la mayoría de los casos con el fin de ganar legibilidad y en unos pocos casos usa apuntadores a tipos desconocidos cuando necesita tener flexibilidad. BBM Características 80 Primavera 2015 FCC - BUAP • Administración automática de memoria. • En Java los programadores no necesitan preocuparse de liberar un trozo de memoria cuando ya no lo necesitan. • Es el recolector de basuras el que determina cuando se puede liberar la memoria ocupada por un objeto. • El impacto que un recolector de basura en el tiempo de desarrollo y en la confiabilidad del software resultante es muchos más importante que la pérdida en eficiencia. BBM Características 81 Primavera 2015 FCC - BUAP • Una aplicación es un programa convencional que se invoca desde el intérprete de comandos. Este programa se carga directamente desde el disco y no de la red Internet. • Crear un archivo llamado Hello1.java con: // La aplicación Hello World! public class Hello1 { public static void main (String args[]) { System.out.println("Hello World!"); } } BBM Hola Mundo 82 Primavera 2015 FCC - BUAP • Un applet es un programa que anima una porción de una página Web. Se recupera a partir de la red y corre en la máquina del usuario, pero con muchas restricciones. • Crear el programa fuente Hello2.java con: import java.awt.Graphics; import java.applet.Applet; public class Hello2 extends Applet { public void paint(Graphics g) { g.drawString("Hello world!", 50, 25); } } BBM Hola Mundo 83 <html> <body> Este es un applet: <applet code="Hello2.class" width=150 height=25> </applet> </body> </html> Primavera 2015 FCC - BUAP • Crear la página Hello.html con el siguiente contenido: BBM Hola Mundo 84 Primavera 2015 FCC - BUAP • Hello.html debe estar en el mismo directorio que Hello2.java. • Ver el applet con: appletviewer Hello.html • Dado que un applet no se invoca desde el intérprete de comandos, no tiene sentido definir el método main. El browser Web notifica al applet que debe dibujar su contenido invocando el método paint. Esto ocurre cada vez que se muestra la porción de la página html que contiene este applet. Por lo tanto un applet debe definir el método paint (en vez de main). BBM Hola Mundo 85 Primavera 2015 FCC - BUAP • Cada nivel de privilegio de acceso de métodos y variables está asociado con una palabra clave: • private • public • protected • Cada declaración contenida en el cuerpo de una clase define de manera implícita un privilegio de acceso apareciendo en una sección precedida de una de estas tres palabras clave. Si no se utiliza ninguna de esas palabras, todo es protected por omisión. BBM Control de acceso 86 • El método utilizado por Java es añadir un argumento extra oculto a las funciones miembro. Este argumento es un puntero al objeto de la clase que lo enlaza con la función asociada y recibe un nombre especial denominado this. Primavera 2015 FCC - BUAP • Nunca se puede llamar a una función de instancia de una clase a menos que se asocie con un objeto (una instancia de la clase). BBM Operador this 87 nombre, variando solamente en los parámetros de su declaración. Primavera 2015 FCC - BUAP • En Java, dos o más funciones pueden tener el mismo BBM Polimorfismo (Sobrecarga de Constructores) • También los constructores pueden ser sobrecargados, simplemente debemos declarar las diferentes formas que deberá tomar, y definir su acción relativa a cada una de ellas. 88 Primavera 2015 FCC - BUAP • Un mecanismo de Polimorfismo en un lenguaje de programación, lo constituye la sobrecarga de funciones. En Java, dos o más funciones pueden tener el mismo nombre, difiriendo solamente en los parámetros de su declaración. BBM Sobrecarga de funciones • Las funciones que comparten nombre, pero que declaran parámetros diferentes, se dicen que están Sobrecargadas. 89 adquirir las propiedades de otro objeto. • La importancia de la herencia se basa en que constituye Primavera 2015 FCC - BUAP • Es el proceso por medio del cual, un Objeto puede BBM Herencia un mecanismo que soporta la clasificación. • La herencia solo puede ser simple. 90 class B extends A { // Clase que hereda de la clase abuela A public void FB(); } Primavera 2015 // Clase abuela A // Variable protegida FCC - BUAP class A { protected int value_a; } BBM Ejemplo de Herencia class C extends B { // Clase que hereda de clase derivada B public void FC(); } 91