Sunteți pe pagina 1din 16

En esta clase

Programacin orientada a objetos o Historia Conceptos de POO

Resumen

Clase 2

2 / 17

Programacin orientada a objetos o

Programacin orientada a objetos o

Clase 2

3 / 17

Programacin orientada a objetos o

Historia

Programacin orientada a objetos o

Historia

Clase 2

4 / 17

Programacin orientada a objetos o

Historia

Generalidades y disclaimer
Por haber pasado por introduccin a la programacin, ya saben algo o o

al respecto de la programacin orientada a objetos (POO). o


Sin embargo, por el bien de la completitud revisaremos un poco de

historia. La siguiente no es una narracin cronolgica exhaustiva. o o Existen tipos de lenguajes y paradigmas de programacin que o simplemente ignoraremos (programacin funcional, programacin en o o lgica, etc.). o Haremos un barrido rpido por los puntos que nos llevan a la a programacin orientada a objetos. o Tambin, a modo de disclaimer, no todo lo que vamos a ver es 100% e

preciso.
Para casi toda armacin hay un pero. o No podemos entrar en todo el detalle, porque no hay tiempo (ni tiene

sentido). Se omitirn1 conceptos que no aplican directamente. a


1

O tratar de omitir. Uno de sus profesores tiende a ser innecesariamente verboso. . . a


5 / 17

Clase 2

Programacin orientada a objetos o

Historia

Inicios
Programa es escrito como una secuencia de instrucciones. Estas instrucciones se ejecutan en el orden que son escritas. Comandos de control de ujo (IF, FOR) programacin o

estructurada.
Ejemplo: Programa en BASIC (1963)
10 INPUT " What is your name : " , U$ 20 PRINT " Hello " ; U$ 30 INPUT " How many stars do you want : " , N 40 S$ = " " 50 FOR I = 1 TO N 60 S$ = S$ + " * " 70 NEXT I 80 PRINT S$ 90 INPUT " Do you want more stars ? " , A$ 100 IF LEN ( A$ ) = 0 THEN 90 110 A$ = LEFT$ ( A$ , 1) 120 IF A$ = " Y " OR A$ = " y " THEN 30 130 PRINT " Goodbye " ; U$ 140 END
Clase 2 6 / 17

Programacin orientada a objetos o

Historia

Abstraccin de procesos o
Evolucin natural. o Trozos de cdigo son reusados constantemente. o Concepto de procedimiento (o funcin) programacin procedural. o o Trozo de cdigo con un nombre que indica lo que hace. o Posiblemente, necesita parmetros. a Posiblemente, devuelve un valor (cualquier cosa). Abstraccin: para el usuario del procedimiento no es importante o

cmo se realiza el resultado, si no que se realice. o


Ejemplo: Programa en C (1972)
float distance ( float x , float y ) { return sqrt ( x * x + y * y ); } int main (){ float dist = distance (3 ,4); printf ( " La distancia es : % f " , dist ); }
Clase 2 7 / 17

Programacin orientada a objetos o

Historia

Abstraccin de datos o
La mayor de los lenguajes provee de algunos tipos de abstraccin de a o

datos.
Nmeros (enteros, reales, etc.), texto, etc. u

Adems, suelen permitir crear abstracciones de datos ms complejas a a

basndose en los elementos ms bsicos. a a a


Normalmente, permiten agrupar mltiples campos de tipo bsico bajo u a

un nombre signicativo.
Por ejemplo, un texto llamado nombre y un nmero llamado edad u

podr agruparse bajo el tipo persona. an Ejemplo: Programa en C usando estructuras


struct Person { char * name ; int age ; }; int main (){ Person p ; p . name = /* */ ; p . age = /* */ ; }
Clase 2 8 / 17

Programacin orientada a objetos o

Historia

Abstraccin de datos o
El concepto de Tipo de dato abstracto (TDA) se asocia a un tipo

de dato (como Persona) y a las funciones que operan sobre ella;


Por ejemplo la funcin Envejecer podr tomar una persona y o a

aumentar su edad en 1. Al igual que todo lo anterior, esto es comn y se usa hoy. u Sin embargo, con la evolucin de la ciencia de la computacin se o o

identicaron algunas falencias de este enfoque.


Falta de ocultamiento (no necesito saber la representacin interna de o

los objetos).
No permiten una modularizacin real: datos y las operaciones sobre o

estos son independientes, aunque se usen en conjunto.


No puedo relacionar tipos similares relacionndolos por herencia, a

reutilizando las caracter sticas comunes.


Un trabajador es una persona que tiene un trabajo, pero sigue siendo una persona. Nos gustar poder expresar a un trabajador en funcin de una persona. a o
Clase 2 9 / 17

Programacin orientada a objetos o

Conceptos de POO

Programacin orientada a objetos o

Conceptos de POO

Clase 2

10 / 17

Programacin orientada a objetos o

Conceptos de POO

Programacin orientada a objetos (POO) o

La programacin orientada a objetos se basa en principios que atacan o

las falencias anteriores.


Agrupamiento y encapsulacin de datos. o Asociacin entre datos y operaciones sobre los datos. o Ocultamiento de detalles de implementacin. o

El cambio principal en la forma de pensar que implica la POO es

u representar un programa como una serie de objetos que interactan entre s de acuerdo a sus responsabilidades individuales.

Clase 2

11 / 17

Programacin orientada a objetos o

Conceptos de POO

Objetos
Un objeto tiene una serie de atributos. Y un valor asociado a cada uno de ellos. Ejemplo: Atributos de un objeto y sus valores Mi auto es de color rojo y tiene un rendimiento de 17[km/l]. Un objeto tiene una identidad. Dos objetos del mismo tipo, aunque tengan los mismos valores para los mismos atributos, no necesariamente son el mismo. Ejemplo: Identidad

Mi AUDI TT RS 3.6 (350hp) y el tuyo pueden verse iguales, pero no son el mismo auto.

Clase 2

12 / 17

Programacin orientada a objetos o

Conceptos de POO

Objetos
Finalmente, un objeto permite realizar una serie de acciones sobre l. e Uno espera que un objeto permita hacer lo que est diseado para a n hacer. El objeto tiene que exponer los mecanismos (una interfaz) para poder interactuar con l. e Al usuario (cliente del objeto) no le importa como se realice la accin, si no que se realice. o Ejemplo: Acciones sobre un objeto En mi AUDI, espero que al girar la llave el motor comience a funcionar. Para esto, el auto expone la interfaz necesaria (llave et al.). Me da lo mismo como, slo me importa que ocurra. o
En la POO las acciones que se pueden ejecutar sobre un objeto estn a

dadas por los mtodos (funciones) que este expone. e


Es buena prctica nombrar los mtodos de las clases con verbos en a e innitivo (encender, terminar, abrir, etc.).
Clase 2 13 / 17

Programacin orientada a objetos o

Conceptos de POO

Objeto vs. Clase


Todos los objetos de un mismo tipo comparten elementos en comn. u En particular, todos comparten los mismos atributos (ojo: no los valores de estos, necesariamente) y se puede efectuar las mismas operaciones sobre ellos. Ejemplo: Clase vs. Objeto Mi AUDI y tu auto son los dos autos, por lo tanto comparten el tener un color y un rendimiento. Adems, ambos permiten ser puestos en marcha usando una a llave. A esta plantilla que dene los atributos y operaciones que tienen

los objetos es lo que llamaremos clase.


Todo objeto pertenece a una clase. Un objeto es, entonces, una instancia particular de una clase, con identidad propia y valores particulares para los atributos que tiene.

Clase 2

14 / 17

Programacin orientada a objetos o

Conceptos de POO

Mtodos como responsabilidades e


Una clase dene los atributos y mtodos que tendran todas las e

intancias de ella.
Cuando queremos escribir una clase, tenemos que pensar, entonces, en

qu atributos tienen los objetos que estamos modelando. e


Adems, tenemos que ver qu acciones le corresponde realizar a las a e

instancias de esa clase.


Asignar un mtodo a una clase, es asignarle una responsabilidad. e La asignacin de responsabilidades debe ser realizada con cuidado. o

Ejemplo: Asignacin de responsabilidades o


Si estamos modelando lpices, es escribir una oracin responsabilidad de los objetos de a o la clase Lpiz? a R:/ No Siempre es bueno pensar, antes de agregarle un mtodo a una clase: e Es responsabilidad de esta clase hacer esto?

Clase 2

15 / 17

Resumen

Resumen

Clase 2

16 / 17

Resumen

Resumen
Evolucin de la forma de programar. o Se agregan paulatinamente abstracciones que hacen que el cdigo sea: o
ms fcil de escribir. a a ms reusable. a ms verstil. a a

TDAs en lenguajes procedurales tienen falencias. Relacin entre funciones y datos. o Encapsulacin. o Modularidad. Programacin orientada objetos. o Objetos
Atributos Identidad Operaciones Clases Denen tipos de objetos. Todo objeto pertenece a alguna clase. Los objetos son instancias de clases. Mtodos como responsabilidades. e
Clase 2 17 / 17

S-ar putea să vă placă și