Santiago, Chile 2013

Introducción a la Programación
Orientada a Objetos
Pablo Sepúlveda P.
Fundación GNUCHILE
pablo.sepul...
Introducción a la POO
Contenidos:
Introducción al paradigma.
Clase y Objeto.
Conceptos.
Buenas prácticas.

Introducción a ...
Introducción al Paradigma

Introducción a la POO

3
Introducción al Paradigma
¿Qué es un paradigma de programación?
Un paradigma de programación es una forma o
técnica tecnol...
Introducción al Paradigma
El primer lenguaje fue el Simula, en el
año 1967, esto en Noruega.
Ole-Johan Dahl y Kristen Nyga...
Clase y Objeto

Introducción a la POO

6
Clase y Objeto
La gran base del paradigma orientado a
objetos radica en dos conceptos primordiales:
Clase: es “el plano” p...
Clase y Objeto
Se entiende por instancia la creación de
un nuevo objeto a partir de una clase.
En un ejemplo práctico, pod...
Clase y Objeto
Componentes de la Clase:

Introducción a la POO

9
Conceptos

Introducción a la POO

1
0
Un poco de Java...
Creado por James Gosling de Sun
Microsystems. Su aparición fue en el año
1995.
Es un lenguaje compilado...
Algunos tipos de datos en
Java
Objetos:
Integer: Tipo de dato entero. Por defecto su
inicialización es null.
String: Repre...
Hola mundo en Java...
La ejecución en Java depende del método
Main (que será explicado más adelante)

Utilizando un String...
Ejemplo de Clase en Java
Según lo visto, podríamos construir una simple clase de la
siguiente forma:

Parte de las buenas ...
Ejemplo de Clase en Java

Introducción a la POO

1
5
Ejemplo de Instancia en Java
La instancia de la clase mostrada, para crear un nuevo
objeto, sería la siguiente:

Ejemplo d...
Ejemplo de Instancia en Java

Se acceden a los atributos y/o métodos/funciones mediante un “.”

Introducción a la POO

1
7
Tipos de Clases
public: Es la más utilizada. Da acceso
público dentro del package a la clase
para que pueda ser heredada o...
Tipos de Clases
final: Tampoco puede ser instanciada. Por
lo general contiene atributos, métodos
y/o funciones constantes ...
Tipos de Clases

Introducción a la POO

2
0
Funciones y Métodos
Las clases también pueden contener funciones y/o
métodos.
Métodos: ejecutan y/o implementan instruccio...
Funciones y Métodos
Funciones: funcionan igual que los métodos, pero
con la diferencia que retornan algún dato/objeto.

En...
Métodos y Funciones
Especiales
Método Main: Método estático estándar y
por defecto que indica el punto de partida
de nuest...
Métodos y Funciones
Especiales
Constructor: Es un método especial que se
inicia de manera automática al momento de
inicial...
Métodos y Funciones
Especiales
Ejemplo de Constructor:

Introducción a la POO

2
5
Funciones y Métodos
Ejemplo de funciones, métodos, Constructor y
método Main:

Introducción a la POO

2
6
Controles de Acceso
Una de las tantas características que
incorpora la POO es el nivel de acceso
que se pueden tener a los...
Controles de Acceso
public: permite el acceso desde cualquier clase.
Se representa con (+) en el diagrama de clases.
priva...
Bases de la POO

Introducción a la POO

2
9
Bases de la POO
Los tres pilares fundamentales de la
programación orientada a objetos son:
Encapsulamiento.
Herencia.
Poli...
Getters y Setters
Una de tantas malas prácticas recurrentes es el
tema de los permisos en los atributos de las clases.
En ...
Getters y Setters:
Encapsulamiento
Getter: se identifica con el nombre de
“get”. Permite acceder al valor del atributo.
Po...
Getters y Setters:
Encapsulamiento
Setter: se identifica con el nombre de
“set”. Permite cambiar el valor del
atributo de ...
Interacción de Clases
A veces necesitamos atributos de una
clase distinta.
Por ejemplo: la clase A representa una
tabla de...
Interacción de Clases

Introducción a la POO

3
5
Interacción de Clases
Otra forma de interacción es la
denominada herencia.
La herencia es la que permite crear
clases a pa...
Interacción de Clases:
Herencia

Superclase “Herencia” y Subclase “Main”
Introducción a la POO

3
7
Interacción de Clases:
Herencia
Dos definiciones clases en Herencias:
Superclase: es la clase base, padre, etc.
Por lo gen...
Interacción de Clases:
Herencia
Visibilidad:
Componentes públicos de la superclase
son visibles y públicos en la subclase....
Polimorfismo
El polimorfismo aplica a las distintas
respuestas que podemos tener de un
mismo método y/o función dependiend...
Polimorfismo
Superclase Persona (abstracta):

Clase abstracta persona tiene sus
componentes como protected.
Introducción a...
Polimorfismo
La subclase Cliente extiende de la superclase
Persona (hijo-padre).

Aprovechando la naturaleza de la clase, ...
Polimorfismo
La subclase Main también extiende de la
superclase Persona y utiliza la herencia
en el método main, también u...
Polimorfismo
El resultado sería el siguiente:
Se utilizó herencia y polimorfismo para
sacar ventaja de la naturaleza de la...
Buenas Prácticas

Introducción a la POO

4
5
Buenas Prácticas
Nombre de métodos, objetos, funciones y atributos
comienzan con minúscula, las Clases con mayúscula.
No u...
Fuentes:
Documentación oficial Java SE 6
http://docs.oracle.com/javase/6/docs/
Wikipedia
http://es.wikipedia.org/

Introdu...
¡Gracias por su atención!
Contacto:
psepulveda@fundaciongnuchile.cl
pablo.sepulveda@member.fsf.org
http://www.psep.cl/
htt...
Upcoming SlideShare
Loading in...5
×

Intro Programación Orientada a Objetos

306

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
306
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Intro Programación Orientada a Objetos

  1. 1. Santiago, Chile 2013 Introducción a la Programación Orientada a Objetos Pablo Sepúlveda P. Fundación GNUCHILE pablo.sepulveda@member.fsf.org
  2. 2. Introducción a la POO Contenidos: Introducción al paradigma. Clase y Objeto. Conceptos. Buenas prácticas. Introducción a la POO 2
  3. 3. Introducción al Paradigma Introducción a la POO 3
  4. 4. Introducción al Paradigma ¿Qué es un paradigma de programación? Un paradigma de programación es una forma o técnica tecnológica definida, empleada para resolver un problema. Tipos de paradigmas: imperativo/estructurado (C, PHP, Pascal), Orientado a Eventos (Visual Basic), funcional (Haskell), Orientado a Objetos (Java, C++, Python, Ruby, PHP), Orientado a Aspectos (Java), por nombrar a algunos. Introducción a la POO 4
  5. 5. Introducción al Paradigma El primer lenguaje fue el Simula, en el año 1967, esto en Noruega. Ole-Johan Dahl y Kristen Nygaard son considerados los padres del paradigma. En los años 80 se vuelve popular debido a su rendimiento y procesamiento de datos. Esto sumado a la influencia de C++. Introducción a la POO 5
  6. 6. Clase y Objeto Introducción a la POO 6
  7. 7. Clase y Objeto La gran base del paradigma orientado a objetos radica en dos conceptos primordiales: Clase: es “el plano” para construir algo. No es “tangible”. Son las definiciones y propiedades (atributos y métodos/funciones) de un tipo de objeto. Objeto: Es la instancia de una clase, una entidad que posee definiciones y propiedades que fueron definidas en la clase de la cual fue instanciado. Introducción a la POO 7
  8. 8. Clase y Objeto Se entiende por instancia la creación de un nuevo objeto a partir de una clase. En un ejemplo práctico, podemos ver el plano de una casa como una Clase y la casa como un objeto. Del plano no podemos hacer mucho, pero a partir de éste podemos crear (instanciar) muchos objetos de tipo casa. Introducción a la POO 8
  9. 9. Clase y Objeto Componentes de la Clase: Introducción a la POO 9
  10. 10. Conceptos Introducción a la POO 1 0
  11. 11. Un poco de Java... Creado por James Gosling de Sun Microsystems. Su aparición fue en el año 1995. Es un lenguaje compilado, por lo que su ejecución es más óptima que lenguajes interpretados como PHP, Perl, Lisp, Ruby, etc. Su sintaxis deriva de C y C++. Inicialmente fue diseñado para POO, pero actualmente soporta paradigmas funcionales y POA. Introducción a la POO 1 1
  12. 12. Algunos tipos de datos en Java Objetos: Integer: Tipo de dato entero. Por defecto su inicialización es null. String: Representa a la cadena de caracteres, ahora como objeto. Su inicialización por defecto también es null. Boolean: Objeto que soporta true y false. Double: Ajusta un valor primitivo double en el objeto. Date: Tipo de dato, como objeto, Date. Sirve para almacenar tiempo. Parte de la biblioteca java.util. Introducción a la POO 1 2
  13. 13. Hola mundo en Java... La ejecución en Java depende del método Main (que será explicado más adelante) Utilizando un String sería: Introducción a la POO 1 3
  14. 14. Ejemplo de Clase en Java Según lo visto, podríamos construir una simple clase de la siguiente forma: Parte de las buenas prácticas de programación dice que las clases deben comenzar SIEMPRE con mayúscula y deben ser singular. Los atributos, métodos, funciones y objetos con minúscula. Es importante cuidar la semántica. Introducción a la POO 1 4
  15. 15. Ejemplo de Clase en Java Introducción a la POO 1 5
  16. 16. Ejemplo de Instancia en Java La instancia de la clase mostrada, para crear un nuevo objeto, sería la siguiente: Ejemplo de la creación de un nuevo objeto de tipo (clase) persona en Java. Persona = Es la clase. persona = Es el objeto. Puede ser nombrado de cualquier forma, pero por normativa debe tener coherencia. new Persona() = El valor al objeto, una nueva instancia de la clase Persona. Introducción a la POO 1 6
  17. 17. Ejemplo de Instancia en Java Se acceden a los atributos y/o métodos/funciones mediante un “.” Introducción a la POO 1 7
  18. 18. Tipos de Clases public: Es la más utilizada. Da acceso público dentro del package a la clase para que pueda ser heredada o instanciada desde otras clases. Si no se especifica el tipo, ésta es por defecto. abstract: Esta clase no puede ser instanciada, sólo puede ser usada por herencia. Por lo general se usa de base para otras clases. Introducción a la POO 1 8
  19. 19. Tipos de Clases final: Tampoco puede ser instanciada. Por lo general contiene atributos, métodos y/o funciones constantes (estáticas) que necesitan ser utilizadas en nuestro package, así no es necesario tener un objeto de ese tipo en memoria. Introducción a la POO 1 9
  20. 20. Tipos de Clases Introducción a la POO 2 0
  21. 21. Funciones y Métodos Las clases también pueden contener funciones y/o métodos. Métodos: ejecutan y/o implementan instrucciones definidas en su contenido, accediendo y modificando (si así se especifica) los atributos (variables) de la clase de forma implícita. Se caracteriza por el “void”. Introducción a la POO 2 1
  22. 22. Funciones y Métodos Funciones: funcionan igual que los métodos, pero con la diferencia que retornan algún dato/objeto. En la función se indica (al menos en Java), qué tipo de objeto u atributo debe retornar. Es importante aclarar que para las buenas prácticas, las funciones y métodos deben comenzar con minúsculas, además de usar verbos para nombrarles. Introducción a la POO 2 2
  23. 23. Métodos y Funciones Especiales Método Main: Método estático estándar y por defecto que indica el punto de partida de nuestro programa, en este caso quien ejecuta es la JVM. Posee un control de acceso (público). Todo lo que se quiera ejecutar deberá estar en este método. Introducción a la POO 2 3
  24. 24. Métodos y Funciones Especiales Constructor: Es un método especial que se inicia de manera automática al momento de inicializar/instanciar/crear un objeto. Está contenido en la clase y puede tener distintos tipos de acceso según sea el patrón de diseño que implementemos. Cuando no está visible, la clase por defecto tiene un constructor público, vacío e invisible. Se identifica porque es un método con el nombre exacto de la clase. Introducción a la POO 2 4
  25. 25. Métodos y Funciones Especiales Ejemplo de Constructor: Introducción a la POO 2 5
  26. 26. Funciones y Métodos Ejemplo de funciones, métodos, Constructor y método Main: Introducción a la POO 2 6
  27. 27. Controles de Acceso Una de las tantas características que incorpora la POO es el nivel de acceso que se pueden tener a los atributos, métodos y funciones de una clase, a excepción del método Main que es estándar. Todo esto se denomina controles de acceso y son: public, private, protected y friendly (por defecto). Introducción a la POO 2 7
  28. 28. Controles de Acceso public: permite el acceso desde cualquier clase. Se representa con (+) en el diagrama de clases. private: permite el acceso sólo desde la clase a la que pertenece. Se representa con (-) en el diagrama de clases. protected: permite el acceso sólo desde las subclases y las que la heredan. Se representa con (#) en el diagrama de clases. friendly: es el permiso por defecto si no se especifica. Se puede acceder desde cualquier clase en el package. Introducción a la POO 2 8
  29. 29. Bases de la POO Introducción a la POO 2 9
  30. 30. Bases de la POO Los tres pilares fundamentales de la programación orientada a objetos son: Encapsulamiento. Herencia. Polimorfismo. Introducción a la POO 3 0
  31. 31. Getters y Setters Una de tantas malas prácticas recurrentes es el tema de los permisos en los atributos de las clases. En general, por un tema de seguridad, los atributos de las clases deben ser privadas. Para acceder a los atributos aparecen los “getters” y “setters”. Esto en general es conocido como ENCAPSULAMIENTO, que no es más que el ocultamiento del estado de los datos, y que sólo se puedan acceder a ellos a través de métodos y funciones determinadas. Introducción a la POO 3 1
  32. 32. Getters y Setters: Encapsulamiento Getter: se identifica con el nombre de “get”. Permite acceder al valor del atributo. Por buena práctica, la conformación del nombre de la función es getNombreVariable. Getter para acceder al atributo rut de la clase. Introducción a la POO 3 2
  33. 33. Getters y Setters: Encapsulamiento Setter: se identifica con el nombre de “set”. Permite cambiar el valor del atributo de la manera determinada en el método. Setter que permite dar valor a la variable rut de la clase. Introducción a la POO 3 3
  34. 34. Interacción de Clases A veces necesitamos atributos de una clase distinta. Por ejemplo: la clase A representa una tabla de nuestra base de datos. Esta tabla a su vez tiene FK de otra tabla que a su vez está representada por la clase B... ¿para qué replicar código si podemos usar otra clase de igual forma que “un atributo”? Introducción a la POO 3 4
  35. 35. Interacción de Clases Introducción a la POO 3 5
  36. 36. Interacción de Clases Otra forma de interacción es la denominada herencia. La herencia es la que permite crear clases a partir de otras ya existentes siempre cuidando su naturaleza. Facilita compartir atributos, métodos y funciones (dependiendo de los permisos de acceso) a través del extends, lo que permite la reutilización de código. Introducción a la POO 3 6
  37. 37. Interacción de Clases: Herencia Superclase “Herencia” y Subclase “Main” Introducción a la POO 3 7
  38. 38. Interacción de Clases: Herencia Dos definiciones clases en Herencias: Superclase: es la clase base, padre, etc. Por lo general es abstracta. Subclase: es la clase hija o derivada. Esta clase extienda a la superclase para tener acceso a sus atributos, funciones y métodos. Introducción a la POO 3 8
  39. 39. Interacción de Clases: Herencia Visibilidad: Componentes públicos de la superclase son visibles y públicos en la subclase. Componentes privados son visibles sólo en la superclase. Componentes protegidos (protected) son visibles en la subclase. Introducción a la POO 3 9
  40. 40. Polimorfismo El polimorfismo aplica a las distintas respuestas que podemos tener de un mismo método y/o función dependiendo de la naturaleza del objeto. Va de la mano con la herencia y el concepto de superclases y subclases. Introducción a la POO 4 0
  41. 41. Polimorfismo Superclase Persona (abstracta): Clase abstracta persona tiene sus componentes como protected. Introducción a la POO 4 1
  42. 42. Polimorfismo La subclase Cliente extiende de la superclase Persona (hijo-padre). Aprovechando la naturaleza de la clase, la subclase utiliza un método ya existente en la superclase y lo usa de manera diferente. Introducción a la POO 4 2
  43. 43. Polimorfismo La subclase Main también extiende de la superclase Persona y utiliza la herencia en el método main, también utiliza una instancia de la clase Cliente. Introducción a la POO 4 3
  44. 44. Polimorfismo El resultado sería el siguiente: Se utilizó herencia y polimorfismo para sacar ventaja de la naturaleza de las clases y cambiar el método (que fue reutilizado, notación @Override) según el caso (naturaleza). Introducción a la POO 4 4
  45. 45. Buenas Prácticas Introducción a la POO 4 5
  46. 46. Buenas Prácticas Nombre de métodos, objetos, funciones y atributos comienzan con minúscula, las Clases con mayúscula. No utilizar caracteres extraños ($, ñ, (´) tildes, etc. Atributos de la clase deben ser privados para evitar acceso de forma directa. Utilizar encapsulamiento. Nombre de los atributos deben ser descriptivos. Nombre de métodos y funciones deben expresar un verbo para diferenciar de atributos. Utilizar this para los atributos internos de la clase y super para los atributos por herencia. Utilizar siempre indentación. Introducción a la POO 4 6
  47. 47. Fuentes: Documentación oficial Java SE 6 http://docs.oracle.com/javase/6/docs/ Wikipedia http://es.wikipedia.org/ Introducción a la POO 4 7
  48. 48. ¡Gracias por su atención! Contacto: psepulveda@fundaciongnuchile.cl pablo.sepulveda@member.fsf.org http://www.psep.cl/ http://www.gnuchile.cl/ http://creativecommons.org/licenses/by-sa/3.0/ 4 8
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×