Programación Orientada a Objetos

Slides:



Advertisements
Presentaciones similares
METODOS DE PROGRAMACION I Ing. Vania Flores Pinto.
Advertisements

UTFSM-Electrónica 1 Fundamentos de Java Agustín J. González Programación de Sistemas: ELO-330.
Conferencia 1: Principios de la Tecnología de Objetos Conceptos básicos de la Orientación a Objetos.
Conferencia 3: Paradigmas de la Orientación a Objetos Tema 1:Principios de la Tecnología de Objetos.
Lenguaje de Programacio Python Presentado por Jubel Crispán Materia Informatica Educativa.
PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento y constructores.
PROGRAMACIÓN ORIENTADA A OBJETOS SEGUNDA UNIDAD: “CLASES, OBJETOS Y MÉTODOS” IRVING YAIR SALAS CHÁVEZ ING. EN SISTEMAS COMPUTACIONALES - ITSLP.
Programación orientada a objetos (p.o.o)
Herencia Multiple en Java
Clases y Objetos en Java
Clases y Objetos.
Taller de Java Universidad de los Andes
Conceptos ELO329: Diseño y Programación Orientados a Objetos
PROGRAMACIÓN ORIENTADA A OBJETOS
Programación Orientada
Clases y Objetos.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Polimorfismo subtipado
Herencia Implementación en Java.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Programación Avanzada
Métodos y parámetros.
Fundamentos de la programación orientada a objetos
Algunas Características de C++ no presentes en C
Polimorfismo y Métodos Virtuales
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Algunas Características de C++ no presentes en C
Clases y Objetos en Java
Polimorfismo en C++, ligado dinámico y Métodos Virtuales
Funciones y Clases Amigas (Friend)‏ Miembros Estáticos (Static)
Programación orientada a objetos
Algunas Características de C++ no presentes en C
Clases y Objetos en Java
Definición y Conversión de datos
Herencia en C#.
ESTRUCTURA DE UN PROGRAMA SIMPLE EN JAVA
Programación Orientada a Objetos
Ingeniero en Computación José Alfredo Cobián Campos
Fundamentos básicos del lenguaje C#. Parte 1 Introducción a C#
Programación Orientada a Objetos
Conceptos de Objetos, Clases y Otros Modelo Conceptual
Java – programación orientada a objetos programación ii – iee
Universidad Nacional de Colombia - Leguajes de Programación
Características Generales y Entornos de Desarrollo
Fundamentos de la Programación I
Tema 5 Representación y Técnicas de Diseño de Algoritmos
Conferencia 2 TDA Lista lineal.
Estructuras de Datos Dinámicas
Estructuras de Datos Aun en problemas muy simples surge la necesidad de agrupar valores elementales de alguna manera. Cuando representamos una caja de.
Conceptos ELO329: Diseño y Programación Orientados a Objetos
Herencia en C++ Agustín J. González ELO329.
Curso de Programación Estructurada
Tema 5: Matrices Antonio J. Sierra.
Informática Ingeniería en Electrónica y Automática Industrial
Diagrama de componentes
Sonia Rueda Herencia y Polimorfismo
Polimorfismo en C++, ligado dinámico y Métodos Virtuales
Herencia en C++ Agustín J. González ELO329.
Herencia en C++ Agustín J. González ELO329.
Polimorfismo en C++, ligado dinámico y Métodos Virtuales
Funciones y Clases Amigas (Friend)‏ Miembros Estáticos (Static)
Programación Orientada a Objetos
Funciones y Clases Amigas (Friend)‏ Miembros Estáticos (Static)
Unida III: Análisis y Diseño de Sistemas Orientado a Objetos
Polimorfismo en C++ y Métodos Virtuales
Funciones y Clases Amigas (Friend)‏ Miembros Estáticos (Static)
Clases y Objetos en Java
FUNDAMENTOS DE LA PROGRAMACION ORIENTADA A OBJETOS
Transcripción de la presentación:

Programación Orientada a Objetos AYUDANTÍA 3 Programación Orientada a Objetos

Conceptos Generales Modularización: Organizar el programa en grupos de subprogramas y datos lógicamente relacionados. Subprogramas compilados de forma independiente . Encapsulación: Agrupar subprogramas junto a los datos que manipular. Fácil mantención y reutilización. Escalabilidad TDA Modularización: Lema de “Divide y Vencerás”. De este modo, en caso de que haya alguna falla, se puede limitar a una sección de código o a una función y no al programa entero. Escalabilidad: Posibilidad de ampliar sin mayor problemas. Tipo de Datos Abstractos: Incluye la representación de un tipo de dato y las operaciones asociadas. Problema reutilización: TDA requieren ser adaptados, lo que implica entender los detalles de la implementación y se debe establecer relaciones entre distintos TDAs. Solución: Herencia.

Orientación a Objetos Objeto: Instancia de una clase. Niveles: Puros: Smalltalk, Eiffel, Ruby. No puros: Java, Python. Extendidos a OO: C++, Fortran 2003, Perl. Herencia: Simple o múltiple. Objeto: Corresponde a una abstracción del mundo real. Puede alterar su estado a causa del procesamiento de mensajes. Puros: Todo es un objeto. No puros: Diseñados para POO, pero mantienen caracteristicas de otros paradigmas. Extendidos: Siguen otro paradigma pero se extendieron. Java tiene herencia simple e implementa de una u otra forma la múltiple con el uso de interfaces (tarea 3).

Objetos Estado y comportamiento. Ejemplo: LinkedList <Animal> Animales = new LinkedList <Animal> Métodos: add(); addFirst(); addLast(); remove(i); get(i); Los objetos interactúan intercambiando: mensajes. Estado: Se mantiene con variables Comportamiento: Se implementan mediante métodos (así encapsula su estado y controla la manipulación de este). Mensaje: -id objeto -id método -parámetros. No es necesario que los objetos estén en el mismo proceso.

Clases y Herencia Clases: Representa un conjunto de objetos con características comunes. Puede tener variables de clase como métodos de clase. Comunes para todos. Se pueden instanciar de forma estática, dinámica de stack o dinámica de heap. Herencia: Reusar TDAs sin alterarlos. Jerarquía. Sobreescritura (Override). Es como una plantilla de objetos, onda como está definido el objeto y que cosas puede hacer, pero no es un objeto hasta que se instancia (se le asigna memoria). Es como una estructura. Los objetos se crean en el heap y su destrucción puede ser explícita (delete en C++) o implícita (como en Java). Reutilización de TDAs se hace extendiendo la funcionalidad del TDA, así permite adaptarlo a condiciones particulares. Padre (Superclase) Hijo (Subclase)

Interfaces Polimorfismo: Permite tratar a objetos como si fueran del tipo de la superclase. Interfaz: Define un protocolo para la interacción entre objetos sin conocer su clase. Ventajas: Capturan similitudes entre clases no relacionadas; permite declarar métodos que se espera que implementen las clases; establece un contrato de programación. Polimorfismo: Implementan los mismos métodos pero cambian su comportamiento. Override: Reimplementar algún método heredado. Interfaz: Una o más clases pueden usar la misma interfaz. Si implementa una interfaz, debe implementar todos sus métodos. Solo encabezado, no definición

Java Sun Microsystems. Sintaxis similar a la de C++ (¿En volah?) Java Virtual Machine JSE: Java Standard Edition. JME: Java Micro Edition. JEE: Java Enterprise Edition. Orientado a objetos Portable, multiplataforma. Ejecución: Se inicia la JVM indicando el nombre de la clase que tiene el metodo main (que no se instancia, es el encargado de instanciar los objetos). Applet: “Aplicacioncita”, normalmente utilizada via Web, no ejecuta main.

Nombres y Codificación Se agrupan en paquetes Para utilizarlas se importa el espacio de nombre. Declaración: package nombre; UTF-16. Permite mayor cantidad de caracteres. (ñ, á, Ä). Los paquetes se comportan como espacios de nombres (namespace std en C++). Para utilizar una clase A desde B, se importa el espacio de nombre al que pertenece A. Codificación utilizada por Java, utiliza una cantidad variable de bits para representar un caractér. También interpreta ASCII (7 bits)

Datos Primitivos y Declaración de Variables Igual que en C. (excepto short y byte). Inicialización automática. (0, false, null). [modificador] tipo nombre. Visibilidad limitada. Inicialización al alcanzar su declaración. public: la clase puede ser accedida por clases de cualquier paquete. abstract: La clase no puede ser instanciada. final: La clase no puede ser derivada. Modificador opcional: static, final, public, private. Variables locales de un método, constructor o inicializador no se inicializan.

Conversión, Atributos, Control Implícita: (automática). int float (no al revés) s = “hola” + 123; Explícita: Se denomnina cast. (double), (long). Integer.parseInt(“123”); Cada objeto tiene sus propias instancias Privado, Publico, Protegido, Abstracto y Estático. Protegido: Accesibles por una subclase. Público: Accesibles por cualquier clase. Cada objeto tiene su propio estado, si se cambia no afecta a los otros objetos. Si tinene un campo static, todo slos objetos comparten una única copia. Privado: priate, solo accesiblees por la propia clase. Static: La variable se comparte entre objetos. Abstracto: La clase no puede ser instanciada.

Creación de objetos Declaración de la clase no genera un objeto, sino una referencia. Si no se inicializa, su valor por defecto es NULL. Al usar el operador new, se crea el objeto. Falta de memoria: Garbage Collector. Si aún falta: OutOfMemoryError. Constructores. (inicializar variables).