1 / 118

Java

Java. Antonio Regalado José Francisco Méndez García Rodolfo Salazar Carmona José Antonio. Contenido. Historia. Aspectos de diseño Aspectos de traducción Tipos y objetos Encapsulación Herencia Control de Secuencia Control en Subprogramas Administración de almacenamiento

zev
Download Presentation

Java

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java • Antonio Regalado José Francisco • Méndez García Rodolfo • Salazar Carmona José Antonio

  2. Contenido • Historia. • Aspectos de diseño • Aspectos de traducción • Tipos y objetos • Encapsulación • Herencia • Control de Secuencia • Control en Subprogramas • Administración de almacenamiento • Procesamiento distribuido

  3. Historia • Java fue diseñado en 1990 por James Gosling, de Sun Microsystems • fue diseñado antes de que diese comienzo la era World Wide Web, • software para dispositivos electrónicos de consumo. • fue diseñado para dispositivos electrónicos como calculadoras, • microondas y la televisión interactiva • Lenguaje que independiente de la plataforma • El lenguaje Java evolucionó de un lenguaje llamado Oak. • (A Oak se le cambio el nombre a Java)

  4. Historia (..cont) • software para dispositivos electrónicos de consumo. • Diseñado para calculadoras, celulares, microondas, • la televisión interactiva, etc.

  5. Historia (..cont) • El objetivo fue recoger las idear un nuevo lenguaje de • programación lo más sencillo posible, con el objeto de que se • pudiese adaptar con facilidad a cualquier entorno de ejecución. • Se conjuntaron las características esenciales que debía tener un • lenguaje de programación moderno y potente.

  6. Historia (..cont) • El proyecto Green fue el primero en el que se aplicó Java (OAK) • sistema de control completo de los aparatos electrónicos y el entorno de un hogar. • Se construyó un computadora denominada *7 (Star Seven). • El control se llevaba a cabo mediante una pantalla sensible al tacto. • En el sistema aparecía ya Duke, la actual mascota de Java.

  7. Historia (..cont) • Java se aplicó a otro proyecto denominado VOD (Video On Demand) • como interfaz para la televisión interactiva • nunca se convirtió en un sistema comercial • cuando se dieron cuenta de que la televisión interactiva no iba a ser negocio, se enfocaron a la aplicación de Java a Internet.

  8. Historia (..cont) • RESUMEN: • 1990: Sun Microsystems diseña un lenguaje diseñado para sistemas embebidos,(set-top-boxes), electrodomésticos. • Lenguaje sencillo, pequeño, neutro. • Ninguna empresa muestra interés por el lenguaje • 1995: Java se introduce en Internet, lenguaje muy apropiado • Netscape 2.0 introduce la primera JVM en un navegador WWW (Máquina virtual Java) • Filosofía Java: “Write once, run everywhere”

  9. Historia (..cont) • RESUMEN: • 1997: Aparece Java 1.1. Muchas mejoras respecto a 1.0 • 1998: Java 1.2 (Java 2). Plataforma muy madura • Apoyado por grandes empresas: IBM, Oracle, Inprise, Hewtlett-Packard, Netscape, Sun • 1999: Java Enterprise Edition. Java comienza a ser una plataforma de desarrollo profesional.

  10. Contenido • Historia. • Aspectos de diseño • Aspectos de traducción • Tipos y objetos • Encapsulación • Herencia • Control de Secuencia • Control en Subprogramas • Administración de almacenamiento • Procesamiento distribuido

  11. Aspectos de diseño • Directrices en el diseño de Java: • Crear un L.P. orientado a objetos • Datos “strongly typed” • Con el poder de C++, sin sus debilidades: • apuntadores y su aritmética • herencia multiple. • Variables globales. • Seguridad en el código y facilidad de desarrollo.

  12. Código fuente Compilador Java Byte-codes Win32 JVM Macintosh JVM UNIX JVM Código máquina Win32 Código máquina Macintosh Código máquina UNIX Aspectos de diseño (cont.) 3. Independencia de la arquitectura (creación de la JVM)

  13. Aspectos de diseño 4. Seguridad para el usuario 5. Permitir que en los programas existieran mas de un flujo de ejecución (Threads) 6. Garbage collection

  14. La JVM • Es una máquina imaginaria que se implementa por software • Su lenguaje máquina se denomina byte codes. • Sun publicó las especificaciones para la máquina virtual de Java • para asegurar la portabilidad de las aplicaciones.

  15. La JVM (cont.) • Las especificaciones para la JVM abarcan: • El set de instrucciones (como los de un microprocesador) • El conjunto de registros • Formato de los archivos .class • La pila • El área de Garbage-collected heap. • El área de memoria

  16. La traducción y momentos de ligado. • Por ser “strongly typed”, casi todo el chequeo y enlaces de tipos se hacen en tiempo de compilación. • La “compilación” se refiere a la conversión del programa • hecho por el programador a byte-codes. • Sin embargo por ser un lenguaje interpretado, los enlaces se • calculan en tiempo de ejecución. • En alguno sistemas, una parte del código se compila realmente • en código maquina, pero después que la JVM hizo chequeos de • integridad.

  17. La traducción y momentos de ligado. Class Loader • La JVM: • Carga el código • Lo verifica y • Lo ejecuta Byte-Codes Verifier Interpreter JIT Compiler Runtime HARWDARE

  18. Paradigma • Java esta diseñado para el paradigma de orientación a objetos. class Circle { private double radius; static double pi = 3.1416; public double getCircumference( ) { }public static double getCircumference(double radius) { }public void setRadius(double radius) { }public double getRadius( ) { } // constructorspublic Circle( ) { }public Circle(double radius) { } // main( ) method }

  19. Contenido • Historia. • Aspectos de diseño • Aspectos de traducción • Tipos y objetos • Encapsulación • Herencia • Control de Secuencia • Control en Subprogramas • Administración de almacenamiento • Procesamiento distribuido

  20. Aspectos de traducción Elementos sintácticos del lenguaje COMENTARIOS // comentario Los caracteres desde // hasta el final de la línea son ignorados /* comentario */ Los caracteres entre /* y */ son ignorados /** comentario */ Los caracteres entre /** y */son ignorados y se incluyen en la generación autómatica de la documentación.

  21. Aspectos de traducción Elementos sintácticos del lenguaje IDENTIFICADORES • Nombre dado a una variable, un método o una clase • Comienzan con una letra Unicode (incluyendo _ and $) y seguido de letras y digitos • Pueden ser de cualquier longitud • Ejemplos: • Apellido • Hora • 

  22. Aspectos de traducción Elementos sintácticos del lenguaje El Bloque { } public class MyClass { int a; static int b; public void myMethod( ) {int c; if (condition) {int d;} fuera del alcance de d }fuera del alcance de c }fuera del alcance de a

  23. Aspectos de traducción Elementos sintácticos del lenguaje • Variables • Una variable es un dato con nombre. • Precedencia de las variables • Variables locales declaradas en un bloque • Como parámetros de un método • Instancias y variables de una clase.

  24. Aspectos de traducción Elementos sintácticos del lenguaje • Constantes • Una vez inicializada, ya no pueden cambiar • Se usa la palabra reservada final • class Circle { • staticfinal double  = 3.1416; • }

  25. int[ ] x; (Es equivalente a int x[ ]) X 10 20 x = new int[3]; 30 x[0] = 10; x[1] = 20; x[2] = 30; • x.length da la longitud del arreglo. Aspectos de traducción Elementos sintácticos del lenguaje Arreglos

  26. Aspectos de traducción Elementos sintácticos del lenguaje Operadores Asignación = -= /= += *= %= Aritméticos + Suma - Resta * Multiplicación / Division % Modulo

  27. Aspectos de traducción Elementos sintácticos del lenguaje Operadores Incremento ++ i++ -- i-- Relacionales > mayor que >= mayor o igual que < menor que <= menor o igual que == igual que != diferente que Lógicos && and || or !not

  28. Aspectos de traducción Elementos sintácticos del lenguaje Operadores De bits & and << corrimiento izq. | or >> corrimiento der. ^ xor >>> corrimiento der. con ˜ complemento llenado con ceros

  29. Aspectos de traducción Elementos sintácticos del lenguaje • Sentencias de control de flujo • if / else if ( country.equals("USA") ) { export = false; } else { export = true; } • switch • switch ( <expression> ) { • case <expression>: . . . break; • case <expression>: . . . break; • default: . . . • }

  30. Aspectos de traducción Elementos sintácticos del lenguaje • Sentencias de control de flujo • for for ( x=0; x<10; x++ ) { // Se ejecuta el bloque mientras x sea menor a 10 } • while (Ejecución cero o más veces) while ( boolean_expression ) { block } • do / while (Ejecución al menos una vez) do { block } while ( boolean_expression );

  31. Aspectos de traducción Elementos sintácticos del lenguaje • Sentencias de control de flujo • break (termina la ejecución del loop y la ejecucióncontinua en la siguiente instrucción después del loop) int ix; for (ix=0; ix < ArraySize; ix++) { if Array[ix]<0 { System.out.println(“Error: negative number encountered, index = “ +ix); break; } ProcessArray(Array[ix]); } // end for

  32. Aspectos de traducción Elementos sintácticos del lenguaje • Sentencias de control de flujo • Labeled Loops (versión extendida de break, útil en loops anidados, termina la ejecución de loops anidados) err: for (ix=0; ix < ArraySize; ix++ ){ for(j=0; j<ArraySize; j++){ System.out.println(“Error: negative number encountered, index = “ +ix “,” + j); break err; } ProcessArray(Array[ix][j]); }

  33. Contenido • Historia. • Aspectos de diseño • Aspectos de traducción • Tipos y objetos • Encapsulación • Herencia • Control de Secuencia • Control en Subprogramas • Administración de almacenamiento • Procesamiento distribuido

  34. Tipos y objetos • TIPOS DE DATOS • boolean true or false • char 16-bit Unicode character • byte 8-bit integer (signed) • short 16-bit integer (signed) • int 32-bit integer (signed) • long 64-bit integer (signed) • float 32-bit floating-point number • double 64-bit floating-point number

  35. Contenido • Historia. • Aspectos de diseño • Aspectos de traducción • Tipos y objetos • Encapsulación • Herencia • Control de Secuencia • Control en Subprogramas • Administración de almacenamiento • Procesamiento distribuido

  36. Encapsulación • La abstracción en java se maneja utilizando clases abstractas. • Una clase abstract se usa como clase base para la herencia. • Ejemplo • public abstract class Geometria{ • public abstract double perimetro(); • public abstract double area(); • }

  37. Encapsulación • Las subrutinas se manejan definiendo metodos en las clases que serán llamados desde otras clases. • public class Circulo extends Geometria{ • static int numCirculos = 0; • private static final double PI = 3.1416 • private double x,y,r; • public double perimetro() { • return 2.0 * PI * r; • } • }

  38. Encapsulación • Los métodos (funciones) pueden regresar cualquier tipo de “objeto dato” primitivo o estructura de datos. • public static Circulo elMayor(Circulo c, Circulo d) { • if c.getRadio() >= d.getRadio() • return c; • else • return d; • }

  39. Encapsulación • La encapsulación se puede lograr creando métodos para establecer y obtener valores a los atributos. • Public double getRadio( ) { • return r; • } • Public void setRadio(double unRadio) { • r=unRadio; • }

  40. Encapsulación • El ocultamiento de la información en java se logra con la clausula private. • Las variables y métodos de instancia privados sólo pueden ser accedidos desde dentro de la clase. • ... • private Vector v; • private void dibuja (Vector vect ) { • Enumeration e; • v=vect; • e=v.elements(); • while(e,hasMoreElements()){ • ... • } • } • ...

  41. Encapsulación • La especificación de un subprograma en java es de la siguiente manera • import java.awt;//sección de importaciones • public class nombreDeClase extends ClasePadre { • Definición de variables... • Definición de métodos... • }

  42. Encapsulación • La invocación de métodos desde una clase se realiza creando una instancia de la clase a invocar y después llamando a cualquier método. • import ... • public class Figuras extends Applet • { • ... • public void paint (Graphics g) • { • int x=10, y=10, anchura=80, altura=50; • //llamada al método drawRect de la clase Graphics • g.drawRect(x,y,anchura,altura); • } • }

  43. Contenido • Historia. • Aspectos de diseño • Aspectos de traducción • Tipos y objetos • Encapsulación • Herencia • Control de Secuencia • Control en Subprogramas • Administración de almacenamiento • Procesamiento distribuido

  44. Herencia • Mecanismo por el que se crean nuevos objetos definidos en términos de objetos ya existentes. • public class Articulo { // clase padre • public float precio=0; • ... • public void setPrecio(float elPrecio) { • precio = elPrecio; • } • ... • public float getPrecio() { • return precio; • } • } • //los métodos y atributos de Articulo son heredados a Pelicula • public class Pelicula extends Articulo {// clase hijo • public void setDescripcion(String descrip) { • descripcion = descrip; • } • ... • public String getDescripcion() { • return descripcion; • } • }

  45. Herencia • Tipos de Clases en Java • abstract • Una clase abstracta no se instancia, sino que se utiliza como clase base para la herencia. • final • Una clase final se declara como la clase que termina una cadena de herencia. • public • Las clases public son accesibles desde otras clases, bien sea directamente o por herencia. Para acceder desde otros paquetes, primero tienen que ser importadas.

  46. Herencia • Nivel de acceso a métodos y atributos • public • Cualquier clase desde cualquier lugar puede acceder a las variables y métodos. • protectedo friendly • Sólo las subclases de la clase y nadie más puede acceder a las variables y métodos. • private • Las variables y métodos de instancia privados sólo pueden ser accedidos desde dentro de la clase.

  47. Herencia • Paquetes • Se usan para encapsular los datos de manera automática. • Los paquetes de clases se cargan con la palabra clave import. • Ejemplos: • import java.Date; • import java.awt.*; • import miPaquete.miClase;

  48. Herencia • Paquetes de java • java.applet • Contiene clases para usar applets en páginas web. • java.awt (Abstract Windowing Toolkit) • Contiene clases para diseñar interfases de usuario. Incluye las clases Button, Checkbox, Choice, Component, Graphics, Menu, Panel, TextArea y TextField. • java.io • Contiene las clases de acceso a archivos.

  49. Herencia • Herencia Simple • Java no pueda utilizar herencia multiple, en lugar de ello utiliza interfases. • La interfase proporciona un mecanismo de encapsulación de los protocolos de los métodos. • Una interfaz es como un molde donde se declaran nombres de métodos, listas de argumentos, tipos de retorno y miembros datos.

  50. Herencia • Implementación de una interfaz • public interface VideoClip { • void play( ); // Comienza la reproducción del video. • void loop( ); // Reproduce el video en un ciclo. • void stop( ); // Detiene la reproducción. • }

More Related