Orígenes de Java
En 1991 los ingenieros de la compañía “Sun Microsystems” no estaban conformes con el rendimiento de C++, por lo que comenzaron el desarrollo de un lenguaje que facilitara el desarrollo y despliegue de aplicaciones y sistemas.
Este nuevo lenguaje tendría que obviar problemas que presenta C++, en campos tales como la programación distribuida, las aplicaciones mulShilo, el manejo de la memoria y ser más sencillo de manejar que C++ Sun Microsystems fue adquirido en el 2010 por Oracle.
Java SE 8 • ConSene las capacidades necesarias para desarrollar aplicaciones para
ser ejecutados tanto en equipos Spo desktop, servidores y aplicaciones para Android.
• Actualmente, julio 2015, Java es un lenguaje de programación mulS-‐paradigma. • Procedural • Orientado a Objetos • Genérica • Funcional (Java SE 8)
• MulSplataforma, “programa una vez, ejecútalo donde sea”.
• Según Oracle, el 97% computadores en empresas, cerca de 3 billones de disposiSvos y el 100% de todos los Blue-‐ray ejecutan y uSlizan Java.
La Plataforma Java
Java EE • USlizado en un amplio espectro de aplicaciones a nivel empresarial que
requieren sistemas intercomunicados a través de Internet y la Web. • Se accede a estas aplicaciones y se uSlizan por medio de un navegador
Web, pero se almacenan y se ejecutan en servidores web.
• ConSene APIs, librerías y subsistemas especializados para comunicarse con disSntos Spos de bases de datos.
• ConSene APIs especializadas para agregar capas de seguridad a los sistemas y aplicaciones web.
• Altamente robusto, rápido y compaSble con muchas tecnologías para generar contenido enriquecido en la web.
La Plataforma Java
Java ME • Actualmente en decadencia, pero aún así muy uSlizado en la industria.
• Orientado al desarrollo de aplicaciones para disposiSvos integrados de recursos limitados, tales como reproductores MP3, decodificadores de TV, smartwatches, etc.
• Es un subconjunto de la plataforma Java SE.
• Reimpulsado por Oracle para el desarrollo de aplicaciones de Spo IoT.
La Plataforma Java
Proceso de Desarrollo 2pico • Consta de 5 etapas:
1. Desarrollar / Editar
2. Compilar
3. Cargar
4. Verificar
5. Ejecutar
La Plataforma Java
Proceso de Desarrollo 2pico
1. Desarrollar / Editar
Consiste en la escritura de código por parte de un ser humano usando cualquier editor de texto disponible en algún sistema operaSvo moderno. Preferentemente para esta etapa se uSliza un IDE (Ambiente de desarrollo Integrado).
La Plataforma Java
Proceso de Desarrollo 2pico • Consta de 5 etapas:
1. Desarrollar / Editar
2. Compilar
3. Cargar
4. Verificar
5. Ejecutar
La Plataforma Java
Proceso de Desarrollo 2pico
2. Compilar el Código a bytecodes
Como el ptulo dice, transforma el lenguaje humano del código fuente de un programa a bytecode, el cual es interpretado por la Máquina virtual de Java. Ejecutar en la terminal: javac welcome.java
La Plataforma Java
Proceso de Desarrollo 2pico • Consta de 5 etapas:
1. Desarrollar / Editar
2. Compilar
3. Cargar
4. Verificar
5. Ejecutar
La Plataforma Java
Proceso de Desarrollo 2pico
3. Cargar el Programa a memoria
La JVM lleva el programa contenido en archivos .class a memoria principal para poder ejecutarlo, lleva además cualquier otro archivo .class que se requiera para el correcto funcionamiento.
La Plataforma Java
Proceso de Desarrollo 2pico • Consta de 5 etapas:
1. Desarrollar / Editar
2. Compilar
3. Cargar
4. Verificar
5. Ejecutar
La Plataforma Java
Proceso de Desarrollo 2pico
4. Verificar
Consiste en la escritura de código por parte de un ser humano usando cualquier editor de texto disponible en algún sistema operaSvo moderno. El verificador de bytecode examina que el bytecode sea válido y no viole la restricciones de seguridad de Java.
La Plataforma Java
Proceso de Desarrollo 2pico • Consta de 5 etapas:
1. Desarrollar / Editar
2. Compilar
3. Cargar
4. Verificar
5. Ejecutar
La Plataforma Java
Proceso de Desarrollo 2pico
5. Ejecución
Consiste en la escritura de código por parte de un ser humano usando cualquier editor de texto disponible en algún sistema operaSvo moderno. En la actualidad las instrucciones almacenadas en el bytecode son ejecutadas por la JVM y en algunas arquitecturas el bytecode es traducido a lenguaje de máquina, ejecutando el programa directamente por el computador.
La Plataforma Java
¿Qué es un objeto? Todo lo que podamos representar mediante atributos (por ej: color, nombre, tamaño) y comportamiento (por ej: frenar, acelerar, volar, encender)
Orientación a Objetos
Todo es un objeto La demanda hoy día es uSlizar técnicas y herramientas para crear soUware de mayor calidad, más poderoso y a un menor costo.
• Disminuir el Sempo de desarrollo • Disminuir costos en el desarrollo • Maximizar la calidad • Otras métricas.
La orientación a objetos (POO) contribuye a responder a estas métricas uSlizando los objetos como piezas de código reusables, fáciles de entender, fáciles de mantener y desarrollar. Hay objetos de Sempo, objetos de audio, objetos de imágenes, objetos de video, objetos de personas, etc. Todo sustanSvo es potencialmente un objeto.
Orientación a Objetos
Instanciar un objeto
Antes de manejar un automóvil, este debe exisSr, y es creado por algún fabricante de automóviles siguiendo los planos de fabricación previamente creados en un proceso de ingeniería automotriz. Este proceso de creación es llamado instanciación. De ahí en adelante podemos decir que ese automóvil creado es una instancia de la clase automóvil establecido en el plano de fabricación.
Orientación a Objetos
Mensajes y llamadas a métodos Cuando conduces un automóvil y presionas el acelerador le envías un mensaje al automóvil para que ejecute una acción, en este caso sería: ir más rápido. Cada mensaje es implementado como un método el cual ejecuta una tarea o una acción.
Orientación a Objetos
Encapsulación En la vida real, los objetos se comunican e interactúan entre sí. Piensa en un objeto de la clase Policía, piensa ¿que atributos o métodos le interesaría saber de un objeto de la clase conductor y/o vehículo?
Orientación a Objetos
Herencia Una nueva clase de objeto puede ser creada convenientemente usando herencia. • Las nuevas clases (sub clases) comienzan con el estado de la clase padre
(llamada súper clase)
Orientación a Objetos
Interfaces Java soporta el concepto de Interfaces, caracterísSca de la POO que es uSlizada básicamente para decirle a los objetos que es lo QUE deben hacer, pero no el COMO deben hacerlo.
Orientación a Objetos
Polimorfismo Es una mezcla entre herencia e interfaces. Polimorfismo significa de muchas formas. Se refiere a que disSntos objetos uSlizan un mismo método, pero lo uSlizan de disSnta manera. Piensa en objetos de las clases entrenador de futbol y jugador de futbol. Si a estas clases se les implementa el método Entrenamiento, lo uSlizarán de disSnta manera, ya que el entrenador dirigirá el entrenamiento y el jugador uSlizará el entrenamiento para mejorar.
Orientación a Objetos
Instanciación y declaración de variables o atributos • Cada línea de código debe terminar con “;” [punto y coma] • Muy recomendable uLlizar una línea de código a la vez
Sintaxis y Aspectos básicos del Lenguaje