Estructuras de Datos y Algoritmos. Primeros ejemplos de TDA

Documentos relacionados
INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

PROGRAMACION ORIENTADA A OBJETOS EN C++

Programación Orientada a Objetos (POO)

Computación Avanzada Clase 3. Mauricio Hidalgo Barrientos

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Programación orientada a objetos. Capítulo 8 Mejora de las estructuras mediante herencia

La Herencia: Teoría (1)

Conceptos de Programación Orientada a Objetos

16. Herencia Definición de herencia. 168 A. García-Beltrán y J.M. Arranz

Una Clase: define un grupo de objetos que tienen propiedades similares y se comportan de manera similar.

ESCUELA DE INFORMÁTICA

Introducción a la Programación Orientada a Objetos

UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS

Curso de Java POO: Programación orientada a objetos

Patrones de Diseño. Patrón estructural Composite. Técnicas de Programación - Curso 2007/08

Elabore la codificación de un programa para:

Clases abstractas e interfaces

Introducción a Java LSUB. 30 de enero de 2013 GSYC

Tema 4 Genericidad en Java. Programación Orientada a Objetos Curso 2013/2014

Curso Introducción JAVA Pág.: 1

Tema 7. El sistema de clases

Tema 2. Técnicas básicas de POO. Técnicas de Programación - Curso 2007/08

CLAVE ASIGNATURA REQUISITOS HORA/SEMANA CREDITOS TI-8 PROGRAMACION II 80% DE ASISTENCIA 4 6

POST REQUISITO: CATEGORIA: Obligatorio SEMESTRE: Primer Semestre 2015 HORAS POR SEMANA DEL LABORATORIO: DIAS QUE SE IMPARTE EL LABORATORIO:

Clases Abstractas e Interfaces

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso Cuatrimestre de otoño. 17 de Enero de 2011

PROYECTO FIGURAS DIAGRAMA DE FLUJO

Java Avanzado Facultad de Ingeniería. Escuela de computación.

La sintaxis básica para definir una clase es la que a continuación se muestra:

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

CLASES QUE UTILIZAN OBJETOS. RELACIÓN DE USO ENTRE CLASES JAVA. CONCEPTO DE DIAGRAMA DE CLASES. (CU00641B)

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

Necesidad de la herencia pertenencia variedad is a has a herencia variedad definir una clase modificando una o más clases añadir nuevos miembros

PHP y MySQL. Inicio: - Herencia - Palabra clave Final - Polimorfismo - Type Hinting - Abstracción de clases

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Tema: Tipos Abstractos de Datos (TAD s) en C++.

2.- PROGRAMACIÓN ORIENTADA A OBJETOS

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

Tema 3: Programación orientada a objetos (I)

Tema 3. Programación orientada a objetos en Java (Parte 1)

Forma Básica Clase Java

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Metodologías en la Ingeniería del Software Métodos Orientados a Objetos

Clases en Java. Declaración de clases en Java 02/09/16. Ing. Roberto Martínez Román - public class Alumno { private int matricula;

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

UNIVERSIDAD NACIONAL DE INGENIERÍA CENTRO DE EXTENSIÓN Y PROYECCIÓN SOCIAL

VOLUMENES DE CUERPOS GEOMETRICOS

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Introducción a la Orientación a Objetos

- Compilar y ejecutar programas en Java - Estructura básica de una clase - El comando javac - El comando java - Introducción al IDE de desarrollo

El patrón Composite (Compuesto) Propósito Componer los objetos a una estructura de jerarquía de relación partetodo.

Clases y funciones amigas: friend

Desarrollo del software imposible si las tareas tuviesen que expresarse en código máquina. Lenguajes de más alto nivel: comprensibles, manejables y

Tema 3: Genericidad en Java. Tema 3: Genericidad en Java. Objetivos y Bibliografía. Modelos de Datos Genéricos

Lenguajes de Programación Curso Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces Clases abstractas 2

Manual del Modelizador. 28 de enero de 2009

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS

1.2. Es Java un lenguaje ideal para aprender a programar? 1.4. Cuáles son las versiones y distribuciones Java y cuál usar?

Tutorial de C# Delegados y Eventos. Por: Óscar López, M.Sc.

Tema 4. Excepciones en Java

Java Inicial (20 horas)

Etapa 3.1. Implementación de la clase Operacion

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Repaso de las características más importantes de la programación Java y su adaptación a Android

Algoritmos. Intro. Prof. Raquel Torres Peralta / Gerardo Sanchez S. Unison

Unidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas

TEMA I PROGRAMACIÓN ORIENTADA A OBJETOS PROGRAMACIÓN N ORIENTADA A OBJETOS OBJETOS (I) OBJETOS (II)

GUÍA DE ESTILO EN JAVA

vusar clases previamente implementadas. vdefinir e implementar nuevas clases.

Programación orientada a objetos

Herencia e Interfaces

Metodología y Tecnología de la Programación

Ficheros y streams. Desde el punto de vista de Java, cada fichero no es más que una secuencia o flujo de bytes [stream].

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005

Programación Orientada a Objetos en C#.NET CAPÍTULO 5 H E R E N C I A. Ing. Bruno López Takeyas, M.C.

Refactoring con Netbeans

Programación orientada a objetos. Resumen de Temas Unidad 4: Sobrecarga

Examen Parcial de Programación II Ejercicio Práctico

LABORATORIO #7 PARTE I INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS

Conceptos más avanzados de Programación Orientada a Objetos

Modulo 11. Clases y Objetos en Java

Índice de contenido. Índice de contenido... i Indice de prácticas...ix Prólogo...xi Cómo utilizar este libro...xv

Programación Orientada a Objetos en Java

POLIMORFISMO "una interfaz, múltiples métodos".

SILABO. PRIMERA UNIDAD Introducción al computador y a los Sistemas Operativos

C.I.F.: B Inscrita en el Registro Mercantil de Madrid, Tomo Libro 0, Folio 135, Sección 8. Hoja M Inscripción 1ª

SÍLABO I. DATOS GENERALES. 1. Nombre de la : PROGRAMACIÓN PARA INGENIERÍA

JAVA -INTRODUCCIÓN AL LENGUAJE

EJEMPLO DE CÓDIGO JAVA BÁSICO. CREAR CLASES CON CAMPOS, CONSTRUCTOR Y MÉTODOS. LA PALABRA CLAVE THIS (CU00652B)

FUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B)

LockerRoom MANUAL DE USUARIO

4.1 - OBJETOS Y CLASES

Soluciones Ejercicios Tema 3

Las plantillas permiten definir funciones genéricas.

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

Clases e instancias. Algoritmos y Estructuras de Datos I. Clases e instancias. memoria dinámica.

PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos

Práctica de constantes, expresiones y operadores. Programación en C 1

Prácticas de Programación

Transcripción:

Estructuras de Datos y Algoritmos Primeros ejemplos de TDA

Repaso POO

Programación Orientada a Objetos Principios encapsulamiento abstracción herencia polimorfismo

POO y Java: encapsulamiento Todo está dentro de clases variables, métodos y constructores dentro de una clase deben ir solo cosas relacionadas variables y los métodos que utilizan esas variables ejemplo

POO y Java: abstracción Private: permite restringir el acceso a los campos de la clase para que se deban usar los métodos que realmente definen lo que es el TDA que se está implantando Las variables y clases estáticas permiten cambiar el estado de todos los objetos en la clase ejemplo

POO y Java: Polimorfismo Un método puede decidir dinámicamente (al momento de la ejecucuón) qué va a hacer. ejemplo

POO y Java: herencia Hay clases y hay subclases (extensiones de clase) lo que está en la clase también está en la subclase la subclase puede redefinir métodos y variables ejemplo

TDA Un tipo de dato abstracto es una colección de datos sobre los cuales se define un conjunto de operaciones Una clase de Java es ideal para implantar TDAs: clase encapsula datos y operaciones variables definen la estructura de datos métodos públicos son las operaciones que definen el TDA

Metáfora del TDA Conjunto de operaciones forman una pared forman una interfase entre los programas y la estructura de datos

Diseño de una Clase

Ilustración Creación Clase Abstracción: Qué es una esfera? Una esfera está completamente determinada por su radio todo lo demás es irrelevante o se puede calcular a base del radio operaciones: radio, circunferencia, volumen, area, diámetro.

Ilustración Creación Clase TDA Esfera: Una esfera es un número real positivo llamado radio con las siguientes operaciones: construir(r): construye una esfera de radio r radio(): devuelve el radio diametro(): devuelve el diámetro volumen(): devuelve el volumen area(): devuelve el área de la superficie circunferencia(): devuelve la circunferencia

Ilustración Creación Clase Diseño de Estructura de Datos: basta con una variable double para almacenar el radio

Ilustración Creación Clase Diseño de Algoritmos: construir(r): si (r>=0) radio = r; si no radio=0.0; radio(): devuelve radio diametro(): devuelve 2.0 * radio volumen(): devuelve 4.0 * π * radio 2 area(): devuelve (4.0 * π * radio 3 ) / 3.0 circunferencia(): devuelve 2.0 * radio * π

Ilustración Creación Clase (modificado del texto) public class Sphere { private double theradius; public Sphere(double initialradius) { if (initialradius >= 0) theradius = initialradius; else theradius = 0.0; } // end constructor public double radius() { return theradius; } // end radius public double diameter() { return 2.0 * theradius; } // end diameter public double circumference() { return Math.PI * diameter(); } // end circumference public double area() { return 4.0 * Math.PI * theradius * theradius; } // end area public double volume() { return (4.0*Math.PI * Math.pow(theRadius, 3.0)) / 3.0; } // end volume } // end Sphere

Otra Clase Clase esfera con color No reinvente la rueda!

Creación Otra Clase Abstracción: Qué es una esfera con color? Ya creamos una esfera Es una esfera con un atributo de color operaciones: crear, color y todas las operaciones de la esfera.

Creación Otra Clase TDA Esfera con color: Una esfera con color añade a la esfera un atributo color y las siguientes operaciones: construir(c,r): construye una esfera de radio r y color c color(): devuelve el color

Creación Otra Clase Diseño de Estructura de Datos: basta con una variable Color llamada color para almacenar el color

Creación Otra Clase Diseño de Algoritmos: construir(c,r): construir(r); color = c; color(): devuelve color (note que construir(r) se refiere a la operación construir del TDA esfera)

Creación Otra Clase (modificado del texto) import java.awt.color; public class ColoredSphere extends Sphere { private Color color; public ColoredSphere(Color c, double initialradius) { super(initialradius); color = c; } // end constructor public Color getcolor() { // Returns the color of the sphere. // Precondition: c is the desired color. // Postcondition: None. return color; } // end getcolor } // end ColoredSphere