Metodología y Tecnología de la Programación Tema 2: Conceptos de programación y lenguajes • Introducción • Conceptos elementales de programación • Lenguajes de programación • Compilando y ejecutando un programa en Java • Programación orientada a objetos • Bibliotecas (libraries) • Applets Java Escuela Superior de Informática. UCLM Tema 2:1 Metodología y Tecnología de la Programación Introducción • Comencemos a examinar las ideas básicas tras la escritura de programas • Nos centraremos en – – – – – – la estructura de un programa (en Java) elementos de programación básicos preparar y ejecutar un programa conceptos básicos de orientación a objetos la estructura de una aplicación Java Java applets Escuela Superior de Informática. UCLM Tema 2:2 Metodología y Tecnología de la Programación Estructura de un programa (en Java) • Ver Lincoln.java • Un programa consiste en una o más clases • Una clase contiene uno o más métodos • Un método contiene sentencias de programa • Una aplicación Java siempre ejecuta el método main (principal) Escuela Superior de Informática. UCLM Tema 2:3 Metodología y Tecnología de la Programación Espacio en blanco • Espacios, líneas en blanco y tabuladores se denominan colectivamente espacio en blanco y se usan para separar palabras y símbolos en un programa • Un espacio en blanco extra se ignora • Un programa válido puede ser formateado de muchas formas diferentes • Ver Lincoln2.java y Lincoln3.java • Los programas deben ser formateados para incrementar su legibilidad usando sangrado de forma sistemática Escuela Superior de Informática. UCLM Tema 2:4 Metodología y Tecnología de la Programación Comentarios • Los comentarios en un programa se denominan también documentación interna • Los comentarios se incluyen para explicar el propósito del programa o de los pasos de procesamiento • Los comentarios en Java pueden adoptar dos formas: // comentarios que van hasta fin de línea /* comentarios que van hasta el símbolo de terminación, incluso a través de saltos de línea */ Escuela Superior de Informática. UCLM Tema 2:5 Metodología y Tecnología de la Programación Identificadores • Los identificadores son los “nombres” programador usa en un programa que un • La mayoría de los identificadores no tienen un significado predefinido excepto el que les haya asignado el programador • Un identificador puede construirse con letras, dígitos, el carácter de subrayado (_) y el signo de dólar • Un identificador no puede comenzar con un dígito y puede tener cualquier longitud • Java es sensible a la capitalización, por lo tanto Total y total son identificadores diferentes Escuela Superior de Informática. UCLM Tema 2:6 Metodología y Tecnología de la Programación Palabras reservadas • Algunos identificadores palabras reservadas, tienen significados específicos (en Java) y no pueden usarse para otra cosa abstract boolean break byte byvalue case cast catch char class const continue default do double else extends false final finally float for future generic Escuela Superior de Informática. UCLM goto if implements import inner instanceof int interface long native new null operator outer package private protected public rest return short static super switch synchronized this throw throws transient true try var void volatile while Tema 2:7 Metodología y Tecnología de la Programación Literales • Un literal es un valor de dato explícito usado en un programa • Literales enteros: 25 69 -4288 • Literales de punto flotante: 3.14159 42.075 -0.5 • Literales de cadena: "El resultado es: " "En un lugar de la Mancha..." Escuela Superior de Informática. UCLM Tema 2:8 Metodología y Tecnología de la Programación La API de Java • La interfase del programador de aplicaciones, Application Programmer Interface, (API) es una colección de clases que pueden usarse cuando se necesiten • Los métodos println y print son parte de la API de Java; no son parte del lenguaje • Ambos métodos imprimen información en la pantalla; la diferencia es que println salta a la línea siguiente y print no • Ver Countdown.java Escuela Superior de Informática. UCLM Tema 2:9 Metodología y Tecnología de la Programación Concatenación y suma de cadenas • El operador + realiza dos tareas • Cuando se aplica a dos cadenas, estas se combinan en una sola (concatenación de cadenas). • Cuando se aplica a una cadena y a algún otro valor (como un número), el valor se convierte a cadena y se concatena a la anterior • Cuando se aplica a dos tipos numéricos se suman aritméticamente • Ver Antarctica.java y Sum.java Escuela Superior de Informática. UCLM Tema 2:10 Metodología y Tecnología de la Programación Lenguajes de programación • Hay cuatro niveles programación: – – – – básicos de lenguajes de lenguaje máquina lenguaje ensamblador lenguajes de alto nivel lenguajes de cuarta generación • Cada CPU tiene su propio y específico lenguaje máquina • Los otros niveles se crearon para hacer la programación más fácil Escuela Superior de Informática. UCLM Tema 2:11 Metodología y Tecnología de la Programación Lenguajes de Programación • Un programa debe traducirse a código máquina antes de poder ejecutarse sobre un tipo particular de CPU • Esto se puede conseguir de varias formas • Un compilador es una herramienta software que traduce código fuente a un lenguaje específico • Frecuentemente, este lenguaje específico es el lenguaje máquina para un tipo particular de CPU • La aproximación de Java es algo diferente Escuela Superior de Informática. UCLM Tema 2:12 Metodología y Tecnología de la Programación Traducción y ejecución en Java • El compilador Java traduce código fuente Java en una representación especial llamada bytecode • El bytecode Java no es el lenguaje máquina para ninguna CPU tradicional • Otra herramienta software, un intérprete, traduce bytecode en lenguaje máquina y lo ejecuta • Por lo tanto, el compilador de Java no está atado a ningún tipo particular de máquina • Java está considerado como indiferente a la arquitectura (architecture-neutral) Escuela Superior de Informática. UCLM Tema 2:13 Metodología y Tecnología de la Programación Traducción y ejecución en Java Código fuente Java Compilador Java Bytecode Java Intérprete Java Compilador de Bytecode Código máquina Escuela Superior de Informática. UCLM Tema 2:14 Metodología y Tecnología de la Programación Traducción y ejecución en Java • En línea de órdenes el compilador se ejecuta así: > javac Lincoln.java • Esto crea un fichero denominado Lincoln.class, el cual se envía al interprete para ser ejecutado: > java Lincoln • La extensión .java se usa en tiempo de compilación, pero la extensión.class no se usa por el intérprete • Otros entornos ejecutan estos procesos de forma diferente Escuela Superior de Informática. UCLM Tema 2:15 Metodología y Tecnología de la Programación Sintaxis y Semántica • La sintaxis de un lenguaje define como se pueden poner juntos símbolos, palabras reservadas, e identificadores para hacer un programa válido • La semántica de un constructor de un lenguaje es el significado del constructor; ella define su papel en un programa • Un programa sintácticamente correcto no implica que sea lógicamente (semánticamente) correcto • Un programa siempre hará lo que le digamos, no lo que queríamos decirle que hiciera Escuela Superior de Informática. UCLM Tema 2:16 Metodología y Tecnología de la Programación Errores • Un programa puede tener tres tipos de errores • El compilador puede encontrar problemas con la sintaxis y otros problemas básicos (errores en tiempo de compilación) – Si hay errores en tiempo de compilación no se crea versión ejecutable del programa • Puede haber problemas durante la ejecución del programa, tal como intentar dividir por cero, que provocan que el programa termine anormalmente (errores en tiempo de ejecución) • El programa puede correr pero producir resultados incorrectos (errores lógicos) Escuela Superior de Informática. UCLM Tema 2:17 Metodología y Tecnología de la Programación Argumentos en la línea de órdenes • Ver Name_Tag.java • El método main acepta información extra en la línea de órdenes cuando se ejecuta el programa > java Name_Tag John • Cada valor extra se denomina argumento de línea de órdenes • En Java, los argumentos de la línea de órdenes se leen siempre como una cadena de caracteres Escuela Superior de Informática. UCLM Tema 2:18 Metodología y Tecnología de la Programación Ingeniería del software • Debemos siempre tratar de desarrollar formalmente nuestro software para hacerlo fiable y mantenible • Según aumenta la complejidad del programa, sus coste de desarrollo y revisión aumenta exponencialmente coste complejidad Escuela Superior de Informática. UCLM Tema 2:19 Metodología y Tecnología de la Programación Componentes software • Los programas son más fáciles de construir y codificar cuando están constituidos por componentes separados • Un componente software puede considerarse como cualquier elemento de software que transforma una entrada en una salida Entrada Componente Salida 15 38 16 Calcular media 22 Escuela Superior de Informática. UCLM Tema 2:20 Metodología y Tecnología de la Programación Componentes software • Los componentes pueden componentes mayores Escuela Superior de Informática. UCLM combinarse para crear Tema 2:21 Metodología y Tecnología de la Programación Programación orientada a objetos • Java es un lenguaje orientado a objetos • Los programas están hechos de componentes software llamados objetos • Un objeto contiene datos y métodos • Un objeto se define por una clase • Se pueden crear múltiples objetos a partir de la misma clase Escuela Superior de Informática. UCLM Tema 2:22 Metodología y Tecnología de la Programación Programación orientada a objetos • Una clase representa un concepto y un objeto es la realización de ese objeto Objetos Clase Coche Mi coche El coche de Juan El coche del vecino Escuela Superior de Informática. UCLM Tema 2:23 Metodología y Tecnología de la Programación Programación orientada a objetos • Los objetos pueden también derivarse unos de otros usando un proceso denominado herencia Vehículo Coche Avión Tren • Objetos, clases y herencia se discutirán en mayor detalle más adelante Escuela Superior de Informática. UCLM Tema 2:24 Metodología y Tecnología de la Programación Bibliotecas (Libraries) de Clases • La API de Java es una biblioteca de clase, un grupo de clases que soportan el desarrollo de programas • Las clases en una jerarquía de clase están frecuentemente relacionadas por herencia • Las clases en la API de Java están separadas en paquetes • La clase System, por ejemplo, está en el paquete java.lang • Cada paquete contiene un relacionadas de alguna forma Escuela Superior de Informática. UCLM conjunto de clases Tema 2:25 Metodología y Tecnología de la Programación Los paquetes de la API de Java • Algunos paquetes en la API de Java: java.applet java.awt java.beans java.io java.lang java.math Escuela Superior de Informática. UCLM java.net java.rmi java.security java.sql java.text java.util Tema 2:26 Metodología y Tecnología de la Programación Importando paquetes • Una clase de la API de Java puede usarse a través su nombre completo: java.lang.System.out.println (); • O el paquete puede importarse usando la sentencia import, la cual tiene dos formas: import java.applet.*; import java.util.Random; • El paquete java.lang se importa automáticamente en todo programa Java Escuela Superior de Informática. UCLM Tema 2:27 Metodología y Tecnología de la Programación Applets Java • Una applet Java es un programa Java creado para ser enviado a lo largo de una red y ser ejecutado usando un navegador (browser) web • Una aplicación Java es un programa autónomo • Las aplicaciones tienen el método main, pero las applets no • Las applets están derivadas java.applet.Applet de la clase • Ver Confucius.java y No_Parking.java • Se pueden colocar enlaces a applets en documentos HTML Escuela Superior de Informática. UCLM Tema 2:28 Metodología y Tecnología de la Programación Applets Java Computador local Código fuente Java Computador remoto Compilador Java Bytecode Java Navegador Web Escuela Superior de Informática. UCLM Intérprete Java Tema 2:29