420 likes | 633 Views
Java – Modulo 1. Introducción y Fundamentos del lenguaje de programación Java. Contenido. · Características del lenguaje. · Breve historia (origen y versiones). · Variables y Tipos de Datos. · Estructuras de Decisión. · Ciclos iterativos. · Datos estructurados (vs. Clases).
E N D
Java – Modulo 1 Introducción y Fundamentos del lenguaje de programación Java Ivette C. Martínez - Héctor Palacios
Contenido • · Características del lenguaje. • · Breve historia (origen y versiones). • · Variables y Tipos de Datos. • · Estructuras de Decisión. • · Ciclos iterativos. • · Datos estructurados (vs. Clases). • · Introducción a la POO. • · Uso básico de la herramienta de desarrollo. Ivette C. Martínez - Héctor Palacios
Breve 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: calculadoras, microondas y la televisión interactiva. • Lenguaje que independiente de la plataforma Ivette C. Martínez - Héctor Palacios
Breve Historia • El objetivo fue crear 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. Ivette C. Martínez - Héctor Palacios
¿Por qué Java? • Portabilidad: tanto del código fuente como del “bytecode”. • Más soporte en el lenguaje. Una amplia librería de Clases. • Manejo de Errores. • No usa apuntadores. (garbage collection) • El manejo de threads es parte del lenguaje. • Carga dinámica del las clases y una “caja” segura para le ejecución de código remoto. Ivette C. Martínez - Héctor Palacios
¿Qué es Java? • “ Es un lenguaje simple, orientado a Objetos, Distribuido, interpretado, robusto, seguro, de arquitectura neutral, portable, de alto rendimiento, multihilos, y dinámico” - Sun Ivette C. Martínez - Héctor Palacios
¿Qué es Java? • Un lenguaje de Programación • Definido por Gosling, Joy y Steele en la especificación del lenguaje Java. • Una plataforma • Una definición de una máquina virtual (JVM). • Ambientes de ejecución para diferentes “hardwares”. • Una librería de clases • Un conjunto estándar de APIs () : GUI, almacenamiento de datos, E/S, redes, etc. Ivette C. Martínez - Héctor Palacios
Simple Seguro Portable Orientado a Objetos Robusto Multihilos De Arquitectura neutral Interpretado Alto Rendimiento Distribuido Dinámico Características Ivette C. Martínez - Héctor Palacios
Caracteristicas (cont...) • Simple • Fácil de aprender, sintaxis de C/C++, versión simplificada de C++. • Seguro • Los applets pueden ejecutarse sin temor a virus o a la violación de acceso a información privada. • Portable • Generación de código intermedio: Bytecode Ivette C. Martínez - Héctor Palacios
Caracteristicas (cont...) • Orientado a Objetos • (Colocar ventajas) Ivette C. Martínez - Héctor Palacios
Caracteristicas (cont...) • Robusto • Localización temprana de errores • Minimización de errores comunes de programación. • Verificaciones a tiempo de compilación y ejecución. • Fuertemente tipado. • Multihilos • Permite hacer programas que realicen varias cosas al mismo tiempo. Facilita la creación de sistemas interactivos. • De Arquitectura neutral Ivette C. Martínez - Héctor Palacios
La plataforma Java Ivette C. Martínez - Héctor Palacios
La máquina Virtual Java (JVM) • Puede verse como una computadora abstracta que es definida por una especificación. Es una máquina imaginaria que se implementa por software . • Podemos estar hablando de: • La especificación abstracta. • Una implementación concreta • Una instancia de tiempo de ejecución • Sun publicó las especificaciones para la JVM para asegurar la portabilidad de las aplicaciones. Ivette C. Martínez - Héctor Palacios
La máquina Virtual Java • Cada aplicación Java se ejecuta dentro de una instancia de tiempo de aplicación de alguna implementación concreta para la especificación abstracta. Ivette C. Martínez - Héctor Palacios
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 La máquina Virtual Java Código fuente Ivette C. Martínez - Héctor Palacios
El API de Java • Es una colección de “partes” de software que brindan al usuario “utilidades”. Ejm: GUI. • Está formado por librerías o paquetes relacionados. Ivette C. Martínez - Héctor Palacios
Un programa Simple Ivette C. Martínez - Héctor Palacios
Compilación y ejecución javac HelloWorld.java HelloWorld.java compilar correr Codigo fuente java HelloWorld HelloWorld.class bytecode Ivette C. Martínez - Héctor Palacios
Elementos del lenguaje • Declaraciones • Tipos de Datos • Operadores • Estructuras de control • Clases y Objetos • Paquetes Ivette C. Martínez - Héctor Palacios
Declaraciones • Declaración de Variables • <tipo><variable>; • <tipo><var1>, <var2>, ..., <varn>; • <tipo><var1> = <valor>; • Ejemplos • int x,y,z; • int x = 9; • boolean terminar = false; • Cliente = new Cliente(); Ivette C. Martínez - Héctor Palacios
Asignaciones • Asignaciones • <tipo><variable> = <valor>; • <tipo><variable>;<otras instrucciones>...<variable> = <valor>; • Ejemplo • int x = 4; //Declaracion con asignación • x = 9; //Se asume que x está definida • c1 = new Cliente(); //Se asume que Cliente //y c1 están definidos Ivette C. Martínez - Héctor Palacios
Tipos de Datos No es un int • Tipos primitivos: • booleantrue o false • char unicode! (16 bits) • byteentero de 8 bits con signo. • shortentero de 16 bits con signo. • intentero de 32 bits con signo. • longentero de 64 bits con signo. • float,double IEEE 754 floating point Ivette C. Martínez - Héctor Palacios
Otros tipos de datos. • Tipos compuestos • Clases • Arreglos • Los strings son soportados mediante una clase built-in class denominadaString. Ivette C. Martínez - Héctor Palacios
Conversiones de tipos • Conversión entre los tipos enteros y punto flotante. • Incluyechar • No hay conversión automatica con el tipoboolean! • Las conversiones se pueden forzar mediante una operación de casting – con la misma sintaxis de C/C++. int i = (int) 1.345; Ivette C. Martínez - Héctor Palacios
Declaraciones y Convenciones Ivette C. Martínez - Héctor Palacios
Inicialización Ivette C. Martínez - Héctor Palacios
Alcances y Bloques Ivette C. Martínez - Héctor Palacios
Operadores • Asignación: =, +=, -=, *=, … • Numéricos: +, -, *, /, %, ++, --, … • Relacionales: ==. !=, <, >, <=, >=, … • Booleanos: &&, ||, ! • De Bits: &, |, ^, ~, <<, >>, … Ivette C. Martínez - Héctor Palacios
Operadores de asignación Ivette C. Martínez - Héctor Palacios
Estructuras de Control Ivette C. Martínez - Héctor Palacios
Sentencias If Ivette C. Martínez - Héctor Palacios
El lazo While Ivette C. Martínez - Héctor Palacios
El lazo Do-While Ivette C. Martínez - Héctor Palacios
La sentencia Switch Ivette C. Martínez - Héctor Palacios
Comentarios • // comentario Los caracteres desde // hasta el final dela línea son ignorados. • /* comentario */ Los caracteres entre /* y */ sonignorados • /** comentario */ Los caracteres entre /** y */sonignorados y seincluyen en la generaciónautómatica de la documentación. Ivette C. Martínez - Héctor Palacios
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 • $PorMenos Ivette C. Martínez - Héctor Palacios
Paquetes • Se usan para encapsular los datos de manera automática. • Los paquetes de clases se cargan con la palabra clave import. Ejemplo: import java.Date; import java.awt.*; import miPaquete.miClase; Ivette C. Martínez - Héctor Palacios
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. Ivette C. Martínez - Héctor Palacios
Niveles de acceso a métodos y atributos • public. Cualquier clase desde cualquier lugar puede acceder a las variables y métodos. • protected o friendly. Sólo las subclases de la clase y nadie más pueden 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. Ivette C. Martínez - Héctor Palacios
Ejemplo herencia 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; } } Ivette C. Martínez - Héctor Palacios