Programación Orientada a Objetos
Conceptos Básicos
Ing. Juan Ignacio Zamora MSc | Ulacit.
Clases
Definiciones
• Es un tipo de dato que contiene código,
funciones y datos.
• Permite encapsular todo el código y los
datos necesarios para gestionar un tipo
específico de un elemento de programa.
• Se dice común mente es “La Abstracción
de un Objeto”
• Un objetos es la instancia de una clase
• Según Booch, es “algo que tiene un
estado, un comportamiento y una
identidad”.
• Martin y Odell definen un objeto como
“cualquier cosa real o abstracta, en que
almacenan datos y operaciones que los
manipulan”…
Objetos
Definiciones
Demo {clase} D; {identificador};
• Se agrupan en tipos llamados clases
• Tienen datos internos que definen su estado
• Soportan la ocultación de datos
• Pueden heredar propiedades de otros objetos
• Pueden comunicarse con otros objetos por
medio de mensajes
• Tienen métodos que definen su comportamiento
Características de un Objeto
• Punto p; donde {Punto} es la clase y {p} es
el identificador de la clase.
• {.} es el operador de acceso a un
miembro. p.FijarCoordenada(100,200);
• Funciones miembro: funciones que
pertenecen a la misma clase.
• Modificadores de Acceso: Public,
Protected y Private
Objetos
Nomenclatura y Definiciones
Tipo Miembro de la
Misma Clase
Amiga (Solo
C++)
Miembro Clase
Derivada
Función No
Miembro
Private X X
Protected X X X
Public X X X X
Objetos
Modificadores de Acceso
Los modificadores de acceso determinan la visibilidad de los elementos de una clase
Los modificadores definen el principio de la Ocultación de Información
En C#/C++, si el modificador de acceso no es definido, se asume por defecto private
• El principio de ocultación indica que
toda la interacción con un objeto debe ser
restringida, para permitir que los detalles
de la implementación sean ignorados.
• El principio de encapsulamiento
significa que las estructuras de datos
internas o cualquier implementación no
puede ser accesible al usuario.
Objetos
Conceptos
• {::} operador de resolución de ámbito.
• {tipo retorno} {clase} :: {funcion(x,y)}
• Permite acceder a espacios de tipos de
nombres o bien a las declaraciones de
métodos de una clase
Objetos
Conceptos (Solo C++)
• Tipos de Funciones Miembro
– Constructores y Destructores
– Selectores (Getters y Setters)
– Operadores
– Iteradores
Objetos
Conceptos
C++: Cuando una función miembro se implementa fuera de la
clase por medio de un operador de resolución de ámbito se llama
función fuera de línea
• Constructores
– Default
– Alternativos o no default
– Existe la sobrecarga
• Destructores (C++) y la Recolección de
Basura
– El destructor se llama al invocar delete.
– O al final de la vida del main
Objetos
Conceptos
• Es la capacidad de un objeto, de utilizar
estructuras de daros o comportamientos
provistos por su antepasado o
ascendiente.
• El objetivo es la reutilización de código
para generar nuevas abstracciones.
• “una clase hereda sus características de
otra clase”
Comportamiento y Herencia
• Tipos de Herencia
– Herencia Simple
(Jerárquica)
– Herencia Múltiple*
(Malla / C++, Python)
– Solución a la
Herencia Múltiple???
Herencia
• Una clase que se crea a partir de otra
clase por medio de la herencia
• La clase de la que se hereda se llama
clase base
• Los modificadores de acceso delimitan las
características y comportamientos que se
pueden heredar
Herencia
Clase Derivada
• Métodos Virtuales. Permiten sobrescribir
comportamiento. Si no se sobrescribe, se
usa funcionalidad de la clase base.
• Métodos Tradicionales. Pueden ser
heredados o no dependiendo de los
modificadores de acceso.
Métodos y Herencia
• No pueden ser instanciadas directamente
• Son clasificadores de objetos
• Representan un nivel de abstracción más
alto
• Pueden contener métodos con
comportamiento codificado
• Pueden contener métodos abstractos
Herencia
Clase Base Abstracta
• En C# y Java para hacer una clase de
base abstracta, solo basta con definirla
como abstract.
• En C++ la clase de base abstracta se
define cuando esta posee al menos un
método virtual puro
– virtual int area () =0;
Herencia
Clase de Base Abstracta
• Por ende, es la propiedad de la POO que
le permite a cada objeto comportarse de
forma diferente al implementar su propio
comportamiento.
Polimorfismo

C1 - Conceptos OOP

  • 1.
    Programación Orientada aObjetos Conceptos Básicos Ing. Juan Ignacio Zamora MSc | Ulacit.
  • 2.
    Clases Definiciones • Es untipo de dato que contiene código, funciones y datos. • Permite encapsular todo el código y los datos necesarios para gestionar un tipo específico de un elemento de programa. • Se dice común mente es “La Abstracción de un Objeto”
  • 3.
    • Un objetoses la instancia de una clase • Según Booch, es “algo que tiene un estado, un comportamiento y una identidad”. • Martin y Odell definen un objeto como “cualquier cosa real o abstracta, en que almacenan datos y operaciones que los manipulan”… Objetos Definiciones Demo {clase} D; {identificador};
  • 4.
    • Se agrupanen tipos llamados clases • Tienen datos internos que definen su estado • Soportan la ocultación de datos • Pueden heredar propiedades de otros objetos • Pueden comunicarse con otros objetos por medio de mensajes • Tienen métodos que definen su comportamiento Características de un Objeto
  • 5.
    • Punto p;donde {Punto} es la clase y {p} es el identificador de la clase. • {.} es el operador de acceso a un miembro. p.FijarCoordenada(100,200); • Funciones miembro: funciones que pertenecen a la misma clase. • Modificadores de Acceso: Public, Protected y Private Objetos Nomenclatura y Definiciones
  • 6.
    Tipo Miembro dela Misma Clase Amiga (Solo C++) Miembro Clase Derivada Función No Miembro Private X X Protected X X X Public X X X X Objetos Modificadores de Acceso Los modificadores de acceso determinan la visibilidad de los elementos de una clase Los modificadores definen el principio de la Ocultación de Información En C#/C++, si el modificador de acceso no es definido, se asume por defecto private
  • 7.
    • El principiode ocultación indica que toda la interacción con un objeto debe ser restringida, para permitir que los detalles de la implementación sean ignorados. • El principio de encapsulamiento significa que las estructuras de datos internas o cualquier implementación no puede ser accesible al usuario. Objetos Conceptos
  • 8.
    • {::} operadorde resolución de ámbito. • {tipo retorno} {clase} :: {funcion(x,y)} • Permite acceder a espacios de tipos de nombres o bien a las declaraciones de métodos de una clase Objetos Conceptos (Solo C++)
  • 9.
    • Tipos deFunciones Miembro – Constructores y Destructores – Selectores (Getters y Setters) – Operadores – Iteradores Objetos Conceptos C++: Cuando una función miembro se implementa fuera de la clase por medio de un operador de resolución de ámbito se llama función fuera de línea
  • 10.
    • Constructores – Default –Alternativos o no default – Existe la sobrecarga • Destructores (C++) y la Recolección de Basura – El destructor se llama al invocar delete. – O al final de la vida del main Objetos Conceptos
  • 11.
    • Es lacapacidad de un objeto, de utilizar estructuras de daros o comportamientos provistos por su antepasado o ascendiente. • El objetivo es la reutilización de código para generar nuevas abstracciones. • “una clase hereda sus características de otra clase” Comportamiento y Herencia
  • 12.
    • Tipos deHerencia – Herencia Simple (Jerárquica) – Herencia Múltiple* (Malla / C++, Python) – Solución a la Herencia Múltiple??? Herencia
  • 13.
    • Una claseque se crea a partir de otra clase por medio de la herencia • La clase de la que se hereda se llama clase base • Los modificadores de acceso delimitan las características y comportamientos que se pueden heredar Herencia Clase Derivada
  • 14.
    • Métodos Virtuales.Permiten sobrescribir comportamiento. Si no se sobrescribe, se usa funcionalidad de la clase base. • Métodos Tradicionales. Pueden ser heredados o no dependiendo de los modificadores de acceso. Métodos y Herencia
  • 15.
    • No puedenser instanciadas directamente • Son clasificadores de objetos • Representan un nivel de abstracción más alto • Pueden contener métodos con comportamiento codificado • Pueden contener métodos abstractos Herencia Clase Base Abstracta
  • 16.
    • En C#y Java para hacer una clase de base abstracta, solo basta con definirla como abstract. • En C++ la clase de base abstracta se define cuando esta posee al menos un método virtual puro – virtual int area () =0; Herencia Clase de Base Abstracta
  • 17.
    • Por ende,es la propiedad de la POO que le permite a cada objeto comportarse de forma diferente al implementar su propio comportamiento. Polimorfismo