Introducción. Introducción y conceptos de POO. En qué consiste la POO? Vocabulario. Definiciones

Documentos relacionados
Conceptos de Programación Orientada a Objetos

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

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

Aplicaciones de Escritorio

PROGRAMACION ORIENTADA A OBJETOS EN C++

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

Curso de Java POO: Programación orientada a objetos

Curso Fundamentos de Informática Lección 7. Programación Orientada a Objetos

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

Java en 2 horas. Rodrigo Santamaría

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

Derechos de Acceso: COMPOSICION

ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO ESCUELA DE INGENIERIA EN SISTEMAS

HERENCIA Y TIPOS. Articulo. Video Audio Altavoces. Amplificador

INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11

Universidad Salesiana de Bolivia

Programación Orientada a Objetos

Computación Avanzada Clase 3. Mauricio Hidalgo Barrientos

Programación Orientada a Objetos en Java

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

Introducción a la Programación Orientada a Objetos

PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas

Diseño Basado en Componentes. Curso 2008 / 09

Introducción al lenguaje de programación java

El lenguaje de programación Java


Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta.

Tema 2 Introducción a la Programación en C.

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

Introducción a la Orientación a Objetos

Universidad Central de Bayamón COLEGIO DE DESARROLLO EMPRESARIAL Y TECNOLOGIA. Número Estudiante:

La Herencia: Teoría (1)

Práctica 2: Java Remote Method Invocation (RMI)

GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos

Curso de Java POO: Programación orientada a objetos

Programación Orientada a Objetos (POO)

2.- PROGRAMACIÓN ORIENTADA A OBJETOS

Programación orientada a objetos

Clases y objetos. Objeto Instancia de una clase: Unidad atómica que encapsula estado y comportamiento.

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

Estructuras de Datos y Algoritmos. Primeros ejemplos de TDA

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

Interfaces y Clases Internas. ELO329: Diseño y Programación Orientados a Objetos

Lenguaje de programación con JAVA

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Fundamentos Programación Orientada a Objetos ( POO ) - Parte I Desarrollo de Software

Java en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría

Java Inicial (20 horas)

Herencia. Hay clases que comparten gran parte de sus características.

Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

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

INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación

Guía práctica de estudio 04: Clases y objetos

Resultado de Aprendizaje:

Estructura de Datos y de la Información. Tema 1: Introducción a los tipos abstractos de datos

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

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

Modelo de Objetos Distribuidos

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

Introducción a la Programación. Programación I

Repaso desarrollo de software Parte #1. Jorge Iván Meza Martínez

Introducción a la programación orientada a objetos

Por ejemplo, considerando la jerarquía de herencia de Figuras Geométricas de la siguiente figura, es posible hacer uso del concepto de polimorfismo.

Modulo 11. Clases y Objetos en Java

Forma Básica Clase Java

Prácticas de Programación

INICIACIÓN A LA PROGRAMACIÓN 1ª parte

1. Computadores y programación

INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO IBEROTEC SEMESTRE ACADÉMICO: 2014-II SÍLABO

Lección 2: Creando una Aplicación en Java. 1. Estructura del archivo de una clase. 3. Definiendo clases fundamentos

Clases. Java: Clases y Objetos. Clases. Clases. Modificadores de clase. Definición de una clase. Cada objeto es un ejemplar de una clase

Introducción a la programación

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

Introducción... 1 Qué es Java?... 1 Compilando a Bytecode... 1 Usando jgrasp Para Hacer el Trabajo Sucio... 5 El Entorno de jgrasp...

Arquitectura y Lenguaje Java

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

Aprender a desarrollar con JavaScript

Tema 7: Polimorfismo. Índice

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J.

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

Programación Orientada a Objetos con Java. Elementos Básicos del Lenguaje Java. Creación de un objeto. Creación de un objeto. Creación de un objeto

U.T.4.EL ENTORNO DE DESARROLLO

Clases Abstractas e Interfaces

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

Introducción a Java LSUB. 15 de enero de 2015 GSYC

Descripción y Contenido del Curso. Programación C++ Capacity Academy.

Programación en Java. Temario. David Contreras Bárcena

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

Evolución de la Programación Orientada a Objetos

Tema: Introducción a Java y Netbeans

Tema 7.- Fundamentos de la Programación Orientada a Objetos

TALLER FINAL DE ALGORITMO Y PROGRAMACION ORIENTADA A OBJETOS I (POOI) PRESENTADO POR: GUSTAVO ENRRIQUE SINNING FUENTES. VIRTOR FABIAN RIZO.

GUÍA DE ESTILO EN JAVA

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS

Python: Programación Orientada. JESSE PADILLA AGUDELO Ingeniero Electrónico

PRÁCTICA No 4 POO Encapsulación. El alumno conocerá los principios de la encapsulación, y el uso de constructores para la inicialización de datos

Programación Orientada a Objetos con Java. Elementos Básicos del Lenguaje Java. Relación entre clases. Ejemplo de Clase: Punto !

Transcripción:

Introducción Fernández Universidad Autónoma de Madrid 20 de febrero de 2009 Introducción En qué consiste la Programación Orientada a Objetos? Vocabulario básico Ejemplo sencillo En qué consiste la POO? Vocabulario Funcionalidad enlatada Módulos que realizan unas tareas específicas de manera totalmente opaca (encapsulación) Ejemplo: la fábrica de ordenadores Todo es un objeto Los objetos tienen unas propiedades (estado) y pueden realizar determinadas acciones (metodos) Definiciones Clase: Plantilla a partir de la cual se crean los objetos (tipo) Objeto: Ejemplar de la clase Encapsulación: Ocultación de la información Métodos: Procedimientos que operan sobre los datos de un objeto Estado: Valores o variables internas del objeto Importante Sólo se manipula un objeto a través de sus métodos, la implementacion es una caja negra. Esta es la clave de la encapsulación

Un ejemplo sencillo Programación estructurada Manipulación de matrices cuadradas Calcular la traza Calcular el determinante Transponer Invertir Datos Tipo matriz Algoritmos double traza (matriz) double determinante (matriz) matriz transpuesta (matriz) matriz inversa (matriz) Los algoritmos y los datos están separados Programación orientada a objetos Lenguajes y paradigmas de programacion Objeto matriz Estado/propiedades: Dimensiones n n Valores M ij Comportamiento/Métodos: calculartraza calculardeterminante transponer invertir Lenguajes de programacion Dependientes de la maquina: Codigo o lenguaje maquina Ensamblador Independientes de la maquina: Lenguajes de programacion (alto nivel) Los algoritmos y los datos están unidos. Los programas son apendices de los datos

Paradigmas de programacion Programacion estructurada Paradigmas de programacion Programacion imperativa Programacion estucturada Abstraccion de datos Programacion orientada a objetos Programacion estructurada Abstraccion de las operaciones Modulos o funciones Interfaz: entrada, salida, funcionalidad Implementacion: datos locales, instrucciones Ventajas Facilita el desarrollo Facilita el mantenimiento Favorece la reutilizacion Abstraccion de los datos Programacion orientada a objetos Abstraccion de los datos (TAD) Los datos se agrupan en estructuras mas complejas Las operaciones (funciones) se asocian a los tipos de datos Se tiene modularidad tanto en las operaciones como en los datos Ventajas Mayor facilidad para ampliar el codigo (extensibilidad) Encapsulacion tambien para los datos Modularidad tambien en los datos Codigo mas facil de mantener, desarrollar y reutilizar Programacion orientada a objetos Ventajas Unimos los modulos de datos y las operaciones Objeto: estructura de datos que incorpora comportamiento OBJETO = DATOS + METODOS Mayor capacidad de reutilizacion, mantenimiento, etc., ya que la encapsulacion es mayor Lenguaje mas potente (herencia y polimorfismo) Mas facilidad para reflejar conceptos de problemas reales (Objetos!) Mas facil de programar (??!)

Programacion orientada a objetos Programacion orientada a objetos Resumen OBJETO = DATOS + METODOS ENCAPSULACION = acceder a los datos de un objeto solo a traves de sus metodos El comportamiento de un objeto se define mediante los metodos de ese objeto que se pueden invocar El estado de un objeto incluye informacion o datos del mismo Campos de aplicacion Bases de datos Interfaces graficas de usuario Sistemas cliente-servidor Lenguajes de POO Simula Smalltalk C++ Object Pascal Java Python Elementos de la POO Resumen de la clase anterior Conceptos de POO Objeto Datos Metodos Clases Mensajes Herencia Polimorfismo, sobrecarga y ligadura dinamica Encapsulacion Conceptos de básicos de POO OBJETO = DATOS + METODOS Encapsulación: Los objetos tienen una interfaz pública y una implementación privada Herencia: Las subclases especializan a sus padres Las clases son moldes o patrones para los objetos Cada objeto es una instancia de su clase Polimorfismo??!!

Primer ejemplo Primer ejemplo HelloWorld.java public class HelloWorld { System.out.println("Hello World!!"); 1 Todo el código está dentro de una clase 2 Por convención los nombres de las clases en mayúsculas (y en CamelCase ) 3 Cada clase va en un fichero (con el mismo nombre que la clase y extensión.java) Cómo compilar javac HelloWorld.java Genera el fichero HelloWorld.class Bytecodes de java Cómo ejecutar java HelloWorld Nombre de la clase sin extensión La JVM interpreta los bytecodes Hello World!! La clase Persona La clase Persona (cont.) Persona.java public class Persona { // Campos o datos: private String nombre; private int edad; // Constructor: public Persona (String n, int e) { nombre = n; edad = e;... Persona.java... // Metodos: public void setnombre (String n) { nombre = n; public void setedad (int e) { edad = e; public String getnombre() { return nombre; public int getedad() { return edad; public void dardescripcion() { System.out.println("Hola, me llamo " + nombre + " y tengo " + edad + " anios.");

Un main para Persona Compilar y ejecutar PersonaMain.java public class PersonaMain { Persona p = new Persona ("Carlos", 23); p.dardescripcion(); Compilamos javac PersonaMain.java Genera los ficheros PersonaMain.class y Persona.class Bytecodes de java Ejecutamos java PersonaMain Hola, me llamo Carlos y tengo 23 anios. La clase Profesor Un main para Profesor Profesor.java public class Profesor extends Persona { private String asignatura; public Profesor (String n, int e, String a) { super(n,e); asignatura=a; public void setasignatura (String a) { asignatura = a; public String getasignatura() { return asignatura; public void dardescripcion() { super.dardescripcion(); System.out.println("Soy profesor de la asignatura " + asignatura + "."); ProfesorMain.java public class ProfesorMain { Profesor prof = new Profesor ("Juan", 34, "POO"); prof.dardescripcion(); Compilamos y ejecutamos javac ProfesorMain.java java ProfesorMain Hola, me llamo Juan y tengo 34 anios. Soy profesor de la asignatura POO.

La clase Estudiante Un main para Estudiante Estudiante.java public class Estudiante extends Persona { private float nota; public Estudiante (String n, int e, float nn) { super(n,e); nota = nn; public void setnota (float nn) { nota = nn; public float getnota() { return nota; public void dardescripcion() { super.dardescripcion(); System.out.println("Soy estudiante y he sacado un " + nota + "."); EstudianteMain.java public class EstudianteMain { Estudiante e = new Estudiante ("Carmen", 20, 7.5f); e.dardescripcion(); Compilamos y ejecutamos javac EstudianteMain.java java EstudianteMain Hola, me llamo Carmen y tengo 20 anios. Soy estudiante y he sacado un 7.5. Un caso curioso Un caso curioso PersonasMain.java public class PersonasMain { Persona x; Profesor prof = new Profesor ("Juan", 34, "POO"); Estudiante e = new Estudiante ("Carmen", 20, 7.5f); x = prof; x.dardescripcion(); System.out.println(); x = e; x.dardescripcion(); Compilamos y ejecutamos javac PersonasMain.java java PersonasMain Hola, me llamo Juan y tengo 34 anios. Soy profesor de la asignatura POO. Hola, me llamo Carmen y tengo 20 anios. Soy estudiante y he sacado un 7.5. Qué pasará?

La clase ProfesorConEstudiante ProfesorConEstudiante.java public class ProfesorConEstudiante extends Profesor { private Estudiante estudiante; public ProfesorConEstudiante (String n, int e, String a, Estudiante estu) { super(n,e,a); estudiante = estu; public void ponernota(float nota) { estudiante.setnota(nota); public void dardescripcion() { super.dardescripcion(); System.out.println("Tengo como estudiante a " + estudiante.getnombre() + "."); Un main para ProfesorConEstudiante ProfesorConEstudianteMain.java public class ProfesorConEstudianteMain { Estudiante e = new Estudiante ("Carmen", 20, 7.5f); e.dardescripcion(); System.out.println(); ProfesorConEstudiante pce = new ProfesorConEstudiante ("Alberto", 32, "POO", e); pce.dardescripcion(); System.out.println(); pce.ponernota(9.2f); e.dardescripcion(); ProfesorConEstudiante Compilamos y ejecutamos javac ProfesorConEstudianteMain.java java ProfesorConEstudianteMain Hola, me llamo Carmen y tengo 20 anios. Soy estudiante y he sacado un 7.5. Hola, me llamo Alberto y tengo 32 anios. Soy profesor de la asignatura POO. Tengo como estudiante a Carmen. Hola, me llamo Carmen y tengo 20 anios. Soy estudiante y he sacado un 9.2.