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

Post on 11-Apr-2015

108 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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