Tema 1: Principios de Java 0
Definición de java Java (del idioma indonesio: JAWA) Isla más poblada del archipiélago indonesio. Una variedad del grano de café producido en la isla de Java. Lenguaje de programación Java. Lenguaje de programación orientado a objetos, diseñado por Sun Microsystems para el desarrollo de aplicaciones multiplataforma y para la www. 1
Breve historia El lenguaje de programación java surgió a inicios de los 90 s. Propósito: lenguaje capaz de hacer convivir electrodomésticos incluyendo la t.v. Proyecto Green (Sun), el lenguaje llamado Oak. Bill Joy, Andy Bechtolsheim, Wayne Rosing, Mike Sheridan, James Gosling y Patrick Naughton, en total el equipo lo formaban 13 personas. Oak debía ser independiente de la plataforma, por lo cuál se optó por un lenguaje interpretado. 2
...Breve historia Oak fue un lenguaje que tenía similitudes con C, C++ y Objective C. Después se cambia el nombre de Oak a Java. En Junio de 94 se comienza el proyecto "Live Oak" (Internet, la www). El 23 Mayo de 1995, John Gage, de Sun Microsystems, y Marc Andreessen, cofundador y vicepresidente de Netscape, anunciaban la versión alpha de Java. En Enero de 1996, Sun crea JavaSoft para desarrollar la nueva tecnología y ese mismo mes aparece la versión 1.0 del JDK. 3
Características Java es : una plataforma y un lenguaje de programación. El lenguaje fue diseñado para ser: Orientado a Objetos. Trabaja con objetos y sus interfaces a esos objetos. Soporte de las 3 características propias del paradigma orientado a objetos. Interfaz RTTI, Runtime Type Identification. 4
...Características Distribuido Es posible usar protocolos como HTTP y FTP mediante librerías. Hace posible la colaboración y la distribución de carga de trabajo del sistema: Applets, servlets,jsp s. Proporciona soporte para tecnologías de red distribuida como RMI (Remote Method Invocation), como CORBA (Common Object Request Broker) y URL (Universal Resource Locator Architecture). 5
...Características Simple Se utilizó una sintaxis similar a la de C/C++ teniendo en cuenta su popularidad y se eliminaron aquellas características que provocan confusión. El programador no manipula directamente los apuntadores. Permite manipular objetos usando referencias de objetos. Java contiene su Garbage Collector que monitorea y remueve objetos que no están siendo referidos. El dato de tipo boolean puede tener un valor true o false y no 1 o 0. 6
...Características Multihilo Un Thread o hilo es un flujo de control secuencial dentro de un programa. Java proporciona el Multithreading que permite varias ejecuciones de tareas en un programa, ejecutándose concurrentemente llevando acabo tareas distintas. Por lo que le facilita a Java ser eficiente manipulando los recursos del sistema. 7
...Características Seguro Proporciona varias medidas de seguridad: Prohibe la manipulación de memoria. Prohibe los programas distribuidos, como un applet, desde la escritura y lectura de un disco duro. Verifica que se tenga un bytecode. Soporta firmas digitales. 8
...Características Seguro 9
...Características Independiente de la plataforma Una plataforma es una combinación entre CPU y sistema operativo. No requiere que sus programas sean compilados ni ligados en cada máquina. LA JVM es la responsable de interpretar el código Java, cargar las clases y ejecutar los programas. 10
Programación Orientada a Objetos Qué es la programación orientada a Objetos? Es una forma de programar que consiste en entender los programas como un conjunto de objetos que se relacionan con sus métodos. Vehículo 11
Ejemplos de OOP Figura Instrumento 12
OOP Objeto Cada objeto es una abstracción dinámica de dato, instancia de una clase que representa un comportamiento (dado por las operaciones que puede realizar) y un estado (su estructura interna) y mantiene una identidad invariante durante toda su existencia. 13
OOP Método Es el elemento funcional de un objeto. Define el comportamiento de una clase. 14
OOP Clase Es la implementación de un tipo abstracto de datos; determina el comportamiento y el estado de sus instancias. Miembros: conjunto de atributos y métodos. 15
OOP Abstracción Con la abstracción se destaca lo importante y se ignora lo irrelevante, es decir, hay ocultamiento de información. Hay abstracción de datos al declarar una variable tipo int, ya que internamente el compilador lo implementa en 4 bytes, lo cual es transparente al programador, permitiéndole abstraerse de esos detalles. 16
OOP Encapsulamiento Es la metodología de ocultar ciertos elementos de la implementación de una clase pero proporcionando una interfaz pública. Una buena encapsulación debe de llevar a que todos los campos de los objetos tengan un modificador private y solo puedan acceder o alterarse a través de los métodos de la clase. La ventaja que se tiene es un absoluto control sobre el acceso a dichos campos. 17
OOP Herencia Es un orden parcial entre clases donde la procedencia representa generalización y la sucesión especialización. Se implementa mediante un mecanismo que facilita la construcción de clases por especialización heredando atributos (estado y métodos) de las clases predecesoras en la jerarquía. 18
OOP Polimorfismo Existe cuando se logra que una referencia se refiera a objetos de diferentes clases. El comportamiento exacto depende de la clase exacta del objeto referido. Se tiene polimorfismo cuando: Diferentes clases implementan una misma interfaz. Unas clases son subclases de otras. 19