Ivette C. Martínez - Héctor Palacios Java – Modulo 1 Introducción y Fundamentos del lenguaje de...
-
Upload
german-mariano-vidal-rodriguez -
Category
Documents
-
view
217 -
download
0
Transcript of Ivette C. Martínez - Héctor Palacios Java – Modulo 1 Introducción y Fundamentos del lenguaje de...
Ivette C. Martínez - Héctor Palacios
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
Características
Simple
Seguro
Portable
Orientado a Objetos
Robusto
Multihilos
De Arquitectura neutral
Interpretado
Alto Rendimiento
Distribuido
Dinámico
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
La máquina Virtual Java
Código fuenteCódigo fuente
Compilador JavaCompilador Java
Byte-codesByte-codes
Win32 JVMWin32 JVM
Código máquinaWin32
Código máquinaWin32
Macintosh JVMMacintosh JVM UNIX JVMUNIX JVM
Código máquinaMacintosh
Código máquinaMacintosh
Código máquinaUNIX
Código máquinaUNIX
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
HelloWorld.java javac HelloWorld.java
java HelloWorld HelloWorld.class
compilar
correr
bytecode
Codigo fuente
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
Tipos primitivos: boolean true o false char unicode! (16 bits) byte entero de 8 bits con signo. short entero de 16 bits con signo. int entero de 32 bits con signo. long entero de 64 bits con signo. float,double IEEE 754 floating point
No es un int
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 denominada String.
Ivette C. Martínez - Héctor Palacios
Conversiones de tipos
Conversión entre los tipos enteros y punto flotante. Incluye char
No hay conversión automatica con el tipo boolean!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 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.
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; }}