SlideShare una empresa de Scribd logo
1 de 50
Introducción a la
programación orientada por
objeto

          Tema 2
Tópicos del Día
   Introducción al diseño orientado por
    objeto
   Qué es la orientación por objeto
   Diferencias entre la programación
    convencional y la programación
    orientada por objetos
   Conceptos básicos
Introducción al diseño
orientado por objetos
   El diseño orientado por objetos (DOO),
    como otras metodología de diseños
    orientados a la información crean una
    representación del dominio del problema en
    el mundo real y lo transforma en un
    dominio de soluciones que es el software.
Introducción al diseño OxO
   A diferencia de otros métodos, el DOO da como
    resultado un diseño el cual interconexiona los
    objetos de datos (elementos de datos) y las
    operaciones de procesamiento, de forma tal que
    encapsula la información y el procesamiento.

   Este encapsulamiento es el paradigma
    fundamental de la orientación por objetos.
Modelo de una tarea típica de
programación
                        Espacio del mundo real
                                                                  Resultado

                                          Algorítmo del         Objeto reales
                  Objetos reales
  Problema                                 mundo real         (cambio de estado)
                  y actividades
   Modelo




                               Espacio del programa
                                   Representar mediante
                                                                      Usuario
                                       abstracción
  Programador                                                        Interpreta



     Programa


                Objetos abstractos y                                  Datos e
             operaciones en lenguaje de           Algorítmo        información
                   programación
                                                                     Resultado
Diseño Orientado por objeto

La naturaleza única del diseño orientado por objetos se
debe a su habilidad para construir basándose en tres
conceptos importantes del diseño del software:

•Abstracción.
•Ocultamiento de la información.
•Modularidad.
Qué es la orientación por
objeto
   El término "orientación por objeto" significa que
    organizaremos el software como una colección de
    objetos discretos que incorporan tanto estructuras
    de datos como procedimientos.
   Esto contrasta con la programación convencional,
    en la cual las estructura de datos y el
    comportamiento están solo aproximadamente
    conectados.
Qué es el desarrollo Orientado
por Objetos
   El desarrollo orientado por objetos es una
    nueva forma de pensar acerca del software
    basado sobre abstracciones que existen en
    el mundo real.
   En este contexto, el desarrollo es referido a
    la primera parte del ciclo de vida del
    software: análisis, diseño e implantación.
Diferencia entre la
programación convencional
                         Dato 2
     Dato 1
                                     Procedimiento
                                     2

         Procedimiento
                                                     Dato 4
         1

                                     Procedimiento
                            Dato 3   3
                         Fig. 2 Sistema convencional

                                              M1

                         INVOCA 4      M4 DATO 2M2

                                              M3
                  M1
                                                         INVOCA 1
              M4 DATO 1M2

                  M3
                                              M1

                                       M4 DATO 3M2
       INVOCA 3
                                              M3




                  Fig.3 Sistema Orientado por objeto
Constructos básicos de la
programación OxO
   Objeto.
   Identidad del objeto.
   Clase.
   Métodos.
   Polimorfismo.
   Herencia
   Encadenamiento dinámico.
Conceptos básicos sobre la
Orientación por Objetos
   ¿ Qué es un Objeto ?
    Un objeto es una entidad física o abstracta
    que tiene un comportamiento antes ciertos
    estímulos, tanto externos como de otros
    objetos específicos que se encuentran
    dentro del sistema.
Conceptos básicos de la OxO
   ¿ Qué se puede considerar como objeto ?
      -Persona
      -Equipo Hardware
      -Materiales
      -Información
      -Software
      -Procesos
      -Procedimientos
Conceptos básicos de OxO
   Objeto Físico:Horno
   Operaciones asociadas:       Encendido/Apagado/
    Cargado/Descargado.
   Objeto Abstracto:Cola
   Operaciones:
    Agregar/Eliminar/Verificar vacía/
       Verificar si llena/Primero cola/Siguiente cola/
Conceptos básicos de OxO
   Identidad de un objeto
    Cada objeto tiene su propia identidad que lo
    distingue de los demás objetos. En otras
    palabras, dos objetos distintos no son
    iguales aunque todos los valores de sus
    atributos sean idénticos.
Conceptos básico de la OxO
Componentes para la construcción de Software
  de un objeto.
     Cuando un objeto se transforma en una
  realización de software, consta de una interfaz,
  una estructura de datos privada y unos procesos
  llamados operaciones o métodos que son los
  únicos que pueden transformar legítimamente la
  estructura de datos.
Conceptos básicos de la OxO

      Diccionario             ( )          Interfase
                        Archivo Indizado   Estructura de dato
    Objeto del mundo
         real           Añadir palabra
                       Suprimir palabra    Operaciones
                       Encontrar palabra
                              .
                              .
                              .



    Representación abstracta de un objeto
Conceptos básicos de la OxO
   Tipos de objetos
   1.- Objetos reales
       1.1     Objeto físico: Son objetos extremamente
                perceptibles
        ejemplo(vista, olfato,gusto,oído)
       1.2     Objetos     psíquicos:    Son    internamente
    perceptibles. Ejemplo:
        dolor, sentimiento, imágenes.
   2.- Objeto ideales no son perceptibles.
       2.1     Relaciones o asociaciones entre objetos
       2.2     Pensamientos
       2.3     Matemáticos, lógicos semiótico
Conceptos básicos de la OxO
   Clasificación:
       El proceso de clasificación es el enfoque
    central de la orientación por objeto y concierne a
    la agrupación de objetos con propiedades
    (estructuras    de    datos    o    atributos)   y
    comportamiento (operaciones) similares dentro de
    una clase.
       Una clase es la abstracción que describe
    propiedades importantes para una aplicación.

Conceptos Básicos de la OxO
   Los objetos que pertenecen a una clase se describen
    colectivamente por la definición de una clase, esto
    significa que en lugar de describir los objetos individuales
    la orientación por objeto concentra en un patrón tanto el
    estado como el comportamiento que es común a todos los
    objetos de la clase.

   Esta clase de estructura que abarca tantos propiedades
    como comportamiento es la unidad natural de la
    abstracción en los sistemas de orientación por objeto y
    puede ser utilizarse para modelar tanto entidades objetos
    como relaciones entre los objetos.

Conceptos Básicos de la OxO
   Cada clase describe una posibilidad infinita de un conjunto
    individual de objetos. Cada objeto que pertenezca a una
    clase es llamado instancia de la clase.

        La instanciación es lo inverso a la clasificación y
    concierne a la generación de los distintos objetos de una
    clase. La distinción entre una clase y sus instancias es
    similar a la distinción entre una definición de tipo y la
    declaración de una variable en un lenguaje de
    programación convencional. Sin embargo, la mayoría de
    los sistemas orientados por objeto crean dinámicamente
    instancias por envío de mensajes "Nuevo" y "Crear" una
    clase.
Conceptos básicos de la OxO
   Type           Tipo_opcion(Piscina,Sauna,Tennis,Golf);
   Class Hotel
           Propiedades
                  Nombre: Cadena;
                  Dirección: Cadena;
                  Dueño: Compañia;
                  Director: Persona;
                  Facilidades: Set (Tipos_opcion):
           Operaciones
                  Create ();
                  Reserva_hab(Habitación:integer;
            Huesped:Person,
    Fecha_llegada,
                   Fecha_partida:Tipo_fecha)
    end Hotel.
Conceptos básicos de la OxO
   Class Compañía
        Propiedades
        Nombre, Oficina_central, Teléfono: Cadena;
                   .........
        Operaciones
        ..........
   end Compañia.
   Class Persona
                   Propiedades
                             Nombre, Dirección, Teléfono: Cadena;
                             .........
                   Operaciones
                             ..........
   end Persona.
Conceptos Básicos de la OxO
                                                             Instancia Compañía
                                                             Nombre                      Turisol

Instancia de Hotel                                           Oficina_general          Mérida
                                                              Teléfono                   22454
Nombre               La Pedregosa


 Dirección            Av. Los proceres


Dueño                Instancia de Compañia
                                                            Instancia Persona
Gerente              Instancia de Persona
                                                            Nombre         Pedro perez

                                                                           Calle 22 entre
Facilidades          Piscina, Sauna, Golf                   Dirección      Av. 2 y 3



                         Fig. 5 Ejemplo de la clase Hotel
Conceptos básicos de la OxO

                        Atributos

                        Tamaño del marco
                        Tamaño de la rueda
                        Material
                        Engranaje
           Aplicando
                        Material
          abstracción
                        Operaciones

                        Pasos
                        Reparar
                        Cambio de posición
Conceptos básicos de la OxO
                                       Clase polígono
     Objetos polígonos
                                       Atributos
                                       Vértices
                          Aplicando    Color del borde
                         abstracción   Color de relleno

                                       Operaciones

                                       Dibujar
                                       Borrar
                                       Mover
Conceptos básicos de la OxO
Notación para representar una clase.
Una clase se representa por una caja la cual puede tener 3
  regiones.
 La primera región contiene el nombre de la clase.

  La segunda región contiene la lista de atributos, cada
  nombre de atributo puede estar seguido por detalles
  opcionales tales como tipo de atributo y valores por
  defectos.
 La tercera región contiene los nombres de las operaciones.

  Cada nombre de operación puede ser seguido por detalles
  opcionales tales como listas de argumentos y tipos de
  resultados. Los atributos y operaciones puede o no
  mostrarse; esto depende del nivel de detalle deseado.
Conceptos básicos de la OxO
                                               Nombre de la clase



Nombre_atributo1: tipo dato1= valor defecto1
Nombre_atributo2: tipo dato2= valor defecto2
.
.
.



Nombre_operación1(lista de argumento):tipo_resultado1
Nombre_operación2 (lista de argumento):tipo_resultado2
.
.
.
Conceptos básicos de la OxO
  Cómo se implanta una clase en C++
Class Nombre de la clase {
     Miembros datos;
     Miembros métodos;
};
Conceptos Básicos
 class persona {
           // Mienbros Datos o Estructura de datos de la clase
           char nombre[15],apellido[15],cedula[15];
           // Miembros Función o Métodos de la clase
           public:
           void presenta_valores();
           void asigna_nombre(char *nombre_nuevo);
           void asigna_apellido(char *apellido_nuevo);
           void asigna_cedula(char *cedula_nueva);
           void cumpleano();
 }; // Observe que se debe finalizar con punto y coma.
Conceptos Básicos
 class persona {
           // Mienbros Datos o Estructura de datos de la clase
           char *nombre,*apellido,*cedula;
           // Miembros Función o Métodos de la clase
           public:
           persona();    // Constructor de la clase
           ~persona();    // Destructor de la clase
           void presenta_valores();
           void asigna_nombre(char *nombre_nuevo);
           void asigna_apellido(char *apellido_nuevo);
           void asigna_cedula(char *cedula_nueva);
           void cumpleano();
 }; // Observe que se debe finalizar con punto y coma.
Conceptos básicos de la OxO
   Operaciones ó métodos
       Una operación es una función o
    transformación que puede ser aplicada sobre los
    objetos en una clase. Por ejemplo: abrir, cerrar,
    ocultar, desplegar, son operaciones sobre una clase
    ventana.
       Cada operación tiene un objeto destino con un
    argumento implícito. El comportamiento de la
    operación depende de la clase destino.
Conceptos básicos de la OxO
  ¿ Cómo se declara una función miembro de la
   clase ? (menos los constructores y destructores)
Tipo que devuelve nombre de la clase : : nombre
   del método (Lista de parámetros ) {
             cuerpo de la función o método
};
   Los : : son conocidos como el alcance del
   operador resolución, lo que indica al compilador
   donde comienza la función.
Conceptos básicos de la OxO
persona::persona(){
    strcpy(nombre=new char [30],"Domingo");
    strcpy(apellido=new char [30],"Hernandez");
    strcpy(cedula=new char [13],"v.-8.333.439");
    strcpy(sexo=new char [13],"Masculino");
    fecha_nac.set("12","03","64");
    strcpy(direccion=new char [80],"Calle 32 ");
}
Conceptos básicos de la OxO
persona::persona(char *nomb,char *apell, char *ced, char *sex, char *d,
char *m, char *a, char *direcc ){
    strcpy(nombre=new char [strlen(nomb)+1],nomb);
    strcpy(apellido=new char [strlen(apell)+1],apell);
    strcpy(cedula=new char [strlen(ced)+1],ced);
    strcpy(sexo=new char [strlen(sex)+1],sex);
    fecha_nac.set(d,m,a);
    strcpy(direccion=new char [strlen(direcc)+1],direcc);
}
Conceptos básicos de la OxO


void persona::asigna_nombre(char *nomb_nuevo){
    strcpy(nombre=new char [strlen(nomb_nuevo)+1],nomb);
}
Conceptos básicos de la OxO
    persona::~persona(){
                delete [] nombre;
                delete [] apellido;
                delete [] cedula;
                delete [] sexo;
                delete [] direccion;
                }
Conceptos básicos de la OxO
   Cómo se invoca un método sobre un
    objeto?


                 .
Nombre del objeto Nombre del método(lista de parámetros);
Conceptos básicos de la OxO
   Polimorfismo
    Polimorfismo significa que la misma
    operación        puede        comportarse
    diferentemente sobre distintas clases. Por
    ejemplo, la operación "mover" ejemplo
    puede comportarse diferentemente sobre
    una clase llamada Ventana y una clase
    llamada Piezas_ajedrez.
Conceptos básicos de la OxO
Clasificación de Polimorfismo

                                                  Paramétrico
                                      Universal   Inclusión
                       Polimorfismo

                                      Ad Hoc      Overloading
                                                  Coerción
Conceptos básicos de la OxO
   Polimorfismo Paramétrico: Se obtiene cuando una
    función trabaja uniformemente sobre un rango de
    tipos; esos tipos normalmente exhiben una
    estructura común y puede comportarse de manera
    distinta para cada tipo.
   Polimorfismo de Inclusión: Es un polimorfismo
    utilizado por modelos de subtipos y herencia. En
    este tipo de polimorfismo un objeto puede
    pertenecer a clases diferentes que no
    necesariamente son disjuntas.
Conceptos básicos de la OxO
   Polimorfismo por Overloading: En este
    caso el mismo nombre se utiliza para
    denotar diferentes funciones, y el contexto
    se utiliza para decidir cual función se
    debería ejecutar para una invocación
    particular del nombre.
Conceptos básicos de la OxO

   Polimorfismo por Coerción: Es una operación
    semántica que convierte argumentos a los tipos
    esperado por una función, en una situación que de
    otra forma resultaría en un tipo de error. La
    coerción puede estar dada estáticamente,
    insertándose automáticamente entre argumentos y
    funciones a tiempo de compilación o pueden tener
    que determinarse dinámicamente, con pruebas a
    tiempos de ejecución sobre los argumentos.
Conceptos básicos de la OxO
   Herencia
   La herencia consiste en el compartir atributos y
    métodos entre clases basándose en una relación
    jerárquica.
   Una clase puede definirse ampliamente y
    redefinirse sucesivamente en subclases más
    refinadas.
   Cada subclase que se incorpora, hereda todas las
    propiedades de su superclase y adiciona sus
    propias y únicas propiedades.
Conceptos básicos de la OxO
Elementos capaces de ser heredados
 Herencia Estructural.

 Herencia de Comportamiento ( herencia de

  métodos).
Conceptos básicos de la OxO
                                                Nombre
                        Persona                 Edad
                                                Dirección
                                                Sexo

                Cargo

   Empleado                            Estudiante           Carrera
                Denominación

                                          Profesión

                        Director

                  Año de experiencia      Dependencia
   Secretaría
                   Dependencia
                   Idiomas
Conceptos básicos de la OxO
   Tipos de Herencia:

   Simple.

   Múltiple
Conceptos básicos de la OxO
                                                Nombre
                        Persona                 Edad
                                                Dirección
                                                Sexo

                Cargo

   Empleado                            Estudiante           Carrera
                Denominación

                                          Profesión

                        Director

                  Año de experiencia      Dependencia
   Secretaría
                   Dependencia
                   Idiomas
Conceptos básicos de la OxO
   Definición de Herencia Múltiple: Una clase
    puede heredar rasgos de más de una
    superclase. Una clase con más de una
    superclase es llamada clase junta. Un rasgo
    de una clase ancestro que se encuentra más
    de una vez a lo largo de una ruta solo se
    hereda una vez.
Conceptos básicos de la OxO
                            Vehículos




     Vehículos Terrestres                  Vehículos Acuáticos




                               Vehículos
  Carros                                                         Bote
                               Anfibios
Conceptos básicos de la OxO
 Encadenamiento Dinámico:
Una de las ventajas que promueve el estilo de
  programación orientada por objeto es la
  característica del encadenamiento dinámico,
  también llamado encadenamiento tardío. En
  efecto, no se tendrían sistemas orientados por
  objeto sin esa poderosa capacidad.
     Simplemente, la declaración encadenamiento
  dinámico significa que el sistema encadenará una
  rutina a un selector para un método particular que
  está implantado sobre un objeto clase.

Más contenido relacionado

Similar a Programacion Orientada a Objetos

Guia flash
Guia flashGuia flash
Guia flash
natalia
 
Diseno orientado a objetos
Diseno orientado a objetosDiseno orientado a objetos
Diseno orientado a objetos
Cecilia Lemus
 
PROGRAMACION ORIENTADA A OBJETOS
PROGRAMACION ORIENTADA A OBJETOSPROGRAMACION ORIENTADA A OBJETOS
PROGRAMACION ORIENTADA A OBJETOS
Abraham Morales
 
Tecnología Orientada A Objetos
Tecnología Orientada A ObjetosTecnología Orientada A Objetos
Tecnología Orientada A Objetos
Andrés
 
Analisis y diseño orientado a odjetos
Analisis y diseño orientado a odjetosAnalisis y diseño orientado a odjetos
Analisis y diseño orientado a odjetos
Lex Marin
 
Programacion orientada a_objeto
Programacion orientada a_objetoProgramacion orientada a_objeto
Programacion orientada a_objeto
cesar
 

Similar a Programacion Orientada a Objetos (20)

Guia flash
Guia flashGuia flash
Guia flash
 
Doo
DooDoo
Doo
 
Clase 1 Paradigma oo
Clase 1  Paradigma ooClase 1  Paradigma oo
Clase 1 Paradigma oo
 
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POO
 
Clases poo
Clases pooClases poo
Clases poo
 
Intro oo
Intro ooIntro oo
Intro oo
 
Intro oo
Intro ooIntro oo
Intro oo
 
Intro oo
Intro ooIntro oo
Intro oo
 
Diseno orientado a objetos
Diseno orientado a objetosDiseno orientado a objetos
Diseno orientado a objetos
 
Fundamentos del Enfoque OO
Fundamentos del Enfoque OOFundamentos del Enfoque OO
Fundamentos del Enfoque OO
 
Fundamentos programacion poo
Fundamentos programacion pooFundamentos programacion poo
Fundamentos programacion poo
 
PROGRAMACION ORIENTADA A OBJETOS
PROGRAMACION ORIENTADA A OBJETOSPROGRAMACION ORIENTADA A OBJETOS
PROGRAMACION ORIENTADA A OBJETOS
 
La programación orientada a objetos o POO (OOP según sus siglas en inglés) es...
La programación orientada a objetos o POO (OOP según sus siglas en inglés) es...La programación orientada a objetos o POO (OOP según sus siglas en inglés) es...
La programación orientada a objetos o POO (OOP según sus siglas en inglés) es...
 
Poo (concepto, caracteristica, origen)
Poo (concepto, caracteristica, origen)Poo (concepto, caracteristica, origen)
Poo (concepto, caracteristica, origen)
 
Programacion o.o.
Programacion o.o.Programacion o.o.
Programacion o.o.
 
Tecnología Orientada A Objetos
Tecnología Orientada A ObjetosTecnología Orientada A Objetos
Tecnología Orientada A Objetos
 
2clasesdeprogramacion
2clasesdeprogramacion2clasesdeprogramacion
2clasesdeprogramacion
 
Analisis y diseño orientado a odjetos
Analisis y diseño orientado a odjetosAnalisis y diseño orientado a odjetos
Analisis y diseño orientado a odjetos
 
Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1
 
Programacion orientada a_objeto
Programacion orientada a_objetoProgramacion orientada a_objeto
Programacion orientada a_objeto
 

Último

Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
NancyLoaa
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
JonathanCovena1
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Francisco158360
 

Último (20)

Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
Valoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCVValoración Crítica de EEEM Feco2023 FFUCV
Valoración Crítica de EEEM Feco2023 FFUCV
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdf
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° grado
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperio
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 

Programacion Orientada a Objetos

  • 1. Introducción a la programación orientada por objeto Tema 2
  • 2. Tópicos del Día  Introducción al diseño orientado por objeto  Qué es la orientación por objeto  Diferencias entre la programación convencional y la programación orientada por objetos  Conceptos básicos
  • 3. Introducción al diseño orientado por objetos  El diseño orientado por objetos (DOO), como otras metodología de diseños orientados a la información crean una representación del dominio del problema en el mundo real y lo transforma en un dominio de soluciones que es el software.
  • 4. Introducción al diseño OxO  A diferencia de otros métodos, el DOO da como resultado un diseño el cual interconexiona los objetos de datos (elementos de datos) y las operaciones de procesamiento, de forma tal que encapsula la información y el procesamiento.  Este encapsulamiento es el paradigma fundamental de la orientación por objetos.
  • 5. Modelo de una tarea típica de programación Espacio del mundo real Resultado Algorítmo del Objeto reales Objetos reales Problema mundo real (cambio de estado) y actividades Modelo Espacio del programa Representar mediante Usuario abstracción Programador Interpreta Programa Objetos abstractos y Datos e operaciones en lenguaje de Algorítmo información programación Resultado
  • 6. Diseño Orientado por objeto La naturaleza única del diseño orientado por objetos se debe a su habilidad para construir basándose en tres conceptos importantes del diseño del software: •Abstracción. •Ocultamiento de la información. •Modularidad.
  • 7. Qué es la orientación por objeto  El término "orientación por objeto" significa que organizaremos el software como una colección de objetos discretos que incorporan tanto estructuras de datos como procedimientos.  Esto contrasta con la programación convencional, en la cual las estructura de datos y el comportamiento están solo aproximadamente conectados.
  • 8. Qué es el desarrollo Orientado por Objetos  El desarrollo orientado por objetos es una nueva forma de pensar acerca del software basado sobre abstracciones que existen en el mundo real.  En este contexto, el desarrollo es referido a la primera parte del ciclo de vida del software: análisis, diseño e implantación.
  • 9. Diferencia entre la programación convencional Dato 2 Dato 1 Procedimiento 2 Procedimiento Dato 4 1 Procedimiento Dato 3 3 Fig. 2 Sistema convencional M1 INVOCA 4 M4 DATO 2M2 M3 M1 INVOCA 1 M4 DATO 1M2 M3 M1 M4 DATO 3M2 INVOCA 3 M3 Fig.3 Sistema Orientado por objeto
  • 10. Constructos básicos de la programación OxO  Objeto.  Identidad del objeto.  Clase.  Métodos.  Polimorfismo.  Herencia  Encadenamiento dinámico.
  • 11. Conceptos básicos sobre la Orientación por Objetos  ¿ Qué es un Objeto ? Un objeto es una entidad física o abstracta que tiene un comportamiento antes ciertos estímulos, tanto externos como de otros objetos específicos que se encuentran dentro del sistema.
  • 12. Conceptos básicos de la OxO  ¿ Qué se puede considerar como objeto ?  -Persona  -Equipo Hardware  -Materiales  -Información  -Software  -Procesos  -Procedimientos
  • 13. Conceptos básicos de OxO  Objeto Físico:Horno  Operaciones asociadas: Encendido/Apagado/ Cargado/Descargado.  Objeto Abstracto:Cola  Operaciones: Agregar/Eliminar/Verificar vacía/ Verificar si llena/Primero cola/Siguiente cola/
  • 14. Conceptos básicos de OxO  Identidad de un objeto Cada objeto tiene su propia identidad que lo distingue de los demás objetos. En otras palabras, dos objetos distintos no son iguales aunque todos los valores de sus atributos sean idénticos.
  • 15. Conceptos básico de la OxO Componentes para la construcción de Software de un objeto.  Cuando un objeto se transforma en una realización de software, consta de una interfaz, una estructura de datos privada y unos procesos llamados operaciones o métodos que son los únicos que pueden transformar legítimamente la estructura de datos.
  • 16. Conceptos básicos de la OxO Diccionario ( ) Interfase Archivo Indizado Estructura de dato Objeto del mundo real Añadir palabra Suprimir palabra Operaciones Encontrar palabra . . . Representación abstracta de un objeto
  • 17. Conceptos básicos de la OxO  Tipos de objetos  1.- Objetos reales  1.1 Objeto físico: Son objetos extremamente perceptibles ejemplo(vista, olfato,gusto,oído)  1.2 Objetos psíquicos: Son internamente perceptibles. Ejemplo: dolor, sentimiento, imágenes.  2.- Objeto ideales no son perceptibles.  2.1 Relaciones o asociaciones entre objetos  2.2 Pensamientos  2.3 Matemáticos, lógicos semiótico
  • 18. Conceptos básicos de la OxO  Clasificación:  El proceso de clasificación es el enfoque central de la orientación por objeto y concierne a la agrupación de objetos con propiedades (estructuras de datos o atributos) y comportamiento (operaciones) similares dentro de una clase.  Una clase es la abstracción que describe propiedades importantes para una aplicación. 
  • 19. Conceptos Básicos de la OxO  Los objetos que pertenecen a una clase se describen colectivamente por la definición de una clase, esto significa que en lugar de describir los objetos individuales la orientación por objeto concentra en un patrón tanto el estado como el comportamiento que es común a todos los objetos de la clase.  Esta clase de estructura que abarca tantos propiedades como comportamiento es la unidad natural de la abstracción en los sistemas de orientación por objeto y puede ser utilizarse para modelar tanto entidades objetos como relaciones entre los objetos. 
  • 20. Conceptos Básicos de la OxO  Cada clase describe una posibilidad infinita de un conjunto individual de objetos. Cada objeto que pertenezca a una clase es llamado instancia de la clase.  La instanciación es lo inverso a la clasificación y concierne a la generación de los distintos objetos de una clase. La distinción entre una clase y sus instancias es similar a la distinción entre una definición de tipo y la declaración de una variable en un lenguaje de programación convencional. Sin embargo, la mayoría de los sistemas orientados por objeto crean dinámicamente instancias por envío de mensajes "Nuevo" y "Crear" una clase.
  • 21. Conceptos básicos de la OxO  Type Tipo_opcion(Piscina,Sauna,Tennis,Golf);  Class Hotel  Propiedades  Nombre: Cadena;  Dirección: Cadena;  Dueño: Compañia;  Director: Persona;  Facilidades: Set (Tipos_opcion):  Operaciones  Create ();  Reserva_hab(Habitación:integer; Huesped:Person, Fecha_llegada, Fecha_partida:Tipo_fecha) end Hotel.
  • 22. Conceptos básicos de la OxO  Class Compañía  Propiedades  Nombre, Oficina_central, Teléfono: Cadena;  .........  Operaciones  ..........  end Compañia.  Class Persona  Propiedades  Nombre, Dirección, Teléfono: Cadena;  .........  Operaciones  ..........  end Persona.
  • 23. Conceptos Básicos de la OxO Instancia Compañía Nombre Turisol Instancia de Hotel Oficina_general Mérida Teléfono 22454 Nombre La Pedregosa Dirección Av. Los proceres Dueño Instancia de Compañia Instancia Persona Gerente Instancia de Persona Nombre Pedro perez Calle 22 entre Facilidades Piscina, Sauna, Golf Dirección Av. 2 y 3 Fig. 5 Ejemplo de la clase Hotel
  • 24. Conceptos básicos de la OxO Atributos Tamaño del marco Tamaño de la rueda Material Engranaje Aplicando Material abstracción Operaciones Pasos Reparar Cambio de posición
  • 25. Conceptos básicos de la OxO Clase polígono Objetos polígonos Atributos Vértices Aplicando Color del borde abstracción Color de relleno Operaciones Dibujar Borrar Mover
  • 26. Conceptos básicos de la OxO Notación para representar una clase. Una clase se representa por una caja la cual puede tener 3 regiones.  La primera región contiene el nombre de la clase.  La segunda región contiene la lista de atributos, cada nombre de atributo puede estar seguido por detalles opcionales tales como tipo de atributo y valores por defectos.  La tercera región contiene los nombres de las operaciones. Cada nombre de operación puede ser seguido por detalles opcionales tales como listas de argumentos y tipos de resultados. Los atributos y operaciones puede o no mostrarse; esto depende del nivel de detalle deseado.
  • 27. Conceptos básicos de la OxO Nombre de la clase Nombre_atributo1: tipo dato1= valor defecto1 Nombre_atributo2: tipo dato2= valor defecto2 . . . Nombre_operación1(lista de argumento):tipo_resultado1 Nombre_operación2 (lista de argumento):tipo_resultado2 . . .
  • 28. Conceptos básicos de la OxO  Cómo se implanta una clase en C++ Class Nombre de la clase { Miembros datos; Miembros métodos; };
  • 29. Conceptos Básicos class persona { // Mienbros Datos o Estructura de datos de la clase char nombre[15],apellido[15],cedula[15]; // Miembros Función o Métodos de la clase public: void presenta_valores(); void asigna_nombre(char *nombre_nuevo); void asigna_apellido(char *apellido_nuevo); void asigna_cedula(char *cedula_nueva); void cumpleano(); }; // Observe que se debe finalizar con punto y coma.
  • 30. Conceptos Básicos class persona { // Mienbros Datos o Estructura de datos de la clase char *nombre,*apellido,*cedula; // Miembros Función o Métodos de la clase public: persona(); // Constructor de la clase ~persona(); // Destructor de la clase void presenta_valores(); void asigna_nombre(char *nombre_nuevo); void asigna_apellido(char *apellido_nuevo); void asigna_cedula(char *cedula_nueva); void cumpleano(); }; // Observe que se debe finalizar con punto y coma.
  • 31. Conceptos básicos de la OxO  Operaciones ó métodos  Una operación es una función o transformación que puede ser aplicada sobre los objetos en una clase. Por ejemplo: abrir, cerrar, ocultar, desplegar, son operaciones sobre una clase ventana.  Cada operación tiene un objeto destino con un argumento implícito. El comportamiento de la operación depende de la clase destino.
  • 32. Conceptos básicos de la OxO  ¿ Cómo se declara una función miembro de la clase ? (menos los constructores y destructores) Tipo que devuelve nombre de la clase : : nombre del método (Lista de parámetros ) { cuerpo de la función o método }; Los : : son conocidos como el alcance del operador resolución, lo que indica al compilador donde comienza la función.
  • 33. Conceptos básicos de la OxO persona::persona(){ strcpy(nombre=new char [30],"Domingo"); strcpy(apellido=new char [30],"Hernandez"); strcpy(cedula=new char [13],"v.-8.333.439"); strcpy(sexo=new char [13],"Masculino"); fecha_nac.set("12","03","64"); strcpy(direccion=new char [80],"Calle 32 "); }
  • 34. Conceptos básicos de la OxO persona::persona(char *nomb,char *apell, char *ced, char *sex, char *d, char *m, char *a, char *direcc ){ strcpy(nombre=new char [strlen(nomb)+1],nomb); strcpy(apellido=new char [strlen(apell)+1],apell); strcpy(cedula=new char [strlen(ced)+1],ced); strcpy(sexo=new char [strlen(sex)+1],sex); fecha_nac.set(d,m,a); strcpy(direccion=new char [strlen(direcc)+1],direcc); }
  • 35. Conceptos básicos de la OxO void persona::asigna_nombre(char *nomb_nuevo){ strcpy(nombre=new char [strlen(nomb_nuevo)+1],nomb); }
  • 36. Conceptos básicos de la OxO persona::~persona(){ delete [] nombre; delete [] apellido; delete [] cedula; delete [] sexo; delete [] direccion; }
  • 37. Conceptos básicos de la OxO  Cómo se invoca un método sobre un objeto? . Nombre del objeto Nombre del método(lista de parámetros);
  • 38. Conceptos básicos de la OxO  Polimorfismo Polimorfismo significa que la misma operación puede comportarse diferentemente sobre distintas clases. Por ejemplo, la operación "mover" ejemplo puede comportarse diferentemente sobre una clase llamada Ventana y una clase llamada Piezas_ajedrez.
  • 39. Conceptos básicos de la OxO Clasificación de Polimorfismo Paramétrico Universal Inclusión Polimorfismo Ad Hoc Overloading Coerción
  • 40. Conceptos básicos de la OxO  Polimorfismo Paramétrico: Se obtiene cuando una función trabaja uniformemente sobre un rango de tipos; esos tipos normalmente exhiben una estructura común y puede comportarse de manera distinta para cada tipo.  Polimorfismo de Inclusión: Es un polimorfismo utilizado por modelos de subtipos y herencia. En este tipo de polimorfismo un objeto puede pertenecer a clases diferentes que no necesariamente son disjuntas.
  • 41. Conceptos básicos de la OxO  Polimorfismo por Overloading: En este caso el mismo nombre se utiliza para denotar diferentes funciones, y el contexto se utiliza para decidir cual función se debería ejecutar para una invocación particular del nombre.
  • 42. Conceptos básicos de la OxO  Polimorfismo por Coerción: Es una operación semántica que convierte argumentos a los tipos esperado por una función, en una situación que de otra forma resultaría en un tipo de error. La coerción puede estar dada estáticamente, insertándose automáticamente entre argumentos y funciones a tiempo de compilación o pueden tener que determinarse dinámicamente, con pruebas a tiempos de ejecución sobre los argumentos.
  • 43. Conceptos básicos de la OxO  Herencia  La herencia consiste en el compartir atributos y métodos entre clases basándose en una relación jerárquica.  Una clase puede definirse ampliamente y redefinirse sucesivamente en subclases más refinadas.  Cada subclase que se incorpora, hereda todas las propiedades de su superclase y adiciona sus propias y únicas propiedades.
  • 44. Conceptos básicos de la OxO Elementos capaces de ser heredados  Herencia Estructural.  Herencia de Comportamiento ( herencia de métodos).
  • 45. Conceptos básicos de la OxO Nombre Persona Edad Dirección Sexo Cargo Empleado Estudiante Carrera Denominación Profesión Director Año de experiencia Dependencia Secretaría Dependencia Idiomas
  • 46. Conceptos básicos de la OxO  Tipos de Herencia:  Simple.  Múltiple
  • 47. Conceptos básicos de la OxO Nombre Persona Edad Dirección Sexo Cargo Empleado Estudiante Carrera Denominación Profesión Director Año de experiencia Dependencia Secretaría Dependencia Idiomas
  • 48. Conceptos básicos de la OxO  Definición de Herencia Múltiple: Una clase puede heredar rasgos de más de una superclase. Una clase con más de una superclase es llamada clase junta. Un rasgo de una clase ancestro que se encuentra más de una vez a lo largo de una ruta solo se hereda una vez.
  • 49. Conceptos básicos de la OxO Vehículos Vehículos Terrestres Vehículos Acuáticos Vehículos Carros Bote Anfibios
  • 50. Conceptos básicos de la OxO  Encadenamiento Dinámico: Una de las ventajas que promueve el estilo de programación orientada por objeto es la característica del encadenamiento dinámico, también llamado encadenamiento tardío. En efecto, no se tendrían sistemas orientados por objeto sin esa poderosa capacidad.  Simplemente, la declaración encadenamiento dinámico significa que el sistema encadenará una rutina a un selector para un método particular que está implantado sobre un objeto clase.