SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
Ponentes:
Manuel Martínez Jiménez
Juan Miguel Hernández Arquero
Objetivos de la charla.
I.
       Introducción
II.
       Conceptos básicos (Clase, objeto, paso de
III.
       mensajes)
       Características de la POO ( Herencia, sobrecarga,
IV.
       polimorfismo )
       Conceptos necesarios de C# ( Constructor,
V.
       destructor de basura)
       Ejemplo en C#.
VI.
Adquirir unos conocimientos básicos de lo que
I.
       es la PROGRAMACIÓN ORIENTADA A OBJETOS.
       Animar a estudiar esta metodología quitando
II.
       miedos.
       Resolver dudas a los que están empezando.
III.
Los principales objetivos de la POO son:
1. Aumentar la abstracción de los programas para
   una mejor comprensión.
2. Modularización de componentes.

3. Reducir la redundancia de código.

4. Reducir los tiempos de implementación.

5. Aumentar la fiabilidad mediante la reutilización
   de componentes.
La Programación Orientada a Objetos (POO u OOP según siglas

    en inglés) es un paradigma de programación que define los
    programas en términos de quot;clases de objetosquot;, objetos que son
    entidades que combinan estado (es decir, datos),
    comportamiento (esto es, procedimientos o métodos) e identidad
    (propiedad del objeto que lo diferencia del resto). La
    programación orientada a objetos expresa un programa como un
    conjunto de estos objetos, que colaboran entre ellos para realizar
    tareas.
Una clase es un tipo de Datos con:
 Una serie de características, denominadas ATRIBUTOS.

 Un comportamiento definido mediante MÉTODOS.
 Haciendo un símil con C podríamos establecer una similitud
  entre:

                       variables  atributos
                   
                       funciones  métodos
                  
¿Podemos describir a una persona como una clase?

   Atributos :                    Métodos :

   Color de pelo.                Hablar();
   Color de ojos.                Comer();
   Altura.                       Beber();
   Peso.                         Andar();
                                  Correr();
¿Qué es un objeto?
    Un objeto es la materialización (instanciación)de una clase.


    Por tanto, podemos decir que una clase es como una

    plantilla a partir de la cual se crean objetos.
    Los objetos son las unidades atómicas de los programas.

Un objeto de persona Alba “se crea” (se
  instancia) a partir de la idea de persona (la clase)
  Empieza a:
 Ocupar espacio en el mundo.

 Realizar ciertas funciones como respirar o comer.

 Tiene los ojos marrones, es rubia, mide 80 cm,
  pesa 3,2 kg…
Una referencia contiene sólo la dirección de memoria en la
que el objeto se encuentra almacenado.
 Similitud con los punteros de C.
                    Persona Pepe, Juan;
   Pepe==Juan; //SOLO TRUE SI Pepe Y Juan APUNTAN AL
                    MISMO OBJETO
Pepe = Juan; //Hace que Pepe apunte a Juan, NO COPIA Juan
                         en Pepe.
Los objetos se comunican por el llamado PASO DE MENSAJES, en
  una relación que se denomina CLIENTELA (equivalente a la
  relación contiene).
   El Paso de mensajes se efectúa mediante el uso de las llamadas
  referencias.

Ejemplo:
 Alba Habla.

Persona Alba= new Persona(); //Instanciación de la clase
Alba.dice(“HOLA”); // Enviamos un mensaje al objeto señalado por
        // Alba para que diga Hola
En una clase no DEBE HABER acceso directo a todos
los atributos y métodos del objeto, sino que este
acceso se realiza a través de ciertos métodos de
visibilidad pública.
Diferenciación entre la funcionalidad que la clase ofrece
al mundo externo a través de su interfaz (métodos y
atributos públicos) y la funcionalidad interna de la
misma (métodos y atributos privados).
Existen básicamente 3 tipos de visibilidad para atributos y
métodos:
 PUBLICO: Accesible por todos.
  PROTEGIDO: Accesible sólo por objetos de la clase en
cuestión y por objetos de clases derivadas.
 PRIVADO: Accesible sólo por objetos de la misma clase.
Uno de los objetivos que se persigue con la POO es la
obtención de código reutilizable.
 Para ello debe crearse código genérico, aplicable a tantas
situaciones como sea posible.
La clave para la creación de código reutilizable reside en la
ABSTRACCION.
Mediante la HERENCIA es posible extender la funcionalidad
de este código genérico para adaptarla a situaciones
específicas, reescribiendo partes del código del mismo o
añadiendo funcionalidad.
Dos tipos de herencia: simple y múltiple.
Una clase derivada hereda todos los miembros de la clase
base y puede acceder a los miembros públicos (public) y
protegidos (protected) de la clase o clases base, como si
fueran miembros de ella misma.
  Una clase derivada no tiene acceso a los miembros privados
(private) de la clase base.
Dialoga                          Dialoga
                                         Como cualquier
          Ej. de público                    persona

            Ordenar                          Ordenar
                                         El lo hace de otra
          Ej. de público                        forma
Persona                    Informático
          Respira Ej. de
                                            Programa
           protegido

          Tiempo libre                        Respira
                                         Como cualquier
          Ej. de privado                  otra persona
Una misma referencia puede apuntar a objetos de diferentes
tipos con una raíz común. El tipo específico se determina en
tiempo de ejecución.


 TIPADO DINÁMICO.
Un método se dice sobrecargado si existen varias versiones del
mismo, ofreciendo todas una misma funcionalidad pero
variando el número de parámetros.

    Ejemplo  Una persona come, pero según le des cubiertos
o le des palillos come de una forma o de otra. Es decir, nuestra
persona tiene dos formas de comer (métodos) pero según le
demos unas herramientas u otras (parámetros) esta elige.
Constructor.- Es un método especial de una clase

  que es llamado automáticamente siempre que se
  crea un objeto de la misma. Su misión es iniciar
  los valores de los atributos.
 Recolector de basura.- Es un mecanismo de
  limpieza de memoria. Cuando un objeto deja de
  ser referenciado, este libera la memoria.
Ahora es un buen momento para resolver dudas.
No las dejéis para más tarde porque las dudas es
mejor resolverlas en el momento.
Vamos a ver una implementación en C# del
  ejemplo de las personas. Os recomendamos :
 Seguirlo con atención.

 Pararnos cuando tengáis una duda.

 Intentarlo hacer vosotros también.

  Y recordar que toda la información de la charla
  esta disponible en la página del club:
  http://www.clubnetalmeria.com/

Más contenido relacionado

La actualidad más candente

Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetosjose_rob
 
Poo 3 herencia
Poo 3 herenciaPoo 3 herencia
Poo 3 herenciajlmanmons
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetoshector_h30
 
Arreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansArreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansDaniel Gómez
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en JavaUCE
 
2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automataJacqui Venegas
 
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UMLUnidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UMLCindy Adriana Bohórquez Santana
 
Clases abstractas e interfaces
Clases abstractas e interfacesClases abstractas e interfaces
Clases abstractas e interfaceslopezcortes
 
UML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseUML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseGuillermo Díaz
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosjent46
 
Perceptrón simple y multicapa
Perceptrón simple y multicapaPerceptrón simple y multicapa
Perceptrón simple y multicapaJefferson Guillen
 
Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Josue Lara Reyes
 
Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificaciónAlex Uhu Colli
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetosstill01
 
Arreglos Bidimensionales - Java - NetBeans
Arreglos Bidimensionales - Java - NetBeansArreglos Bidimensionales - Java - NetBeans
Arreglos Bidimensionales - Java - NetBeansDaniel Gómez
 
11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()Clara Patricia Avella Ibañez
 

La actualidad más candente (20)

Modelo Orientado A Objetos
Modelo Orientado A ObjetosModelo Orientado A Objetos
Modelo Orientado A Objetos
 
Poo 3 herencia
Poo 3 herenciaPoo 3 herencia
Poo 3 herencia
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
 
Arreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansArreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeans
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en Java
 
2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata2...2 expresiones regulares, cerradura, fractales, automata
2...2 expresiones regulares, cerradura, fractales, automata
 
Programacion orientada
Programacion orientadaProgramacion orientada
Programacion orientada
 
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UMLUnidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
Unidad 4 a HERENCIA, CLASES ABSTRACTAS, INTERFACES Y POLIMORFISMO . UML
 
Clases abstractas e interfaces
Clases abstractas e interfacesClases abstractas e interfaces
Clases abstractas e interfaces
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
Modelo E R
Modelo E RModelo E R
Modelo E R
 
UML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseUML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de Clase
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Perceptrón simple y multicapa
Perceptrón simple y multicapaPerceptrón simple y multicapa
Perceptrón simple y multicapa
 
Polimorfismo y herencia
Polimorfismo y herenciaPolimorfismo y herencia
Polimorfismo y herencia
 
Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)
 
Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificación
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetos
 
Arreglos Bidimensionales - Java - NetBeans
Arreglos Bidimensionales - Java - NetBeansArreglos Bidimensionales - Java - NetBeans
Arreglos Bidimensionales - Java - NetBeans
 
11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()
 

Destacado

Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenKarlytoz_36
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosJavier Camacho
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetospontifica
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosale8819
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoActimel
 
Programación Orientada a Objetos vs Programación Estructurada
Programación Orientada a Objetos vs Programación EstructuradaProgramación Orientada a Objetos vs Programación Estructurada
Programación Orientada a Objetos vs Programación EstructuradaMichael de la Cruz
 
Poo Java
Poo JavaPoo Java
Poo Javaeccutpl
 
Fundamentos de programación Java
Fundamentos de programación JavaFundamentos de programación Java
Fundamentos de programación Javaquesada_diego
 
Introducción a la Programación con Java
Introducción a la Programación con JavaIntroducción a la Programación con Java
Introducción a la Programación con Javaflekoso
 
Introduccion a la programacion orientada a objetos
Introduccion a la programacion orientada a objetosIntroduccion a la programacion orientada a objetos
Introduccion a la programacion orientada a objetosFabian Dorado
 
Metodologia incremental
Metodologia incrementalMetodologia incremental
Metodologia incrementalAnel Sosa
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructuradalindacajaperuiz
 
Paquetes De Programacion
Paquetes De ProgramacionPaquetes De Programacion
Paquetes De Programaciontibu85
 
Diseño de un reporte en word
Diseño de un reporte en wordDiseño de un reporte en word
Diseño de un reporte en wordmiguel vega
 
Paradigma Programación Orientada a Objetos (POO)
Paradigma Programación Orientada a Objetos (POO)Paradigma Programación Orientada a Objetos (POO)
Paradigma Programación Orientada a Objetos (POO)Fredy Nicolas Moreno Puerto
 
Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)guest18b3c00
 

Destacado (20)

Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
POO
POOPOO
POO
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - Resumen
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y Polimorfismo
 
Programación Orientada a Objetos vs Programación Estructurada
Programación Orientada a Objetos vs Programación EstructuradaProgramación Orientada a Objetos vs Programación Estructurada
Programación Orientada a Objetos vs Programación Estructurada
 
Poo Java
Poo JavaPoo Java
Poo Java
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Fundamentos de programación Java
Fundamentos de programación JavaFundamentos de programación Java
Fundamentos de programación Java
 
Introducción a la Programación con Java
Introducción a la Programación con JavaIntroducción a la Programación con Java
Introducción a la Programación con Java
 
Java orientado a objetos
Java orientado a objetosJava orientado a objetos
Java orientado a objetos
 
Introduccion a la programacion orientada a objetos
Introduccion a la programacion orientada a objetosIntroduccion a la programacion orientada a objetos
Introduccion a la programacion orientada a objetos
 
Metodologia incremental
Metodologia incrementalMetodologia incremental
Metodologia incremental
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Paquetes De Programacion
Paquetes De ProgramacionPaquetes De Programacion
Paquetes De Programacion
 
Diseño de un reporte en word
Diseño de un reporte en wordDiseño de un reporte en word
Diseño de un reporte en word
 
Paradigma Programación Orientada a Objetos (POO)
Paradigma Programación Orientada a Objetos (POO)Paradigma Programación Orientada a Objetos (POO)
Paradigma Programación Orientada a Objetos (POO)
 
Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)Programação Orientada A Objectos (Poo)
Programação Orientada A Objectos (Poo)
 

Similar a Poo

Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetosbrandonhh10
 
Practica retro java 28102013
Practica retro java 28102013Practica retro java 28102013
Practica retro java 28102013Edgar Rosas
 
Unidad introduccion a la poo
Unidad introduccion a la pooUnidad introduccion a la poo
Unidad introduccion a la pooSol Hernández
 
Tema 2. Programación Estructurada 11-02-23.pdf
Tema 2. Programación Estructurada 11-02-23.pdfTema 2. Programación Estructurada 11-02-23.pdf
Tema 2. Programación Estructurada 11-02-23.pdfNoe Castillo
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetosalexis armas
 
Fundamentos del Enfoque OO
Fundamentos del Enfoque OOFundamentos del Enfoque OO
Fundamentos del Enfoque OOsullinsan
 
Fundamentos de Programación Orientada a Objetos
Fundamentos de Programación Orientada a ObjetosFundamentos de Programación Orientada a Objetos
Fundamentos de Programación Orientada a ObjetosMarines Ahuanlla
 
[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con java[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con javaEudris Cabrera
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructuradavnslgars
 
Cuatro elementos claves para entender poo en java
Cuatro elementos claves para entender poo en javaCuatro elementos claves para entender poo en java
Cuatro elementos claves para entender poo en javaElivar Largo
 
LABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN ILABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN ISILVA19_PAMELA
 
Programacion Orientada a Objetos IE
Programacion Orientada a Objetos IEProgramacion Orientada a Objetos IE
Programacion Orientada a Objetos IEKaren Olan
 

Similar a Poo (20)

Poo
PooPoo
Poo
 
Clase 2
Clase 2 Clase 2
Clase 2
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Practica retro java 28102013
Practica retro java 28102013Practica retro java 28102013
Practica retro java 28102013
 
Unidad introduccion a la poo
Unidad introduccion a la pooUnidad introduccion a la poo
Unidad introduccion a la poo
 
Tema 2. Programación Estructurada 11-02-23.pdf
Tema 2. Programación Estructurada 11-02-23.pdfTema 2. Programación Estructurada 11-02-23.pdf
Tema 2. Programación Estructurada 11-02-23.pdf
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 
Fundamentos del Enfoque OO
Fundamentos del Enfoque OOFundamentos del Enfoque OO
Fundamentos del Enfoque OO
 
Poo y visual
Poo y visualPoo y visual
Poo y visual
 
Fundamentos de Programación Orientada a Objetos
Fundamentos de Programación Orientada a ObjetosFundamentos de Programación Orientada a Objetos
Fundamentos de Programación Orientada a Objetos
 
[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con java[ES] Programación orientada a objeto con java
[ES] Programación orientada a objeto con java
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Tarea 3
Tarea 3Tarea 3
Tarea 3
 
Unidad i parte i
Unidad i parte iUnidad i parte i
Unidad i parte i
 
Programacion visual
Programacion visualProgramacion visual
Programacion visual
 
Cuatro elementos claves para entender poo en java
Cuatro elementos claves para entender poo en javaCuatro elementos claves para entender poo en java
Cuatro elementos claves para entender poo en java
 
Conceptos poo
Conceptos pooConceptos poo
Conceptos poo
 
LABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN ILABORATORIO DE PROGRAMACIÓN I
LABORATORIO DE PROGRAMACIÓN I
 
Programacion Orientada a Objetos IE
Programacion Orientada a Objetos IEProgramacion Orientada a Objetos IE
Programacion Orientada a Objetos IE
 

Poo

  • 1. Ponentes: Manuel Martínez Jiménez Juan Miguel Hernández Arquero
  • 2. Objetivos de la charla. I. Introducción II. Conceptos básicos (Clase, objeto, paso de III. mensajes) Características de la POO ( Herencia, sobrecarga, IV. polimorfismo ) Conceptos necesarios de C# ( Constructor, V. destructor de basura) Ejemplo en C#. VI.
  • 3. Adquirir unos conocimientos básicos de lo que I. es la PROGRAMACIÓN ORIENTADA A OBJETOS. Animar a estudiar esta metodología quitando II. miedos. Resolver dudas a los que están empezando. III.
  • 4. Los principales objetivos de la POO son: 1. Aumentar la abstracción de los programas para una mejor comprensión. 2. Modularización de componentes. 3. Reducir la redundancia de código. 4. Reducir los tiempos de implementación. 5. Aumentar la fiabilidad mediante la reutilización de componentes.
  • 5. La Programación Orientada a Objetos (POO u OOP según siglas  en inglés) es un paradigma de programación que define los programas en términos de quot;clases de objetosquot;, objetos que son entidades que combinan estado (es decir, datos), comportamiento (esto es, procedimientos o métodos) e identidad (propiedad del objeto que lo diferencia del resto). La programación orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas.
  • 6. Una clase es un tipo de Datos con:  Una serie de características, denominadas ATRIBUTOS.  Un comportamiento definido mediante MÉTODOS.  Haciendo un símil con C podríamos establecer una similitud entre: variables  atributos  funciones  métodos 
  • 7. ¿Podemos describir a una persona como una clase? Atributos : Métodos : Color de pelo. Hablar(); Color de ojos. Comer(); Altura. Beber(); Peso. Andar(); Correr();
  • 8. ¿Qué es un objeto? Un objeto es la materialización (instanciación)de una clase.  Por tanto, podemos decir que una clase es como una  plantilla a partir de la cual se crean objetos. Los objetos son las unidades atómicas de los programas. 
  • 9. Un objeto de persona Alba “se crea” (se instancia) a partir de la idea de persona (la clase) Empieza a:  Ocupar espacio en el mundo.  Realizar ciertas funciones como respirar o comer.  Tiene los ojos marrones, es rubia, mide 80 cm, pesa 3,2 kg…
  • 10. Una referencia contiene sólo la dirección de memoria en la que el objeto se encuentra almacenado. Similitud con los punteros de C. Persona Pepe, Juan; Pepe==Juan; //SOLO TRUE SI Pepe Y Juan APUNTAN AL MISMO OBJETO Pepe = Juan; //Hace que Pepe apunte a Juan, NO COPIA Juan en Pepe.
  • 11. Los objetos se comunican por el llamado PASO DE MENSAJES, en una relación que se denomina CLIENTELA (equivalente a la relación contiene). El Paso de mensajes se efectúa mediante el uso de las llamadas referencias. Ejemplo:  Alba Habla. Persona Alba= new Persona(); //Instanciación de la clase Alba.dice(“HOLA”); // Enviamos un mensaje al objeto señalado por // Alba para que diga Hola
  • 12. En una clase no DEBE HABER acceso directo a todos los atributos y métodos del objeto, sino que este acceso se realiza a través de ciertos métodos de visibilidad pública. Diferenciación entre la funcionalidad que la clase ofrece al mundo externo a través de su interfaz (métodos y atributos públicos) y la funcionalidad interna de la misma (métodos y atributos privados).
  • 13. Existen básicamente 3 tipos de visibilidad para atributos y métodos: PUBLICO: Accesible por todos. PROTEGIDO: Accesible sólo por objetos de la clase en cuestión y por objetos de clases derivadas. PRIVADO: Accesible sólo por objetos de la misma clase.
  • 14. Uno de los objetivos que se persigue con la POO es la obtención de código reutilizable. Para ello debe crearse código genérico, aplicable a tantas situaciones como sea posible. La clave para la creación de código reutilizable reside en la ABSTRACCION. Mediante la HERENCIA es posible extender la funcionalidad de este código genérico para adaptarla a situaciones específicas, reescribiendo partes del código del mismo o añadiendo funcionalidad. Dos tipos de herencia: simple y múltiple.
  • 15. Una clase derivada hereda todos los miembros de la clase base y puede acceder a los miembros públicos (public) y protegidos (protected) de la clase o clases base, como si fueran miembros de ella misma. Una clase derivada no tiene acceso a los miembros privados (private) de la clase base.
  • 16.
  • 17. Dialoga Dialoga Como cualquier Ej. de público persona Ordenar Ordenar El lo hace de otra Ej. de público forma Persona Informático Respira Ej. de Programa protegido Tiempo libre Respira Como cualquier Ej. de privado otra persona
  • 18. Una misma referencia puede apuntar a objetos de diferentes tipos con una raíz común. El tipo específico se determina en tiempo de ejecución. TIPADO DINÁMICO.
  • 19.
  • 20. Un método se dice sobrecargado si existen varias versiones del mismo, ofreciendo todas una misma funcionalidad pero variando el número de parámetros. Ejemplo  Una persona come, pero según le des cubiertos o le des palillos come de una forma o de otra. Es decir, nuestra persona tiene dos formas de comer (métodos) pero según le demos unas herramientas u otras (parámetros) esta elige.
  • 21. Constructor.- Es un método especial de una clase  que es llamado automáticamente siempre que se crea un objeto de la misma. Su misión es iniciar los valores de los atributos.  Recolector de basura.- Es un mecanismo de limpieza de memoria. Cuando un objeto deja de ser referenciado, este libera la memoria.
  • 22. Ahora es un buen momento para resolver dudas. No las dejéis para más tarde porque las dudas es mejor resolverlas en el momento.
  • 23. Vamos a ver una implementación en C# del ejemplo de las personas. Os recomendamos :  Seguirlo con atención.  Pararnos cuando tengáis una duda.  Intentarlo hacer vosotros también. Y recordar que toda la información de la charla esta disponible en la página del club: http://www.clubnetalmeria.com/