Clase2-2023 Java
Clase2-2023 Java
PARADIGMA LENGUAJE
• Imperativo C, Pascal, Cobol, ...
• Funcional Lisp, Hope, Miranda, ...
• Lógico Prolog, Parlog, ...
• Orientado a Objetos Smalltalk, C++, Eiffel, Java, ...
3
Caracteristicas
•Es una plataforma por contar con una multitud de aplicaciones, está
Orientado a Objetos.
• Diseñado originalmente por Sun Microsystems para aparatos
electrodomésticos.
• Fue diseñado para no comprometerse con ninguna tecnología en
particular.
• Está orientado hacia el desarrollo de sistemas distribuidos.
• Se desarrolló bajo la premisa que las aplicaciones en Web no son difíciles
y la filosofía de trabajo “Una PC es la RED”.
• Contiene una librería de clases base.
• Usa una máquina virtual para la ejecución de un programa.
Java es mejor por lo que no tiene,que por lo que tiene
• Variables globales.
• Goto.
• Punteros.
• Tipos de datos frágiles.
• Asignación de memoria.
• Conversión de tipos.
• Archivos de cabecera.
• Preprocesador.
CIP
Historia de los LPOO
• 1964- SIMULA (Dahl y Nygaard):
– comienzo de la OO
– Se identificaba como lenguaje de simulación
– Ha influido en el desarrollo de otros LPOO
Híbridos:
Basados en C:
o C++ 1985 B. Stroustrup
o Objective-C 1983 Brad Cox y Tom Love
Basados en Pascal:
o Object Pascal 1985 Apple con Wirth
o Modula-3 1988 Digital y Olivetti
Basados en Lisp:
o CLOS 1988
Púros:
o Smalltalk 1972 Alan Kay
o Eiffel 1985 Bertrand Meyer
Historia de los LPOO – Años 90
• Aplicaciones centradas en el web
• 2000 C# - Microsoft
– Plataforma .NET
– Máquina virtual para conseguir la portabilidad
– Combina Java y C++
1.Introducción. Características
9
Historia de Java
2006
Se lanza Java2 6.0 (Mustang)
2004
Se lanza Java2 5.0 (Tiger)
1999
Se lanza Java2.
1995
Oak Java
WebRunner HotJava
1994
Navegador "WebRunner"
1ra applet : "Duke" saludando
1993
No se logra vender a la
industria de TV interactiva
1992
Proyecto "Green"
Sistema Operativo
"Star7"
Presencia comercial de Java
11
12
13
14
15
18
19
20
Características ..Introducción
• Orientado a Objetos
– encapsulación, herencia, polimorfismo y ligadura dinámica
• Parecido a C++
– elimina las partes confusas ej: punteros
– añade nuevas propiedades ej: garbage collector
• Robusto
– comprobación estática de tipos
– maneja la memoria por el programador
– comprobación de límites de arrays y excepciones.
• Proporciona las librerías y herramientas para programas
distribuidos (protocolos http y ftp, interconexión TCP/IP)
• Multithreads (ejecución concurrente) 21
Como funciona Java?
22
Compiladores JIT (Just In Time)
23
24
Estructura del Virtual Machine
¿Cómo trabaja la JVM ?
27
28
Presentaciones de Java
http://java.sun.com
• JDK (Java Development Kit)
– Necesario para crear (desarrollar y compilar) programas
• JRE (Java Runtime Environment)
– Necesario para ejecutar un programa Java
– JDK = JRE + herramientas de desarrollo
29
Plataforma Java SE 6.0
Usando el Apropiado Kit de Desarrollo
• 2008
> Best Development Environment: NetBeans IDE 6
> Developer.com Product of Year: Developer Tool
• 2007
> BOSSIE Award: Best Enterprise IDE
> InfoWorld : Java IDE Innovator
> O'Reilly ONJava : Winner, Java IDE Platform
32
Eclipse
Conceptos Básicos del IDE: Proyectos
Creando Proyectos Java
• Indica que las clases públicas que contenga está accesible a cualquiera que incluya:
import miBiblioteca.MiClase; o bien
import miBiblioteca.*;
• Las clases que no tienen un nombre de paquete están en el paquete por defecto
(Default Package) consideradas clases amigas (friendly)
• Soporta el concepto de jerarquía de paquetes (estilo directorio)
…
}
Nota:
Es necesario indicar el modificador de acceso
public para que se pueda utilizar la clase “desde el exterior”
43
Clase
44
Estructura de una clase
nombre
atributos
metodos
Tipo de Clase
46
Otra clase a construir
Atributos
Tipos de ambito
public class A{
public int at1;
private int at2;
…
}
Tipos de modificadores de atributos
51
Encapsulamiento
Encapsulamiento(continuacion)
Metodos
Declaración:
i,f - i | i,f != b | +=
i,f -- b == &=
Tipos válidos de los operandos
i - i = Entero (byte, small, int, long) b != |=
f = Punto Flotante (float, double)
i ~ b ?: ^=
b = Lógico (boolean)
Sintaxis en Java
Bifurcaciones – Sentencia de control de saltos (if-else)
Sintáxis
for( inicialización; exp-booleana; iteración ) {
sentencias;
}
Flujo de Eventos
Cuando se evalúa el algoritmo al entrar a una sentencia for, se ejecuta por única
vez la sección de inicialización, luego se evalúa la expresión booleana; si el
resultado es verdadero o “true” se ejecutan las sentencias contenidas en el cuerpo
de la instrucción, por último se ejecuta el bloque de iteración y se evalúa
nuevamente la expresión booleana hasta que el resultado sea falso o “false”.
Bucles - Sentencias repetitivas (while)
Sintáxis
while( expresión-booleana ) {
sentencias;
}
Flujo de Eventos
Cuando se evalúa el algoritmo al entrar a una sentencia while, se evalúa la
expresión booleana, si el resultado es verdadero o true, se ejecutan las
sentencias contenidas en el cuerpo del bloque while y se evalúa nuevamente
la expresión booleana “mientras” que el resultado no sea falso o false.
Bucles - Sentencias repetitivas (do-while)
Sintáxis
do {
sentencias;
}while(expresión-booleana );
Flujo de Eventos
Cuando se evalúa el algoritmo al entrar a una sentencia do, se ejecuta las
sentencias contenidas en el bloque, luego se evalúa la expresión booleana que
sigue a la instrucción while, si el resultado es verdadero o true, se ejecutan
nuevamente las sentencias contenidas en el cuerpo del bloque “mientras” que el
resultado no sea falso o false.
Bucles - Sentencias repetitivas (for In)
Sintáxis
for ( declaración var : expresión ){
sentencias;
}
Flujo de Eventos
Continue: hace que la ejecución prosiga con la siguiente iteración saltando las
sentencias que están a continuación.
Break/Continue son instrucciones que hay que utilizar con mucho cuidado, pues,
cambian el flujo normal de un bucle.
Bugs al utilizar bucles