Introducción y conceptos de POO

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

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

Aplicaciones de Escritorio

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

Java en 2 horas. Rodrigo Santamaría

ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO ESCUELA DE INGENIERIA EN SISTEMAS

Curso de Java POO: Programación orientada a objetos

PROGRAMACION ORIENTADA A OBJETOS EN C++

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

Derechos de Acceso: COMPOSICION

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

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

Programación Orientada a Objetos en 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.

Introducción al lenguaje de programación java

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

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

Introducción a la Programación Orientada a Objetos

HERENCIA Y TIPOS. Articulo. Video Audio Altavoces. Amplificador

Computación Avanzada Clase 3. Mauricio Hidalgo Barrientos

Universidad Salesiana de Bolivia

Programación Orientada a Objetos

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

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

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

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

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

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

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

2.- PROGRAMACIÓN ORIENTADA A OBJETOS

Diseño Basado en Componentes. Curso 2008 / 09

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Modelo de Objetos Distribuidos

Programación orientada a objetos

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }


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

Curso de Java POO: Programación orientada a objetos

Programación Orientada a Objetos (POO)

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

Introducción a la Orientación a Objetos

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

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

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

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

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

La Herencia: Teoría (1)

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

Lenguaje de programación con JAVA

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

Aquí se declaran los. Aquí se declaran los métodos de la clase. *Atributos de la clase

Tema 7: Polimorfismo. Índice

Tema 6. Reutilización de código. Programación Programación - Tema 6: Reutilización de código

PROYECTO FIGURAS DIAGRAMA DE FLUJO

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

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

Prácticas de Programación

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

INICIACIÓN A LA PROGRAMACIÓN 1ª parte

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

U.T.4.EL ENTORNO DE DESARROLLO

Tema: Introducción a Java y Netbeans

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

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

Guía - Taller # 2 (JAVA)

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

Arquitectura y Lenguaje Java

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

Estructuras de Datos y Algoritmos. Primeros ejemplos de TDA

Modulo 11. Clases y Objetos en Java

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

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

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

Tema 9: Paquetes. Índice

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

Sistemas Distribuidos Java RMI (Remote Method Invocation) Alberto Lafuente Mikel Larrea Dpto. ATC, UPV/EHU

Java Inicial (20 horas)

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

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

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

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

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

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


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

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de 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

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.

1. Cuántas sentencias hay en la secuencia principal del siguiente programa?

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

Programación Interactiva Introducción a Java. Escuela de Ingeniería de Sistemas y Computación Facultad de Ingeniería Universidad del Valle

Bloque III. Herramientas

Resultado de Aprendizaje:

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

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

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

02 Lenguajes de programación y compiladores

Transcripción:

Fernández Universidad Autónoma de Madrid 20 de febrero de 2009 Introducción Introducción En qué consiste la Programación Orientada a Objetos? Vocabulario básico Ejemplo sencillo

En qué consiste la POO? 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) Vocabulario 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 Manipulación de matrices cuadradas Calcular la traza Calcular el determinante Transponer Invertir Programación estructurada 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 Objeto matriz Estado/propiedades: Dimensiones n n Valores M ij Comportamiento/Métodos: calculartraza calculardeterminante transponer invertir Los algoritmos y los datos están unidos. Los programas son apendices de los datos Lenguajes y paradigmas de programacion Lenguajes de programacion Dependientes de la maquina: Codigo o lenguaje maquina Ensamblador Independientes de la maquina: Lenguajes de programacion (alto nivel)

Paradigmas de programacion Paradigmas de programacion Programacion imperativa Programacion estucturada Abstraccion de datos Programacion orientada a objetos Programacion estructurada 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 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 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 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 Programacion orientada a objetos 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 Conceptos de POO Objeto Datos Metodos Clases Mensajes Herencia Polimorfismo, sobrecarga y ligadura dinamica Encapsulacion Resumen de la clase anterior 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 HelloWorld.java public class HelloWorld { public static void main (String[] args) { 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) Primer ejemplo 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 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;... La clase Persona (cont.) 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 PersonaMain.java public class PersonaMain { public static void main (String[] args) { Persona p = new Persona ("Carlos", 23); p.dardescripcion(); Compilar y ejecutar 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 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 + "."); Un main para Profesor ProfesorMain.java public class ProfesorMain { public static void main (String[] args) { 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 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 + "."); Un main para Estudiante EstudianteMain.java public class EstudianteMain { public static void main (String[] args) { 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 PersonasMain.java public class PersonasMain { public static void main (String[] args) { 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(); Qué pasará? Un caso curioso 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.

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 { public static void main (String[] args) { 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.