Unidad I Conceptos Bsicos de la Programacin Orientada a Objetos
1.1 Paradigma de la Programacin Orientada a Objetos
Paradigma. Segn el Diccionario de la Real Academia de la Lengua Espaola, paradigma se define como Cada uno de los esquemas formales en que se organizan las palabras nominales y verbales para sus respectivas flexiones. . En el mbito de la programacin paradigma es una tcnica de programacin.
Paradigma de la Programacin Estructurada En los aos sesenta, Edsger Dijkstra demostr que todo programa poda escribirse correctamente combinando tres bloques de control: bloques secuenciales, el bloque de seleccin if y el bloque de repeticin. En la programacin estructurada un problema se divide en tareas ms pequeas llamadas procesos, los cuales se pueden distribuir varios programadores para llegar a una solucin de forma rpida y eficiente. La programacin estructurada es un mecanismo para hacer programas ms comprensibles, evitando hacer saltos de una parte del programa a otra, lo que facilita la lectura del cdigo en forma continua.
La Programacin estructurada se concentra en las acciones que controlan el flujo de datos.
Paradigma de la Programacin Orientada a Objetos
Es un modelo de programacin cuya idea principal es mediante descomponer un problema en entidades de software llamadas objetos. La Programacin Orientada a Objetos trata de aproximar la programacin a la vida real.
La POO se centra en la interrelacin que existe entre los datos y las acciones.
Comparacin entre Programacin Estructurada y Programacin Orientada a Objetos
Tradicionalmente el cdigo y los datos se han mantenido separados. Por ejemplo, en lenguaje C, a los bloques de cdigo se le conoce como funciones, mientras a las unidades de datos se les conoce como estructuras; en C, las funciones y las estructuras no estn formalmente conectadas. Una funcin en C puede operar sobre ms de un tipo de estructura y ms de una funcin puede operar sobre la misma estructura. En la programacin orientada a objetos el cdigo y los datos estan fusionadas en algo indivisible: un objeto. En la POO los datos son tratados como elementos crticos y no fluyen libremente, sino que se limitan a las funciones donde operan, lo que los protege de una modificacin accidental.
Datos Parciales Datos parciales Entrada de Datos Nombre Atributos Mtodos Linea Tamao Orientacin Tipo Color Grosor Dibujar Borrar Rotar Mover Introduccin a la Programacin en Java
Ing. Alma Leticia Palacios Guerrero 4
Ventajas de la Programacin Orientada a Objetos. Los datos estan encapsulados y no pueden ser accesados por funciones externas al objeto. Los objetos pueden comunicarse entre s a travs de funciones. Pueden agregarse nuevos datos y funciones filmente cuando se requiera. 1.2 Conceptos Bsicos de Programacin Orientada a Objetos.
Clase: Una clase es una agrupacin de datos (variables o campos) y de funciones (mtodos) que operan sobre esos datos. A estos datos y funciones pertenecientes a una clase se les denomina variables y mtodos o funciones miembro. La clase es el patrn o modelo para crear objetos. Objeto: Es un paquete de variables y mtodos relacionados. Los objetos en software frecuentemente son la abstraccin de las propiedades y comportamientos de una entidad del mundo real. Mensaje: Los mensajes son simples llamadas a las funciones o mtodos del objeto con el se quiere comunicar para decirle que haga cualquier cosa.
Herencia: La herencia permite que se pueden definir nuevas clases basadas en clases existentes, lo cual facilita reutilizar cdigo previamente desarrollado. Si una clase deriva de otra (extends) hereda todas sus variables y mtodos. La clase derivada puede aadir nuevas variables y mtodos y/o redefinir las variables y mtodos heredados. En Java, a diferencia de otros lenguajes orientados a objetos, una clase slo puede derivar de una nica clase, con lo cual no es posible realizar herencia mltiple en base a clases.
Encapsulacin: Es el proceso de ocultar todos los detalles de un objeto que no contribuyen a sus caractersticas esenciales. Esto significa que aquello que est en interior de la clase est oculto, solo las interfaces externas pueden ver otros objetos. [1] Polimorfismo: Es una propiedad que permite enviar el mismo mensaje a objetos de diferentes clases, de forma que cada uno de ellos responde a ese mismo mensaje de modo distinto dependiendo de su implementacin. [1]
Interface: Una interface es un conjunto de declaraciones de funciones. Si una clase implementa una interface, debe definir todas las funciones especificadas por la interface. Una clase puede implementar ms de una interface, representando una forma alternativa de la herencia mltiple. A su vez, una interface puede derivar de otra o incluso de varias interfaces, en cuyo caso incorpora todos los mtodos de las interfaces de las que deriva. Package: Un package (paquete) es una agrupacin de clases
Introduccin a la Programacin en Java
Ing. Alma Leticia Palacios Guerrero 5
Unidad 2. Introduccin a Java
2.1 Historia de Java
Java inici su vida bajo un nombre y un propsito diferente a los actuales. El lenguaje de programacin original fue escrito para aparatos electrodomsticos como tostadores, hornos de microondas, etc. A principios de los 90s la incorporacin de los microprocesadores a los objetos de la vida diaria, fue vista como el inicio de una nueva era. En 1991 Sun MicroSystems fund un proyecto de investigacin interno llamado Green. El equipo de Green, encabezado por James Gosling, rpidamente se dio cuenta de que lenguajes como C y C++ no eran adecuados para la gama de tareas que los dispositivos necesitaban ejecutar. Uno de los problemas anticipados por Green era la dificultad de proveer software para nuevos dispositivos ya que cada vez que apareca un nuevo chip, se tena que recompilar el programa escrito en C o C++ para el chip en particular.
A mediados de 1991, James Gosling empez a trabajar en un nuevo lenguaje apropiado, el nombr al lenguaje Oak (Roble) por un roble que vea desde su oficina en Sun. Gosling dise el nuevo lenguaje para ser pequeo, confiable e independiente de arquitectura. El equipo de desarrollo fue incorporado a la nueva compaa FirstPerson. Desafortunadamente, FirstPerson, se vi en una serie de dificultades principalmente porque el mercado para el consumo de dispositivos electrnicos inteligentes no estaba desarrollado como lo haba anticipado Sun La liberacin de NCSA Mosaic y la explosin de la World Wide Web en 1993 salvaron el proyecto. Los desarrolladores de OAK vieron que un lenguaje de arquitectura neutral sera ideal para programar en Internet porque el programa podra correr en cualquier parte. Los desarrolladores hicieron cambios menores al diseo y cambiaron el nombre a Java. Habiendo desarrollado Java para productos electrnicos de consumo este result ser un lenguaje robusto. Cuando el equipo de Java decidi que sera particularmente apropiado para Internet debido a su independencia de plataforma, agregaron funciones para el manejo de red. As fue como Java se convirti en la nueva eleccin de lenguaje para desarrollar aplicaciones cliente/servidor o de red. Sun anunci formalmente Java en la conferencia SunWorld en mayo de 1995. Inmediatamente gener inters porque no era un lenguaje acadmico como Pascal ni diseado por un pequeo grupo para uso local como C o C++. Introduccin a la Programacin en Java
Ing. Alma Leticia Palacios Guerrero 6
2.2. Caractersticas de Java Sun describe Java como un lenguaje simple, orientado a objetos, distribuido, interpretado, robusto, seguro, de arquitectura neutral, portable, de alto desempeo y multihilos. Cada una de estas palabras es una caracterstica del lenguaje Java. Mientras muchas de estas caractersticas pueden usarse para describir otros lenguajes, esta combinacin en particular es nica en Java y su ambiente. Simple: Se dice que Java es simple porque aunque tiene todas las caractersticas de un lenguaje potente, descarta las caractersticas menos usadas y ms confusas de stos. C y C++ son lenguajes muy conocidos, por eso Java se dise para ser parecido a C++ y as facilitar su aprendizaje. En Java no es necesario liberar memoria, no se usan la aritmtica de punteros, las referencias, registros, definicin de tipos (typedef) ni macros. Orientado a objetos: Desde el punto de vista del usuario la orientacin a objetos no cambia nada. Al correr un programa no importa si est escrito en programacin convencional o en lenguaje orientado a objetos. Pero si se est acostumbrado a programar en lenguajes convencionales como Pascal y C, entonces orientado a objetos significa que sern necesarios mayores ajustes en la planeacin e implementacin de las aplicaciones. Este ajuste es probablemente la parte ms dficil en el aprendizaje de Java. Distribuido: Java viene con una completa biblioteca de aplicaciones de red que facilita al programador el trabajar con protocolos desde bajo nivel como TCP/IP (Transport Control Protocol and Internet Protocol) o alto nivel como HTTP (Hyper Text Transfert Protocol) y FTP (File Transfer Protocol). Interpretado. La ejecucin de un programa en Java pasa a travs de dos fases. 1. El compilador de java convierte el cdigo fuente en un tipo de lenguaje de bajo nivel llamado bytecode. 2. Para correr el programa se usa un interprete que ejecuta el bytecode compilado. Este interprete es conocido como la JVM (Java Virtual Machine).
Robusto: Java no solo verifica el cdigo para encontrar problemas en tiempo de compilacin, tambin busca errores que se puedan presentar en tiempo de ejecucin. La comprobacin de tipos en Java ayuda a detectar errores, lo antes posible, en el ciclo de desarrollo. Entre otras cosas proporciona la comprobacin de punteros, lmites de arreglos, y manejo de excepciones, etc. Seguro: Debido a que Java fue diseado para correr en un ambiente de red tienes restricciones de seguridad. Adems durante la ejecucin el intrprete usa un mecanismo para verificar que el bytecode cargado a travs de la red no viola ninguna restriccin del lenguaje Java. Cd|go Fuerle prograra.java Compilador 8ylecodes prograra.c|ass Intrprete Introduccin a la Programacin en Java
Ing. Alma Leticia Palacios Guerrero 7
Multihilos: En la actualidad muchas aplicaciones permiten al usuario realizar mltiples tareas en forma simultnea. La capacidad para ejecutar varios procesos al mismo tiempo se conoce como multihilo. Java proporciona paquetes para implementar y aplicaciones multihilo. Dinmico. Java es un lenguaje dinmico porque puede adaptarse a un ambiente cambiante y en desarrollo. Java no intenta conectar todos los mdulos que conforman una aplicacin hasta el tiempo de ejecucin. Las libreras nuevas o actualizadas no paralizarn las aplicaciones actuales Arquitectura Neutral : La internet es la composicin de muchas computadoras interconectadas con procesadores y sistemas operativos diferentes. Java fue desarrollado con la meta de ser capaz de correr en cualquier tipo de computadora sin tener que recompilar el cdigo. Por esta razn, cuando se compila un programa fuente de Java, el resultado no es un cdigo nativo sino un bytecode de arquitectura neutral de bajo nivel que representa los datos en un formato independiente de la mquina objeto. El interprete de Java puede ms tarde, leer este bytecode y traducirlo a llamadas de sistema dependientes de mquina. Esta combinacin de caractersticas es la razn por la que las aplicaciones de Java pueden correr en cualquier computadora que implementa la Java Virtual Machine.
Portable: Ser de arquitectura neutral es slo una parte de ser portable. Java adems implementa otros estndares de portabilidad para facilitar el desarrollo, por ejemplo los enteros son siempre de 32 bits, la construccin de interfaces de usuarios se realiza utilizando las clases del paquete awt (abstract window toolkit) de forma que las ventanas puedan ser implantadas en cualquier entorno. . 6d|go Fuente programa.java Compilador ytecodes programa.c|ass Intrprete Mac 05 Mac 05 Mac 05 Mac 05 Intrprete Intrprete WINXP WINXP WINXP WINXP LINUX LINUX LINUX LINUX Introduccin a la Programacin en Java
Ing. Alma Leticia Palacios Guerrero 8
2.3. Componentes de Java La plataforma de Java tiene dos componentes: La mquina virtual de Java y el API de Java. El API (Application Programming Interface) es un conjunto de componentes de software, est agrupado en paquetes o libreras de clases.
2.4 Tipos de Programas en Java Los tipos de programas ms comunes en Java son los applets y las aplicaciones standalone. Applet: Es un programa que se apega a ciertas convenciones que le permiten correr en un browser habilitado para Java. Aplicacin Standalone: Es un programa independiente que corre directamente en plataforma Java.
Plataforma de Hardware Mquina Virtual de Java API de Java programa.java