programación orientada a objetos mc beatriz beltrán martínez primavera 2015

21
Programación Orientada a Objetos MC Beatriz Beltrán Martínez Primavera 2015

Upload: felipina-cordova

Post on 11-Apr-2015

107 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programación Orientada a Objetos MC Beatriz Beltrán Martínez Primavera 2015

Programación Orientada a ObjetosMC Beatriz Beltrán Martínez

Primavera 2015

Page 2: Programación Orientada a Objetos MC 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

Page 3: Programación Orientada a Objetos MC Beatriz Beltrán Martínez Primavera 2015

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

Page 4: Programación Orientada a Objetos MC Beatriz Beltrán Martínez Primavera 2015

•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

Page 5: Programación Orientada a Objetos MC Beatriz Beltrán Martínez Primavera 2015

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

Page 6: Programación Orientada a Objetos MC Beatriz Beltrán Martínez Primavera 2015

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

Page 7: Programación Orientada a Objetos MC Beatriz Beltrán Martínez Primavera 2015

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

Page 8: Programación Orientada a Objetos MC Beatriz Beltrán Martínez Primavera 2015

Características

Código JAVA

Compilador JAVA

ByteCode JAVA

Intérprete JAVA

FC

C -

BU

AP

Prim

ave

ra 2

01

5B

BM

8

Page 9: Programación Orientada a Objetos MC Beatriz Beltrán Martínez Primavera 2015

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

Page 10: Programación Orientada a Objetos MC Beatriz Beltrán Martínez Primavera 2015

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

Page 11: Programación Orientada a Objetos MC Beatriz Beltrán Martínez Primavera 2015

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

Page 12: Programación Orientada a Objetos MC Beatriz Beltrán Martínez Primavera 2015

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

Page 13: Programación Orientada a Objetos MC Beatriz Beltrán Martínez Primavera 2015

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

Page 14: Programación Orientada a Objetos MC Beatriz Beltrán Martínez Primavera 2015

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

Page 15: Programación Orientada a Objetos MC Beatriz Beltrán Martínez Primavera 2015

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

Page 16: Programación Orientada a Objetos MC Beatriz Beltrán Martínez Primavera 2015

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

Page 17: Programación Orientada a Objetos MC Beatriz Beltrán Martínez Primavera 2015

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

Page 18: Programación Orientada a Objetos MC Beatriz Beltrán Martínez Primavera 2015

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

Page 19: Programación Orientada a Objetos MC Beatriz Beltrán Martínez Primavera 2015

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

Page 20: Programación Orientada a Objetos MC Beatriz Beltrán Martínez Primavera 2015

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

Page 21: Programación Orientada a Objetos MC Beatriz Beltrán Martínez Primavera 2015

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