El documento describe los conceptos básicos de objetos, clases y programación en Java, incluyendo la estructura de una clase con atributos y métodos, la creación y uso de objetos, y la edición, compilación y ejecución de programas en Java. Se provee un ejemplo de clase Circulo que define los atributos y métodos de un círculo, y un ejemplo de programa PrimerPrograma que crea objetos Circulo y los añade a una pizarra.
Este documento describe varios temas relacionados con matrices y estructuras de datos lineales en Java. Explica los métodos de suma y multiplicación de matrices usando la clase Matrix, y cómo resolver sistemas lineales mediante el método de Gauss. También describe pilas y colas como estructuras de datos FIFO y LIFO usando las clases Stack y Queue, respectivamente.
Objetos gráficos (line, text, patch, surface, light, image).
Gráficos específicos (para presentaciones, probabilidad y estadística, para sistemas lineales, funciones de teoría de sistemas).
Animaciones.
Implementación de Grafos Ponderados, haciendo uso de Programación Orientado a Objetos (POO), que en esta oportunidad se realizó bajo la plataforma de Java, y usando NetBeans como entorno de desarrollo.
Este documento describe cómo crear interfaces gráficas de usuario (GUIs) en MATLAB usando GUIDE. Explica que GUIDE permite diseñar GUIs de forma visual arrastrando y soltando controles como botones y cajas de texto. Una GUI creada con GUIDE consta de dos archivos, uno con extensión .fig que contiene la descripción gráfica y otro con extensión .m que contiene el código y callbacks. El documento también cubre conceptos como propiedades de los controles, sentencias get y set, y estructura jerárquica
Este documento describe las gráficas bidimensionales en MATLAB. Explica la anatomía de las gráficas, el proceso para trazar una gráfica, y cómo crear una gráfica. Luego presenta varios ejemplos de funciones para trazar líneas, barras, gráficas dispersas, funciones polares, paramétricas, campos vectoriales y animadas. Finalmente, cubre el control de ejes, anotaciones y otras herramientas.
El documento describe las funciones gráficas de MATLAB. MATLAB proporciona una variedad de funciones para crear gráficos de datos y herramientas interactivas para manipularlos. Los gráficos se pueden imprimir o exportar a formatos estándar. El entorno de MATLAB incluye funciones para trazar datos y crear y modificar gráficos de manera interactiva.
1) El documento describe los comandos básicos para crear gráficos 2D y 3D en MATLAB, incluyendo plot, mesh, surf, subplot, entre otros.
2) Explica cómo representar funciones, varias funciones a la vez, y modificar atributos de los gráficos como colores y líneas.
3) También cubre temas como superposición de gráficos, objetos gráficos de texto y ejes, y el uso de funciones para crear superficies y contornos 3D.
Este documento proporciona información sobre cómo crear gráficos en MATLAB. Explica cómo generar gráficos de funciones de una y dos variables, incluidas opciones para personalizar los gráficos. También cubre gráficos en 3D, como curvas en el espacio y funciones de dos variables. Por último, presenta gráficos estadísticos como diagramas de sectores.
Este documento describe varios temas relacionados con matrices y estructuras de datos lineales en Java. Explica los métodos de suma y multiplicación de matrices usando la clase Matrix, y cómo resolver sistemas lineales mediante el método de Gauss. También describe pilas y colas como estructuras de datos FIFO y LIFO usando las clases Stack y Queue, respectivamente.
Objetos gráficos (line, text, patch, surface, light, image).
Gráficos específicos (para presentaciones, probabilidad y estadística, para sistemas lineales, funciones de teoría de sistemas).
Animaciones.
Implementación de Grafos Ponderados, haciendo uso de Programación Orientado a Objetos (POO), que en esta oportunidad se realizó bajo la plataforma de Java, y usando NetBeans como entorno de desarrollo.
Este documento describe cómo crear interfaces gráficas de usuario (GUIs) en MATLAB usando GUIDE. Explica que GUIDE permite diseñar GUIs de forma visual arrastrando y soltando controles como botones y cajas de texto. Una GUI creada con GUIDE consta de dos archivos, uno con extensión .fig que contiene la descripción gráfica y otro con extensión .m que contiene el código y callbacks. El documento también cubre conceptos como propiedades de los controles, sentencias get y set, y estructura jerárquica
Este documento describe las gráficas bidimensionales en MATLAB. Explica la anatomía de las gráficas, el proceso para trazar una gráfica, y cómo crear una gráfica. Luego presenta varios ejemplos de funciones para trazar líneas, barras, gráficas dispersas, funciones polares, paramétricas, campos vectoriales y animadas. Finalmente, cubre el control de ejes, anotaciones y otras herramientas.
El documento describe las funciones gráficas de MATLAB. MATLAB proporciona una variedad de funciones para crear gráficos de datos y herramientas interactivas para manipularlos. Los gráficos se pueden imprimir o exportar a formatos estándar. El entorno de MATLAB incluye funciones para trazar datos y crear y modificar gráficos de manera interactiva.
1) El documento describe los comandos básicos para crear gráficos 2D y 3D en MATLAB, incluyendo plot, mesh, surf, subplot, entre otros.
2) Explica cómo representar funciones, varias funciones a la vez, y modificar atributos de los gráficos como colores y líneas.
3) También cubre temas como superposición de gráficos, objetos gráficos de texto y ejes, y el uso de funciones para crear superficies y contornos 3D.
Este documento proporciona información sobre cómo crear gráficos en MATLAB. Explica cómo generar gráficos de funciones de una y dos variables, incluidas opciones para personalizar los gráficos. También cubre gráficos en 3D, como curvas en el espacio y funciones de dos variables. Por último, presenta gráficos estadísticos como diagramas de sectores.
Este documento presenta un curso de introducción a la informática y programación. Cubre temas como problemas, algoritmos y programas, lenguajes y modelos de programación, programación orientada a objetos y Java. También incluye ejemplos de programas y elementos del entorno de programación como editores, depuradores y bases de datos. El curso se impartirá en el departamento de sistemas informáticos y computación durante el año académico 2011-2012.
Este documento presenta las estructuras de control de selección en Java, incluyendo las instrucciones condicionales if, if-else, y switch. Explica cómo funcionan estas instrucciones y proporciona ejemplos de su uso para tomar decisiones basadas en condiciones. También introduce el operador ternario como otra forma de expresar condiciones de forma concisa.
Este documento describe los tipos de datos de clases y referencias en Java. Introduce los conceptos de clases, objetos y variables de referencia. Explica cómo se inicializan los atributos de un objeto, cómo se representan los objetos en memoria y las diferencias entre variables primitivas y de referencia. También cubre temas como la copia y comparación de objetos, el recolector de basura y el uso de atributos estáticos para almacenar información de clase.
El documento describe los métodos en Java, incluyendo métodos de objeto y métodos de clase. Explica las características de cada tipo de método como la visibilidad, los parámetros, el cuerpo y cómo se llaman. También proporciona ejemplos de cómo definir y usar métodos en una clase.
Este documento describe algunas clases predefinidas en Java como String, Math y las clases envoltorio. La clase String permite manipular cadenas de caracteres mediante métodos como length(), substring(), equals(), etc. La clase Math contiene constantes y métodos estáticos para operaciones matemáticas como seno, coseno, logaritmos, raíz cuadrada y generación de números aleatorios. Las clases envoltorio como Integer, Float y Double permiten tratar valores elementales como objetos con funcionalidades adicionales.
Este documento resume los conceptos básicos de entrada y salida en Java. Explica que la entrada y salida se realiza a través de flujos y describe los flujos predefinidos System.in y System.out. Detalla los métodos println y printf para la salida formateada y explica cómo la clase Scanner permite la entrada desde teclado de diferentes tipos de datos de forma sencilla.
Este documento introduce los tipos de datos fundamentales en Java, incluyendo tipos numéricos (enteros y reales), tipo carácter y tipo lógico. Explica las variables, constantes, expresiones y asignación. También cubre temas como compatibilidad y conversión de tipos, operadores aritméticos y de comparación, y bloques de instrucciones.
User Interface Testing | Best Practices David Tzemach
Overview
What is GUI testing…?
The testing challenges
Should you automate your test..?
Test Recommendations
GUI testing Checklist
How to handle different GUI objects
Este documento resume la historia y desarrollo de varios lenguajes de programación importantes. Comenzó con FORTRAN en los años 50 para aplicaciones científicas, seguido de COBOL en 1959 para negocios. En los 60s, BASIC se desarrolló para enseñanza y Pascal se volvió popular en universidades. Ada se creó en los 70s para defensa con capacidades multitareas. C evolucionó de B y fue usado para Unix. En los 90s, C++ agregó programación orientada a objetos y Java fue diseñado para web interactiv
UI Testing Best Practices - An Expected JourneyOren Farhi
This slide focus on the good reasons for writing unit tests for testing ui.
Much like you're testing ui manually, you can have simple minimal code doing that for you.
El documento explica los fundamentos de los condicionales en Java. Define qué son los condicionales y cómo se usan las sentencias if, else y else if para tomar decisiones en el flujo del programa dependiendo de las condiciones. También cubre los operadores de relación como ==, >, >= y != que se usan para comparar valores y cadenas. Además, describe cómo anidar condicionales para tomar múltiples decisiones y la sentencia switch como alternativa a múltiples if/else anidados.
El documento describe arrays unidimensionales y sus aplicaciones. Introduce arrays como una colección de elementos homogéneos agrupados de forma consecutiva en memoria, donde cada elemento tiene un índice que lo identifica. Explica cómo declarar y acceder a arrays, así como conceptos como el tamaño y longitud de un array. También cubre el paso de arrays como parámetros y la creación de arrays de objetos.
Presentation of the Ph. D. dissertation SLA-Driven Cloud Computing Domain Representation and Management. This presentation explains a new methodology for the representation and management of Cloud services using SLA fragments. Cloud resources are described as independent SLA fragments, which are composed on the fly to create complete Cloud services.
An architecture for the management of Cloud services is also presented.
Cloudcompaas, an open source SLA-driven framework is introduced. Cloudcompaas implements the methodology and architecture presented earlier and enables the management of the complete lifecycle of Cloud services.
Finally a set of experiments to validate the utility and performance of the contributions is presented.
Historia Y EvolucióN De Los Lenguajes De ProgramacióNda4
Este documento describe la historia y evolución de los lenguajes de programación. Explica que los lenguajes surgieron de la necesidad de automatizar tareas repetitivas para los usuarios. Detalla los diferentes tipos de lenguajes (alto nivel, intermedio y bajo nivel) y algunos de los lenguajes más importantes a lo largo de la historia como FORTRAN, COBOL, BASIC y Pascal. También cubre conceptos como la programación orientada a objetos, los compiladores e intérpretes y las cuatro generaciones de lenguajes de programación.
El documento presenta un ejemplo de programación orientada a objetos en Java para una agencia de alquiler de vehículos. Se definen las clases abstracta Vehículo y sus subclases Turismo y Camión, con sus atributos, métodos y comportamientos para alquilar y devolver los vehículos.
El documento describe los conceptos de herencia y polimorfismo en programación orientada a objetos. La herencia permite crear nuevas clases a partir de clases existentes adoptando sus atributos y mejorándolos. El polimorfismo permite que diferentes objetos respondan de forma diferente a los mismos mensajes o operaciones. Se proveen ejemplos de herencia simple y sobrecarga de operadores como ilustración de estos conceptos.
El documento explica los conceptos básicos de la programación orientada a objetos en C++, incluyendo clases, objetos, encapsulamiento, constructores, destructores y punteros a objetos. Describe las características del modelo de objetos como abstracción, encapsulamiento, modularidad, jerarquía y polimorfismo.
La clase describe un grupo de objetos que comparten propiedades y métodos comunes. Una clase define campos que almacenan información y métodos que representan comportamiento. Los objetos son instancias de una clase creadas usando el operador new.
La clase describe un grupo de objetos que comparten propiedades y métodos comunes. Una clase define campos que almacenan información y métodos que representan comportamiento. Los objetos son instancias de una clase creadas usando el operador new.
1) Las clases abstractas definen características comunes de clases derivadas pero no pueden crear objetos directamente. 2) Las clases abstractas pueden incluir métodos abstractos sin implementación que deben implementarse en clases derivadas. 3) Las interfaces definen métodos y constantes que las clases que las implementan deben incluir.
Este documento presenta un curso de introducción a la informática y programación. Cubre temas como problemas, algoritmos y programas, lenguajes y modelos de programación, programación orientada a objetos y Java. También incluye ejemplos de programas y elementos del entorno de programación como editores, depuradores y bases de datos. El curso se impartirá en el departamento de sistemas informáticos y computación durante el año académico 2011-2012.
Este documento presenta las estructuras de control de selección en Java, incluyendo las instrucciones condicionales if, if-else, y switch. Explica cómo funcionan estas instrucciones y proporciona ejemplos de su uso para tomar decisiones basadas en condiciones. También introduce el operador ternario como otra forma de expresar condiciones de forma concisa.
Este documento describe los tipos de datos de clases y referencias en Java. Introduce los conceptos de clases, objetos y variables de referencia. Explica cómo se inicializan los atributos de un objeto, cómo se representan los objetos en memoria y las diferencias entre variables primitivas y de referencia. También cubre temas como la copia y comparación de objetos, el recolector de basura y el uso de atributos estáticos para almacenar información de clase.
El documento describe los métodos en Java, incluyendo métodos de objeto y métodos de clase. Explica las características de cada tipo de método como la visibilidad, los parámetros, el cuerpo y cómo se llaman. También proporciona ejemplos de cómo definir y usar métodos en una clase.
Este documento describe algunas clases predefinidas en Java como String, Math y las clases envoltorio. La clase String permite manipular cadenas de caracteres mediante métodos como length(), substring(), equals(), etc. La clase Math contiene constantes y métodos estáticos para operaciones matemáticas como seno, coseno, logaritmos, raíz cuadrada y generación de números aleatorios. Las clases envoltorio como Integer, Float y Double permiten tratar valores elementales como objetos con funcionalidades adicionales.
Este documento resume los conceptos básicos de entrada y salida en Java. Explica que la entrada y salida se realiza a través de flujos y describe los flujos predefinidos System.in y System.out. Detalla los métodos println y printf para la salida formateada y explica cómo la clase Scanner permite la entrada desde teclado de diferentes tipos de datos de forma sencilla.
Este documento introduce los tipos de datos fundamentales en Java, incluyendo tipos numéricos (enteros y reales), tipo carácter y tipo lógico. Explica las variables, constantes, expresiones y asignación. También cubre temas como compatibilidad y conversión de tipos, operadores aritméticos y de comparación, y bloques de instrucciones.
User Interface Testing | Best Practices David Tzemach
Overview
What is GUI testing…?
The testing challenges
Should you automate your test..?
Test Recommendations
GUI testing Checklist
How to handle different GUI objects
Este documento resume la historia y desarrollo de varios lenguajes de programación importantes. Comenzó con FORTRAN en los años 50 para aplicaciones científicas, seguido de COBOL en 1959 para negocios. En los 60s, BASIC se desarrolló para enseñanza y Pascal se volvió popular en universidades. Ada se creó en los 70s para defensa con capacidades multitareas. C evolucionó de B y fue usado para Unix. En los 90s, C++ agregó programación orientada a objetos y Java fue diseñado para web interactiv
UI Testing Best Practices - An Expected JourneyOren Farhi
This slide focus on the good reasons for writing unit tests for testing ui.
Much like you're testing ui manually, you can have simple minimal code doing that for you.
El documento explica los fundamentos de los condicionales en Java. Define qué son los condicionales y cómo se usan las sentencias if, else y else if para tomar decisiones en el flujo del programa dependiendo de las condiciones. También cubre los operadores de relación como ==, >, >= y != que se usan para comparar valores y cadenas. Además, describe cómo anidar condicionales para tomar múltiples decisiones y la sentencia switch como alternativa a múltiples if/else anidados.
El documento describe arrays unidimensionales y sus aplicaciones. Introduce arrays como una colección de elementos homogéneos agrupados de forma consecutiva en memoria, donde cada elemento tiene un índice que lo identifica. Explica cómo declarar y acceder a arrays, así como conceptos como el tamaño y longitud de un array. También cubre el paso de arrays como parámetros y la creación de arrays de objetos.
Presentation of the Ph. D. dissertation SLA-Driven Cloud Computing Domain Representation and Management. This presentation explains a new methodology for the representation and management of Cloud services using SLA fragments. Cloud resources are described as independent SLA fragments, which are composed on the fly to create complete Cloud services.
An architecture for the management of Cloud services is also presented.
Cloudcompaas, an open source SLA-driven framework is introduced. Cloudcompaas implements the methodology and architecture presented earlier and enables the management of the complete lifecycle of Cloud services.
Finally a set of experiments to validate the utility and performance of the contributions is presented.
Historia Y EvolucióN De Los Lenguajes De ProgramacióNda4
Este documento describe la historia y evolución de los lenguajes de programación. Explica que los lenguajes surgieron de la necesidad de automatizar tareas repetitivas para los usuarios. Detalla los diferentes tipos de lenguajes (alto nivel, intermedio y bajo nivel) y algunos de los lenguajes más importantes a lo largo de la historia como FORTRAN, COBOL, BASIC y Pascal. También cubre conceptos como la programación orientada a objetos, los compiladores e intérpretes y las cuatro generaciones de lenguajes de programación.
El documento presenta un ejemplo de programación orientada a objetos en Java para una agencia de alquiler de vehículos. Se definen las clases abstracta Vehículo y sus subclases Turismo y Camión, con sus atributos, métodos y comportamientos para alquilar y devolver los vehículos.
El documento describe los conceptos de herencia y polimorfismo en programación orientada a objetos. La herencia permite crear nuevas clases a partir de clases existentes adoptando sus atributos y mejorándolos. El polimorfismo permite que diferentes objetos respondan de forma diferente a los mismos mensajes o operaciones. Se proveen ejemplos de herencia simple y sobrecarga de operadores como ilustración de estos conceptos.
El documento explica los conceptos básicos de la programación orientada a objetos en C++, incluyendo clases, objetos, encapsulamiento, constructores, destructores y punteros a objetos. Describe las características del modelo de objetos como abstracción, encapsulamiento, modularidad, jerarquía y polimorfismo.
La clase describe un grupo de objetos que comparten propiedades y métodos comunes. Una clase define campos que almacenan información y métodos que representan comportamiento. Los objetos son instancias de una clase creadas usando el operador new.
La clase describe un grupo de objetos que comparten propiedades y métodos comunes. Una clase define campos que almacenan información y métodos que representan comportamiento. Los objetos son instancias de una clase creadas usando el operador new.
1) Las clases abstractas definen características comunes de clases derivadas pero no pueden crear objetos directamente. 2) Las clases abstractas pueden incluir métodos abstractos sin implementación que deben implementarse en clases derivadas. 3) Las interfaces definen métodos y constantes que las clases que las implementan deben incluir.
Este documento explica los conceptos básicos de la programación orientada a objetos. Define clases como un conjunto de objetos con las mismas características de datos y comportamiento. Las clases son moldes para crear objetos, que son instancias concretas de una clase que existen en tiempo de ejecución. Las clases contienen atributos y métodos, donde los atributos definen las características de un objeto y los métodos definen su comportamiento. El documento también muestra un ejemplo de cómo definir una clase en Java y cómo crear objetos
Este documento presenta conceptos básicos de la programación orientada a objetos. Define objetos, clases, atributos, operaciones y relaciones entre clases y objetos. También describe conceptos como constructores, copias de objetos y la forma canónica de una clase.
Netbeans IDE es un entorno de desarrollo integrado que incluye barras de título, menús, iconos y una barra lateral para proyectos, archivos y servicios. También incluye un editor de código y opciones para crear, abrir y ejecutar archivos y proyectos de Java. Proporciona atajos de teclado para realizar tareas comunes como guardar, compilar y depurar aplicaciones.
Este documento presenta una clase de repaso sobre programación y estructuras de datos. Se revisan brevemente los puntos fundamentales del Tema 1: Introducción, incluyendo definiciones de estructura de datos, tipos de datos abstractos y clasificaciones. Luego, se cubren los conceptos básicos de pilas en el Tema 2, como operaciones comunes y implementaciones estáticas y dinámicas. El documento proporciona una introducción concisa a estos temas clave.
Herencia es uno de los pilares en la Programacion Orientada a Objetos.
En esta diapositiva se muestra los principios de herencia y su implementacion en Java con clases abstractas e interfaces
El documento explica los conceptos básicos de clases y objetos en Java. Una clase define el estado y comportamiento de un objeto mediante atributos y métodos. Los objetos son instancias concretas de una clase que se crean usando el operador new. Los atributos y métodos de un objeto se pueden acceder usando la notación punto.
Este documento describe los conceptos básicos de la programación orientada a objetos. Explica que una clase define las propiedades y métodos comunes de un grupo de objetos, y que una clase contiene atributos (datos) y métodos (comportamientos). También describe cómo se implementan las clases, incluyendo la definición de atributos, métodos, constructores y el uso de la palabra reservada this.
ARREGLOS DE OBJETOS UNIDAD 5 ING. YOELMA MELENDRES CRITERIO DE DESEMPEÑO Aplica aspectos avanzados de la programación orientada a objetos; empleando arreglos de objetos y clases de utilidad.
Este documento presenta una guía para el uso de laboratorios que incluye información sobre un estudiante, semestre, paralelo, tema, objetivo, resultados de aprendizaje y actividades de un laboratorio sobre el uso de matrices bidimensionales en Java usando el entorno de desarrollo Eclipse. El objetivo es conocer Eclipse para el desarrollo, edición, compilación y depuración de una matriz en Java. Las actividades incluyen crear un programa para ingresar los valores de una matriz cuadrada y determinar el número mayor y menor y sus posiciones.
Este documento presenta una guía para el uso de laboratorios que incluye información sobre un estudiante, semestre, paralelo, tema, objetivo, resultados de aprendizaje y actividades de un laboratorio sobre el uso de matrices bidimensionales en Java usando el entorno de desarrollo Eclipse. El objetivo es conocer Eclipse para el desarrollo, edición, compilación y depuración de una matriz en Java. Las actividades incluyen crear un programa para ingresar los valores de una matriz cuadrada y determinar el número mayor y menor y sus posiciones.
Este documento presenta una guía para el uso de laboratorios que incluye información sobre un estudiante, semestre, paralelo, tema, objetivo, resultados de aprendizaje y actividades de un laboratorio sobre el uso de matrices bidimensionales en Java usando el entorno de desarrollo Eclipse. El objetivo es conocer Eclipse para el desarrollo, edición, compilación y depuración de una matriz en Java. Las actividades incluyen crear un programa para ingresar los valores de una matriz cuadrada y determinar el número mayor y menor y sus posiciones.
Este documento presenta una guía para el uso de laboratorios que incluye información sobre un estudiante, semestre, paralelo, tema, objetivo, resultados de aprendizaje y actividades de un laboratorio sobre el uso de matrices bidimensionales en Java usando el entorno de desarrollo Eclipse. El objetivo es conocer Eclipse para el desarrollo, edición, compilación y depuración de una matriz en Java. Las actividades incluyen crear un programa para ingresar los valores de una matriz cuadrada y determinar el número mayor y menor y sus posiciones.
Similar a Introducción a la programación y la informática. Tema 2 (20)
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLMJuan Martín Martín
Examen de Selectividad de la EvAU de Geografía de junio de 2023 en Castilla La Mancha. UCLM . (Convocatoria ordinaria)
Más información en el Blog de Geografía de Juan Martín Martín
http://blogdegeografiadejuan.blogspot.com/
Este documento presenta un examen de geografía para el Acceso a la universidad (EVAU). Consta de cuatro secciones. La primera sección ofrece tres ejercicios prácticos sobre paisajes, mapas o hábitats. La segunda sección contiene preguntas teóricas sobre unidades de relieve, transporte o demografía. La tercera sección pide definir conceptos geográficos. La cuarta sección implica identificar elementos geográficos en un mapa. El examen evalúa conocimientos fundamentales de geografía.
Soluciones Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinar...Juan Martín Martín
Criterios de corrección y soluciones al examen de Geografía de Selectividad (EvAU) Junio de 2024 en Castilla La Mancha.
Soluciones al examen.
Convocatoria Ordinaria.
Examen resuelto de Geografía
conocer el examen de geografía de julio 2024 en:
https://blogdegeografiadejuan.blogspot.com/2024/06/soluciones-examen-de-selectividad.html
http://blogdegeografiadejuan.blogspot.com/
José Luis Jiménez Rodríguez
Junio 2024.
“La pedagogía es la metodología de la educación. Constituye una problemática de medios y fines, y en esa problemática estudia las situaciones educativas, las selecciona y luego organiza y asegura su explotación situacional”. Louis Not. 1993.
Introducción a la programación y la informática. Tema 2
1. Tema 2. Objetos, Clases y
ProgramasProgramas
Introducción a la Informática y a la Programación (IIP)
Curso 2011/12
Departamento de Sistemas Informáticos y Computación
2. Contenidos
1. Estructura básica de una clase: atributos y métodos
2. Creación y uso de objetos: operadores new y punto (.)
3. Edición, compilación y ejecución en Java
4. Documentación de programas4. Documentación de programas
5. La organización en paquetes del lenguaje Java
6. Librerías de clases, herencia, la clase Object
20/09/2011 IIP - Curso 2011/12 2
3. Objetos, clases y programas
Se desea disponer de un espacio de dibujo a modo de pizarra,
que puede tener un tamaño variable, un título y sobre la cuál se
puedan dibujar círculos, rectángulos y cuadrados de diferentes
tamaño, colores y en diferentes posiciones.
Objetos y Características
20/09/2011 IIP - Curso 2011/12 3
Ámbito del problema Ámbito del programa
Objetos y
Clases
Características
Pizarra de diferentes tamaños y títulos
Circulo de diferentes tamaños, colores y posición
Cuadrado de diferentes tamaños, colores y posición
Rectángulo de diferentes tamaños, colores y posición
4. Clases y Objetos
• Un objeto se puede definir como una agrupación o colección de
datos y operaciones que poseen determinada estructura y
mediante los cuales se modelan aspectos relevantes de un
problema.
• Los objetos que comparten cierto comportamiento se pueden
agrupar en diferentes categorías llamadas clases.agrupar en diferentes categorías llamadas clases.
• Una clase describe el comportamiento de cada uno de los
objetos. Se dice entonces que el objeto es una instancia de la
clase.
• Java es un LOO y programar en Java es escribir las definiciones de
las clases y utilizar esas clases para crear objetos de forma que,
mediante los mismos, se represente adecuadamente el problema
que se desea resolver.
20/09/2011 IIP - Curso 2011/12 4
5. Clases en Java
• Clases predefinidas y definidas por el programador.
• Según la estructura de la clase y al uso que se va a hacer de ella
se pueden distinguir tres tipos básicos de clases:
– Clase-Tipo de dato: definen el conjunto de valores posibles
que pueden tomar los objetos y las operaciones que sobreque pueden tomar los objetos y las operaciones que sobre
éstos se pueden realizar.
– Clase-Programa: son las que inician la ejecución del código.
– Clase de Utilidades: son repositorios de operaciones que
pueden utilizarse desde otras clases.
20/09/2011 IIP - Curso 2011/12 5
6. Ejemplo de Clase-Tipo de dato
/** Clase Circulo: define un círculo de un determinado radio, color y … */
public class CirculoCirculoCirculoCirculo {
private double radio; private String color;
private int centroX, centroY;
/** crea un Circulo de radio 50, negro y centro en (100,100) */
public Circulo() { radio=50; color="negro"; centroX=100; centroY=100; }
/** consulta el radio del Circulo. */
public double getRadio() { return radio; }
/** actualiza el radio del Circulo a nuevoRadio. */
public void setRadio(double nuevoRadio) { radio = nuevoRadio; }public void setRadio(double nuevoRadio) { radio = nuevoRadio; }
/** decrementa el radio del Circulo. */
public void decrece() { radio = radio / 1.3; }
/** calcula el área del Circulo. */
public double area() { return 3.14 * radio * radio; }
/** obtiene un String con las componentes del Circulo. */
public String toString() { String res="Circulo de radio "+ radio;
res += ", color "+color+" y centro ("+centroX+","+centroY+")";
return res;
}
// más métodos
} 20/09/2011 IIP - Curso 2011/12 6
7. La importancia de documentar las clases
import javax.swing.*;
import java.awt.*;
/**
* Clase Pizarra: define una Pizarra sobre la que se pueden dibujar
* elementos de tipo Circulo, Rectangulo y Cuadrado
* @author Libro IIP-PRG
* @version 2011
*/
public class Pizarra extends JFrame {
// Elementos por defecto de la Pizarra:
private static int DIM_X = 200;
private static int DIM_Y = 200;
private static int NUM_MIN = 8;
// Atributos almacen objetos gráficos
private Object gOL[] = new Object[NUM_MIN];
private int numGO = 0;
// Constantes figuras posibles
20/09/2011 IIP - Curso 2011/12 7
// Constantes figuras posibles
private final static int DESCONOCIDO = -1;
private final static int CIRCULO = 0;
private final static int RECTANGULO = 1;
private final static int CUADRADO = 2;
// Constantes arrays de colores
private static final String NOM_COLS[] =
{"rojo","amarillo","verde","azul","naranja","negro"};
private static final Color COLS[] =
{Color.red, Color.yellow, Color.green, Color.blue,
Color.orange, Color.black};
private static final Color COLOR_POR_DEFECTO = Color.black;
/**
* construye una Pizarra por defecto en la que es posible
* situar elementos gráficos.
*/
public Pizarra() {
super("La pizarra por defecto"); setSize(DIM_X,DIM_Y);
setContentPane(initPanel()); setVisible(true);
} …
8. Ejemplo de Clase-Programa
/**Programa de prueba de las clases Circulo, Rectangulo y Pizarra
* @author Libro IIP-PRG
* @version 2011
*/
public class PrimerPrograma {
public static void main (String[] args) {
// Iniciar el espacio para dibujar dándole nombre y dimensión
Pizarra miPizarra = new Pizarra("ESPACIO DIBUJO",300,300);
// Crear un Circulo de radio 50, amarillo, con centro en (100,100)
Circulo c1 = new Circulo(50,"amarillo",100,100);
// Añadirlo a la Pizarra y dibujarlo// Añadirlo a la Pizarra y dibujarlo
miPizarra.add(c1);
// Crear un Rectangulo de 30 por 30, azul, con centro en (125,125)
Rectangulo r1 = new Rectangulo(30,30,"azul",125,125);
// Añadirlo a la Pizarra y dibujarlo
miPizarra.add(r1);
// Crear un Rectangulo de 100 por 10, rojo, con centro en (50,155)
Rectangulo r2 = new Rectangulo(100,10,"rojo",50,155);
// Añadirlo a la Pizarra y dibujarlo
miPizarra.add(r2);
}
}
20/09/2011 IIP - Curso 2011/12 8
9. Estructura básica de una clase:
atributos y métodos
[modificadores] class NombreDeLaClaseNombreDeLaClaseNombreDeLaClaseNombreDeLaClase [ extends OtraClase ] {
//////// DefiniciónDefiniciónDefiniciónDefinición dededede AtributosAtributosAtributosAtributos
[[modificadores] tipo nomVar1;
[modificadores] tipo nomVar2;
... ... ...
[modificadores] tipo nomVarN; ][modificadores] tipo nomVarN; ]
//////// DefiniciónDefiniciónDefiniciónDefinición dededede MétodosMétodosMétodosMétodos
[[modificadores] tipo nomMetodo1 ([listaParams]) { cuerpo }
[modificadores] tipo nomMetodo2 ([listaParams]) { cuerpo }
... ... ...
[modificadores] tipo nomMetodoM ([listaParams]) { cuerpo } ]
}
20/09/2011 IIP - Curso 2011/12 9
10. Modificadores que definen el ámbito
de la declaración: private y public
• Toda la información declarada private es exclusiva del objeto e
inaccesible desde fuera de la clase.
– Cualquier intento de acceso a las variables de instancia radio o color que
se realice fuera de la clase Circulo (p.e., en la clase PrimerPrograma) dará
lugar a un error de compilación.
private double radio; private String color;
• Toda la información declarada es accesible desde fuera• Toda la información declarada public es accesible desde fuera
de la clase.
– Es el caso de los métodos getRadio o area de la clase Circulo.
/** consulta el radio del Circulo. */
public double getRadio() { return radio; }
/** calcula el área del Circulo. */
public double area() { return 3.14 * radio * radio; }
20/09/2011 IIP - Curso 2011/12 10
11. Atributos de una clase
• Los atributos o variables de instancia (nomVar1, nomVar2, ...,
nomVarN) representan información propia de cada objeto de la
clase y se declaran de un tipo de datos determinado, siendo
definidos habitualmente de acceso privado.
• El tipo de datos define los valores que el atributo puede tomar y
las operaciones que sobre él se pueden realizar.
20/09/2011 IIP - Curso 2011/12 11
//////// DefiniciónDefiniciónDefiniciónDefinición dededede AtributosAtributosAtributosAtributos
[[modificadores] tipo nomVar1;
[modificadores] tipo nomVar2;
... ... ...
[modificadores] tipo nomVarN; ]
public class Circulo {
private double radio;
private String color;
…
}
12. Métodos de una clase
• Los métodos definen las operaciones que se pueden aplicar
sobre los objetos de la clase y se describen indicando:
– Su cabecera o perfil: nombre, tipo de su resultado y lista de parámetros
que se requieren para el cálculo si fuera necesario.
• Es posible que un método no devuelva un valor (void)
– Su cuerpo: contiene la secuencia de instrucciones que se efectúan cuando
se ejecute.
• la instrucción es de aparición obligada (a menos que el resultado sea• la instrucción return es de aparición obligada (a menos que el resultado sea
void) y su efecto es devolver el resultado calculado
20/09/2011 IIP - Curso 2011/12 12
public class CirculoCirculoCirculoCirculo {
…
public void setRadio(double nuevoRadio) { radio = nuevoRadio; }
public double area() { return 3.14 * radio * radio; }
}
13. Métodos de una clase
• Se pueden clasificar, atendiendo a su función con respecto al
objeto del modo siguiente:
– Constructores: permiten crear el objeto;
– Modificadores: permiten alterar el estado (valores de las variables de
instancia) del objeto;
– Consultores: permiten conocer, sin alterar, el estado del objeto.
20/09/2011 IIP - Curso 2011/12 13
public class CirculoCirculoCirculoCirculo {
…
public Circulo() { radio=50; color="negro"; centroX=100; centroY=100; }
public Circulo(double r, String c, int px, int py) {
radio=r; color=c; centroX=px; centroY=py;
}
public double getRadio() { return radio; }
public void setRadio(double nuevoRadio) { radio = nuevoRadio; }
}
14. El método main
• En Java existe un método especial denominado main que indica
el punto de inicio de ejecución del código.
public static void main (String[] args) { … }
• El programa más sencillo en Java se implementa como una clase
con un único método main.
class NombreDeClase {
public static void main (String[] args) {
…
}
20/09/2011 IIP - Curso 2011/12 14
}
}
public class PrimerPrograma {
public static void main (String[] args) {
// Iniciar el espacio para dibujar dándole nombre y dimensión
Pizarra miPizarra = new Pizarra("ESPACIO DIBUJO",300,300);
// Crear un Circulo de radio 50, amarillo, con centro en (100,100)
Circulo c1 = new Circulo(50,"amarillo",100,100);
// Añadirlo a la Pizarra y dibujarlo
miPizarra.add(c1);
…
}
}
15. Creación y uso de objetos:
operadores new y punto
• El operador new se utiliza para crear un objeto de una clase
• El operador punto (.) se emplea para seleccionar el atributo
deseado o el método específico que se desea utilizar sobre el
objeto.
public class PrimerPrograma {
public static void main (String[] args) {
20/09/2011 IIP - Curso 2011/12 15
public static void main (String[] args) {
// Iniciar el espacio para dibujar dándole nombre y dimensión
Pizarra miPizarra = new Pizarra("ESPACIO DIBUJO",300,300);
// Crear un Circulo de radio 50, amarillo, con centro en (100,100)
Circulo c1 = new Circulo(50,"amarillo",100,100);
// Añadirlo a la Pizarra y dibujarlo
miPizarra.add(c1);
…
}
}
16. Edición, compilación y ejecución en java
/** Programa de prueba de las clases Circulo, Rectangulo y Pizarra
* @author Libro IIP-PRG
* @version 2011
*/
public class PrimerPrograma {
public static void main (String[] args) {
// Iniciar el espacio para dibujar dándole nombre y dimensión
Pizarra miPizarra = new Pizarra("ESPACIO DIBUJO",300,300);
// Crear Circulo de radio 50, amarillo, con centro en (100,100)
Circulo c1 = new Circulo(50,"amarillo",100,100);
// Añadirlo a la Pizarra y dibujarlo
miPizarra.add(c1);
// Crear Rectangulo de 30 por 30, azul, con centro en (125,125)
Rectangulo r1 = new Rectangulo(30,30,"azul",125,125);
// Añadirlo a la Pizarra y dibujarlo
miPizarra.add(r1);
// Crear Rectangulo de 100 por 10, rojo, con centro en (50,155)
Rectangulo r2 = new Rectangulo(100,10,"rojo",50,155);
// Añadirlo a la Pizarra y dibujarlo
PrimerPrograma.java
20/09/2011 IIP - Curso 2011/12 16
// Añadirlo a la Pizarra y dibujarlo
miPizarra.add(r2);
}
}
javac PrimerPrograma.java
… bytecodes …
PrimerPrograma.class
java PrimerPrograma.java
17. Errores de programación
• Es posible que aparezcan errores que imposibiliten la ejecución
de un programa o que alteren su comportamiento con respecto a
lo pretendido:
– Errores de compilación: suceden cuando el programa incumple alguna de
las características de la definición del lenguaje.
• El compilador del Java es múltiple pasada, está organizado en fases que se
ejecutan sólo si se ha pasado correctamente las fases previas.
• Generalmente estos errores son sencillos de corregir gracias a la ayudaGeneralmente estos errores son sencillos de corregir gracias a la ayuda
proporcionada por el compilador y al uso de la documentación del lenguaje.
– Errores de ejecución: provocan un malfuncionamiento del programa:
• Errores en tiempo de ejecución: provocan la detención de la ejecución
• Errores lógicos: provocan que los resultados obtenidos no son correctos
aunque puede parecer que el programa funciona correctamente.
En general, los errores de ejecución pueden ser difíciles de detectar y resolver.
20/09/2011 IIP - Curso 2011/12 17
18. Ejemplos de errores de compilación
public class CirculoCirculoCirculoCirculo {
private double radio; private String color;
private int centroX, centroY;
/** crea un Circulo de radio 50 , negro y centro en (100,100) */
plubic Circulo() { radio=50; color="negro"; centroX=100; centroY=100; }
/** consulta el radio del Circulo. */
public double getRadio() { return radio; }
/** actualiza el radio del Circulo a nuevoRadio. */
public void setRadio(double nuevoRadio) { radio = nuevoRadio; }
/** decrementa el radio del Circulo. */
20/09/2011 IIP - Curso 2011/12 18
public void decrece() { radio = radio / 1.3 }
/** calcula el área del Circulo. */
public double area() { return 3.14 * radio * radio; }
/** obtiene un String con las componentes del Circulo. */
public String toString() { String res="Circulo de radio "+ radio;
res += ", color "+color+" y centro ("+centroX+","+centroY+")";
return res;
}
// más métodos
}
19. Ejemplo de error de ejecución
/** Programa de prueba de las clases Circulo, Rectangulo y Pizarra
* @author Libro IIP-PRG
* @version 2011
*/
public class PrimerPrograma {
public static void main (String[] args) {
// Iniciar el espacio para dibujar dándole nombre y dimensión
Pizarra miPizarra = null;
// Crear Circulo de radio 50, amarillo,
Circulo c1 = new Circulo(50,"amarillo",100,100);
// Añadirlo a la Pizarra y dibujarlo
20/09/2011 IIP - Curso 2011/12 19
// Añadirlo a la Pizarra y dibujarlo
miPizarra.add(c1);
// Crear Rectangulo de 30 por 30, azul, con centro en (125,125)
Rectangulo r1 = new Rectangulo(30,30,"azul",125,125);
// Añadirlo a la Pizarra y dibujarlo
miPizarra.add(r1);
// Crear Rectangulo de 100 por 10, rojo, con centro en (50,155)
Rectangulo r2 = new Rectangulo(100,10,"rojo",50,155);
// Añadirlo a la Pizarra y dibujarlo
miPizarra.add(r2);
}
}
20. Ejemplos de errores lógicos
public class CirculoCirculoCirculoCirculo {
private double radio; private String color;
private int centroX, centroY;
/** crea un Circulo de radio 50, negro y centro en (100,100) */
public Circulo() {radio=-50; color="negro"; centroX=100; centroY=100; }
/** consulta el radio del Circulo. */
public double getRadio() { return radio; }
/** actualiza el radio del Circulo a nuevoRadio. */
public void setRadio(double nuevoRadio) { radio = nuevoRadio; }
/** decrementa el radio del Circulo. */
20/09/2011 IIP - Curso 2011/12 20
public void decrece() { radio = radio * 1.3; }
/** calcula el área del Circulo. */
public double area() { return 3.14 * radio; }
/** obtiene un String con las componentes del Circulo. */
public String toString() { String res="Círculo de radio "+ radio;
res += ", color "+color+" y centro ("+centroX+","+centroY+")";
return res;
}
// más métodos
}
21. Organización de clases: packages java
• Un paquete (package) facilita la organización y uso de las clases
ya definidas y la definición y uso de nuevas.
• Un package del Java consiste en un grupo de clases que pueden
ser importadas y, tras ello, utilizadas en otras clases.
packagepackagepackagepackage libUtil;
importimportimportimport javax.swing.*;
importimportimportimport java.awt.*;
public class Pizarra extends JFrame {
• En Java, las clases se estructuran siempre en paquetes, cuando
no se indica explícitamente, están en uno especial (anonymousanonymousanonymousanonymous).
• El paquete java.lang se importa por defecto. Forman parte de
este paquete las clases Object, String y Math.
20/09/2011 IIP - Curso 2011/12 21
public class Pizarra extends JFrame {
.....
}
22. Herencia. Jerarquía de clases: Object
• En los LOO el mecanismo básico para el reuso del código es la
herencia: permite definir nuevas clases extendiendo o
restringiendo las funcionalidades de otras clases ya existentes.
• La herencia permite modelar relaciones jerárquicas entre clases:
la heredera tiene las mismas características pero tal vez,
refinadas para definirla como un caso especial.
• La librería de clases del lenguaje se encuentra organizada de• La librería de clases del lenguaje se encuentra organizada de
forma jerárquica, siendo la base de dicha jerarquía ObjectObjectObjectObject.
20/09/2011 IIP - Curso 2011/12 22
java.lang.Objectjava.lang.Objectjava.lang.Objectjava.lang.Object
||||
++++--------java.awt.Componentjava.awt.Componentjava.awt.Componentjava.awt.Component
||||
++++--------java.awt.Containerjava.awt.Containerjava.awt.Containerjava.awt.Container
||||
++++--------java.awt.Windowjava.awt.Windowjava.awt.Windowjava.awt.Window
||||
++++--------java.awt.Framejava.awt.Framejava.awt.Framejava.awt.Frame
||||
++++--------javax.swing.JFramejavax.swing.JFramejavax.swing.JFramejavax.swing.JFrame