Anda di halaman 1dari 61

Instituto Tecnolgico de Toluca

Programacin Orientada a Objetos

M.T.I. Roberto Liquidano Rodirguez

Contenido:
Paradigma de la programacin Orientada a Objetos

Fundamentos de la POO
Caractersticas de POO Elementos del lenguaje Que es Java Caractersticas de Java

Desde el principio, la carrera por crear lenguajes de

programacin ha sido una carrera para intentar realizar abstracciones sobre la mquina. Al principio no eran grandes abstracciones y el concepto de lenguajes imperativos es prueba de ello.

Exigen pensar en trminos del ordenador y no en

trminos del problema a solucionar. Esto provoca que los programas sean difciles de crear y mantener, al no tener una relacin obvia con el problema que representan No abstraen lo suficiente.

Muchos

paradigmas de programacin intentaron resolver este problema alterando la visin del mundo y adaptndola al lenguaje. Estas aproximaciones modelaban el mundo como un conjunto de objetos o de listas. Funcionaban bien para algunos problemas pero no para otros.

Los lenguajes orientados a objetos, ms generales,

permiten realizar soluciones que, ledas, describen el problema. Permiten escribir soluciones pensando en el problema y no en el ordenador que debe solucionarlo en ltimo extremo

Se basan en cinco caractersticas:


Todo es un objeto. Cada elemento del problema

debe ser modelado como un objeto.


Un programa es un conjunto de objetos diciendose

entre s que deben hacer por medio de mensajes. Cuando necesitas que un objeto haga algo le mandas un mensajes. Ms concretamente, ejecutas un mtodo de dicho objeto.

Cada objeto tiene su propia memoria, que llena

con otros objetos. Cada objeto puede contener otros objetos. De este modo se puede incrementar la complejidad del programa, pero detrs de dicha complejidad sigue habiendo simples objetos. Todo objeto tiene un tipo. En POO, cada objeto es una instancia (un caso particular) de una clase (el tipo general). Lo que distingue a una clase de otra es la respuesta a la pregunta, qu mensajes puedes recibir?

Todos los objetos de un determinado tipo pueden

recibir los mismos mensajes. Por ejemplo, dado que un objeto de tipo Gato es tambin un objeto de tipo Animal, se puede hacer cdigo pensando en los mensajes que se mandan a un animal y aplicarlo a todos los objetos de ese tipo, sin pensar si son tambin gatos o no.

Eso de que la programacin orientada a objetos intente establecer una relacin biunvoca entre el espacio del problema y el de la solucin est muy bien pero... cmo hacemos que un objeto realice cosas tiles y necesarias? Por medio de su interfaz, interfaz que est definida en la clase del objeto.

Por ejemplo, supongamos que tenemos la clase Interruptor cuyo interfaz define los mtodos apagar() y encender(). Entonces hacemos lo siguiente: Interfaz de un objeto Interruptor i = new Interruptor(); i.encender();

Primero creamos una referencia llamada i de tipo

Interruptor, y luego creamos un objeto, una instancia de dicho tipo, por medio de la palabra reservada new. Asignamos ese objeto a la referencia por medio del signo =. Por ltimo, enviamos un mensaje al objeto recin creado y asignado poniendo el nombre de la referencia, un punto, y el nombre del mensaje (mtodo).

La programacin orientadas a objetos (POO) que enfatiza en los datos, al contrario de la programacin estructurada que enfatiza en los algoritmos. La POO es una forma de programacin que utiliza objetos, ligados mediante mensajes, para la solucin de problemas.

La Programacin Orientada a Objetos (POO) se

distingue por pensar en los problemas y sus soluciones a travs de la implementacin de objetos y su comportamiento. Las caractersticas fundamentales de la Programacin Orientada a Objetos son: abstraccin, encapsulamiento, herencia y polimorfismo.

Abstraccin:

Por medio de la abstraccin se consigue no detenerse en los detalles concretos de implementacin en cada momento, sino generalizar y centrarse en los aspectos que permitan tener una visin global del problema.

Caractersticas de POO

Encapsulamiento:

Esta caracterstica permite ver un objeto como una caja negra en la que se ha introducido de alguna manera toda la informacin relacionada con dicho objeto. Esto permite manipular los objetos como unidades bsicas, permaneciendo oculta su estructura interna.
Herencia: La herencia permite el acceso automtico a la informacin contenida en otras clases. De esta forma, la reutilizacin de cdigo est garantizada. Con la herencia todas las clases estn clasificadas en una jerarqua estricta.
Caractersticas de POO (cont.)

Polimorfismo:
Esta caracterstica permite implementar mltiples formas de un mismo mtodo, dependiendo de cada una de las clase sobre la que se realice la implementacin. Esto hace que se pueda acceder a una variedad de mtodos (todos con el mismo nombre), utilizando el mismo medio de acceso.

Caractersticas de POO (cont.)

Constructores y destructores:

Un constructor es un procedimiento especial de una clase que es llamado automticamente siempre que se crea un objeto de esa clase. Su funcin es iniciar el objeto.
Un destructor es un procedimiento especial de una clase que es llamado automticamente siempre que se destruye un objeto de esa clase. Su funcin es realizar cualquier tarea final en el momento de destruir el objeto.

Caractersticas (cont.)

Mecanismos bsicos de la POO:

Los mecanismos bsicos de la POO son; objetos, mensajes, mtodos y clases. Objetos:
Un programa orientado a objetos se compone nicamente de objetos, es decir, un objeto es una entidad que tiene atributos particulares (propiedades), y una forma de operar sobre ellos, los mtodos (el comportamiento). Por ejemplo, una ventana de Windows es un objeto. El color de fondo, la anchura, la altura, etc. son propiedades. Las rutinas que permiten maximizar, minimizar, etc. son los mtodos.
Elementos del lenguaje

Mensajes:

Cuando se ejecuta un programa orientado a objetos, los objetos estn recibiendo, interpretando y respondiendo a mensajes de otros objetos.
En la POO un mensaje est asociado con un mtodo, de tal forma que cuando un objeto recibe un mensaje la respuesta a este mensaje es la ejecucin del mtodo asociado.

Elementos del lenguaje

Mtodos:

Un mtodo se implementa en una clase de objetos y determina como tiene que actuar el objeto cuando recibe el mensaje vinculado con ese mtodo.
La estructura ms interna del objeto se oculta a los usuarios que lo vayan a utilizar, manteniendo como nica conexin con el exterior, los mensajes.

Elementos del lenguaje

Clases:

En el mundo real, a menudo interactuamos con objetos del mismo tipo. Por ejemplo, su bicicleta es solo una de tantas que existen. Utilizando la tecnologa orientada a objetos, diramos que su bicicleta es una instancia de una clase de objetos conocida como bicicletas.
Una clase es un tipo de objetos definido y equivale a la generalizacin de un tipo especfico de objetos.

Elementos del lenguaje

Qu es Java ? Java es un lenguaje originalmente desarrollado por un grupo de ingenieros de Sun, utilizado por Netscape, posteriormente como base para Javascript. Si bien su uso se destaca en el Web, sirve para crear todo tipo de aplicaciones (locales, intranet o internet).

Los orgenes de Java se remontan a 1991, cuando Sun Microsystems decidi intentar introducirse en el mercado de la electrnica de consumo y desarrollar programas para pequeos dispositivos electrnicos.

James Gosling, el miembro del equipo con ms

experiencia en lenguajes de programacin, intentaba construir un lenguaje de bajo costo e independiente de la plataforma utilizando C++, al cual llam Oak.
En 1994 con la explosin de Internet, Oak pas a ser

Java y uno de los usos principales fue en un Navegador llamado WebRunner.

Java, HotJava, la documentacin y el cdigo fuente se

liberaron a principios de 1995 como una versin alpha. Inicialmente Java fue desarrollado para la SPARC Solaris y poco despus para Windows NT. En el verano de 1995, se liber para Windows 95 y Linux.

El 23 de Enero de 1996, la versin 1.0 de Java fue

oficialmente liberada, as como JavaScript. Netscape 2.0 suministraba soporte tanto para Java como para JavaScript

Las caractersticas principales que nos ofrece Java respecto a cualquier otro lenguaje de programacin, son:

Es SIMPLE: Java ofrece toda la funcionalidad de un lenguaje potente, pero sin las caractersticas menos usadas y ms confusas de stos. C y C++ son lenguajes muy difundidos, por ello Java se dise para ser parecido a C++ y as facilitar un rpido y fcil aprendizaje.

Java reduce muchas de las caractersticas de C y C++, entre las que destacan:
aritmtica de punteros

no existen referencias
registros (struct) definicin de tipos (typedef)

macros (#define)
necesidad de liberar memoria (free)

Aunque, en realidad, lo que hace es eliminar las

palabras reservadas (struct, typedef), ya que las clases son algo parecido.

Es ORIENTADO A OBJETOS: Java implementa la tecnologa bsica de C++ con algunas mejoras y elimina algunas cosas para mantener el objetivo de la simplicidad del lenguaje.

Java trabaja con sus datos como objetos y con interfaces a esos objetos. Soporta las cuatro caractersticas propias del paradigma orientado a objetos: abstraccin, encapsulacin, herencia y polimorfismo.

Las plantillas de objetos son llamadas, como en C++,

clases y sus copias, instancias. Estas instancias, como en C++, necesitan ser construidas y destruidas en espacios de memoria.

Java elimina muchas de las caractersticas de otros

lenguajes como C++ y aade caractersticas muy tiles como el garbage collector (reciclador de memoria dinmica).

Es DISTRIBUIDO: Java se ha construido con extensas capacidades de interconexin TCP/IP. Existen libreras de rutinas para acceder e interactuar con protocolos como http y ftp. Esto permite a los programadores acceder a la informacin a travs de la red con tanta facilidad como a los ficheros locales.

En s Java no es distribuido, sino que proporciona

las libreras y herramientas para que los programas puedan ser distribuidos, es decir, que se corran en varias mquinas, interactuando.

Es ROBUSTO: Java realiza verificaciones en busca de problemas tanto en tiempo de compilacin como en tiempo de ejecucin. La comprobacin de tipos en Java ayuda a detectar errores, lo antes posible, en el ciclo de desarrollo.

Java obliga a la declaracin explcita de mtodos,

reduciendo as las posibilidades de error. Maneja la memoria para eliminar las preocupaciones por parte del programador de la liberacin o corrupcin de memoria.

Es de ARQUITECTURA NEUTRAL: Para establecer Java como parte integral de la red, el compilador Java compila su cdigo a un fichero objeto de formato independiente de la arquitectura de la mquina en que se ejecutar.

Cualquier

mquina que tenga el sistema de ejecucin (run-time) puede ejecutar ese cdigo objeto, sin importar en modo alguno la mquina en que ha sido generado. Actualmente existen sistemas run-time para Solaris 2.x, SunOs 4.1.x, Windows 9x, Windows NT, Linux, Irix, Aix, Mac y Apple.

El cdigo fuente Java se "compila" a un cdigo de

bytes de alto nivel independiente de la mquina. Este cdigo (bytecodes) est diseado para ejecutarse en una mquina hipottica que es implementada por un sistema run-time, que s es dependiente de la mquina

Fuente Java
Compilador Java ByteCodes Java

API Java

Lo que verdaderamente depende del sistema es la

Mquina Virtual Java (JVM) y las libreras fundamentales, que tambin nos permitirn acceder directamente al hardware de la mquina. Adems, habr APIs de Java que tambin entren en contacto directo con el hardware y sern dependientes de la mquina, como ejemplo de este tipo de APIs podemos citar:

Java 2D: grficos 2D y manipulacin de imgenes

Java Media Framework : Elementos crticos en el

tiempo: audio, video... Java Animation: Animacin de objetos en 2D Java Telephony: Integracin con telefona Java Share: Interaccin entre aplicaciones multiusuario Java 3D: Grficos 3D y su manipulacin .

Es SEGURO: En Java, caractersticas como los punteros o el casting implcito que hacen los compiladores de C y C++ se eliminan para prevenir el acceso ilegal a la memoria.

El cdigo Java pasa muchos tests antes de ejecutarse

en una mquina. En resumen, las aplicaciones de Java resultan extremadamente seguras, ya que no acceden a zonas delicadas de memoria o de sistema, con lo cual evitan la interaccin de ciertos virus.

Es PORTABLE: Ms all de la portabilidad bsica por ser de arquitectura independiente, Java implementa otros estndares de portabilidad para facilitar el desarrollo.

Los enteros son siempre enteros y adems, enteros

de 32 bits. Adems, Java construye sus interfaces de usuario a travs de un sistema abstracto de ventanas de forma que las ventanas puedan ser implantadas en entornos Unix, Pc o Mac.

Es INTERPRETADO:
El intrprete Java (sistema run-time) puede ejecutar

directamente el cdigo objeto. Enlazar (link) un programa, normalmente, consume menos recursos que compilarlo, por lo que los desarrolladores con Java pasarn ms tiempo desarrollando y menos esperando por el proceso de enlace.

El byte-code corresponde al 80% de las instrucciones

de la aplicacin. Ese mismo cdigo es el que se puede ejecutar sobre cualquier plataforma. Para ello hace falta el run-time, que s es completamente dependiente de la mquina y del sistema operativo, que interpreta dinmicamente el byte-code y aade el 20% de instrucciones que faltaban para su ejecucin.

Con

este sistema es fcil crear aplicaciones multiplataforma, pero para ejecutarlas es necesario que exista el run-time correspondiente al sistema operativo utilizado.

Es MULTITHREADED: Al ser multithreaded (multihilo), Java permite muchas actividades simultneas en un programa. Los threads (a veces llamados, procesos ligeros), son bsicamente pequeos procesos o piezas independientes de un gran proceso. El beneficio de ser miltithreaded consiste en un mejor rendimiento interactivo y mejor comportamiento en tiempo real.

Aunque

el comportamiento en tiempo real est limitado a las capacidades del sistema operativo subyacente (Unix, Windows, etc.), an supera a los entornos de flujo nico de programa (single-threaded) tanto en facilidad de desarrollo como en rendimiento.

Java

es un lenguaje de programacin y una plataforma: Java es un lenguaje de programacin de alto nivel que se distingue por todas las caractersticas anteriormente mencionadas.

Una plataforma es el ambiente de hardware o software en el que un programa se ejecuta. La plataforma Java tiene dos componentes:
La Mquina Virtual de Java (Java VM)

El java API (Application Programming Interface).

Java 2 SDK Standard Edition v. 1.3. y Java 2 Runtime Environment (JRE) integran la JVM, la plataforma de clases y archivos de soporte. (jdk-6U20)

Para traducir un programa escrito en lenguaje de alto nivel (programa fuente) a lenguaje mquina se utiliza un programa compilador y que se puede ejecutar directa o indirectamente en el computador

Anda mungkin juga menyukai