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 fuente
Compilador Java
Byte-codes
Macintosh JVM
Win32 JVM
UNIX JVM
Código máquina
Macintosh
Código máquina
Win32
Código máquina
UNIX
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
compilar
Codigo fuente
correr
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
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

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;
}
}
Ivette C. Martínez - Héctor Palacios
Descargar

Java – Modulo 1