Publicado el 1 de Octubre del 2020
1.022 visualizaciones desde el 1 de Octubre del 2020
2,0 MB
48 paginas
Creado hace 14a (04/11/2010)
Federico Peinado
www.federicopeinado.es
Depto. de Ingeniería del Software e
Inteligencia Artificial
disia.fdi.ucm.es
Facultad de Informática
www.fdi.ucm.es
Universidad Complutense de Madrid
www.ucm.es
Paradigma de programación distinto de la
Programación Estructurada (PE)
• Surge con la invención del lenguaje Simula (Dahl y
Nygaard, 1967), se consolida con SmallTalk (Kay,
Ingalls, Kaehler, Goldberg et al., 1972) y se
populariza con C++ (Stroupstrup, 1983)
• Muchos de los lenguajes usados actualmente
siguen esta forma de ver la programación, como
ActionScript, C#, JavaScript, PHP, Python, Ruby,
Visual Basic .NET y Java
Laboratorio de Programación de Sistemas – POO con Java en Eclipse
2
Según la PE, programar es
definir algoritmos usando tres
estructuras básicas: secuencia,
selección e iteración
Según la POO, programar es
en primer lugar definir cómo
interactúan una serie de
“objetos imaginarios” entre sí
(mayor nivel de abstracción)
Laboratorio de Programación de Sistemas – POO con Java en Eclipse
3
Java es el nombre de una gran
plataforma tecnológica
www.java.com
• Lenguaje de programación
orientado a objetos
• Interfaz de programación de
aplicaciones (Java API)
• Bibliotecas software (Core Java)
Subprogramas fundamentales para manejar cadenas, ficheros,
procesos, entrada/salida del sistema, etc.
• Herramientas de desarrollo (JDK)
Compilador, depurador, generador de documentación, etc.
• Entorno de ejecución (JRE)
Intérprete en forma de máquina virtual
Laboratorio de Programación de Sistemas – POO con Java en Eclipse
4
http://download-llnw.oracle.com/javase
Laboratorio de Programación de Sistemas – POO con Java en Eclipse
5
“Write Once, Run Anywhere”
• Ofrecer un lenguaje y unas herramientas de alto nivel que
permiten programar con independencia total de la plataforma
subyacente (Sistema operativo y hardware)
Laboratorio de Programación de Sistemas – POO con Java en Eclipse
6
Los programas Java no se traducen a ficheros
ejecutables como los de PC/Windows o
Macintosh/MacOS, sino a ficheros ejecutables
únicamente por la Máquina Virtual de Java (JVM)
• Los programas Java se escriben en uno o más ficheros de texto
(*.java)
• El compilador traduce uno a uno estos ficheros de texto a ficheros
binarios escritos en un lenguaje intermedio llamado Java
Bytecode (*.class), muy cercano al código máquina
• Se debe disponer de un ejemplar de la JVM implementada en la
plataforma concreta donde se quiere ejecutar la aplicación
• Dicho ejemplar de la JVM interpreta los ficheros binarios,
ejecutando la aplicación de manera normal sobre la mencionada
plataforma de destino
Laboratorio de Programación de Sistemas – POO con Java en Eclipse
7
JDK (Java Development Kit)
JRE (Java Runtime Environment )
• Varias herramientas que incluyen el compilador de Java (javac)
• Para editar los ficheros fuente vale cualquier editor de texto
• Ejemplar de la JVM implementado para la plataforma deseada (java)
• Se requieren además unas bibliotecas de la JVM cuya ruta (por ejemplo
c:\jdk1.6.0_21\bin) debe estar guardada en una variable de
entorno (por ejemplo PATH dentro de la consola de Windows)
Las especificaciones de Java son públicas, con lo que existen
varias implementaciones, siendo la de Oracle la de referencia
http://www.oracle.com/technetwork/java/index.html
• Hay varias ediciones (distribuciones) cada una con varias versiones
• Nosotros utilizaremos Java Standard Edition (SE) 6
http://download-llnw.oracle.com/javase/6/docs/index.html
Aunque todo se puede usar desde la línea de comandos,
también existen entornos de desarrollo que facilitan su uso
Laboratorio de Programación de Sistemas – POO con Java en Eclipse
8
Directorio con ficheros fuente (.java)
Directorio con ficheros binarios (.class)
Directorio con bibliotecas (.class ó .jar)
Directorio con ficheros de pruebas
Directorio con la documentación
• src
• bin
• lib
• test
• doc
Laboratorio de Programación de Sistemas – POO con Java en Eclipse
9
La aplicación está compuesta por todos los ficheros
binarios, bibliotecas y recursos que utiliza el
programa (pudiendo incluirse opcionalmente los
ficheros fuente)
El JDK incluye una herramienta llamada jar que
permite empaquetar todos estos ficheros en uno
solo (.jar) para facilitar su distribución y
ejecución
• Para que la aplicación empaquetada en fichero .jar se
pueda ejecutar de forma más directa conviene añadir un
sencillo fichero de texto META-INF/MANIFEST.MF que
indica cual es el fichero binario que contiene la primera
línea de código de la aplicación
Laboratorio de Programación de Sistemas – POO con Java en Eclipse
10
Laboratorio de Programación de Sistemas – POO con Java en Eclipse
11
Lenguaje orientado a objetos de alto nivel
• Creado por Sun Microsystems en 1995, liberado casi totalmente bajo
licencia GNU GPL en 2007 y adquirido por Oracle en 2009
De sintaxis conocida
• Muy similar a C y C++ (aunque funcione de manera muy diferente)
• Los ficheros compilados se interpretan por cualquier ejemplar de la JVM
Portable
Robusto y seguro
• Fuertemente tipado
• Gestión de memoria restringida al mínimo: el programador no puede
usar punteros a direcciones de memoria
Puro en cuanto a orientación a objetos (desde J2SE 5.0, 2004)
• Todo lo que existe durante la ejecución de un programa Java es
reconocible bajo alguna “Clase”
Dotado de genericidad (desde J2SE 5.0, 2004)
Laboratorio de Programación de Sistemas – POO con Java en Eclipse
12
/* Clase principal del programa ¡Hola Mundo! */
public class Principal {
System.out.println(“¡Hola Mundo!");
/* Método para saludar */
private void saludar() {
}
/* Método principal */
public static void main(String[] args) {
Principal principal = new Principal();
principal.saludar();
}
}
Laboratorio de Programación de Sistemas – POO con Java en Eclipse
13
Similitudes
Diferencias
• Tipos básicos
• Sintaxis (sobretodo de las estructuras de control)
• Ejecución y tratamiento de objetos
• Declaración de clases, métodos y variables
• Java no usa ficheros de cabecera
• En Java no hay struct ni union
• En Java no hay typedef
• En Java no se usan punteros a direcciones de memoria
(sino referencias a objetos, que es algo más abstracto)
• En Java no hay sobrecarga de operadores
• En Java se pueden usar caracteres especiales en
identificadores (vocales con tilde, eñes, etc.)
Laboratorio de Programación de Sistemas – POO con Java en Eclipse
14
Permiten nombrar los distintos elementos de un programa
• Variables, objetos, clases, paquetes, interfaces…
Sintaxis
• Comienzan con letra (incluyendo _ y $)
• Van seguidos de letras o dígitos
• Pueden tener cualquier longitud
• Se distinguen mayúsculas de minúsculas
Ejemplos
• x
• _var1
• MAXIMO
• $Caracter
Laboratorio de Programación de Sistemas – POO con Java en Eclipse
15
Tienen un propósito especial en el lenguaje y por lo tanto
no pueden utilizarse como identificadores
abstract continue for
boolean default goto
break
if
do
implements
byte
double
import
byvalue else
case
extends instanceof
false
catch
int
char
final
interface
class
finally long
native
float
const
new
null
package
private
protected
public
return
short
static
super
switch
synchronized
this
threadsafe
throw
throws
transient
true
try
void
volatile
while
Laboratorio de Programación de Sistemas – POO con Java en Eclipse
16
Unidad básica de almacenamiento de información cuyo
valor puede cambiar durante el programa
Tienen asociado un determinado “tipo de datos”
Declaración
tipo identificador;
tipo identificador [= valor_inicial] [, ident [= valor_ini] ] …;
int numero; // No se ha producido la inicialización
int max = 5;
boolean sino = true;
Laboratorio de Programación de Sistemas – POO con Java en Eclipse
17
Unidad básica de almacenamiento de
información cuyo valor nunca cambia
Se declaran con la palabra clave final
final float PI = 3.141592;
final int MAX = 255;
final int ABIERTO = 0, CERRADO = 1;
final boolean FALSO = false;
Laboratorio de Programación de Sistemas – POO con Java en Eclipse
18
Enteros (con signo)
8 bits
16 bits
32 bits
64 bits
byte
short
int
long
MIN_VALOR
-128
-32768
-2147483648
-263
MAX_VALOR
+127
+32767
+2147483647
263-1
Reales (coma flotante, según estándar IEEE 754-1985):
float
double
32 bits
64 bits
Lógico o booleano (1 bit)
boolean
1 bit
Caracteres (según estándar ISO Unicode 1.1 de 16 bits)
char
Por ejemplo ‘a’ ‘A’ ‘\n’ ‘\t’ ‘\u0058’‘X’
16 bits
Laboratorio de Programación de Sistemas – POO con Java en Eclipse
19
Para definirlos se usa la palabra enum
El compilador lo traduce en clases que heredan
de java.lang.enum
Tiene más funcionalidad que en C/C++ ya que
desde el punto de vista de la máquina virtual los
tipos enumerados son también clases
public enum Direccion {
Norte, Este, Sur, Oeste;
}
Laboratorio de Programación de Sistemas – POO con Java en Eclipse
20
Aritméticos binarios
Aritméticos unarios
Operadores de asignación
* / %
+ -
• Pre/postincremento ++x x++
• Pre/postdecremento --x x--
x=y
• Normal
x+=y
• Adición
x-=y
• Sustracción
• Multiplicación x*=y
x/=y
• División
Laboratorio de Programación de Sistemas – POO con Java en Eclipse
21
Operadores lógicos
x && y
x || y
! x
• Y lógica
• O lógica
• Negación
• Identidad
Operadores relacionales (Comparaciones)
Mejor usar sólo entre valores de tipo básico, no con objetos
• Diferencia
• Mayor que
• Menor que
• Mayor o igual que
• Menor o igual que
x == y
x != y
x > y
x < y
x >= y
x <= y
Laboratorio de Programación de Sistemas – POO con Java en Eclipse
22
if (expresion_booleana)
instruccion
if (expresion_booleana)
else
instruccion1
instruccion2
switch (expresion)
{
case expresión-constante1: instrucciones; break;
case expresión-constante2: instrucciones; break;
...
default: instrucciones
}
•
Comentarios de: LPS: Programación Orientada a Objetos con Java en Eclipse (0)
No hay comentarios