Ivette C. Martínez - Héctor Palacios Java – Modulo 1 Introducción y Fundamentos del lenguaje de...

40
Ivette C. Martínez - Hé ctor Palacios Java – Modulo 1 Introducción y Fundamentos del lenguaje de programación Java

Transcript of Ivette C. Martínez - Héctor Palacios Java – Modulo 1 Introducción y Fundamentos del lenguaje de...

Page 1: 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

Java – Modulo 1

Introducción y Fundamentos del lenguaje de programación Java

Page 2: 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.

Page 3: 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

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

Page 4: 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

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.

Page 5: 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

¿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.

Page 6: 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

¿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

Page 7: 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

¿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.

Page 8: 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

Características

Simple

Seguro

Portable

Orientado a Objetos

Robusto

Multihilos

De Arquitectura neutral

Interpretado

Alto Rendimiento

Distribuido

Dinámico

Page 9: 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

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

Page 10: 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

Caracteristicas (cont...)

Orientado a Objetos (Colocar ventajas)

Page 11: 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

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

Page 12: 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

La plataforma Java

Page 13: 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

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.

Page 14: 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

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.

Page 15: 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

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

Page 16: 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

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.

Page 17: 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

Un programa Simple

Page 18: 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

Compilación y ejecución

HelloWorld.java javac HelloWorld.java

java HelloWorld HelloWorld.class

compilar

correr

bytecode

Codigo fuente

Page 19: 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

Elementos del lenguaje

Declaraciones

Tipos de Datos

Operadores

Estructuras de control

Clases y Objetos

Paquetes

Page 20: 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

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();

Page 21: 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

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

Page 22: 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

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

Page 23: 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

Otros tipos de datos.

Tipos compuestos Clases Arreglos

Los strings son soportados mediante una clase built-in class denominada String.

Page 24: 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

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;

Page 25: 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

Declaraciones y Convenciones

Page 26: 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

Inicialización

Page 27: 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

Alcances y Bloques

Page 28: 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

Operadores

Asignación: =, +=, -=, *=, …

Numéricos: +, -, *, /, %, ++, --, …

Relacionales: ==. !=, <, >, <=, >=, …

Booleanos: &&, ||, !

De Bits: &, |, ^, ~, <<, >>, …

Page 29: 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

Operadores de asignación

Page 30: 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

Estructuras de Control

Page 31: 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

Sentencias If

Page 32: 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

El lazo While

Page 33: 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

El lazo Do-While

Page 34: 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

La sentencia Switch

Page 35: 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

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.

Page 36: 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

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

Page 37: 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

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;

Page 38: 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

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.

Page 39: 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

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.

Page 40: 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

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; }}