Programación Orientada a ObjetosMC Beatriz Beltrán Martínez
Primavera 2015
Historia
• La tecnología Java se creó como una herramienta de programación para ser usada en un proyecto de set-top-box 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.
FC
C -
BU
AP
Prim
ave
ra 2
01
5B
BM
2
Preliminares
•Todo programa en lenguaje JAVA debe tener la siguiente extensión:
file.java //en UNIX, Windows, Linux
•Comentarios en JAVA/* Este es un comentario *//* Este también es un
comentario multilíneas */
// comentario unilineal
FC
C -
BU
AP
Prim
ave
ra 2
01
5B
BM
3
•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.
4
BB
MF
CC
- B
UA
P
P
rima
vera
20
15Programa Principal
JAVA
•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.
FC
C -
BU
AP
Prim
ave
ra 2
01
5B
BM
5
Características
•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.
FC
C -
BU
AP
Prim
ave
ra 2
01
5B
BM
6
Características• 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.
FC
C -
BU
AP
Prim
ave
ra 2
01
5B
BM
7
Características
Código JAVA
Compilador JAVA
ByteCode JAVA
Intérprete JAVA
FC
C -
BU
AP
Prim
ave
ra 2
01
5B
BM
8
Características
• 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.
FC
C -
BU
AP
Prim
ave
ra 2
01
5B
BM
9
Características
• 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.
FC
C -
BU
AP
Prim
ave
ra 2
01
5B
BM
10
Características
• 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.
FC
C -
BU
AP
Prim
ave
ra 2
01
5B
BM
11
Hola Mundo
• 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!"); } }
FC
C -
BU
AP
Prim
ave
ra 2
01
5B
BM
12
Hola Mundo• 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); } }
FC
C -
BU
AP
Prim
ave
ra 2
01
5B
BM
13
Hola Mundo
• Crear la página Hello.html con el siguiente contenido:
<html> <body> Este es un applet: <applet code="Hello2.class" width=150 height=25> </applet> </body> </html>
FC
C -
BU
AP
Prim
ave
ra 2
01
5B
BM
14
Hola Mundo
• 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).
FC
C -
BU
AP
Prim
ave
ra 2
01
5B
BM
15
Control de acceso• 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.
FC
C -
BU
AP
Prim
ave
ra 2
01
5B
BM
16
Operador this
•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).
•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.
FC
C -
BU
AP
Prim
ave
ra 2
01
5B
BM
17
Polimorfismo (Sobrecarga de Constructores)
•En Java, dos o más funciones pueden tener el mismo nombre, variando solamente en los parámetros de su declaración.
•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.
18
BB
MF
CC
- B
UA
P
P
rima
vera
20
15
Sobrecarga de funciones
•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.
•Las funciones que comparten nombre, pero que declaran parámetros diferentes, se dicen que están Sobrecargadas.
19
BB
MF
CC
- B
UA
P
P
rima
vera
20
15
Herencia
•Es el proceso por medio del cual, un Objeto puede adquirir las propiedades de otro objeto.
•La importancia de la herencia se basa en que constituye un mecanismo que soporta la clasificación.
•La herencia solo puede ser simple.
20
BB
MF
CC
- B
UA
P
P
rima
vera
20
15
Ejemplo de Herenciaclass A { // Clase abuela A protected int value_a; // Variable protegida}
class B extends A { // Clase que hereda de la clase abuela A
public void FB();}
class C extends B { // Clase que hereda de clase derivada B public void FC();}
FC
C -
BU
AP
Prim
ave
ra 2
01
5B
BM
21
Top Related