Introducción a la Programación
           Orientada a Objetos
                 Ing. Daniel Cáceres
Un poco de Historia...
   La PDP-1 (Programmed
    Data Processor-1) es la
    primera computadora
    digital producida en
    1960.
   Es la primera
    computadora en
    aplicar conceptos de
    POO (sin saberlo).
   Es pionera en crear la
    cultura hacker.
¿Qué es la POO?
   Es un paradigma o modelo
    de programación o sea una
    manera de plantearse la
    programación. No es una
    tecnología definida, o un
    programa; Es una
    característica que tienen
    muchos lenguajes de
    programación.
   La programación Orientada
    a Objetos (POO) es más
    cercana al mundo real que
    la programación
    estructurada. Ésta hace
    énfasis en las cosas
    mientras que aquella en los
    procedimientos.               ¡Qué fumada se echaron!
¿Qué es la POO?
   En el mundo real
    ¿qué vemos? cosas,
    objetos.
   Cada objeto
    pertenece a una
    clase de objetos.
   Ese es el principio
    básico de la POO.
   En la foto: una simple
    bicicleta.
Bicicleta eléctrica    Bicicleta caquera




Bicicleta de montaña     Bicicleta para niños
Todas corresponden al concepto de bicicleta.
Esa es la clase de objeto que son.
¿Qué es la POO?
   En JAVA podemos
    crear OBJETOS
    instanciándolos de una
    CLASE.
   Podríamos por ejemplo
    tener una clase que se
    llame BICICLETA, e
    instanciar diez objetos
    para que tengamos
    una cada uno.
Carácterísticas de la POO
                Lascaracterísticas
                de la POO son
                fundamentalmente
                tres:
                 › Abstracción
                 › Herencia
                 › Encapsulamiento
Un Ejemplo
Mira el ejemplo de las
bicicletas
“Bicicleta.java” y
“PruebaBicicleta.java”.
Ejemplo 1
 Conceptos   claves:
  › Propiedad: Son los datos que me interesan
   del objeto.
   Las propiedades de Bicicleta son: cambio,
   velocidad y engranaje.

  › Método es lo que el objeto “hace”. Por
   medio de los métodos puede cambiar las
   propiedades, mostrarlas, hacer
   procedimientos, etc.
Ejemplo 1
 Otro   concepto clave:
  › Instanciar: Crear un objeto a partir de una
   clase.

   Los objetos “instanciados” son birula1,
   birula2 y birulaCaquera.

   OJO: Varias variables pueden referenciar un
   mismo objeto.
Constructores
Antes de continuar,
fijarse en el ejemplo 2.

Los constructores sirven
para establecer el
estado inicial del objeto
al momento de
instanciarlo.

Al ver Bicicleta2 vemos
que podemos hacer
más de un contructor.
Herencia
              Una clase puede “heredar”
               todas las características de
               otra.
              Al heredar, obtiene todas
               las propiedades y el
               comportamiento de la
               clase padre.
              En java se suele llamar
               superclase y subclase.
              Otros dicen padre e hijo.
Ejemplo 3
               En el ejemplo tres se
                declaran tres clases
                más que “heredan” de
                Bicicleta:
                › Bicicleta de Montaña
                › Bicicleta de Camino
                › Bicicleta de Dos Asientos
Ejemplo 3
 Aspectos   que hay que fijarse:
  › La palabra extends quiere decir que
    BicicletaDeMontaña recibe todos sus
    miembros de Bicicleta.
  › La montañesa tiene velocidad y todas las
    propiedades de una bicicleta.
  › La palabra super manda a llamar al
    constructur de la superclase.
Abstracción
   Cuando vamos a programar
    con POO se vale usar la
    máxima de la guerra: divide y
    vencerás.
   Tenemos que partir nuestro
    código en grupos de cósigo
    más pequeños que, al unirlos,
    hacen el trabajo.
   Un buen ejemplo de
    abstracción es el cuerpo
    humano.
Abstracción
                 Básicamente es la
                  capacidad de separar
                  los elementos (al menos
                  mentalmente) para
                  poder verlos de forma
                  singular. Como cuando
                  describimos el cuerpo
                  humano y decimos
                  cabeza, brazo(s),
                  pierna(s), etc.
Ejemplo 4: Abstracción
 Siintentáramos hacer un programa para
  el proceso de admisión de Kinal, ¿Cómo
  sería utilizando lenguaje estructurado?
   › Muchos ciclos, miles de decisiones…
 Con  la POO, podemos dividir el
  problema creando una clase para cada
  personaje importante, y para cada cosa
  importante. Las clases podrían ser:
   › Alumno, Profesor, Examen…
Encapsulamiento
   La Programación
    Orientada a Objetos
    hace que el código
    se desarrolle por
    cubículos.
   Los demás no
    necesariamente
    tienen por que ver mi
    código, y viceversa.
   Es más seguro.
Encapsulamiento
   Las propiedades que
    le interesan a otras
    clases las hago
    públicas con public.
   A las propiedades
    que no le interesan a
    los demás las hago
    private.
   También existe
    protected y dejarlo
    sin nada tiene otro
    significado.
Ejemplo 5: Encapsulamiento
 En el ejemplo borré intencionalmente el
  archivo “usuario.java”, pero está la clase
  “usuario.class”.
 Al ejecutar el programa, no se puede
  saber cual es la contraseña.
 Se dice que la contraseña está
  “encapsulada”.
Resumen: CLASES
public class nombre_clase extends superclase {
   // Propiedades
   public int propiedad1;
   public String propiedad2;
   …
   // Constructor(es)
   public nombre_clase (parámetros…)
   {    …    }
   public nombre_clase (parámetros…)
   {    …    }
   // Métodos
   public int método1 (parámetros…)
   {    …    }
   public String método2 (parámetros…)
   {    …    }
   public void método3 (parámetros…)
   {    …    }
}

POO

  • 1.
    Introducción a laProgramación Orientada a Objetos Ing. Daniel Cáceres
  • 2.
    Un poco deHistoria...  La PDP-1 (Programmed Data Processor-1) es la primera computadora digital producida en 1960.  Es la primera computadora en aplicar conceptos de POO (sin saberlo).  Es pionera en crear la cultura hacker.
  • 3.
    ¿Qué es laPOO?  Es un paradigma o modelo de programación o sea una manera de plantearse la programación. No es una tecnología definida, o un programa; Es una característica que tienen muchos lenguajes de programación.  La programación Orientada a Objetos (POO) es más cercana al mundo real que la programación estructurada. Ésta hace énfasis en las cosas mientras que aquella en los procedimientos. ¡Qué fumada se echaron!
  • 4.
    ¿Qué es laPOO?  En el mundo real ¿qué vemos? cosas, objetos.  Cada objeto pertenece a una clase de objetos.  Ese es el principio básico de la POO.  En la foto: una simple bicicleta.
  • 5.
    Bicicleta eléctrica Bicicleta caquera Bicicleta de montaña Bicicleta para niños
  • 6.
    Todas corresponden alconcepto de bicicleta. Esa es la clase de objeto que son.
  • 7.
    ¿Qué es laPOO?  En JAVA podemos crear OBJETOS instanciándolos de una CLASE.  Podríamos por ejemplo tener una clase que se llame BICICLETA, e instanciar diez objetos para que tengamos una cada uno.
  • 8.
    Carácterísticas de laPOO  Lascaracterísticas de la POO son fundamentalmente tres: › Abstracción › Herencia › Encapsulamiento
  • 9.
    Un Ejemplo Mira elejemplo de las bicicletas “Bicicleta.java” y “PruebaBicicleta.java”.
  • 10.
    Ejemplo 1  Conceptos claves: › Propiedad: Son los datos que me interesan del objeto. Las propiedades de Bicicleta son: cambio, velocidad y engranaje. › Método es lo que el objeto “hace”. Por medio de los métodos puede cambiar las propiedades, mostrarlas, hacer procedimientos, etc.
  • 11.
    Ejemplo 1  Otro concepto clave: › Instanciar: Crear un objeto a partir de una clase. Los objetos “instanciados” son birula1, birula2 y birulaCaquera. OJO: Varias variables pueden referenciar un mismo objeto.
  • 12.
    Constructores Antes de continuar, fijarseen el ejemplo 2. Los constructores sirven para establecer el estado inicial del objeto al momento de instanciarlo. Al ver Bicicleta2 vemos que podemos hacer más de un contructor.
  • 13.
    Herencia  Una clase puede “heredar” todas las características de otra.  Al heredar, obtiene todas las propiedades y el comportamiento de la clase padre.  En java se suele llamar superclase y subclase.  Otros dicen padre e hijo.
  • 14.
    Ejemplo 3  En el ejemplo tres se declaran tres clases más que “heredan” de Bicicleta: › Bicicleta de Montaña › Bicicleta de Camino › Bicicleta de Dos Asientos
  • 15.
    Ejemplo 3  Aspectos que hay que fijarse: › La palabra extends quiere decir que BicicletaDeMontaña recibe todos sus miembros de Bicicleta. › La montañesa tiene velocidad y todas las propiedades de una bicicleta. › La palabra super manda a llamar al constructur de la superclase.
  • 16.
    Abstracción  Cuando vamos a programar con POO se vale usar la máxima de la guerra: divide y vencerás.  Tenemos que partir nuestro código en grupos de cósigo más pequeños que, al unirlos, hacen el trabajo.  Un buen ejemplo de abstracción es el cuerpo humano.
  • 17.
    Abstracción  Básicamente es la capacidad de separar los elementos (al menos mentalmente) para poder verlos de forma singular. Como cuando describimos el cuerpo humano y decimos cabeza, brazo(s), pierna(s), etc.
  • 18.
    Ejemplo 4: Abstracción Siintentáramos hacer un programa para el proceso de admisión de Kinal, ¿Cómo sería utilizando lenguaje estructurado? › Muchos ciclos, miles de decisiones…  Con la POO, podemos dividir el problema creando una clase para cada personaje importante, y para cada cosa importante. Las clases podrían ser: › Alumno, Profesor, Examen…
  • 19.
    Encapsulamiento  La Programación Orientada a Objetos hace que el código se desarrolle por cubículos.  Los demás no necesariamente tienen por que ver mi código, y viceversa.  Es más seguro.
  • 20.
    Encapsulamiento  Las propiedades que le interesan a otras clases las hago públicas con public.  A las propiedades que no le interesan a los demás las hago private.  También existe protected y dejarlo sin nada tiene otro significado.
  • 21.
    Ejemplo 5: Encapsulamiento En el ejemplo borré intencionalmente el archivo “usuario.java”, pero está la clase “usuario.class”.  Al ejecutar el programa, no se puede saber cual es la contraseña.  Se dice que la contraseña está “encapsulada”.
  • 22.
    Resumen: CLASES public classnombre_clase extends superclase { // Propiedades public int propiedad1; public String propiedad2; … // Constructor(es) public nombre_clase (parámetros…) { … } public nombre_clase (parámetros…) { … } // Métodos public int método1 (parámetros…) { … } public String método2 (parámetros…) { … } public void método3 (parámetros…) { … } }