SlideShare una empresa de Scribd logo
1 de 27
Módulo I- Introducción a la Programación en
la Plataforma .Net con C#
TEMARIO

CAPITULO IV.- INTRODUCCIÓN A LA
PROGRAMACIÓN ORIENTADA A
OBJECTOS

    Fundamento de la
     Programación Orientada a
     Objectos
INTRODUCCIÓN
¿Qué es una clase?                           ¿COCHE?
                                             ¿COCHE?
   Para el filósofo…
      Un artefacto de clasificación humana
      Clasificamos según un comportamiento o
       atributos comunes
      Acordamos descripciones y nombres de clases
       útiles
      Creamos vocabulario; nos comunicamos;
       ¡pensamos!
   Para el programador orientado a objetos…
      Una construcción sintáctica con nombre que
       describe un comportamiento y atributos comunes
      Una estructura de datos que incluye datos y
       funciones
¿Qué es una Clase?
 Una clase es una descripción de un grupo
 de objetos con:
    Propiedades en común (atributos)
    Comportamiento similar (operaciones)
    La misma forma de relacionarse con otros
     objetos (relaciones)
    Una semántica en común (significan lo mismo)
 Una clase es una abstracción que:
    Enfatiza las características relevantes
    Suprime otras características (simplificación)
 Un objeto es una instancia de una clase
Ejemplo de una Clase
 Clase: Curso
 Estado (Atributos)
    Nombre
    Ubicación
    Días Ofrecidos
    Horario de Inicio
    Horario de Término
 Comportamiento (Métodos)
    Agregar un Alumno
    Borrar un Alumno
    Entregar un Listado del Curso
    Determinar si está Completo
¿Qué es un objeto?
  Un objeto es una instancia de una clase
  Los objetos se caracterizan por:
     Identidad: Los objetos se distinguen unos de
      otros
     Comportamiento: Los objetos pueden realizar
      tareas
     Estado: Los objetos contienen información
¿Qué es un Objeto?
 Informalmente, un objeto representa una
 entidad del mundo real
 Entidades Físicas
        (Ej.: Vehículo, Casa, Producto)
 Entidades Conceptuales
    (Ej.: Proceso Químico, Transacción Bancaria)
 Entidades de Software
    (Ej.: Lista Enlazada, Interfaz Gráfica)
Un objeto posee Estado
  Lo que el objeto sabe
  El estado de un objeto es una de las
  posibles condiciones en que el objeto puede
  existir
  El estado normalmente cambia en el
  transcurso del tiempo
  El estado de un objeto es implementado por
  un conjunto de propiedades (atributos),
  además de las conexiones que puede tener
  con otros objetos
Un objeto posee Comportamiento
   Lo que el objeto puede hacer
   El comportamiento de un objeto determina
   cómo éste actúa y reacciona frente a las
   peticiones de otros objetos
   Es modelado por un conjunto de mensajes a
   los que el objeto puede responder
   (operaciones que puede realizar)
   Se implementa mediante métodos
Un objeto posee Identidad
  Cada objeto tiene una identidad única,
  incluso si su estado es idéntico al de otro
  objeto
Objetos y Clases
  Una clase es una definición abstracta de un objeto
     Define la estructura y el comportamiento compartidos
      por los objetos
     Sirve como modelo para la creación de objetos
  Los objetos pueden ser agrupados en clases
Modificadores de Acceso
 Permiten definir el nivel de acceso
 (visibilidad) de los miembros (atributos o
 métodos) de una clase
    Publico: Cualquier clase puede “ver” los
     miembros públicos de otra clase
    Privado: Sólo la clase puede ver sus propios
     miembros privados
 Existen otros dos modificadores para
 propósitos específicos (Paquete, Protegido)
Abstracción
  La abstracción es ignorancia selectiva
      Decidir qué es importante y qué no lo es
      Concentrarse en lo importante y depender de
       ello
      Ignorar lo que no es importante y no depender
       de ello
      Usar encapsulación para forzar una abstracción

        El objetivo de la abstracción es no perderse en vaguedades y crear
         El objetivo de la abstracción es no perderse en vaguedades y crear
      un nuevo nivel semántico en el que se pueda ser absolutamente preciso.
      un nuevo nivel semántico en el que se pueda ser absolutamente preciso.
                                   Edsger Dijkstra
                                    Edsger Dijkstra
Uso de la encapsulación
  Combinación de datos y métodos
  Control de la visibilidad de acceso
  ¿Por qué se encapsula?
  Datos de objetos
  Uso de datos estáticos
  Uso de métodos estáticos
Combinación de datos y
métodos
    Combinación de datos y métodos en
    una sola cápsula
    La frontera de la cápsula crea un
    espacio interior y otro exterior
       Retirar(           Retirar(
       )                  )
           saldo              saldo

       Ingresar(          Ingresar(
       )                  )
   ¿CuentaBancaria ?     ¿CuentaBancaria ?
Control de la visibilidad de
acceso
    Los métodos son públicos,
    accesibles desde el exterior
    Los datos son privados, accesibles
    sólo desde el interior
      Retirar(                Retirar(
      )                       )
          saldo                   saldo
                          
      Ingresar(               Ingresar(
      )                       )
    ¿CuentaBancaria ?      ¿CuentaBancaria ?
¿Por qué se encapsula?
 Porque permite el control
                                   Retirar(
    El objeto se usa sólo         )
                                   Ingresar(
     con los métodos               )
     públicos                        saldo
                                    12,56
 Porque permite el cambio
    El uso del objeto no          Retirar(
     varía si cambia el tipo       )
     de los datos privados         Ingresar(
                                   )
                                     euros 12

                                     céntimos
                                     56
Datos de objetos
  Los datos de objetos describen
  información para objetos concretos
     Por ejemplo, cada cuenta bancaria tiene
      su propio saldo. Si dos cuentas tienen el
      mismo saldo, será sólo una coincidencia
      .
      Retirar(             Retirar(
      )                    )
      Ingresar(            Ingresar(
      )                    )
        saldo 12,56          saldo
                             12,56
        prop.                prop.
        “Juan"               “Pedro"
Uso de datos estáticos
  Los datos estáticos describen
  información para todos los objetos de
  una clase
     Por ejemplo, supongamos que todas las
      cuentas comparten el mismo interés. No
      sería conveniente almacenar el interés
      en todas las cuentas. ¿Por qué?

      Retirar(          Retirar(
      )                 )
      Ingresar(         Ingresar(
      )                 )
        saldo 12,56       saldo

        interés 7%       99,12
                          interés 7% 
Uso de métodos estáticos
  Los métodos estáticos acceden sólo a datos
  estáticos
     Un método estático se llama en la clase, no el
      objeto
       La clase cuenta                    Un objeto cuenta

                                        Retirar(
   Interés( )
                                       )
                                        Ingresar(
                                       )
                                            saldo
        interés 7%                         99,12
                                            prop.
                                            “Pedro"
       Las clases contienen datos        Los objetos contienen datos
       y métodos estáticos               y métodos de objetos
Definición de sistemas
orientados a objetos
  Herencia
  Jerarquías de clases
  Herencia sencilla y múltiple
  Polimorfismo
  Clases base abstractas
  Interfaces
Herencia
  La herencia indica una relación “es un
  tipo de"
     La herencia es una relación entre clases
     Las nuevas clases añaden
      especialización a las existentes
  Generalización     Músico
                     Músico      Clase base




  Especialización                Clase derivada   ¿Es éste un buen
                    Violinista
                    Violinista                      ejemplo de
                                                     herencia ?
Jerarquías de clases
    Las clases con relaciones de
    herencia forman jerarquías de clases

                                  toca         Instrumento
                                                Instrumento
            Músico
            Músico                                musical
                                                   musical



        Músico de
        Músico de                 toca        Instrumento de
                                               Instrumento de
         cuerda
          cuerda                                   cuerda
                                                    cuerda




                                   toca
      ???
      ???            Violinista
                     Violinista           Violín
                                          Violín          ???
                                                          ???
Herencia sencilla y múltiple
  Herencia sencilla: derivadas de una clase
  base
  Herencia múltiple: derivadas de dos o más
  clases base
         Instrumento de
          Instrumento de       Instrumento
                                Instrumento           Con teclas
                                                      Con teclas
              cuerda
               cuerda             musical
                                   musical




                                         Instrumento de
                                          Instrumento de
              Violín
              Violín                          cuerda
                                               cuerda
       Violín tiene una sola      Instrumento de cuerda tiene
        clase base directa          dos clases base directas
Polimorfismo
    El nombre del método reside en la
    clase base
    Los distintos cuerpos del método
    residen en las clases derivadas
                           Músico de cuerda
                           Músico de cuerda                 Un método sin
                                                            Un método sin
                                                           cuerpo se llama
                                                           cuerpo se llama
                         AfinaTuInstrumento( ))
                         AfinaTuInstrumento(                  operación
                                                              operación




           Guitarrista
           Guitarrista                            Violinista
                                                  Violinista

      AfinaTuInstrumento( ))
      AfinaTuInstrumento(                   AfinaTuInstrumento( ))
                                            AfinaTuInstrumento(
Clases base abstractas
  Algunas clases existen sólo para ser clases
  base
     No tiene sentido crear instancias de estas
      clases
     Estas clases son abstractas
                                                        No se pueden crear instancias
                                                        No se pueden crear instancias
                            Músico de cuerda                de clases abstractas
                                                             de clases abstractas
                            Músico de cuerda
                              {{ abstract }}
                                 abstract
                                                        Se pueden crear instancias
                                                        Se pueden crear instancias
                                                           de clases concretas
                                                            de clases concretas


              Guitarrista
              Guitarrista                        Violinista
                                                 Violinista
             « concrete »
             « concrete »                      « concrete »
                                               « concrete »
Interfaces
     Las interfaces contienen sólo
     operaciones, no implementación
              Músico          Nada más que operaciones.
                              Nada más que operaciones.
               Músico
           « interface »     No se pueden crear instancias
                             No se pueden crear instancias
           « interface »
                                    de una interfaz.
                                    de una interfaz.


                              Puede contener implementación.
                               Puede contener implementación.
         Músico de cuerda
         Músico de cuerda     No se pueden crear instancias de
                              No se pueden crear instancias de
            {{ abstract }}
               abstract                una interfaz.
                                        una interfaz.


                             Implementa las operaciones heredadas.
                              Implementa las operaciones heredadas.
             Violinista
             Violinista      Se pueden crear instancias de una clase
                             Se pueden crear instancias de una clase
           « concrete »
           « concrete »                     concreta.
                                            concreta.

Más contenido relacionado

La actualidad más candente (19)

Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetos
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Unidad1 y 2
Unidad1 y 2Unidad1 y 2
Unidad1 y 2
 
Diagramadeclase
DiagramadeclaseDiagramadeclase
Diagramadeclase
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Introduccion orientación a objetos
Introduccion orientación a objetosIntroduccion orientación a objetos
Introduccion orientación a objetos
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Fun_01_fundamentacion_objetos
Fun_01_fundamentacion_objetosFun_01_fundamentacion_objetos
Fun_01_fundamentacion_objetos
 
Mv vol2 ver5.0(corregido)
Mv vol2 ver5.0(corregido)Mv vol2 ver5.0(corregido)
Mv vol2 ver5.0(corregido)
 
Programacion orientada-a-objetos
Programacion orientada-a-objetosProgramacion orientada-a-objetos
Programacion orientada-a-objetos
 
Cap3.0
Cap3.0Cap3.0
Cap3.0
 
Semana 6
Semana 6Semana 6
Semana 6
 
Portafolio ingenieria de software ii
Portafolio ingenieria de software iiPortafolio ingenieria de software ii
Portafolio ingenieria de software ii
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Java
JavaJava
Java
 
Analisis y diseño de sistemas
Analisis y diseño de sistemasAnalisis y diseño de sistemas
Analisis y diseño de sistemas
 
Alexander Irwin Uml
Alexander Irwin UmlAlexander Irwin Uml
Alexander Irwin Uml
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 

Similar a Introducción a POO con C

Introduccion orientaciona objetos
Introduccion orientaciona objetosIntroduccion orientaciona objetos
Introduccion orientaciona objetosExtremo Castro
 
Base de datos 2(tema 3)
Base de datos 2(tema 3)Base de datos 2(tema 3)
Base de datos 2(tema 3)Edwin Arias
 
Progav tema2
Progav tema2Progav tema2
Progav tema2ESAP
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosjent46
 
Net1 oop vbnet
Net1 oop vbnetNet1 oop vbnet
Net1 oop vbnetjhordy2000
 
Java ferca
Java fercaJava ferca
Java fercajtk1
 
Java ferca
Java fercaJava ferca
Java fercajtk1
 
Iniciando en java en www.fiec.espol.edu.ec
Iniciando en java  en www.fiec.espol.edu.ecIniciando en java  en www.fiec.espol.edu.ec
Iniciando en java en www.fiec.espol.edu.ecSilvana Vargas
 
Introduccion Programación Orientada a Objetos.ppt
Introduccion Programación Orientada a Objetos.pptIntroduccion Programación Orientada a Objetos.ppt
Introduccion Programación Orientada a Objetos.pptdocmarcoantoniosotov
 
Programación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptProgramación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptNachoTValverde
 
Programación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptProgramación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptjhonJD1
 

Similar a Introducción a POO con C (20)

7. Fundamentos De Oo
7.  Fundamentos De Oo7.  Fundamentos De Oo
7. Fundamentos De Oo
 
Introduccion orientaciona objetos
Introduccion orientaciona objetosIntroduccion orientaciona objetos
Introduccion orientaciona objetos
 
2
22
2
 
Base de datos 2(tema 3)
Base de datos 2(tema 3)Base de datos 2(tema 3)
Base de datos 2(tema 3)
 
Presentacion java 1
Presentacion java 1Presentacion java 1
Presentacion java 1
 
Progav tema2
Progav tema2Progav tema2
Progav tema2
 
Poo ok
Poo okPoo ok
Poo ok
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Uml clase 04_uml_clases
Uml clase 04_uml_clasesUml clase 04_uml_clases
Uml clase 04_uml_clases
 
As3 unidad 4 crear action script en archivos externos
As3 unidad 4 crear action script en archivos externosAs3 unidad 4 crear action script en archivos externos
As3 unidad 4 crear action script en archivos externos
 
Net1 oop vbnet
Net1 oop vbnetNet1 oop vbnet
Net1 oop vbnet
 
002 modelo objetos jdchc
002 modelo objetos jdchc002 modelo objetos jdchc
002 modelo objetos jdchc
 
Java ferca
Java fercaJava ferca
Java ferca
 
Java ferca
Java fercaJava ferca
Java ferca
 
Iniciando en java en www.fiec.espol.edu.ec
Iniciando en java  en www.fiec.espol.edu.ecIniciando en java  en www.fiec.espol.edu.ec
Iniciando en java en www.fiec.espol.edu.ec
 
Herencia
HerenciaHerencia
Herencia
 
Introduccion Programación Orientada a Objetos.ppt
Introduccion Programación Orientada a Objetos.pptIntroduccion Programación Orientada a Objetos.ppt
Introduccion Programación Orientada a Objetos.ppt
 
Programación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptProgramación Orientada a Objetos.ppt
Programación Orientada a Objetos.ppt
 
Programación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptProgramación Orientada a Objetos.ppt
Programación Orientada a Objetos.ppt
 
Programación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptProgramación Orientada a Objetos.ppt
Programación Orientada a Objetos.ppt
 

Más de Claribel Eusebio Nolasco (8)

7 manejo de archivos
7 manejo de archivos7 manejo de archivos
7 manejo de archivos
 
6 excepciones
6 excepciones6 excepciones
6 excepciones
 
5 metodos y parametros
5 metodos y parametros5 metodos y parametros
5 metodos y parametros
 
4 variables, arreglos, estructuras y enum
4 variables, arreglos, estructuras y enum4 variables, arreglos, estructuras y enum
4 variables, arreglos, estructuras y enum
 
3 condicionales y ciclos
3 condicionales y ciclos3 condicionales y ciclos
3 condicionales y ciclos
 
1 introduccion microsoft .net
1 introduccion microsoft .net1 introduccion microsoft .net
1 introduccion microsoft .net
 
10 sintaxis oo
10 sintaxis oo10 sintaxis oo
10 sintaxis oo
 
8 introduccion colecciones
8 introduccion colecciones8 introduccion colecciones
8 introduccion colecciones
 

Último

definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 

Último (20)

definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 

Introducción a POO con C

  • 1. Módulo I- Introducción a la Programación en la Plataforma .Net con C#
  • 2. TEMARIO CAPITULO IV.- INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJECTOS  Fundamento de la Programación Orientada a Objectos
  • 3. INTRODUCCIÓN ¿Qué es una clase? ¿COCHE? ¿COCHE? Para el filósofo…  Un artefacto de clasificación humana  Clasificamos según un comportamiento o atributos comunes  Acordamos descripciones y nombres de clases útiles  Creamos vocabulario; nos comunicamos; ¡pensamos! Para el programador orientado a objetos…  Una construcción sintáctica con nombre que describe un comportamiento y atributos comunes  Una estructura de datos que incluye datos y funciones
  • 4. ¿Qué es una Clase? Una clase es una descripción de un grupo de objetos con:  Propiedades en común (atributos)  Comportamiento similar (operaciones)  La misma forma de relacionarse con otros objetos (relaciones)  Una semántica en común (significan lo mismo) Una clase es una abstracción que:  Enfatiza las características relevantes  Suprime otras características (simplificación) Un objeto es una instancia de una clase
  • 5. Ejemplo de una Clase Clase: Curso Estado (Atributos)  Nombre  Ubicación  Días Ofrecidos  Horario de Inicio  Horario de Término Comportamiento (Métodos)  Agregar un Alumno  Borrar un Alumno  Entregar un Listado del Curso  Determinar si está Completo
  • 6. ¿Qué es un objeto? Un objeto es una instancia de una clase Los objetos se caracterizan por:  Identidad: Los objetos se distinguen unos de otros  Comportamiento: Los objetos pueden realizar tareas  Estado: Los objetos contienen información
  • 7. ¿Qué es un Objeto? Informalmente, un objeto representa una entidad del mundo real Entidades Físicas  (Ej.: Vehículo, Casa, Producto) Entidades Conceptuales  (Ej.: Proceso Químico, Transacción Bancaria) Entidades de Software  (Ej.: Lista Enlazada, Interfaz Gráfica)
  • 8. Un objeto posee Estado Lo que el objeto sabe El estado de un objeto es una de las posibles condiciones en que el objeto puede existir El estado normalmente cambia en el transcurso del tiempo El estado de un objeto es implementado por un conjunto de propiedades (atributos), además de las conexiones que puede tener con otros objetos
  • 9. Un objeto posee Comportamiento Lo que el objeto puede hacer El comportamiento de un objeto determina cómo éste actúa y reacciona frente a las peticiones de otros objetos Es modelado por un conjunto de mensajes a los que el objeto puede responder (operaciones que puede realizar) Se implementa mediante métodos
  • 10. Un objeto posee Identidad Cada objeto tiene una identidad única, incluso si su estado es idéntico al de otro objeto
  • 11. Objetos y Clases Una clase es una definición abstracta de un objeto  Define la estructura y el comportamiento compartidos por los objetos  Sirve como modelo para la creación de objetos Los objetos pueden ser agrupados en clases
  • 12. Modificadores de Acceso Permiten definir el nivel de acceso (visibilidad) de los miembros (atributos o métodos) de una clase  Publico: Cualquier clase puede “ver” los miembros públicos de otra clase  Privado: Sólo la clase puede ver sus propios miembros privados Existen otros dos modificadores para propósitos específicos (Paquete, Protegido)
  • 13. Abstracción La abstracción es ignorancia selectiva  Decidir qué es importante y qué no lo es  Concentrarse en lo importante y depender de ello  Ignorar lo que no es importante y no depender de ello  Usar encapsulación para forzar una abstracción El objetivo de la abstracción es no perderse en vaguedades y crear El objetivo de la abstracción es no perderse en vaguedades y crear un nuevo nivel semántico en el que se pueda ser absolutamente preciso. un nuevo nivel semántico en el que se pueda ser absolutamente preciso. Edsger Dijkstra Edsger Dijkstra
  • 14. Uso de la encapsulación Combinación de datos y métodos Control de la visibilidad de acceso ¿Por qué se encapsula? Datos de objetos Uso de datos estáticos Uso de métodos estáticos
  • 15. Combinación de datos y métodos Combinación de datos y métodos en una sola cápsula La frontera de la cápsula crea un espacio interior y otro exterior Retirar( Retirar( ) ) saldo saldo Ingresar( Ingresar( ) ) ¿CuentaBancaria ? ¿CuentaBancaria ?
  • 16. Control de la visibilidad de acceso Los métodos son públicos, accesibles desde el exterior Los datos son privados, accesibles sólo desde el interior Retirar( Retirar( ) ) saldo saldo  Ingresar( Ingresar( ) ) ¿CuentaBancaria ? ¿CuentaBancaria ?
  • 17. ¿Por qué se encapsula? Porque permite el control Retirar(  El objeto se usa sólo ) Ingresar( con los métodos ) públicos saldo  12,56 Porque permite el cambio  El uso del objeto no Retirar( varía si cambia el tipo ) de los datos privados Ingresar( ) euros 12 céntimos 56
  • 18. Datos de objetos Los datos de objetos describen información para objetos concretos  Por ejemplo, cada cuenta bancaria tiene su propio saldo. Si dos cuentas tienen el mismo saldo, será sólo una coincidencia . Retirar( Retirar( ) ) Ingresar( Ingresar( ) ) saldo 12,56 saldo 12,56 prop. prop. “Juan" “Pedro"
  • 19. Uso de datos estáticos Los datos estáticos describen información para todos los objetos de una clase  Por ejemplo, supongamos que todas las cuentas comparten el mismo interés. No sería conveniente almacenar el interés en todas las cuentas. ¿Por qué? Retirar( Retirar( ) ) Ingresar( Ingresar( ) ) saldo 12,56 saldo interés 7% 99,12 interés 7% 
  • 20. Uso de métodos estáticos Los métodos estáticos acceden sólo a datos estáticos  Un método estático se llama en la clase, no el objeto La clase cuenta Un objeto cuenta Retirar( Interés( )  ) Ingresar(  ) saldo interés 7%  99,12 prop. “Pedro" Las clases contienen datos Los objetos contienen datos y métodos estáticos y métodos de objetos
  • 21. Definición de sistemas orientados a objetos Herencia Jerarquías de clases Herencia sencilla y múltiple Polimorfismo Clases base abstractas Interfaces
  • 22. Herencia La herencia indica una relación “es un tipo de"  La herencia es una relación entre clases  Las nuevas clases añaden especialización a las existentes Generalización Músico Músico Clase base Especialización Clase derivada ¿Es éste un buen Violinista Violinista ejemplo de herencia ?
  • 23. Jerarquías de clases Las clases con relaciones de herencia forman jerarquías de clases toca Instrumento Instrumento Músico Músico musical musical Músico de Músico de toca Instrumento de Instrumento de cuerda cuerda cuerda cuerda toca ??? ??? Violinista Violinista Violín Violín ??? ???
  • 24. Herencia sencilla y múltiple Herencia sencilla: derivadas de una clase base Herencia múltiple: derivadas de dos o más clases base Instrumento de Instrumento de Instrumento Instrumento Con teclas Con teclas cuerda cuerda musical musical Instrumento de Instrumento de Violín Violín cuerda cuerda Violín tiene una sola Instrumento de cuerda tiene clase base directa dos clases base directas
  • 25. Polimorfismo El nombre del método reside en la clase base Los distintos cuerpos del método residen en las clases derivadas Músico de cuerda Músico de cuerda Un método sin Un método sin cuerpo se llama cuerpo se llama AfinaTuInstrumento( )) AfinaTuInstrumento( operación operación Guitarrista Guitarrista Violinista Violinista AfinaTuInstrumento( )) AfinaTuInstrumento( AfinaTuInstrumento( )) AfinaTuInstrumento(
  • 26. Clases base abstractas Algunas clases existen sólo para ser clases base  No tiene sentido crear instancias de estas clases  Estas clases son abstractas No se pueden crear instancias No se pueden crear instancias Músico de cuerda de clases abstractas de clases abstractas Músico de cuerda {{ abstract }} abstract Se pueden crear instancias Se pueden crear instancias de clases concretas de clases concretas Guitarrista Guitarrista Violinista Violinista « concrete » « concrete » « concrete » « concrete »
  • 27. Interfaces Las interfaces contienen sólo operaciones, no implementación Músico Nada más que operaciones. Nada más que operaciones. Músico « interface » No se pueden crear instancias No se pueden crear instancias « interface » de una interfaz. de una interfaz. Puede contener implementación. Puede contener implementación. Músico de cuerda Músico de cuerda No se pueden crear instancias de No se pueden crear instancias de {{ abstract }} abstract una interfaz. una interfaz. Implementa las operaciones heredadas. Implementa las operaciones heredadas. Violinista Violinista Se pueden crear instancias de una clase Se pueden crear instancias de una clase « concrete » « concrete » concreta. concreta.

Notas del editor

  1. La forma más sencilla de entender el concepto de clase es si la vemos como una agrupación de objetos con características similares. Por ejemplo, un auto ES UN tipo particular de vehículo motorizado, con lo cual dentro de su comportamiento podemos encontrar “arrancar” y “frenar”, entre otros. Ahora bien, una motocicleta también ES UN vehículo motorizado, y tiene dentro de su comportamiento “arrancar” y “frenar”. El conjunto de atributos también es compartido entre una motocicleta y un automóvil, aunque sus valores no coincidan necesariamente. Por ejemplo, ambos tienen el atributo “cantidad de ruedas”, sólo que el auto tiene 4 y la motocicleta 2.
  2. El concepto de identidad se refiere al hecho de que cada objeto es único en el mundo, por más que su conjunto de atributos y sus valores sean exactamente iguales a los de otros objetos. Por ejemplo, dos autos del mismo modelo, color, motor, salidos de la misma línea de producción el mismo día no dejan de ser dos autos diferentes, por más que su conjunto de atributos y sus valores sean iguales. La única posibilidad de que dos objetos sean iguales es que sean el mismo objeto.
  3. Otra forma útil de ver una clase es como una plantilla, plano o molde de un conjunto de entidades a partir del cual se crearán luego instancias particulares (los objetos). La interacción de las entidades en el mundo real se produce entre objetos, no entre clases. Las clases no tienen “vida” en el mundo real, los objetos sí. Para poder interactuar con alguna clase deberemos crear una instancia particular de ella, con un conjunto de valores definidos para los atributos. A este proceso se lo conoce como “instanciación de un objeto”.
  4. Tanto para los atributos (estado) como para los métodos (comportamiento) de una clase puede configurarse el nivel de visibilidad o acceso que estos tendrán hacia el mundo exterior (otras clases que interactúen con ella). Los cuatro niveles de acceso más comunes que se pueden establecer a nivel de miembro de una clase son: Público: un miembro público puede ser accedido desde cualquier otra clase Privado: un miembro privado solamente puede ser accedido desde la clase en la que está declarado Protegido: un miembro protegido solamente puede ser accedido desde la clase en la que está declarado y desde las clases que hereden de ella (se verá el concepto de herencia más adelante en este curso) Paquete: un miembro de tipo paquete sólo podrá ser accedido desde las clases que estén en el mismo paquete lógico que la clase en la que está definido. En un entorno Microsoft .NET un ejemplo de paquete es una biblioteca .dll o un archivo ejecutable .exe.