1 / 106

INTRODUCCIÓN

INTRODUCCIÓN. DESCRIPCIÓN DEL LENGUAJE Y ANTECEDENTES IMPORTANTES. Descripción del Lenguaje.

clove
Télécharger la présentation

INTRODUCCIÓN

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. INTRODUCCIÓN

  2. DESCRIPCIÓN DEL LENGUAJE Y ANTECEDENTES IMPORTANTES

  3. Descripción del Lenguaje Java nace y da sus primeros pasos en 1991 formando parte de un proyecto de desarrollo de soporte software para electrónica de consumo (frigoríficos, lavadoras), llevado a cabo por un equipo de SUN llamado Green Team (Patrick Naughton, James Gosling y Mike Sheridan). Este primer enfoque le da a Java una de sus más interesantes características: La portabilidad, dado que Java tenia que funcionar en numerosos tipos de CPUs, basándose en el lenguaje de programación C++ y por tanto se pensó para ser independiente de la plataforma sobre la que funcione. Esta característica es muy posiblemente la que ha permitido a Java convertirse actualmente en el lenguaje por excelencia para la creación de aplicaciones en Internet.

  4. Descripción del Lenguaje La expansión de Java se desarrollo principalmente cuando Netscape Inc. Integro en su navegador Netscape Navigator el código Java para su utilización en el que fue un éxito debido a sus características y su fácil acceso al sector de la Word Wide Web. Este salto de Java para convertirse en un lenguaje de programación para computadores se da definitivamente en 1995 cuando en la versión 2 del navegador web netscape se incluye un interprete para este lenguaje, produciendo de este modo una auténtica revolución en Internet.

  5. Descripción del Lenguaje Con este nuevo enfoque Java sigue creciendo y saca su versión 1.1 en 1997 con muchas mejoras y adaptaciones, fruto de una revisión sustancial del lenguaje. Java 1.2 aparece a finales de 1998 y más tarde se rebautizará como Java 2. Sun describe a Java como “simple, orientado a objetos, distribuido, interpretado, robusto, seguro, de arquitectura neutra, portable, de altas prestaciones, multitarea y dinámico"

  6. Descripción del Lenguaje LENGUAJE SIMPLE Java posee una curva de aprendizaje muy rápida. Resulta relativamente sencillo escribir applets interesantes desde el principio. Todos aquellos familiarizados con C++ encontrarán que Java es más sencillo, ya que se han eliminado ciertas características, como los punteros. Debido a su semejanza con C y C++, y dado que la mayoría de la gente los conoce aunque sea de forma elemental, resulta muy fácil aprender Java. Los programadores experimentados en C++ pueden migrar muy rápidamente a Java y ser productivos en poco tiempo. ORIENTADO A OBJETOS Java fue diseñado como un lenguaje orientado a objetos desde el principio. Los objetos agrupan en estructuras encapsuladas tanto sus datos como los métodos (o funciones) que manipulan esos datos. La tendencia del futuro, a la que Java se suma, apunta hacia la programación orientada a objetos, especialmente en entornos cada vez más complejos y basados en red.

  7. ANTECEDENTES IMPORTANTES

  8. ANTECEDENTES IMPORTANTES DISTRIBUIDO Java proporciona una colección de clases para su uso en aplicaciones de red, que permiten abrir sockets y establecer y aceptar conexiones con servidores o clientes remotos, facilitando así la creación de aplicaciones distribuidas. INTERPRETADO Y COMPILADO A LA VEZ Java es compilado, en la medida en que su código fuente se transforma en una especie de código máquina, los bytecodes, semejantes a las instrucciones de ensamblador.Por otra parte, es interpretado, ya que los bytecodes se pueden ejecutar directamente sobre cualquier máquina a la cual se hayan portado el intérprete y el sistema de ejecución en tiempo real (run-time).

  9. ANTECEDENTES IMPORTANTES ROBUSTO Java fue diseñado para crear software altamente fiable. Para ello proporciona numerosas comprobaciones en compilación y en tiempo de ejecución. Sus características de memoria liberan a los programadores de una familia entera de errores (la aritmética de punteros), ya que se ha prescindido por completo los punteros, y la recolección de basura elimina la necesidad de liberación explícita de memoria. SEGURO Dada la naturaleza distribuida de Java, donde las applets se bajan desde cualquier punto de la Red, la seguridad se impuso como una necesidad de vital importancia. A nadie le gustaría ejecutar en su ordenador programas con acceso total a su sistema, procedentes de fuentes desconocidas. Así que se implementaron barreras de seguridad en el lenguaje y en el sistema de ejecución en tiempo real.

  10. ANTECEDENTES IMPORTANTES INDIFERENTE A LA ARQUITECTURA Java está diseñado para soportar aplicaciones que serán ejecutadas en los más variados entornos de red, desde Unix a Windows Nt, pasando por Mac y estaciones de trabajo, sobre arquitecturas distintas y con sistemas operativos diversos. Para acomodar requisitos de ejecución tan variopintos, el compilador de Java genera bytecodes: un formato intermedio indiferente a la arquitectura diseñado para transportar el código eficientemente a múltiples plataformas hardware y software. El resto de problemas los soluciona el intérprete de Java. PORTABLE La indiferencia a la arquitectura representa sólo una parte de su portabilidad. Además, Java especifica los tamaños de sus tipos de datos básicos y el comportamiento de sus operadores aritméticos, de manera que los programas son iguales en todas las plataformas. Estas dos últimas características se conocen como la Máquina Virtual Java (JVM).

  11. ANTECEDENTES IMPORTANTES ALTO RENDIMIENTO Multihebra Hoy en día ya se ven como terriblemente limitadas las aplicaciones que sólo pueden ejecutar una acción a la vez. Java soporta sincronización de múltiples hilos de ejecución (multithreading) a nivel de lenguaje, especialmente útiles en la creación de aplicaciones de red distribuidas. Así, mientras un hilo se encarga de la comunicación, otro puede interactuar con el usuario mientras otro presenta una animación en pantalla y otro realiza cálculos. DINÁMICO El lenguaje Java y su sistema de ejecución en tiempo real son dinámicos en la fase de enlazado. Las clases sólo se enlazan a medida que son necesitadas. Se pueden enlazar nuevos módulos de código bajo demanda, procedente de fuentes muy variadas, incluso desde la Red.

  12. ANTECEDENTES IMPORTANTES PRODUCE APPLETS Java puede ser usado para crear dos tipos de programas: aplicaciones independientes y applets. Las aplicaciones independientes se comportan como cualquier otro programa escrito en cualquier lenguaje, como por ejemplo el navegador de Web HotJava, escrito íntegramente en Java. Por su parte, las applets son pequeños programas que aparecen embebidos en las páginas Web, como aparecen los gráficos o el texto, pero con la capacidad de ejecutar acciones muy complejas, como animar imágenes, establecer conexiones de red, presentar menús y cuadros de diálogo para luego emprender acciones, etc.

  13. Historia de java La tecnología Java se creó como una herramienta de programación para ser usada en un proyecto de set-top-box en una pequeña operación denominada the Green Project en Sun Microsystems en el año 1991. El equipo (Green Team), compuesto por trece personas y dirigido por James Gosling, trabajó durante 18 meses en Sand Hill Road en Menlo Park en su desarrollo. 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

  14. Historia de java JDK 1.0 (23 de enero de 1996) — Primer lanzamiento. JDK 1.1 (19 de febrero de 1997) J2SE 1.2 (8 de diciembre de 1998) — Nombre clave Playground. Esta y las siguientes versiones fueron recogidas bajo la denominación Java 2 y el nombre "J2SE" (Java 2 Platform, Standard Edition), reemplazó a JDK para distinguir la plataforma base de J2EE (Java 2 Platform, Enterprise Edition) y J2ME (Java 2 Platform, Micro Edition). J2SE 1.3 (8 de mayo de 2000) — Nombre clave Kestrel. J2SE 1.4 (6 de febrero de 2002) — Nombre Clave Merlin. Este fue el primer lanzamiento de la plataforma Java desarrollado bajo el Proceso de la Comunidad Java como JSR 59 J2SE 5.0 (30 de septiembre de 2004) — Nombre clave: Tiger. . Java SE 6 (11 de diciembre de 2006) — Nombre clave Mustang Java SE 7 — Nombre clave Dolphin.

  15. Historia de java Entre noviembre de 2006 y mayo de 2007, Sun Microsystems liberó la mayor parte de sus tecnologías Java bajo la Licencia pública general de GNU, de acuerdo con las especificaciones del Java Community Process, de tal forma que prácticamente todo el Java de Sun es ahora software libre (aunque la biblioteca de clases de Sun que se requiere para ejecutar los programas Java todavía no es software libre).

  16. Esquema de un Programa

  17. Esquema de un Programa • Los programas más simples escritos en lenguajes imperativos suelen realizar tres tareas de forma secuencial: • Entrada de datos • Procesamiento de los datos • Salida de resultados

  18. Esquema de un Programa - Un programa en Java presenta la estructura habitual en los lenguajes OOP (lenguajes orientados a objetos). • El fichero fuente tendrá extensión .java, mientras que el compilado tendrá extensión .class. La estructura de los programas escritos en Java está sujeta a la siguientes reglas principales: - Cada clase debe encontrarse en un fichero diferente. - El nombre del fichero debe ser el mismo que el de la clase, y la extensión debe ser .java - Adicionalmente, los programas java comienzan su ejecución por la función main. Esta función debe Pertenecer como es lógico a una clase, ya que en java nada puede estar fuera de una clase.

  19. Esquema de un Programa

  20. Esquema de un Programa En realidad, Java es un lenguaje de programación orientada a objetos y todo debe estar dentro de una clase, incluida la función “main”, tal como muestra el siguiente programa… public class MiPrimerPrograma { public static void main (String args[]) { System.out.println("Mensaje por pantalla”); } }

  21. Esquema de un Programa Aplicaciones vs. Applets Las características propias del lenguaje JAVA hacen que además de poder desarrollar aplicaciones que se ejecutan en el intérprete local, se puedan desarrollar módulos descargables a través de una página web y ejecutables en la JVM (Java Virtual Machine) del navegador. Estos módulos reciben el nombre de Applets. Veamos ejemplos sencillos de cada tipo de desarrollo para apreciar las diferencias de estructura gramatical.

  22. Esquema de un Programa

  23. Elementos básicos de java

  24. Elementos básicos de java • Entre los elementos fundamentales de Java se encuentran: • Identificadores • Sentencias • Bloques de código • Expresiones • Variables • Tipos básicos de datos • Cadenas de caracteres o strings • Palabras claves

  25. Elementos básicos de java Identificadores Un identificador es un nombre que identifica a una variable, a un método o función miembro, a una clase. Y entre las reglas fundamentales como todo lenguaje de programación son: •No se pueden utilizar las palabras reservadas como identificadores •Distingue entre letras mayúsculas y minúsculas •No puede incluir el carácter espacio en blanco •Puede incluir, pero no comenzar por un número

  26. Elementos básicos de java Sentencias Una sentencia es una orden que se le da al programa para realizar una tarea específica, esta puede ser: mostrar un mensaje en la pantalla, declarar una variable (para reservar espacio en memoria), inicializarla, llamar a una función, etc. int i=1; import java.awt.*; System.out.println("El primer programa"); Otra característica bien importante en java es que volvemos a utilizar el ; para terminar cualquier sentencia. También cabe recordar que el editor del IDE nos ayudará a tabular todo nuestro código fuente sin apenas darnos cuenta.

  27. Elementos básicos de java Bloques de código Un bloque de código es un grupo de sentencias que se comportan como una unidad. También volvemos a utilizar las mismas llaves como lo hacíamos en c. { … … }

  28. Elementos básicos de java Expresiones Una expresión es todo aquello que se puede poner a la derecha del operador asignación =. x=123; y=(x+100)/4; area=circulo.calcularArea(2.5); Rectangulo r=new Rectangulo(10, 10, 200, 300); La primera expresión asigna un valor a la variable x. La segunda, realiza una operación La tercera, es una llamada a una función miembro calcularArea desde un objeto circulo de una clase determinada La cuarta, reserva espacio en memoria para un objeto de la clase Rectángulo mediante la llamada a una función especial denominada constructor.

  29. Elementos básicos de java Variables Una variable es un nombre que se asocia con una porción de la memoria del ordenador, en la que se guarda el valor asignado a dicha variable. Java tiene tres tipos de variables: • de instancia • de clase • Locales Las variables de instancia o miembros dato, se usan para guardar los atributos de un objeto particular.

  30. Elementos básicos de java Variables Las variables de clase o miembros dato estáticos son similares a las variables de instancia, con la excepción de que los valores que guardan son los mismos para todos los objetos de una determinada clase. En el siguiente ejemplo, PI es una variable de clase y radio es una variable de instancia. PI guarda el mismo valor para todos los objetos de la clase Circulo, pero el radio de cada círculo puede ser diferente class Circulo { static final double PI=3.1416; double radio; //... }

  31. Elementos básicos de java Variables Las variables locales se utilizan dentro de las funciones miembro o métodos. En el siguiente ejemplo área es una variable local a la función calcularArea en la que se guarda el valor del área de un objeto de la clase Circulo. Una variable local existe desde el momento de su definición hasta el final del bloque en el que se encuentra. class Circulo { //... double calcularArea(){ double area=PI*radio*radio; return area; } }

  32. Elementos básicos de java • Tipos básicos de datos • Los tipos básicos que mas se utilizan en la mayor parte de los programas son boolean, int y double.

  33. Elementos básicos de java Variables booleanas En lenguaje Java existe el tipo de dato boolean. Una variable booleana solamente puede guardar uno de los dos posibles valores: true (verdadero) y false (falso). boolean encontrado=false; {...} encontrado=true; Variables enteras Una variable entera consiste en cualquier combinación de cifras precedidos por el signo más (opcional), para los positivos, o el signo menos, para los negativos. Son ejemplos de números enteros: 12, -36, 0, 4687, -3598 Ejemplo de declaración de variable enteras tenemos: int numero=1205; int x,y; long m=30L;

  34. Elementos básicos de java Valores constantes Cuando se declara una variable de tipo final, se ha de inicializar y cualquier intento de modificarla en el curso de la ejecución del programa da lugar a un error en tiempo de compilación. Normalmente, las constantes de un programa se suelen poner en letras mayúsculas, para distinguirlas de las que no son constantes. He aquí ejemplos de declaración de constantes. final double PI=3.141592653589793; final int MAX_DATOS=150; Variables en coma flotante Las variables del tipo float o double (flotante) se usan para guardar números en memoria que tienen parte entera y parte decimal. double PI=3.14159; double g=9.7805, c=2.9979e8;

  35. Elementos básicos de java Cadenas de caracteres o strings Además de los ocho tipos de datos primitivos, las variables en Java pueden ser declaradas par guardar una instancia de una clase. Las cadenas de caracteres o strings son distintas en Java y en el lenguaje C/C++, en este último, las cadenas son arrays de caracteres terminados en el carácter '\0'. Sin embargo, en Java son objetos de la clase String. String mensaje="El primer programa"; Empleando strings, el primer programa quedaría de la forma equivalente public class PrimeroApp{ public static void main(String[] args) { //imprime un mensaje String mensaje="El primer programa"; System.out.println(mensaje); } } En una cadena se pueden insertar caracteres especiales como el carácter tabulador '\t' o el de nueva línea '\n' String texto="Un string con \t un carácter tabulador y \n un salto de línea";

  36. Elementos básicos de java Palabras claves o restringidas Las palabras reservadas se pueden clasificar en las siguientes categorías: •Tipos de datos: boolean, float, double, int, char •Sentencias condicionales: if, else, switch •Sentencias iterativas: for, do, while, continue •Tratamiento de las excepciones: try, catch, finally, throw •Estructura de datos: class, interface, implements, extends •Modificadores y control de acceso: public, private, protected, transient •Otras: super, null, this.

  37. Elementos básicos de java

  38. Entrada y Salida

  39. Introducción • La Entrada/Salida estándar. • La Entrada/Salida a través de fichero. • Todas las operaciones de E/S en Java vienen proporcionadas por el paquete estándar de la API de Java denominado java.io.

  40. Entrada y Salida Estándar El acceso a la entrada y salida estándar es controlado por tres objetos que se crean automáticamente al iniciar la aplicación: • System.in Este objeto implementa la entrada estándar (normalmente el teclado). Los métodos que nos proporciona para controlar la entrada son: read() skip(n) • System.out Este objeto implementa la salida estándar. Los métodos que nos proporciona para controlar la salida son: print(a) println(a) • System.err Este objeto implementa la salida en caso de error.

  41. Entrada y Salida por fichero Tipos de ficheros En Java es posible utilizar dos tipos de ficheros (de texto o binarios) y dos tipos de acceso a los ficheros (secuencial o aleatorio). • Los ficheros de texto están compuestos de caracteres legibles. • Los binarios pueden almacenar cualquier tipos de datos (int, float, boolean, etcétera). • Una lectura secuencial implica tener que acceder a un elemento antes de acceder al siguiente. • Los ficheros de accesoaleatorio permiten acceder a sus datos de una forma aleatoria. Clases a estudiar En el paquete java.io existen varias clases de las cuales podemos crear instancias de clases para tratar todo tipo de ficheros. • FileOutputStream • FileInputStream • RandomAccessFile

  42. FILEOUTPUTSTREAM Mediante los objetos de esta clase escribimos en ficheros de texto de forma secuencial. Presenta el método write() para la escritura en el fichero. Presenta varios formatos: • int write( int c ): • int write( byte a[ ] ) • int write( byte a[ ], int off, int len ) Ejemplo import java.io.*; class CreaCarta { public static void main(String args[]) throws IOException { int c; FileOutputStream f=new FileOutputStream("/carta.txt"); while( ( c=System.in.read() ) != -1 ) f.write( (char)c ); f.close(); } }

  43. FILEINPUTSTREAM Mediante los objetos de esta clase leemos de ficheros de texto de forma secuencial. • int read() • int read( byte a[] ) • int read( byte a[], int off, int len ) Ejemplo import java.io.*; class MuestraCarta { public static void main(String args[]) throws IOException { int c; FileInputStream f=new FileInputStream("/carta.txt"); while( ( c=f.read() ) != -1 ) System.out.print( (char)c ); f.close(); } }

  44. RANDOMACCESSFILE Mediante los objetos de esta clase utilizamos ficheros binarios mediante un acceso aleatorio, tanto para lectura como para escritura. MÉTODOS DE DESPLAZAMIENTO Cuenta con una serie de funciones para realizar el desplazamiento del puntero del fichero. • long getFilePointer(): Devuelve la posición actual del puntero del fichero. • void seek( long l ): Coloca el puntero del fichero en la posición indicada por l. Un fichero siempre empieza en la posición 0. • int skipBytes( int n ): Intenta saltar n bytes desde la posición actual. • long length(): Devuelve la longitud del fichero. • void setLength( long l ): Establece a l el tamaño de este fichero. • FileDescriptor getFD(): Devuelve el descriptor de este fichero.

  45. Métodos de escritura La escritura del fichero se realiza con una función que depende el tipo de datos que se desee escribir. • void write( byte b[], int ini, int len ): Escribe len caracteres del vector b. • void write( int i ): Escribe la parte baja de i (un byte) en el flujo. • void writeBoolean( boolean b ): Escribe el boolean b como un byte. • void writeByte( int i ): Escribe i como un byte. • void writeBytes( String s ): Escribe la cadena s tratada como bytes, no caracteres. • void writeChar( int i ): Escribe i como 1 byte. • void writeChars( String s ): Escribe la cadena s. • void writeDouble( double d ): Convierte d a long y le escribe como 8 bytes. • void writeFloat( float f ): Convierte f a entero y le escribe como 4 bytes. • void writeInt( int i ); Escribe i como 4 bytes. • void writeLong( long v ): Escribe v como 8 bytes. • void writeShort( int i ): Escribe i como 2 bytes. • void writeUTF( String s ): Escribe la cadena s utilizando la codificación UTF-8. Los métodos que escriben números de más de un byte escriben el primero su parte alta.

  46. MÉTODOS DE LECTURA La lectura del fichero se realiza con una función que depende del tipo de datos que queremos leer. • boolean readBoolean(): Lee un byte y devuelve false si vale 0 o true sino. • byte readByte(): Lee y devuelve un byte. • char readChar(): Lee y devuelve un caracter. • double readDouble(): Lee 8 bytes, y devuelve un double. • float readFloat(): Lee 4 bytes, y devuelve un float. • void readFully( byte b[] ): Lee bytes del fichero y los almacena en un vector b. • void readFully( byte b[], int ini, int len ): Lee len bytes del fichero y los almacena en un vector b. • int readInt(): Lee 4 bytes, y devuelve un int. • long readLong(): Lee 8 bytes, y devuelve un long. • short readShort(): Lee 2 bytes, y devuelve un short. • int readUnsignedByte(): Lee 1 byte, y devuelve un valor de 0 a 255. • int readUnsignedShort(): Lee 2 bytes, y devuelve un valor de 0 a 65535. • String readUTF(): Lee una cadena codificada con el formato UTF-8. • int skipBytes(int n): Salta n bytes del fichero. Si no es posible la lectura devuelven –1

  47. Sobre Clases y Objetos

  48. Clase en POO Es elemento básico de la POO. Define la forma, y el comportamiento de un objeto, de un miembro real o una entidad abstracta y atributos de un grupo de objetos de características similares. En simples palabras una clase es una “plantilla” que describe un conjunto de objetos con atributos y comportamiento similares.

  49. Estructura de una Clase • -Nombre de la Clase • -Métodos (Funciones) • -Atributos (Datos) En este ejemplo el nombre de la clase es Coche, los métodos son el comportamiento (Ej.: en reposo, en movimiento, en reparación, etc.) y comparten ciertas características: los atributos ( tamaño, peso, color, potencia del motor, etc. ).

More Related