POOPOO-ES REV00 INGENIERÍA EN SISTEMAS COMPUTACIONALES COMPUTACIONALES PROGRAMACION ORIENTADA A OBJETOS DIRECTORIO Mtro. Alonso Lujambio Irazábal Secretario de Educación Pública Dr. Rodolfo Tuirán Gutiérrez Subsecretario de Educación Superior Mtra. Sayonara Vargas Rodríguez Coordinadora de Universidades Politécnicas II PÁGINA LEGAL Participantes Mtra. Donají L. Sedano Flores - Universidad Politécnica de Zacatecas Primera Edición: 2011 DR 2011 Coordinación de Universidades Politécnicas. Número de registro: México, D.F. ISBN----------------- III ÍNDICE Introducción..................................................................................... 1 Ficha técnica................................................................................... 2 Método de Evaluación.................................................................... 4 Desarrollo prácticas........................................................................ 5 Instrumentos de evaluación………………………………………………….. 9 Glosario……………………………………………………………………………….. 22 Bibliografía...................................................................................... 32 IV INTRODUCCIÓN La orientación a objetos es un paradigma de programación que facilita la creación de software de calidad por sus factores que potencian el mantenimiento, la extensión y la reutilización del software generado bajo este paradigma. La programación orientada a objetos trata de amoldarse al modo de pensar del hombre y no al de la máquina. Esto es posible gracias a la forma racional con la que se manejan las abstracciones que representan las entidades del dominio del problema, y a propiedades como la jerarquía o el encapsulamiento. El elemento básico de este paradigma no es la función (elemento básico de la programación estructurada), sino un ente denominado objeto. Un objeto es la representación de un concepto para un programa, y contiene toda la información necesaria para abstraer dicho concepto: los datos que describen su estado y las operaciones que pueden modificar dicho estado, y determinan las capacidades del objeto. Java incorpora el uso de la orientación a objetos como uno de los pilares básicos de su lenguaje. 1 PROGRAMA DE ESTUDIOS 1 FICHA TÉCNICA PROGRAMACION ORIENTADA A OBJETOS Nombre: PROGRAMACION ORIENTADA A OBJETOS Clave: POO-ES Justificación: Para comprender los conceptos del paradigma de programación orientada a objetos que le permitan desarrollar soluciones en un lenguaje de programación orientado a objetos para obtener los productos esperados por el cliente Objetivo: Habilidades: El Alumno será capaz de programar utilizando el paradigma orientado a objetos primero en línea de comandos y después a través de interfaces de usuario gráficas. Lectura, escritura, interlocución, síntesis de la información, aplicación de principios tecnológicos, relaciones en y con el entorno organizacional, relaciones interpersonales, toma de decisiones, lectura en segunda lengua, interlocución en segunda lengua. Análisis y síntesis, resolver problemas, aplicar los conocimientos en la Competencias y/o práctica, adaptarse a nuevas situaciones, cuidar la calidad, gestionar la capacidades previas información, trabajar en forma autónoma y en equipo. Capacidades a desarrollar en la asignatura Competencias a las que contribuye la asignatura • Representar módulos mediante estructuras de control utilizando la filosofía de programación orientada a objetos para obtener el producto esperado por el cliente Estimación de tiempo (horas) necesario para transmitir el aprendizaje al alumno, por Unidad de Aprendizaje: Unidades de aprendizaje • Codificar algoritmos de solución en un lenguaje de programación orientado a objetos para satisfacer las necesidades del cliente a través de procedimientos de desarrollo. HORAS TEORÍA No presencial presencial HORAS PRÁCTICA No presencial presencial 1. Principios de la Programación Orientada a Objetos 9 0 9 6 2. Estructuras de control y Tipos definidos por el usuario 12 0 12 8 3. Desarrollo avanzado de clases 12 0 12 8 2 4. Manejo de excepciones básicas 12 Total de horas por cuatrimestre: 120 Total de horas por semana: 8 Créditos: 5 0 12 8 3 MÉTODO DE EVALUACIÓN Unidades de aprendizaje Resultados de aprendizaje Al completar la unidad de aprendizaje el alumno será capaz de: 1. Principios de la Programación Orientada a Objetos - Estructurar instrucciones computacionales para el diseño de aplicaciones Orientadas a Objetos. -Manejar conceptos de la programación orientada a objetos. Al completar la unidad de aprendizaje el alumno será capaz de: 2. Estructuras de control y Tipos definidos por el usuario - Realizar tipos de datos abstractos mediante el uso de las estructuras básicas de control de Programación Orientada a Objetos. Al completar la unidad de aprendizaje el alumno será capaz de : 3. Desarrollo avanzado de clases - Construir Clases,aplicando conceptos avanzados del Paradigma Orientado a Objetos. Encapsulación, Sobrecarga, herencia, polimorfismo, dinámico y estático. Al completar la unidad de aprendizaje el alumno será capaz de: 4. Manejo de excepciones básicas Manejar excepciones en el paradigma orientado a objetos para un correcto uso del lenguaje de programación. Evidencia de Aprendizaje Técnica EC1. Resuelve cuestionario de conceptos de programación orientada a objetos. Documental ED1 Maneja programas computacionales visualizados en pantalla en donde identifica paradigmas orientados a objetos (tipos de datos,palabras clave). Campo EP1 Diseña programas utilizando diferentes paradigmas orientados a objetos. ED1 Realiza práctica sobre estructura de secuencia, decisión e iteración en tipos de datos abstractos. EP1 Elabora problemario de aplicaciones con arreglos. EP2 Diseña programa del paradigma de programación orientada objetos aplicando técnica de métodos, sobrecarga y sobreescritura.. ED1 Realiza práctica sobre el manejo de constructores y métodos para establecer, obtener y hacer uso de la palabra reservada this dentro de una clase utilizando el paradigma orientado a objetos. EP1 Elabora programas computacionales utilizando herencia y polimorfismo dentro de una clase, basándose en el uso de UML. EC1 Resuelve cuestionario sobre el manejo de excepciones. ED1 Expone excepciones del paradigma orientado a objetos a través de la generación de estructuras computacionales para su correcta funcionalidad del lenguaje de programación. Instrumento de Evaluación Cuestionario Documental Campo Documental Documental Campo Documental Documental Campo "Conceptos de programación orientada a objetos". Guía de observación "Identificación de paradigmas orientados a objetos". Lista de cotejo "Diseño de programas utilizando diferentes paradigmas orientados a objetos". Guía de Observación para práctica "Estructura de secuencia, selección e iteración". Lista de Cotejo para problemario de ejercicios en aplicaciones con Arreglos. Rúbrica para el programa orientado a objetos aplicando " Métodos, sobrecarga y sobre escritura". Guía de Observación para la práctica "Manejo constructures y palabra reservada "This". Lista de Cotejo para elaboración de " Programas computacionales herencia y polimorfismo". Cuestionario "Conceptos sobre el manejo de excepciones". Guía de observación para exposición de excepciones paradigma orientado a objetos. 4 DESARROLLO DE LA PRÁCTICA O PROYECTO Nombre de la asignatura: Nombre de la Unidad de Aprendizaje: Nombre de la práctica o proyecto: Programación Orientada a Objetos Estructuras de Control y Tipos definidos por el usuario Estructura de secuencia, decisión e iteración en tipos de datos abstractos. 2 hrs Duración (horas) : • Definir una solución a un problemática haciendo uso de las estructuras de secuencia, decisión e iteración en tipos de datos Resultado de abstractos en el paradigma de programación orientada a objetos aprendizaje: • Desarrollar la solución propuesta en un lenguaje de programación orientada a objetos Pizarrón, Diapositivas, Diagramas y esquemas, Equipo de cómputo, Cañón.. Requerimientos (Material Laboratorio de cómputo. o equipo): Editor y compilador de un lenguaje de programación orientado a objetos. Actividades a desarrollar en la práctica: Número: 01 1. Algunas prácticas propuestas son: Realiza los siguientes ejercicios usando estructuras de secuencia, decisión e iteración: 1.1 Escriba una aplicación que solicite un número de elementos a ser introducidos por el usuario. Al terminar de introducir los números la aplicación deberá localizar el menor y mayor número del conjunto de elementos introducidos. 1.2 Una aplicación interesante de las computadoras es dibujar gráficos convencionales y de barra. Escriba una aplicación que lea cinco números, los cuáles deben estar en un rango entre 1 y 30. Por cada número leído, su programa debe mostrar ese número de asteriscos adyacentes. Por ejemplo, si su programa lee un número como el 7 ******* 1.3 Un almacén de pedidos por correo vende 5 productos cuyos precios de venta son las siguientes: producto 1: $2.98, producto 2: $4.50, producto 3: $9.98, producto 4: $4.49, producto 5:6.87. Escriba una aplicación que lea una serie de pares de números, como se muestra a continuación: a) número del producto. b) cantidad vendida Su programa debe de utilizar una instrucción switch para determinar el precio de venta de cada producto. Debe calcular y mostrar el valor total de venta de todos los productos vendidos. Usar un ciclo controlado por centinela para determinar cuándo debe el programa dejar de iterar para mostrar los resultados finales. 5 1.4 Escriba una aplicación que imprima la siguiente figura de rombo. Puede utilizar instrucciones de salida que impriman un solo asterisco * *** ***** ******* ***** *** * 1.5 Escriba un programa en Java que nos calcule el cambio que debe dar la caja de un supermercado: Dado un precio y una cantidad de dinero, el programa nos dirá cuántas monedas deben darse como cambio de tal forma que el número total de monedas sea mínimo. 1.6 Un banco recibe todos los días del Banco Mundial una lista de cómo está el cambio de las divisas del mundo respecto del dólar americano (USD). Diseñar un algoritmo que, a partir de una cantidad de dólares que deseamos comprar, nos devuelva la cantidad en euros (y en pesetas) que nos costarían esos dólares. Suponga que el banco obtiene en el cambio un tanto por ciento variable de beneficios. 1.7 ¿Cuántas veces se ejecutaría el cuerpo de los siguientes bucles for? for (i=1; i<10; i++) … for (i=30; i>1; i-=2) … for (i=30; i<1; i+=2) … for (i=0; i<30; i+=4) … 1.8 Implemente un programa que lea un número decimal y lo muestre en pantalla en hexadecimal (base 16). El cambio de base se realiza mediante divisiones sucesivas por 16 en las cuales los restos determinan los dígitos hexadecimales del número según la siguiente correspondencia: Resto 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Dígito 0 1 2 3 4 5 6 7 8 9 A B C D E F 1.9 Diseñe un programa para jugar a adivinar un número entre 0 y 100. El programa irá dando pistas al jugador indicándole si el número introducido por el jugador es menor o mayor que el número que tiene que adivinar. El juego termina cuando el jugador adivina el número o decide terminar de jugar (por ejemplo, escribiendo un número negativo). 1.10 Uso y manipulación de fechas: a. Diseñe una clase para representar fechas. b. Escriba un método estático que nos diga el número de días de un mes (¡ojo con los años bisiestos!). c. Añada a su clase un método que nos indique el número de días del mes al que pertenece la fecha. d. Incluya, en su clase Fecha, un método que nos diga el número de días que hay desde una fecha determinada hasta otra. e. Implemente un método que nos diga el día de la semana correspondiente a una fecha concreta (p.ej. el 1 de diciembre de 2004 fue miércoles). f. Escriba un programa que muestre el calendario de un mes concreto. Evidencias a las que contribuye el desarrollo de la práctica ED1. Realiza practica sobre estructura de secuencia, decisión e iteración en tipos de datos abstractos 6 DESARROLLO DE LA PRÁCTICA O PROYECTO Nombre de la asignatura: Nombre de la Unidad de Aprendizaje: Nombre de la práctica o proyecto: Programación Orientada a Objetos Desarrollo avanzado de clases Manejo de constructores y palabra reservada *this 2 hrs Duración (horas) : • Definir una solución a un problemática haciendo uso correcto de constructores y la palabra reservada *this en el paradigma de Resultado de programación orientada a objetos aprendizaje: • Desarrollar la solución propuesta en un lenguaje de programación orientada a objetos Pizarrón, Diapositivas, Diagramas y esquemas, Equipo de cómputo, Cañón.. Requerimientos (Material Laboratorio de cómputo. o equipo): Editor y compilador de un lenguaje de programación orientado a objetos. Actividades a desarrollar en la práctica: Número: 02 1. Algunas prácticas propuestas son: Realiza los siguientes ejercicios usando adecuadamente el concepto de constructor y la palabra reservada *this 1.1 Diseñe jerarquías de clases para representar los siguientes conjuntos de objetos: a. Una colección de CDs, entre los cuales hay discos de música (CDs de audio), discos de música en MP3 (CDROMs con música), discos de aplicaciones (CD-ROMs con software) y discos de datos (CD-ROMs con datos y documentos). b. Los diferentes productos que se pueden encontrar en una tienda de electrónica, que tienen un conjunto de características comunes (precio, código de barras…) y una serie de características específicas de cada producto. c. Los objetos de una colección de monedas/billetes/sellos. Implemente en Java las jerarquías de clases que haya diseñado (incluyendo sus variables de instancia, sus constructores y sus métodos get/set). A continuación, escriba sendos programas que realicen las siguientes tareas: a. Buscar y mostrar todos los datos de un CD concreto (se recomienda definir el método toString en cada una de las subclases de CD). b. Crear un carrito de la compra en el que se pueden incluir productos y emitir un ticket en el que figuren los datos de cada producto del carrito, incluyendo su precio y el importe total de la compra. c. Un listado de todos los objetos coleccionables cuya descripción incluya una cadena de caracteres que el programa reciba como parámetro. 7 1.2 Implemente un programa que cree un objeto de la clase Random del paquete java.util, genere un número entero aleatoriamente y lo muestre en pantalla. 1.3 Cree un paquete denominado documentos… a. Incluya en él dos clases, Factura y Pedido, para representar facturas y pedidos, respectivamente. b. A continuación, ya fuera del paquete, cree un pequeño programa que cree objetos de ambos tipos y los muestre por pantalla. c. Añada un tercer tipo de documento, PedidoUrgente, que herede directamente de Pedido. Compruebe que el programa anterior sigue funcionando correctamente si reemplazamos un Pedido por un PedidoUrgente. d. Cree un nuevo tipo de documento, denominado Contrato, e inclúyalo en el subpaquete documentos.RRHH. En este último paquete, incluya también un tipo de documento CV para representar el currículum vitae de una persona. e. Si no lo ha hecho ya, cree una clase genérica Documento de la que hereden (directa o indirectamente) todas las demás clases que hemos definido para representar distintos tipos de documentos. f. Implemente un pequeño programa que cree un documento de un tipo seleccionado por el usuario. Muestre por pantalla el documento independientemente del tipo concreto de documento que se haya creado en el paso anterior. OBSERVACIONES: Para cada clase que defina, determine qué miembros de la clase han de ser públicos (public), cuáles han de mantenerse privados (private) y, si lo considera oportuno, cuáles serían miembros protegidos (protected). Tenga en cuenta que no siempre se debe permitir la modificación desde el exterior de una variable de instancia (esto es, habrá variables de instancia a las que asociemos un método get pero no un método set y, de hacerlo, éste puede que sea privado o protegido). Analice también qué métodos de una clase deben declararse con la palabra reservada final para que no se puedan redefinir en subclases y qué clases han de ser “finales” (esto es, aquellas clases de las que no queramos permitir que se creen subclases). En los distintos programas de esta relación de ejercicios puede resultar necesaria la creación de colecciones de objetos de distintos tipos (p.ej. arrays de CDs, productos, objetos coleccionables o documentos). Evidencias a las que contribuye el desarrollo de la práctica ED1 Realiza práctica sobre el manejo de constructores y métodos para establecer, obtener y hacer uso de la palabra reservada this dentro de una clase utilizando el paradigma orientado a objetos. 8 9 INSTRUMENTOS DE EVALUACIÓN Cuestionario “Conceptos de Programación Orientada a Objetos” UNIDAD 1 EC 1 Universidad Politécnica de __________________________________________________ __________________________________________________ Nombre de la Asignatura: Programación Programación Orientada a Objetos INSTRUCCIONES: Conteste las siguientes preguntas basándose para ello en la bibliografía básica y complementaria sugerida 1. Establecer con sus propias palabras la definición de POO 2. Establecer el concepto de: Estado, comportamiento e identidad 3. Realizar una breve reseña acerca del origen de POO 4. Definir con sus palabras que es una clase y dar un ejemplo 5. Definir con sus palabras que es una herencia y dar un ejemplo 6. Definir con sus palabras que es un objeto y dar un ejemplo 7. Definir con sus palabras que es un método y dar un ejemplo 8. Definir con sus palabras que es un evento y dar un ejemplo 9. Definir con sus palabras que es un mensaje y dar un ejemplo 10. Definir con sus palabras que es una propiedad o atributo y dar un ejemplo 11. Definir con sus palabras en qué consiste el estado interno y dar un ejemplo 12. Cuáles son los componentes de un objeto 13. Definir en consiste la identificación de un objeto y dar un ejemplo 14. Describir cada una de las características de la POO 15. Dar ejemplos de lenguajes de programación orientada a objetos 10 INSTRUMENTOS DE EVALUACIÓN Guía de observación para Identificación de paradigmas orientados a objetos UNIDAD 1 ED 1 UNIVERSIDAD POLITÉCNICA DE ____________________ NOMBRE DE LA ASIGNATURA : Programación Orientada a Objetos INSTRUCCIONES Revisar los documentos o actividades que se solicitan y marque en los apartados “SI” cuando la evidencia a evaluar se cumple; en caso contrario marque “NO”. En la columna “OBSERVACIONES” ocúpela cuando tenga que hacer comentarios referentes a lo observado. Valor del reactivo 10% 10% 5% 10% 10% 15% 5% 5% 20% 10% 100% CUMPLE Característica a cumplir (reactivo) Puntualidad para iniciar y concluir su trabajo de identificación de programas. SI NO OBSERVACIONES Manejo de estándar de desarrollo. Programa desarrollado con el estándar establecido. Documentación del programa Nombre de la escuela, Carrera, Asignatura, Profesor, Alumnos, Matricula, Grupo, Lugar y fecha de entrega. Descripción del programa. Sintaxis (cero errores sintácticos y de lógica). Identificación del programa (explicación) a. Describe el uso de palabras reservadas en su solución b. Desarrollo del programa con el uso adecuado del lenguaje y del paradigma orientado a objetos c. Explicación del programa (clara y precisa) d. Expresión no verbal (gestos, miradas y lenguaje corporal). Preparación del programa. programa. Dominio de la solución propuesta. Habla con seguridad. Identifica claramente tipos de datos, palabras clave y estructura de programas del paradigma orientado a objetos Presentación y arreglo personal CALIFICACIÓN: 11 INSTRUMENTOS DE EVALUACIÓN Lista de Cotejo “Diseño “Diseño de programas utilizando diferentes paradigmas orientados a objetos” UNIDAD 1 EP 1 INSTRUMENTOS DE EVALUACIÓN LISTA DE COTEJO DATOS GENERALES DEL PROCESO DE EVALUACIÓN NOMBRE DEL ALUMNO: PRODUCTO: MATRICULA: PARCIAL: FIRMA DEL ALUMNO: FECHA: MATERIA: CLAVE: NOMBRE DEL PROFESOR: FIRMA DEL PROFESOR: INSTRUCCIONES Revisar las actividades que se solicitan y marque en los apartados “SI” cuando la evidencia se cumple; en caso contrario marque “NO”. En la columna “OBSERVACIONES” ” mencione indicaciones que puedan ayudar al alumno a saber cuales son las condiciones no cumplidas, si fuese necesario Cumple Valor Característica a cumplir (Reactivo) Observaciones Si No 5% Presentación. El reporte cumple con los requisitos de: a. Buena Presentación 5% 5% b. No tiene faltas de ortografía c. Maneja el lenguaje técnico apropiado 15% 30% 15% 10% 10% 5% 100% Contenido a. Diagrama del Diseño de la solución. El diagrama cumple con las especificaciones del modelo orientado a objetos. b. Codificación. Presenta un código en el lenguaje de programación orientada a objetos sin errores. Desarrollo. Sustenta todos los pasos aplicados para la solución de las prácticas utilizando operaciones con estructuras de secuencia, selección e iteración. Resultados. Cumplió totalmente con el objetivo esperado Pantallas del ejercicio en ejecución. Las pantallas muestran el funcionamiento claro y acorde con el objetivo esperado Responsabilidad. Entregó el reporte en la fecha y hora señalada Calificación 12 INSTRUMENTOS DE EVALUACIÓN Guía de observación para Práctica “Estructura de secuencia, selección e iteración” UNIDAD 2 ED 1 UNIVERSIDAD POLITÉCNICA DE ____________________ NOMBRE DE LA ASIGNATURA : Programación Orientada a Objetos INSTRUCCIONES Revisar los documentos o actividades que se solicitan y marque en los apartados “SI” cuando la evidencia a evaluar se cumple; en caso contrario marque “NO”. En la columna “OBSERVACIONES” ocúpela cuando tenga que hacer comentarios referentes a lo observado. Valor del reactivo 10% 10% 5% 10% 10% 15% CUMPLE SI Característica a cumplir (reactivo) Puntualidad para iniciar y concluir la práctica. Desarrollo de la práctica. práctica. a. Codifica su solución de manera individual b. Desarrollo de solución fundamentada y con una secuencia acorde al paradigma orientado a objetos. c. Organización de los datos a utilizar. 5% d. Organización de los métodos a desarrollar. 10% 100% OBSERVACIONES Diagrama de solución. solución. Utiliza símbolos necesarios para el diseño de su solución. Portada: Nombre de la escuela (logotipo), Carrera, Asignatura, Profesor, Alumnos, Matricula, Grupo, Lugar y fecha de entrega. Sintaxis (cero errores sintácticos y de lógica). 5% 20% NO Explicación de la aplicación. desarrollada. desarrollada. Dominio de su solución. Explica con seguridad. Identifica claramente tipos de datos, variables, palabras clave y estructuras de datos del programas desarrollado en el paradigma orientado a objetos Presentación y arreglo personal CALIFICACIÓN: 13 INSTRUMENTOS DE EVALUACIÓN Lista de Cotejo “Problemario de ejercicios en aplicaciones con arreglos” UNIDAD 2 EP 1 INSTRUMENTOS DE EVALUACIÓN LISTA DE COTEJO DATOS GENERALES DEL PROCESO DE EVALUACIÓN NOMBRE DEL ALUMNO: PRODUCTO: MATRICULA: PARCIAL: FIRMA DEL ALUMNO: FECHA: MATERIA: CLAVE: NOMBRE DEL PROFESOR: FIRMA DEL PROFESOR: INSTRUCCIONES Revisar las actividades que se solicitan y marque en los apartados “SI” cuando la evidencia se cumple; en caso contrario marque “NO”. En la columna “OBSERVACIONES” ” mencione indicaciones que puedan ayudar al alumno a saber cuales son las condiciones no cumplidas, si fuese necesario Cumple Valor Característica a cumplir (Reactivo) Observaciones Si No Presentación. El reporte cumple con los requisitos de: 5% a. Buena Presentación 5% b. No tiene faltas de ortografía 5% c. Maneja el lenguaje técnico apropiado del paradigma POO Contenido a. Diagrama del Diseño de la solución. Los diagramas cumplen 15% con las especificaciones del modelo orientado a objetos. 30% b. Codificación. Presenta cada ejercicio un código en el lenguaje de programación orientada a objetos sin errores. 15% Desarrollo. Sustenta todos los pasos aplicados para la solución de las prácticas utilizando operaciones con arreglos. 10% Resultados. Cumplió totalmente con el objetivo esperado Pantallas del ejercicio en ejecución. Las pantallas muestran el 10% funcionamiento claro y acorde con el objetivo esperado 5% Responsabilidad. Entregó el reporte en la fecha y hora señalada 100% Calificación 14 Rubrica para programa orientado a objetos aplicando métodos, sobrecarga sobrecarga y sobreescritura UNIDAD 2 EP2 Aspectos a evaluar Competente 10 Independiente 9 Básico Avanzado 8 Básico Umbral 7 El programa es presentado de una manera: Orden y organización de 1. Clara 2. Ordenado la solución 3. Organizado de (1 puntos) acuerdo al paradigma OO 4. Es fácil de interpretar Razonamiento lógico Usa razonamiento lógico complejo y refinado Cumple con tres de los elementos requeridos. Cumple con dos de los elementos requeridos. Usa razonamiento lógico complejo. Usa razonamiento lógico Alguna evidencia de efectivo razonamiento lógico 100% de las sentencias codificadas en el programa no tienen errores sintácticos ni lógicos 90% de las sentencias codificadas en el programa no tienen errores sintácticos ni lógicos (2.5 puntos) Errores sintácticos y lógicos (2 puntos) Procedimiento (2.5 puntos) Contribución individual (2 puntos) Usa siempre una estrategia eficiente y efectiva para diseñar la solución en el paradigma orientado a objetos El estudiante fue un participante activo, revisando soluciones previas así como la bibliografía sugerida y trabajando cooperativamente durante toda la lección. Casi todos (85-89%) de las sentencias codificadas en el programa no tienen errores sintácticos ni lógicos Por lo general, usa una Por lo general, usa una estrategia eficiente y estrategia efectiva para efectiva para diseñar la diseñar la solución en el solución en el paradigma orientado a paradigma orientado a objetos objetos El estudiante participó, revisó soluciones previas así como la bibliografía sugerida y trabajo durante casi toda la lección. El estudiante fue un participante activo, pero tuvo dificultad al revisar soluciones previas así como la bibliografía sugerida así trabajar cooperativamente durante la lección. El trabajo es presentado en una manera organizada, pero puede ser difícil de interpretar la solución propuesta La mayor parte (7585%) de las sentencias codificadas en el programa no tienen errores sintácticos ni lógicos Algunas veces usa una estrategia efectiva para diseñar la solución en el paradigma orientado a objetos, pero no lo hace consistentemente El estudiante trabajo, pero necesito motivación para mantenerse activo. Insuficiente 0 El trabajo se ve descuidado y desorganizado. Es difícil saber como esta organizada la solución y la relación de las instrucciones. Poca evidencia de razonamiento lógico Mas del 75% de las sentencias codificadas en el programa tienen errores sintácticos ni lógicos Raramente usa una estrategia efectiva para diseñar la solución en el paradigma orientado a objetos El estudiante no pudo trabajar la actividad efectivamente. 15 INSTRUMENTOS DE EVALUACIÓN Guía de observación para Práctica “Manejo de constructores y palabra reservada this” UNIDAD 3 ED 1 UNIVERSIDAD POLITÉCNICA POLITÉCNICA DE ____________________ NOMBRE DE LA ASIGNATURA : Programación Orientada a Objetos INSTRUCCIONES Revisar los documentos o actividades que se solicitan y marque en los apartados “SI” cuando la evidencia a evaluar se cumple; en caso contrario marque “NO”. En la columna “OBSERVACIONES” ocúpela cuando tenga que hacer comentarios referentes a lo observado. Valor del reactivo 10% 10% 5% 10% 10% 15% CUMPLE SI Característica a cumplir (reactivo) Puntualidad para iniciar y concluir la práctica. Desarrollo de la práctica. práctica. a. Codifica sus soluciones de manera individual b. Desarrollo de soluciones fundamentadas y con una secuencia acorde al paradigma orientado a objetos haciendo uso adecuado de constructores y apuntador this c. Organización de los datos a utilizar. 5% d. Organización de los métodos a desarrollar. 10% 100% OBSERVACIONES Diagrama de solución. solución. Utiliza símbolos necesarios para el diseño de su solución haciendo uso adecuado de constructores y apuntador this. Portada: Nombre de la escuela (logotipo), Carrera, Asignatura, Profesor, Alumnos, Matricula, Grupo, Lugar y fecha de entrega. Sintaxis (cero errores sintácticos y de lógica). 5% 20% NO Explicación de la aplicación desarrollada. desarrollada. Dominio de su solución. Explica con seguridad. Identifica claramente los constructores y los apuntadores this en los programas desarrollados en el paradigma orientado a objetos Presentación y arreglo personal CALIFICACIÓN: 16 INSTRUMENTOS DE EVALUACIÓN Lista de Cotejo “Elaboración “Elaboración de programas computacionales herencia y polimorfismo” UNIDAD 3 EP 1 INSTRUMENTOS DE EVALUACIÓN LISTA DE COTEJO DATOS GENERALES DEL PROCESO DE EVALUACIÓN NOMBRE DEL ALUMNO: PRODUCTO: MATRICULA: PARCIAL: FIRMA DEL ALUMNO: FECHA: MATERIA: CLAVE: NOMBRE DEL PROFESOR: FIRMA DEL PROFESOR: INSTRUCCIONES Revisar las actividades que se solicitan y marque en los apartados “SI” cuando la evidencia se cumple; en caso contrario marque “NO”. En la columna “OBSERVACIONES” ” mencione indicaciones que puedan ayudar al alumno a saber cuales son las condiciones no cumplidas, si fuese necesario Cumple Valor Característica a cumplir (Reactivo) Observaciones Si No 5% Presentación. El reporte cumple con los requisitos de: a. Buena Presentación 5% 5% b. No tiene faltas de ortografía c. Maneja el lenguaje técnico apropiado del paradigma POO 15% 30% 15% 10% 10% 5% 100% Contenido a. Diagrama del Diseño de la solución. Los diagramas cumplen con las especificaciones del modelo orientado a objetos específicamente el uso de herencia y polimorfismo. b. Codificación. Presenta cada ejercicio un código en el lenguaje de programación orientada a objetos sin errores. Desarrollo. Sustenta todos los pasos aplicados para la solución de las prácticas utilizando herencia y polimorfismo. Resultados. Cumplió totalmente con el objetivo esperado Pantallas del ejercicio en ejecución. Las pantallas muestran el funcionamiento claro y acorde con el objetivo esperado Responsabilidad. Entregó el reporte en la fecha y hora señalada Calificación 17 INSTRUMENTOS DE EVALUACIÓN Cuestionario “Conceptos sobre el manejo de excepciones” UNIDAD 4 EC 1 Universidad Politécnica de __________________________________________________ __________________________________________________ Nombre de la Asignatura: Programación Orientada a Objetos INSTRUCCIONES: Conteste las preguntas y realice los ejercicios señalados. 1. Is the following code legal? 1. 2. 3. 4. 5. try { } finally { } 2. What exception types can be caught by the following handler? 1. 2. 3. catch (Exception e) { } 3. What is wrong with using this type of exception handler? Is there anything wrong with the following exception handler as written? Will this code compile? 1. 2. 3. 4. 5. 6. 7. try { } catch (Exception e) { } catch (ArithmeticException a) { } 4. Match each situation in the first list with an item in the second list. a. int[] A; A[0] = 0; b. The JVM starts running your program, but the JVM can't find the Java platform classes. (The Java platform classes reside in classes.zip or rt.jar.) c. A program is reading a stream and reaches the end of stream marker. d. Before closing the stream and after reaching the end of stream marker, a program tries to read the stream again. 18 0. 1. 2. 3. __error __checked exception __compile error __no exception Exercises 1. Add a readList method to ListOfNumbers.java. This method should read in int values from a file, print each value, and append them to the end of the vector. You should catch all appropriate errors. You will also need a text file containing numbers to read in. import java.io.*; import java.util.Vector; public class ListOfNumbers { private Vector<Integer> victor; private static final int SIZE = 10; public ListOfNumbers () { victor = new Vector<Integer>(SIZE); for (int i = 0; i < SIZE; i++) victor.addElement(new Integer(i)); } public void writeList() { PrintWriter out = null; try { System.out.println("Entering try statement"); out = new PrintWriter(new FileWriter("OutFile.txt")); for (int i = 0; i < SIZE; i++) out.println("Value at: " + i + " = " + victor.elementAt(i)); } catch (ArrayIndexOutOfBoundsException e) { System.err.println("Caught ArrayIndexOutOfBoundsException: " + e.getMessage()); } catch (IOException e) { System.err.println("Caught IOException: " + e.getMessage()); } finally { if (out != null) { System.out.println("Closing PrintWriter"); out.close(); } else { System.out.println("PrintWriter not open"); } } } } 19 2. Modify the following cat method so that it will compile. 1. public static void cat(File file) { 2. RandomAccessFile input = null; 3. String line = null; 4. 5. try { 6. input = new RandomAccessFile(file, "r"); 7. while ((line = input.readLine()) != null) { 8. System.out.println(line); 9. } 10. return; 11. } finally { 12. if (input != null) { 13. input.close(); 14. } 15. } 16. } 20 INSTRUMENTOS DE EVALUACIÓN Guía de observación para Exposici Exposición ición “Excepciones en el Paradigma Paradigma Orientado a Objetos” UNIDAD 3 ED 1 17. UNIVERSIDAD POLITÉCNICA POLITÉCNICA DE ____________________ NOMBRE DE LA ASIGNATURA : Programación Orientada a Objetos INSTRUCCIONES Revisar los documentos o actividades que se solicitan y marque en los apartados “SI” cuando la evidencia a evaluar se cumple; en caso contrario marque “NO”. En la columna “OBSERVACIONES” ocúpela cuando tenga que hacer comentarios referentes a lo observado. Valor del reactivo 10% 10% 5% 10% 10% 15% 5% 5% 20% 10% 100% CUMPLE Característica a cumplir (reactivo) Puntualidad para iniciar y concluir la exposición. SI NO OBSERVACIONES Esquema de diapositiva. Colores y tamaño de letra apropiada. Sin saturar las diapositivas de texto. Portada: Nombre de la escuela (logotipo), Carrera, Asignatura, Profesor, Alumnos, Matricula, Grupo, Lugar y fecha de entrega. Ortografía (cero errores ortográficos). Exposición. a. Utiliza las diapositivas como apoyo, no lectura total b. Desarrollo del tema fundamentado y con una secuencia estructurada. c. Organización de los integrantes del equipo. d. Expresión no verbal (gestos, miradas y lenguaje corporal). Preparación Preparación de la exposición. Dominio del tema. Habla con seguridad. Identifica claramente tipos de datos, palabras clave y estructura de programas del paradigma orientado a objetos Presentación y arreglo personal CALIFICACIÓN: 21 GLOSARIO Abstraction (abstracción): (abstracción) Propiedad y/o técnica de software que oculta los detalles de la implementación. Java soporta abstracción de clases y abstracción de métodos. La abstracción de métodos se define separando el uso de un método sin conocer como está implementado ese método. Si decide combinar la implementación, el programa cliente será afectado. De modo similar la abstracción de clases oculta la implementación de la clase del cliente. Acoplamiento (coupling) Medida del grado en el que un objeto o componente depende de otro. Bajo acoplamiento minimiza las dependencias y es una indicación de un buen diseño Agregación (aggregation) Relación en la que un objeto se compone o está construido de uno o más objetos, de modo que la colección completa representa un todo. Las relaciones de agregación se especifican entre clases y se reflejan en instancias de objetos Algoritmo (algorithm) Método que describe cómo se resuelve un problema en término de las acciones que se ejecutan y especifica el orden en que se ejecutan estas acciones. Los algoritmos ayudan al programador a planificar un programa antes de su escritura en un lenguaje de programación. Ámbito de clase (scope class) Las variables privadas definidas fuera de los métodos internos a la clase tienen ámbito de clase. Son accesibles desde todos los métodos del interior de la clase, con independencia del orden en que están definidas. Los métodos privados también tienen ámbito de clase. Análisis (análysis) (análysis) Proceso de identificación, modelado y descripción de lo que hace un sistema y de cómo trabaja Aplicación (application) Programa autónomo. Java tal como cualquier programa escrito utilizando un lenguaje de alto nivel. Las aplicaciones se pueden ejecutar desde cualquier computadora con un intérprete Java. Las aplicaciones no están sometidas a las restricciones impuestas a los applets de Java. Una clase aplicación debe contener un método main. Se utiliza como sinónimo de programa. Applet Tipo especial de programa Java que se puede ejecutar (correr) directamente en un navegador Web o en un visualizador applet. A un applet se le imponen diversas restricciones de seguridad. Por ejemplo, un applet no se puede ejecutar operaciones de entrada/salida en un sistema de usuario y por consiguiente no puede leer o escribir archivos o transmitir virus de computadora. Argumento (argument) Información pasada a un método. Los argumentos se suelen llamar también parámetros. Un método que espera recibir argumentos debe contener una declaración de argumentos formales por cada argumento actual como parte de la cabecera del mismo. Cuando se invoca a un método, los valores de los argumentos actuales 8reales) se copia en los correspondientes argumentos formales. Véase parámetro actual (actual parameter). Array (array, vector, lista) Objeto contenedor que almacena una secuencia indexada de los mismos tipos de datos. Normalmente los elementos individuales se referencian por el valor de un índice. El índice es un valor entero que suele comenzar, en 0 para el primer elementos, 1 para el segundo y así sucesivamente. Asignación (assignment) Almacenamiento de un valor en una variable. La sentencia de asignación es aquella que implementa la asignación y utiliza un operador de asignación Asociación (association) Una relación entre dos clases tales como una instancia de una clase referencia a una instancia de otra clase. Asociatividad (associativity) Orden en que se evalúan operadores de igual precedencia o prioridad dentro de una expresión. La asociatividad por la izquierda produce una evaluación de izquierda a derecha y la asociatividad por la derecha conduce a una evaluación de derecha a izquierda. 22 AWT(ABSTRACT WINDOW TOOLKIT) Colección de clases (java.awt.*) que se utiliza para implementar interfaces gráficas de usuario. Contiene componentes tales como botones, etiquetas, campos de texto, áreas de texto, barras de desplazamiento, cajas de verificación y menús. Las clases de AWT proporcionan una interfaz independiente de la plataforma para desarrollo de programas visuales e interfaces gráficas de usuario. Biblioteca de clases (class library) Colección organizada de clases que proporciona un conjunto de componentes y abstracciones reutilizables Binario (binary) (binary) Representación numérica en base 2. En esta base sólo se utilizan los dígitos 0 y 1. Las posiciones de los dígitos representan potencias sucesivas de 2. Véase bit. Binding (ligadura) Bit Dígito binario que puede tomar dos valores posibles: 0 y 1. Los bits son elementos básicos de construcción de programas y datos Bloque (block) Sentencias y declaraciones encerradas entre una pareja de llaves (apertura y cierre, ´{´ y ´}´. Por ejemplo, un cuerpo de una clase, es un bloque, al igual que el cuerpo de un método, un bloque delimita un nivel de ámbito. Boo Boolean (bolean, lógico) Tipos primitivos de datos en Java. El tipo bolean puede tomar sólo dos valores: true (verdadero) y false (falso). Bytecode (cód (códi códigos de byte) Resultado de la compilación del código fuente Java. La JVM (Java Virtual Machine) interpreta los bytecodes con la finalidad de ejecutar un programa Java. El bytecode es independiente de la máquina y se puede ejecutar en cualquier máquina que tenga un entorno de ejecución. Los bytecodes se almacenan en archivos class. Cabecera de la clase (class header) heade Cabecera de la definición de la clase. La cabecera proporciona un nombre a la clase y define sus accesos. También describe si es una clase ampliada (extends) de una superclase o implementa interfaces (implements) Clase (clase) Colección encapsulada de datos y operaciones que actúan sobre los datos. El concepto de clase es fundamental en programación orientada a objetos. Una clase consta de métodos y datos. Los métodos de una clase definen el conjunto de operaciones permitidas sobre los datos de una clase (sus atributos). Una clase puede tener muchas instancias de la clase u objetos. Clase abstracta (abstract class) Superclase que contiene características comunes compartidas por las subclases. Se declaran utilizando la palabra reservada abstract. Las clases abstractas pueden contener datos y métodos, pero no se pueden instanciar (crear objetos); es decir, no se pueden crear objetos de esta clase. Clase cliente (client class) Clase que hace uso de otra clase. Clase concreta (concrete class) Una clase diseñada para crear (tener) instancias de objetos Clase hija (child class) Véase subclase. Clase interna (inner class) Una clase interna es una clase empotrada en otra clase. Las clases internas permiten definir pequeños objetos auxiliares y unidades de comportamiento que hacen a los programas más simples y concisos. Clase interna (inner class) Término utilizado para describir una clase declarada dentro de otra declaración de clases. 23 Clase miembro (member class) Término general utilizado para describir una clase declarada dentro de otra declaración de clases. Cohesivo (cohesive) Modo de describir una clase que tiene partes fuertemente integradas, cada una de las cuales contribuye a describir las mismas abstracciones. Comen Comentario (comment) Trozo de texto que tienen como objetivo documentar el programa y mostrar como se ha construido. Los comentarios no son sentencias de programación y son ignorados por el compilador. En Java los comentarios están precedidos por dos barras (//) en una línea o encerrados entre /+ y */ en múltiples líneas. Compilación (compilation) Proceso de traducción de un lenguaje de programación. Normalmente este proceso implica la traducción de un lenguaje de programación de alto nivel a lenguaje de programación de bajo nivel, o el formato binario de un conjunto de instrucciones específicas. La traducción se realiza con un programa denominado compilador. Un compilador java traduce los programas en bytecodes. Compilación (compiling) Nombre dado al proceso de traducción del código fuente a bytecodes. Compilador (compiler) Programa de software que realiza un proceso de compilación (traducción del lenguaje fuente a lenguaje máquina) de un programa escrito en un lenguaje de programación de alto nivel. En el caso de Java, es un programa que traduce el código fuente Java en bytecode. El compilador de J2SDK se denomina javac. Compilador en tiempo de ejecución (inst(inst-in.time compiler) compile Compilador capaz de compilar cada bytecode de una vez, y a continuación se reinicia al código compilado repetidamente cuando se ejecuta el bytecode. Constante (constant) Una variable declarada en final en Java. Una constante de la clase normalmente está compartida por todos los objetos de la misma clase; por consiguiente, una constante de clase se declara normalmente como static. Una constante local es una constante declarada dentro de un método. Constante de la clase (class constant) Variable definida como final y static. Constructor (constructor) Método especial utilizado para inicializar el estado de un nuevo objeto. El constructor permite crear objetos utilizando el operador new. El constructor tiene exactamente el mismo nombre que la clase que lo contiene. Los constructores se pueden sobrecargar con el objetivo de facilitar la construcción de objetos con diferentes tipos de valores iniciales. Constructor por defecto defecto (default constructor) Constructor que no tiene parámetros y sirve para inicalizar un objeto Contenedor (container) Clase que implementa una estructura de datos que contiene una colección de objetos. Se utiliza también para representar un componente IGU , Interfaz Gráfica de Usuario (GUI; Graphical User Interface) que contiene una colección de otros componentes IGU Cuerpo de la clase (class body) Cuerpo de una definición de una clase que agrupa las definiciones de los miembros de la clase: campos, métodos y clases anidadas. Declaración (declaration) Define las variables, métodos y clases en un programa. Definición (defnition) Término sinónimo de declaración, aunque en el proceso de escritura de un programa se suele diferenciar Depuración (debugging) Proceso de encontrar, fijar y eliminar errores en un programa. Para estas tareas se suele utilizar una herramienta de programación conocida como depurador. 24 Depurador (debugger) Herramienta para ayudar a la localización de errores de un programa: jdbc se proporciona como parte del J2SDK. Un depurador puede establecer puntos de interrupción (breakpoint), parada simple a través de un programa e inspecciona el estado de las variables. Diagrama de clases (class diagram) Una representación gráfica construida utilizando una notación formal para visualizar y documentar las relaciones entre clases de un sistema. Diseño (diseño) Actividad de definir como se debe estructurar e implementar un programa. Encapsulamiento, encapsulación encapsulación (encapsulation) Localización y protección de las características internas y estructura de un objeto. Combinación de métodos y datos en una única estructura de datos. En Java se conoce como clase Entero (integer) (intege Un número completo (no es un número real con coma decimal) tal como –5, 1, 10 y 2002. Los enteros se pueden representar en Java de dos formas: utilizando el tipo primitivo int o utilizando una instancia de una clase integer. Excepción (exception) Un suceso (evento) no previsto que indica que un programa ha fallado en alguna forma. Las excepciones se representan por objetos excepción en java. Las excepciones se manejan con un bloque de sentencias try/catch. Expresión (expresión) Una subparte de una sentencia que representa un valor. Por ejemplo, la expresión aritmética ´2+5´ representa el valor 7. En Java, cualquier construcción sintáctica legal que represente un valor es una expresión. Expresión booleana lógica (Bolean expresión) Una expresión cuyo resultado es del tipo lógico (boolean, bol), Operadores tales como && y || toman operandos lógicos y producen un resultado lógico. Los operadores relacionales toman operandos de tipos diferentes y producen un resultado lógico. Final (final) Modificador de clases, datos, métodos y variables locales. Una clase final no se puede extender, un dato final o variable local es una constante y un método final no se puede anular (sustituir) en una subclase. Formal parameter (parámetro formal) Parámetros definidos en la signatura o declaración del método. Fuente del suceso (event source) El objeto que genera el suceso. Función (function) Construcción matemática a la que se pueden aplicar valores y que devuelve un resultado. Herencia (inheritance) (inheritance) Una relación entre clases en que una subclase se extiende desde una superclase. HTML (Hypertext Markup Language) Lenguaje de ´script´ o de marcas para diseñar páginas Web para creación y compartición de documentos electrónicos integrados preparados para multimedia e Internet. J2SK El Java 2 Software Kit distribuido por Inn proporciona el conjunto de herramientas para escribir programas Java, contiene las bibliotecas de clase Java, el compilador Java (javac)y una colección de otras utilidades. Las versiones se numeran en secuencia con 1.2,1.3,1.4(la más reciente dentro de la implementación de la plataforma Java 2). IDE (integrated development) Software para ayudar a lso programadores a escribir código eficientemente. Identificador (identifier) Nombre de una variable, método, clase, interfaz o paquete. IGU, Interfaz Gráfica de Usuario (GUI, Graphical User Interface) Una interfaz es un programa que se implementa utilizando componentes AWT tales como cuadros, botones, etiquetas, campos de texto, etc. 25 Implementación (implementation) La actividad de escribir, compilar, probar y depurar el código de un programa. Instancia (instance) Objeto de una clase Instanciación (instantiation) Proceso de creación de un objeto de una clase. Instanciación (instantion) (instantion) Proceso de crear un objeto de una clase. Interfaz (interface) Una interfaz se trata como una clase especial de Java. Cada interface se compila en un archivo independiente de bytecode, tal como una clase ordinaria. No se puede crear una instancia de la interfaz. La estructura de una interfaz Java es similar al de una clase abstracta en la que se puede tener datos y métodos. Los datos, sin embargo, deben ser constantes y los métodos pueden tener sólo declaraciones sin implementación. En Java existe sólo herencia simple y una clase puede heredar de una superclase. Esta restricción se puede superar por el uso de una interfaz. Interprete (Interpreter) Software que interpreta y ejecuta bytecode de Java. La máquina virtual Java (JVM) es un intérprete de bytecodes de Java que proporciona una emulación de software de un procesador de máquina. JDK (Java development kit) vease J25KJ. Define el APJ de Java y contiene un conjunto de utilidades de líneas de órdenes tales como Javac (compilador) y Java(interprete). Jerarquía de clases (class hierarchy) Colección de clases organizadas en términos de relaciones de superclases y subclases. JVM, Máquina Virtual Java (Java Virtual Machine) Una emulación de software de una máquina que puede ejecutar bytecodes de Java. Proporciona una implementación del procesador, sistema de memoria e interfaces a dispositivos hardware. Todos los programas Java se compilan a bytecodes que se ejecutan por una JVM. Ligadura dinámica (dynamic binding) Ligadura o enlace del nombre de un método al cuerpo de dicho método que se ejecuta mientras que un programa se está ejecutando , al contrario del enlace que se produce cuando se compila el programa. Llamada por referencia (call(call-byby-reference) Término utilizado cuando yuna referencia de un objeto se pasa como un parámetro de un método. La referencia se copia (llamada por valor) pero no el objeto referenciado Llamada por valor (call(call- Paso de un argumento a un método en el que una copia del by.value) valor del argumento real se toma y se sitúa en una posición de memoria independiente, representada por el correspondiente argumento formal. Todos los parámetros se pasan en Java por valor, pero hay otros lenguajes de programación que proporcionan también el método de paso por referencia. Manejador de sucesos (event handler) Un método en el que el objeto “oyente” se ha diseñado para hacer algún proceso especificado cuando ocurre un suceso determinado. Marco de trabajo (framework) Mensaje (message) Una petición enviada a un objeto que solicita ejecutar una operación determinada. El mensaje incluye un nombre y una lista opcional de parámetros. Método abstracto (abstract method) Método que sólo tiene signatura y no tiene cuerpo, y debe estar contenido dentro de una clase abstracta. Su implementación se realiza en la subclase. Se representa mediante el modificador abstract. Los métodos abstractos deben implementarse en una subclase no abstracta incluso aunque no se utilicen. 26 Método de la clase (class method) Sinónimo de método estático. Un método que se puede invocar sin crear una instancia de la clase. Para definir métodos de clases, se ha de poner un modificador static en la declaración del método. Método de la instancia (Instance method) Un método (o procedimiento) declarado por un clase que se llama por sus objetos de instancias (o los de las subclases). Moldeado (casting, conversión) Proceso de convertir un valor de un tipo de dato primitivo en otro tipo primitivo o conversión de un objeto de un tipo de dato en otro tipo de objeto. Por ejemplo, (int) 4.5 convierte 4.5 en un valore entero y (cuadrado)c convierte un objeto c en uno de tipo cuadrado Moldear (cast,, convertir) Cambiar explícitamente el tipo de una expresión utilizando una expresión de conversión (cast). Objeto instancia (instante (instante object) Un objeto instancia es un representación de un valor del tipo implementado por su clase. La clase declara un objeto de variables, instancia que forman la estructura de un objeto y un conjunto de métodos que se pueden llamar en un objeto. Ocultación de la información (information hiding) Un concepto de ingeniería de software que se refiere a la ocultación y protección de las características internas y la estructura de un objeto. Oyente de sucesos (event listener) listener) El objeto que recibie y maneja el suceso. Palabra clave, reservada (keyword) En Java, una palabra clave (o palabra reservada) es una palabra definida como parte del lenguaje de programación, Un nombre de palabra reservada no se puede utilizar para ningún otro propósito. Palabra reservada, reservada Palabra definida como parte del lenguaje Java Parámetro actual o real (actual parameter) Valor que se pasa a un método cuando se invoca ese método. Los parámetros reales (actuales) deben concordar en tipo, orden y número con los parámetros formales. Cuando se invoca a un método, los valores de los argumentos actuales se copian en los correspondientes argumentos formales. Parámetro formal (formal parameter) Declaración de una variable parámetro en una lista de parámetros de un método. Plataforma de Java 2. 2 (Java 2 Plataform) Nombre de la versión más reciente de Java. Programación controlada por sucesos (event(event-drive programming) programming La programación de gráficos en Java está controlada por sucesos. En programación controlada por sucesos (o eventos) los códigos se ejecutan por activación de sucesos, tales como pulsar un botón o mover el ratón Programación imperativa (imperative programming) Programación basada en los principios de instrucción o secuencias de órdenes, selección, repetición, variables y asignación. También se conoce a esta programación como procedimental o por procedimientos. Java es un lenguaje imperativo. Recolección de basura (garbage collection) Sentencia compuesta (compound statement) Sentencia contenedora que consta de una secuencia de otras sentencias y declaraciones. En Java se utilizan llaves ({ y }) para delimitar una sentencia compuesta. Suceso (event) Un tipo de señal que indica ha ocurrido alguna acción. Normalmente se asocia con sucesos de entrada de interfaces gráficas de usuario (p.e. el “clic” de un ratón, pulsación de una tecla, etc. ) El programa puede responder o ignorar el suceso. Véase evento. 27 Tipo abstracto de datos ,TAD (ADT, Abstract Data Type) Especificación formal de un tipo de dato que consta de un nombre, un conjunto de operaciones y una descripción algebraica del comportamiento de las operaciones. Tipo de datos (data type) Los tipos de datos se utilizan para definir variables. Java soporta los tipos de datos primitivos y tipos de datos objeto. Tipo de datos (data type) Tipo de dato que se utiliza para definir variables. Java soporta tipos primitivos de datos y tipos de datos objeto. Variable de clase (class variable) Sinónimo de variable estática. Variable de instancia (instance variable) Una variable declarada en una clase. Un miembro dato no estático de una clase. Una copia de un método de una instancia existe en cada instancia de la clase que se crea. Variable local (local variabl variable) riabl Variable definida en el interior de una definición de un método. Clase Principal (main class) Una clase que contiene un método principal (main). Mensaje (message) Petición enviada a un objeto que solicita realizar una operación con nombre. El mensaje incluye un nombre y una lista opcional de parámetros. Método (method) Una colección de sentencias que se agrupan juntos para ejecutar una operación. Method object Sobrecarga de un método (method overloading) La sobrecarga de n método significa que se puede definir los métodos con el mismo nombre de una clase siempre que haya diferencia en sus parámetros. Nented class (Nented class) Una clase estática declarad dentro de otra clase. Denominada también una clase anidad de nivel superior. Anulación de métodos (method overriding) La anulación o sustitución de métodos significa que se puede modificar el método de una subclase que está definida originalmente en una superclase. Modificador (Modifer) Una palabra reservada en Java que especifica las propiedades de los datos, métodos y clases, y como se pueden utilizar. Ejemplos de modificaciones son public, private y static. Multihilo (mulithreading) (mulithreadin Propiedad de un programa para ejecutar diversas tareas simultáneamente dentro de un programa. Red (network) Infraestructura que permite a los ordenadores comunicarseunos con otros. En red (networking) Propiedad de los ordenadores y programas de ordenador que las permiten comunicarse unos con otros a través de una red. Objeto (object) Véase instancia. Una instancia de una clase específica. En general, se puede construir cualquier número de objetos a partir de una clase. Análisis orientado a objetos OOA (object oriented Analysis) Análisis realizado en términos de objetos, clase y relaciones de clases. Diseño orientado a objetos OOD (object.oriented design) Diseño realizado en términos de objetos, clases y selecciones de clases. 28 Operador (operator) Operaciones para valores de tipos primitivos de datos. Ejemplos de operadores son +,-,*,/ y% Programación orientada a objetos OOP (objectoriented programming) Un enfoque de programación que implica organización de objetos y sus comportamiento en clases de componentes realizables. Asociatividad de operadores (operador (operador associativity) associativity Orden en que se evalúan operadores de igual procedencia dentro de una expresión. La asociatividad a izquierda produce una evaluación de izquierda a derecha, la sociatividad derecha es derecha a izquierda. Precedencia de operadores (operador (operador precedence) Prioridad de un operador dentro de una expresión utilizando para determinar en que orden de evaluarán los operadores. Sobrecarga (overload) Proporciona dos o más métodos con el mismo nombre en el mismo ámbito ,diferenciado por tener listas de parámetros diferentes. Anular o sustituir (override) Donde un método de una subclase redefine y especializa un método del mismo tipo heredado de una superclase. Paquete (package) Colección de clases agrupadas juntas. Parámetro (parameter) Los parámetros formales se especifican en una declaración de un método en una llamada a un método, Paso por referencia (pass(pass-byby-referen reference) ence) Un término utilizado cuando una referencia de un objeto se pasa como un parámetro de un método. Cualquier cambio al objeto local que ocurre dentro del cuerpo del método afectará el objeto original que se pasará como argumento. Paso por valor (pass(pass-by value) Un término utilizado cuando una copia de una variable de un tipo primitivo de dato se pasa a un parámetro de un método. La variable real externa al método no está afectado, con independencia de los cambios hechos al parámetro formal dentro del método. Lista de parámetros (parameter list) Lista de valores dados a un método para inicializar sus parámetros o la lista de parámetros de las declaraciones de variables. Variable parámetro (parameter variable) Variable declarad en una lista de parámetros formados de un método y que se inicializa cuando se llama al método. Los bloques catch también utilizan variables parámetro. Clase padre (parent class) Igual concepto que superclase Patrón (pattern) Disposición avanzada de clases y objetos Precedencia, prioridad (precedence) Prioridad de un operador en una expresión utilizada para determinar el orden en que se evalúan los operadores. Tipo primitivo (primitive type) Un tipo definido como parte del lenguaje Java en vez del declarado por una clase o intefaz. Se denomina también tipos incorporados. Privado (private) Un modificador de miembros de una clase, un miembro privado sólo puede ser referenciado en el interior de la clase. Programa (program) Un conjunto de instrucciones (o sentencias) que describen alguna aplicación o actividad ejecutada en una computadora. 29 Tipo de dato primitivo (primitive data type) float,double,bolean y char Los tipos de datos primitivos son byte, short, int, long, Programador (progr (programmer) Personas que diseña, escribe, prueba y depura programas. Lenguaje de programación (programming language) Notación utilizada por los programadores para escribir programas . un lenguaje tiene una sintaxis (las palabras y símbolos utilizadas para escribir códigos de programa), una gramática (las reglas que definen una secuencia de palabras y símbolos significativos y correctos) y semántica. Java es un lenguaje de programación. Protegido (protected) Un modificador para los miembros de una clase. Un miembro protegido de una clase que puede ser utilizado en la clase que está declarad o cualquier subclase derivada de esa clase. Público (public) Un modificador de clases, datos y métodos a los que se puede acceder por todos los programas. Palabra reservada (reserved word) word Véase palabra clave. Ejecutar, ejecución (run) Hacer funcionar un programa instrucción a instrucción. Escenario (scenario) Descripción o conjunto de secuencias de sucesos que se utilizan para describir parte del comportamiento de un programa. Semántica (semantics) Conjunto de reglas que definen el significado de un programa sintácticamente válido. Java toma un enfoque operacional en semántica de modo que el comportamiento y por consiguiente el significado de un programa se define por la máquina sobre la que esta ejecutando el programa. Signatura (signature) Socket (socket) Término que describe la facilitación de comunicación entre un servidor y un cliente. Inferencia de software (software engineering) Conjunto de etapas en la realización de un programa. Estas etapas suelen ser de análisis, diseño implementación , pruebas, entregas y mantenimiento. Código Código fuente (source code) Texto de un programa antes de ser compilado. El texto se crea y edita utilizando en editor ordinario y contiene caracteres normales, legibles. El código fuente ser utiliza para las personas para describir programas sus componentes han de ser lo más legibles y comprensibles posibles. Software engineering Source code Source text Specification Lenguaje de consulta (SQL (SQL standard standard query langu language) Lenguaje de computadora para realizar consultas y actualizaciones en una base de datos. Sentencia (statement) Una unidad de código que representa una acción o una secuencia de acciones. Las sentencias se ejecutan en el orden en que están escritas y siempre terminan en un punto y coma. Ligadura estática (static briding) Enlace o conexión de un nombre de un método a un cuerpo del método ejecutados por el compilador mediante el análisis léxico del texto de un programa, 30 Método estático (static method) Véase método de una clase. Método declarado en una clave que se llama directamente sin necesidad de que el objeto sea llamado. Variable estática (static variable) Véase variable de clase. Flujo (Stream) Término que describe el flujo de datos continuo de una dirección entre un emisor y un receptor. Subclase (subclass) Una clase que hereda o se extiende de una superclase. Superclase (superclass) Una clase que puede ser heredada de otra clase. Subtipo (subtype) Un tipo que hereda o se extiende de un supertipo. Superclase (superclass) Una clase que es heredada por una subclase. Supertipo (supertype) Un tipo que es heredado por un subtipo. Sintaxis (Syntax) Un conjunto de reglas que especifica la composición de programas a partir de palabras reservadas, símbolos y caracteres. La sintaxis define la estructura de los programas legales en términos de cómo las palabras reservadas y otros caracteres se pueden escribir y en qué orden. Etiqueta (tag) Una instrucción HTML que indica a un navegador Web como visualizar un documento. Las etiquetas se encierran entre corchetes tales como <html>, <i>, <b>, y </html>. Prueba/ probar (test) En términos de programación, la actividad de verificación sistemática de que un programa funciona correctamente. Prueba (testing) Véase prueba Hilo (thread) Un flujo de ejecución de una tarea que tiene un principio y un fin, en un programa. UML (UML) Lenguaje unificado de modelado que proporciona notación estándar visual para documentar el análisis y diseño de sistemas orientados a objetos. Unicode (unicode) (unicode Un sistema de codificación de caracteres internacionales gestionados por el consorcio Unicode, Java soporta Unicode. 31 BIBLIOGRAFÍA Básica TÍTULO: AUTOR: AÑO: EDITORIAL O REFERENCIA: LUGAR Y AÑO DE LA EDICIÓN ISBN O REGISTRO: Java How to Program, 7th Edition Harvey M. Deitel y Paul J. Deitel 2007 Prentice Hall January 6, 2007 132222205 TÍTULO: AUTOR: AÑO: EDITORIAL O REFERENCIA: LUGAR Y AÑO DE LA EDICIÓN ISBN O REGISTRO: Object-Oriented Programming and Java Danny Poo, Derek Kiong, Swarnalatha Ashok 2010 Springer June 2, 2010 1846289629 TÍTULO: AUTOR: AÑO: EDITORIAL O REFERENCIA: LUGAR Y AÑO DE LA EDICIÓN ISBN O REGISTRO: Java How to Program: Early Objects Version (8th Edition) Harvey M. Deitel y Paul J. Deitel 2009 Prentice Hall March 27, 2009 136053068 Complementaria TÍTULO: AUTOR: AÑO: EDITORIAL O REFERENCIA: LUGAR Y AÑO DE LA EDICIÓN ISBN O REGISTRO: Java: A Beginner's Guide, 4th Ed Herbert Schildt McGraw-Hill Osborne Media; 4 edition (December 1, 2006) 72263849 TÍTULO: AUTOR: AÑO: EDITORIAL O REFERENCIA: LUGAR Y AÑO DE LA EDICIÓN ISBN O REGISTRO: PROGRAMACION ORIENTADA A OBJETOS CON C ++ BALAGURUSAMY, E. 2007 MC GRAW HILL 2007 9788448156213 Sitio Web http://java.sun.com http://myphlip.pearsoncmg.com/phproducts/index.cfm?vbookid=720 http://myphlip.pearsoncmg.com/phproducts/index.cfm?vbookid=720 http://elvex.ugr.es/decsai/java/index.html http://elvex.ugr.es/decsai/java/index.html 32