Download Java - Beatriz Beltrán Martínez

Document related concepts
no text concepts found
Transcript
Programación
Orientada a Objetos
MC Beatriz Beltrán Martínez
Primavera 2015
Primavera 2015
FCC - BUAP
• La tecnología Java se creó como una herramienta de
programación para ser usada en un proyecto de set-topbox en una pequeña operación denominada «the Green
Project» en Sun Microsystems en el año 1991.
• El lenguaje se denominó inicialmente Oak (por un roble
que había fuera de la oficina de Gosling), luego pasó a
denominarse Green tras descubrir que Oak era ya una
marca comercial registrada para adaptadores de tarjetas
gráficas y finalmente se renombró a Java.
• El término Java fue acuñado en una cafetería
frecuentada por algunos de los miembros del equipo.
BBM
Historia
72
Primavera 2015
BBM
• Todo programa en lenguaje JAVA debe tener la siguiente
extensión:
file.java
//en UNIX, Windows, Linux
FCC - BUAP
Preliminares
• Comentarios en JAVA
/* Este es un comentario */
/* Este también es un
comentario
multilíneas */
// comentario unilineal
73
Primavera 2015
FCC - BUAP
• Todas las aplicaciones deben tener un main.
• public static void main(String args[]) es la forma de
definir.
• Las llaves { } denotan el cuerpo del programa.
• Toda declaración termina con un punto y coma (“;”).
• La sintaxis es muy parecida a la del lenguaje C.
BBM
Programa Principal
74
Primavera 2015
FCC - BUAP
• Es un lenguaje simple, orientado a objetos, distribuido,
interpretado, robusto, seguro, de arquitectura neutra,
portable, de alto desempeño, de hilos múltiples y
dinámico.
• Es un lenguaje de programación orientado a objetos.
• Como los programas de Java se compilan en un formato
de bytecode (código de bytes) de arquitectura neutral,
una aplicación de Java se puede ejecutar en cualquier
sistema, siempre y cuando dicho sistema instrumente la
máquina virtual de Java.
BBM
JAVA
75
Primavera 2015
FCC - BUAP
• El compilador no compila para la plataforma de origen,
sino para una plataforma abstracta llamada máquina
virtual de Java, o JVM-Java Virtual Machine.
• Características:
• Lenguaje Distribuido.
• Robusto y confiable.
• Carencia de apuntadores.
• Seguro.
• De hilos múltiples.
BBM
Características
76
Primavera 2015
FCC - BUAP
• Simplicidad.
• Java no posee aritmética de punteros.
• No se necesita hacer delete.
• No hay herencia múltiple.
• Independiente de Plataforma.
• La independencia de la plataforma es la capacidad del
programa de trasladarse con facilidad de un sistema
computacional a otro.
• A nivel de código fuente, los tipos primitivos de datos Java,
tiene tamaños consistentes, en todas las plataformas de
desarrollo.
• Los archivos binario Java, se encuentran en una forma
llamada bytecode.
BBM
Características
77
Código JAVA
Pentium
ByteCode
JAVA
Primavera 2015
FCC - BUAP
Intérprete JAVA
Compilador JAVA
BBM
Características
Power PC
SPARC
78
Primavera 2015
FCC - BUAP
• Seguridad.
• La seguridad es un aspecto importante en Java, el
visualizador baja el código de toda la red y lo ejecuta
en el anfitrión del usuario.
• El propio lenguaje Java incluye restricciones cerradas
de acceso a memoria.
• Una rutina de verificación de códigos de byte en el
intérprete de Java verifica que los códigos de byte
(Bytecodes) no violen ninguna construcción del
lenguaje.
BBM
Características
79
Primavera 2015
FCC - BUAP
• Flexibilidad.
• Java combina flexibilidad, robustez y legibilidad gracias
a una mezcla de chequeo de tipos durante la
compilación y durante la ejecución.
• En Java se pueden tener punteros a objetos de un tipo
específico y también se pueden tener apuntadores a
objetos de cualquier tipo.
• El programador usa entonces apuntadores de tipo
específico en la mayoría de los casos con el fin de ganar
legibilidad y en unos pocos casos usa apuntadores a
tipos desconocidos cuando necesita tener flexibilidad.
BBM
Características
80
Primavera 2015
FCC - BUAP
• Administración automática de memoria.
• En Java los programadores no necesitan preocuparse
de liberar un trozo de memoria cuando ya no lo
necesitan.
• Es el recolector de basuras el que determina cuando se
puede liberar la memoria ocupada por un objeto.
• El impacto que un recolector de basura en el tiempo de
desarrollo y en la confiabilidad del software resultante
es muchos más importante que la pérdida en eficiencia.
BBM
Características
81
Primavera 2015
FCC - BUAP
• Una aplicación es un programa convencional que se
invoca desde el intérprete de comandos. Este programa
se carga directamente desde el disco y no de la red
Internet.
• Crear un archivo llamado Hello1.java con:
// La aplicación Hello World!
public class Hello1 {
public static void main (String args[]) {
System.out.println("Hello World!");
}
}
BBM
Hola Mundo
82
Primavera 2015
FCC - BUAP
• Un applet es un programa que anima una porción de
una página Web. Se recupera a partir de la red y corre
en la máquina del usuario, pero con muchas
restricciones.
• Crear el programa fuente Hello2.java con:
import java.awt.Graphics;
import java.applet.Applet;
public class Hello2 extends Applet {
public void paint(Graphics g) {
g.drawString("Hello world!", 50, 25);
}
}
BBM
Hola Mundo
83
<html>
<body>
Este es un applet:
<applet code="Hello2.class" width=150 height=25>
</applet>
</body>
</html>
Primavera 2015
FCC - BUAP
• Crear la página Hello.html con el siguiente contenido:
BBM
Hola Mundo
84
Primavera 2015
FCC - BUAP
• Hello.html debe estar en el mismo directorio que
Hello2.java.
• Ver el applet con: appletviewer Hello.html
• Dado que un applet no se invoca desde el intérprete de
comandos, no tiene sentido definir el método main. El
browser Web notifica al applet que debe dibujar su
contenido invocando el método paint. Esto ocurre cada
vez que se muestra la porción de la página html que
contiene este applet. Por lo tanto un applet debe definir
el método paint (en vez de main).
BBM
Hola Mundo
85
Primavera 2015
FCC - BUAP
• Cada nivel de privilegio de acceso de métodos y
variables está asociado con una palabra clave:
• private
• public
• protected
• Cada declaración contenida en el cuerpo de una clase
define de manera implícita un privilegio de acceso
apareciendo en una sección precedida de una de estas
tres palabras clave. Si no se utiliza ninguna de esas
palabras, todo es protected por omisión.
BBM
Control de acceso
86
• El método utilizado por Java es añadir un argumento
extra oculto a las funciones miembro. Este argumento
es un puntero al objeto de la clase que lo enlaza con la
función asociada y recibe un nombre especial
denominado this.
Primavera 2015
FCC - BUAP
• Nunca se puede llamar a una función de instancia de
una clase a menos que se asocie con un objeto (una
instancia de la clase).
BBM
Operador this
87
nombre, variando solamente en los parámetros de su
declaración.
Primavera 2015
FCC - BUAP
• En Java, dos o más funciones pueden tener el mismo
BBM
Polimorfismo (Sobrecarga de Constructores)
• También los constructores pueden ser sobrecargados,
simplemente debemos declarar las diferentes formas
que deberá tomar, y definir su acción relativa a cada una
de ellas.
88
Primavera 2015
FCC - BUAP
• Un mecanismo de Polimorfismo en un lenguaje de
programación, lo constituye la sobrecarga de funciones.
En Java, dos o más funciones pueden tener el mismo
nombre, difiriendo solamente en los parámetros de su
declaración.
BBM
Sobrecarga de funciones
• Las funciones que comparten nombre, pero que declaran
parámetros diferentes, se dicen que están
Sobrecargadas.
89
adquirir las propiedades de otro objeto.
• La importancia de la herencia se basa en que constituye
Primavera 2015
FCC - BUAP
• Es el proceso por medio del cual, un Objeto puede
BBM
Herencia
un mecanismo que soporta la clasificación.
• La herencia solo puede ser simple.
90
class B extends A
{
// Clase que hereda de la clase abuela A
public void FB();
}
Primavera 2015
// Clase abuela A
// Variable protegida
FCC - BUAP
class A {
protected int value_a;
}
BBM
Ejemplo de Herencia
class C extends B
{
// Clase que hereda de clase derivada B
public void FC();
}
91