La Programacin Orientada a Objetos (POO u OOP por sus siglas en ingls), es un paradigma de
programacin. Paradigma: teora cuyo ncleo central [...] suministra la base y modelo para resolver
problemas [...] (Definicin de la Real Academia Espaola, vigsimo tercera edicin)
Cmo tal, nos ensea un mtodo -probado y estudiado- el cual se basa en las interacciones de
objetos (todo lo descrito en el ttulo anterior, Pensar en objetos) para resolver las necesidades de
un sistema informtico.
Los elementos de la POO, pueden entenderse como los materiales que necesitamos para disear y
programar un sistema, mientras que las caractersticas, podran asumirse como las herramientas de
las cules disponemos para construir el sistema con esos materiales.
Clases
Las clases son los modelos sobre los cules se construirn nuestros objetos. Podemos tomar como
ejemplo de clases. En Python, una clase se define con la instruccin class seguida de un nombre
genrico para el objeto.
class Objeto:
pass
class Antena:
pass
Propiedades
Las propiedades, como hemos visto antes, son las caractersticas intrnsecas del objeto. stas, se
representan a modo de variables, solo que tcnicamente, pasan a denominarse propiedades.
color = ""
longitud = ""
Objeto
Las clases por s mismas, no son ms que modelos que nos servirn para crear objetos en
concreto. Podemos decir que una clase, es el razonamiento abstracto de un objeto, mientras que
el objeto, es su materializacin. A la accin de crear objetos, se la denomina instanciar una clase y
dicha instancia, consiste en asignar la clase, como valor a una variable:
Ejercicio
class Antena():
color = ""
longitud = ""
class Pelo():
color = ""
textura = ""
class Ojo():
forma = ""
color = ""
tamanio = ""
class Objeto():
color = "verde"
tamanio = "grande"
aspecto = "feo"
antenas = Antena() # propiedad compuesta por el objeto objeto Antena
ojos = Ojo() # propiedad compuesta por el objeto objeto Ojo
pelos = Pelo() # propiedad compuesta por el objeto objeto Pelo
et = Objeto()
print et.color
print et.tamanio
print et.aspecto
et.color = "rosa"
print et.color