• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Programación Orientada a Objetos
 

Programación Orientada a Objetos

on

  • 18,622 views

Tema: Arboles Binarios

Tema: Arboles Binarios
Unidad Curricular: Desarrollo de Software
Dirigido a: PNFSI Misión Sucre

Statistics

Views

Total Views
18,622
Views on SlideShare
18,169
Embed Views
453

Actions

Likes
5
Downloads
396
Comments
0

7 Embeds 453

http://edublogteletriunfador.wordpress.com 359
http://www.slideshare.net 88
url_unknown 2
http://clasesv25.mdl.gnomio.com 1
http://translate.googleusercontent.com 1
https://twitter.com 1
http://webcache.googleusercontent.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Programación Orientada a Objetos Programación Orientada a Objetos Presentation Transcript

    • PNFSI Asignatura: Desarrollo de Software Tema 1: Programación Orientada a Objetos Ing. Zamantha González Abril, 2008
    • Contenido Conceptos básicos • Clase • Objeto o instancia • Atributos • Métodos • Constructores • Encapsulamiento
    • Historia: OO • OO (Orientación a Objetos): desarrollo y modelización de software que facilita la construcción de sistemas complejos a partir de componentes. • Se modela el mundo real tan fielmente como sea posible. • Al comparar la OO y las Tradicionales (Procedimentales estructuradas) hay una reducción de código como mínimo del 40%.
    • Historia: OO • Las 4 Propiedades más fuertes de OO son: – Abstracción: Vista externa del Objeto, con el fin de separar el Acceso a los Objetos, de su implementación interna. – Encapsulación: Propiedad que asegura que el contenido de la información de un objeto está oculto al mundo exterior. – Modularidad: Permite dividir una aplicación en partes más pequeñas llamadas módulos, tan independientes como sea posible. – Jerarquía: Ordena la Abstracción con la Herencia.
    • Paradigma OO Resultado de la evolución natural de la programación, devenido en metodología de programación de propósito general que simula la forma en que el hombre trabaja y cuya idea básica es que percibimos al mundo que nos rodea como una variedad de objetos.
    • Desarrollo Tradicional Frente al OO Tradicional OO Diseño Descendente Ascendente Lenguajes Estructurados OO Se Centra en Operaciones Los Objetos Reales Idea Descomponer Reflejar el mundo Clave una Aplicación real mediante el en programas ensamblado de más pequeños clases
    • Ejemplo: Enviar flores a una persona de otra ciudad
    • Conceptos básicos Un Objeto es una entidad con una estructura de datos interna bien definida, junto a un conjunto de acciones que describen su comportamiento. Es la unidad básica de la POO. Ejemplo: María la florista Perla la florista José el florista
    • Conceptos básicos •Un objeto o instancia es una variable concreta de una clase con su propia copia de variables miembros. Un objeto tiene estado, comportamiento e identidad. • Tiene datos internos que le dan el estado. • Tiene métodos para producir comportamiento. • Cada objeto tiene una dirección única en memoria lo que le da identidad.
    • Conceptos básicos Mensaje: Forma de solicitar una acción a un objeto. Cliente Servidor Mensaje Emisor Receptor Objeto, Objeto Usuario, Aplicación
    • Conceptos básicos Una clase es: • una categoría de objetos con características comunes. • una plantilla que se usa para crear múltiples objetos con características similares. Las clases engloban las características de un conjunto particular de objetos. Cuando se escribe un programa en un lenguaje orientado a objetos no se definen objetos individuales sino clases de objetos. Ejemplo: Florista
    • Conceptos básicos • Las clases son tipos de variables o tipos de datos creados por el usuario. • Se puede extender un lenguaje de programación adicionando nuevos tipos de datos específicos acorde a las necesidades del problema a resolver. • Las clases pueden estar formadas por variables miembros y funciones miembros.
    • Implementación // En C++ class Circulo { }; class TCirculo { }; Buenas Prácticas: • Nombrar las clases utilizando la notación Camell, comenzando o no con la letra T para indicar que es un tipo de datos. • Colocar la apertura de ambiente en la misma línea o en una línea aparte.
    • Implementación // Sintaxis en C++ class <nombre de la clase> { private: [lista de miembros] protected: [lista de miembros] public: [lista de miembros] };
    • Conceptos básicos Cada clase puede estar compuesta por: • Atributos: definen el estado de la clase. • atributos pasivos, • variables miembros, • campos. • Métodos: definen el comportamiento de la clase. • funciones miembros, • atributos activos, • operaciones, • comportamiento, • responsabilidades.
    • Notación UML para Ejemplos: representar una clase Florista Nombre Variables Miembros Salario Edad Funciones miembros Vender flores Enviar flores a otra ciudad Bombillo Consumo Variables Miembros Enceder Apagar Funciones miembros Aumentar Brillo Disminuir brillo
    • Atributos o variables miembros Los atributos son características, propiedades que hacen que un objeto se diferencie del otro. Pueden determinar apariencia, cualidades, estado, etc. Los atributos se definen por variables. Para cada variable se define su tipo. En C++ es posible definir: • Variables o atributos de clase • Variables o atributos de objeto o de instancia
    • Sintaxis //en C++ Tipo nombreAtributo;
    • Variables de clases • Define un atributo para toda la clase. • Aplica para la clase y para todas sus instancias. • Sólo almacena una copia con independencia de la cantidad de objetos. • Existe aunque no se haya creado ningún objeto de la clase. • Debe ser definida como static.
    • Variables de objetos o de instancia • Define un atributo de un objeto en particular. • Cada instancia u objeto almacena su propia copia de variables de objeto. • Los atributos son por defecto de objetos o de instancia a menos que se califiquen como static (de clase).
    • Ejemplos // en C++ class Circulo { static int numCirculos = 0; double x, y, r; }; Las variables de clases son buenas para la comunicación entre diferentes objetos de la clase o para llevar un registro de información relativa a toda la clase. Ejemplo: el número total de círculos creados.
    • Ejemplos // en C++ class Fecha { int d; int m; int a; static TDate defaultDate; }; Buenas prácticas Definir cada atributo en una línea independiente aunque sean del mismo tipo. Hace el código más legible y permite comentar mejor.
    • Métodos o funciones miembros El comportamiento de una clase se implementa a través de sus métodos o funciones miembros. Una clase o un objeto puede llamar métodos de otras clases para: • Indicar a otro objeto que cambie • Pedir a otro objeto que haga algo Es posible definir: • Métodos de instancia: aplican a cada objeto de la clase.
    • Métodos de clase • Están disponibles para cualquier instancia de la clase y para otras clases. • No se requiere una instancia de la clase para poder invocar a un método de clase. • Para definir los métodos de clase hay que anteponer a la definición del método la cláusula static.
    • Tipos de funciones miembros • Funciones (procedimientos) • Constructores • Destructores En C++ todas son funciones, no existen procedimientos.
    • Definiendo métodos • Cada objeto puede satisfacer sólo ciertos requerimientos. • Los requerimientos que puede resolver el objeto están definidos por su interfaz y los tipos que hay en ella. • Cuando se hace un requerimiento a un objeto un método es llamado.
    • Definiendo métodos La definición básica de un método cuenta de: • Tipo de retorno (tipo de objeto o tipo primitivo) • Nombre del método • Lista de parámetros • Cuerpo del método Las tres primeras partes se conocen como interfaz o firma del método.
    • Definiendo clases En C++: • es posible definir variables y funciones que no pertenezcan a una clase. • las clases se declaran en un fichero <nombre>.h y se implementan sus métodos en un fichero <nombre>.cpp a menos que la función sea inline.
    • Ejemplo en C++ // en C++, fichero.h // en C++, fichero.h class Date { class Date { int d; int d; public: public: //por defecto es inline int D(); int D(){return d;} }; }; //En fichero.cpp inline int Date::D() { return d; } //otra variante int Date::D() { return d; }
    • Constructor Es un tipo especial de método utilizado para crear objetos o instancias de una clase. Características • Su nombre coincide con el de la clase. • No tiene valor de retorno (ni void) • Una clase puede tener varios constructores (ejemplo típico de sobrecarga de funciones), pero la lista de parámetros tiene que variar. • Los constructores deben diferir en tipo y/o cantidad de parámetro.
    • Constructor Características • Si la clase tiene un constructor, todos los objetos de la clase deben ser inicializados invocándolo. • Si el constructor tiene parámetros al invocarlo hay que suministrarlos. • De no definirse un constructor para la clase, el compilador genera un constructor por defecto. • El constructor por defecto, no tiene parámetros e inicializa cada atributo con el valor nulo por defecto. • Si un constructor no tiene parámetros se considera el constructor por defecto.
    • Constructores en C++ • Existe un tipo especial de constructor llamado constructor copia, cuyo parámetro es una referencia a una instancia de la clase. • El constructor copia debe copiar cada miembro de la clase. • No hay constructores virtuales ya que al construir se debe conocer el tipo exacto del objeto.
    • Encapsulamiento Es una de las propiedades de la POO que define que el objeto debe ser una cápsula o caja negra que encapsula su funcionamiento y estructura interna. Sólo se ven desde afuera los miembros (la interfaz para el caso de los métodos) con visibilidad pública. Buenas Prácticas: los atributos deben ser privados o protegidos y se debe acceder a ellos a través de los métodos que pueden ser públicos.
    • Encapsulamiento INTERFAZ de la CLASE CLASE CLASE Datos y Funciones Miembros Privadas, Protegidas y de Paquete Atributos Públicos Métodos Públicos instancia1 instancia2
    • Encapsulamiento El encapsulamiento permite: • Ocultar detalles de implementación. • Simplificar el programa. • Minimizar el impacto del cambio. • Garantizar integridad de los datos.
    • Alcance de variables En C++, existen variables: •Globales •Locales •Variables de instancia •Variables de clase
    • Alcance de variables En C++, las clases tienen su propio ámbito. int a = 1; // variable global class TClase { int a; public: TClase(int); }; TClase clase(5); TClase.a; // error, trata de encontrala en el // ámbito de TClase y es privada.