Programación Orientada a Objetos

La Programación Orientada a Objetos (POO u OOP por sus siglas en inglés), es un paradigma de programación.

Paradigma: teoría cuyo núcleo central […] suministra la base y modelo para resolver problemas […] (Definición de la Real Academia Española, vigésimo tercera edición)

Cómo tal, nos enseña un método -probado y estudiado- el cual se basa en las interacciones de objetos (todo lo descrito en el título anterior, Pensar en objetos) para resolver las necesidades de un sistema informático.

Básicamente, este paradigma se compone de 6 elementos y 7 características que veremos a continuación.

 

5.2.1. Elementos y Características de la POO

Los elementos de la POO, pueden entenderse como los materiales que necesitamos para diseñar y programar un sistema, mientras que las características, podrían asumirse como las herramientas de las cuáles disponemos para construir el sistema con esos materiales.

Entre los elementos principales de la POO, podremos encontrar a:

5.2.1.1. Clases

Las clases son los modelos sobre los cuáles se construirán nuestros objetos. Podemos tomar como ejemplo de clases, el gráfico que hicimos en la página 8 de este documento.

En Python, una clase se define con la instrucción class seguida de un nombre genérico para el objeto.

class Objeto:     pass   class Antena:     pass   class Pelo:     pass   class Ojo:     pass

5.2.1.2. Propiedades

Las propiedades, como hemos visto antes, son las características intrínsecas del objeto. Éstas, se representan a modo de variables, solo que técnicamente, pasan a denominarse propiedades:

class Antena():      color = ""      longitud = ""    class Pelo():      color = ""      textura = ""    class Ojo():      forma = ""      color = ""      tamanio = ""   class Objeto():      color = ""      tamanio = ""      aspecto = ""      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

5.2.1.3. Métodos

Los métodos son funciones (como las que vimos en el capítulo anterior), solo que técnicamente se denominan métodos, y representan acciones propias que puede realizar el objeto (y no otro):

class Objeto():      color = "verde"      tamanio = "grande"      aspecto = "feo"      antenas = Antena()      ojos = Ojo()      pelos = Pelo()        def flotar(self):          pass

NOTANotar que el primer parámetro de un método, siempre debe ser self.

5.2.1.4. Objeto

Las clases por sí mismas, no son más que modelos que nos servirán para crear objetos en concreto. Podemos decir que una clase, es el razonamiento abstracto de un objeto, mientras que el objeto, es su materialización. A la acción de crear objetos, se la denomina instanciar una clase y dicha instancia, consiste en asignar la clase, como valor a una variable:

class Objeto():      color = "verde"      tamanio = "grande"      aspecto = "feo"      antenas = Antena()      ojos = Ojo()      pelos = Pelo()        def flotar(self):          print 12    et = Objeto()  print et.color  print et.tamanio  print et.aspecto  et.color = "rosa"  print et.color

5.2.2. Herencia: característica principal de la POO

Como comentamos en el título anterior, algunos objetos comparten las mismas propiedades y métodos que otro objeto, y además agregan nuevas propiedades y métodos. A esto se lo denomina herencia: una clase que hereda de otra. Vale aclarar, que en Python, cuando una clase no hereda de ninguna otra, debe hacerse heredar de object, que es la clase principal de Python, que define un objeto.

class Antena(object):      color = ""      longitud = ""   class Pelo(object):      color = ""      textura = ""   class Ojo(object):      forma = ""      color = ""      tamanio = ""   class Objeto(object):      color = ""      tamanio = ""      aspecto = ""      antenas = Antena()      ojos = Ojo()      pelos = Pelo()        def flotar(self):         pass   class Dedo(object):      longitud = ""      forma = ""      color = ""   class Pie(object):      forma = ""      color = ""      dedos = Dedo()    # NuevoObjeto sí hereda de otra clase: Objeto class NuevoObjeto(Objeto):      pie = Pie()        def saltar(self):          pass

5.2.3. Accediendo a los métodos y propiedades de un objeto

Una vez creado un objeto, es decir, una vez hecha la instancia de clase, es posible acceder a su métodos y propiedades. Para ello, Python utiliza una sintaxis muy simple: el nombre del objeto, seguido de punto y la propiedad o método al cuál se desea acceder:

objeto = MiClase()  print objeto.propiedad  objeto.otra_propiedad = "Nuevo valor"  variable = objeto.metodo() print variable print objeto.otro_metodo()

fonte: http://librosweb.es/libro/python/capitulo_5/programacion_orientada_a_objetos.html

 

Exemplo de código POO em python, extraído de https://medeubranco.wordpress.com/2008/06/22/orientacao-a-objetos-com-python-para-iniciantes/

import random   # inicio da definicao da classe class TiaVelha:     def __init__(self, nome, idade):         """         inicializador da classe.         cada tia velha criada         serah criada por este metodo init         """           #definindo os atributos         self.nome=nome         self.idade=idade         self.frases=[]           #criando o repertorio de frases         self.frases.append( "Como voce cresceu!" )         self.frases.append( "Voce precisa arrumar uma namoraaaada!" )         self.frases.append( "Voce ainda nao arrumou emprego?!!" )         self.frases.append( "Respeita sua mae, menino!" )         self.frases.append( "Gracinha!" )       def falar(self):         """         metodo principal da tia velha         """         x=len(self.frases)         n=int(random.random()*x-1)         print self.frases[n]       def apresentar_se(self):         print   """                 Ola.                 Meu nome eh """ + self.nome + """                 e tenho """ + str(self.idade)  + """ anos.                 Sou uma tia velha e o que mais faco eh falar                 """   # o codigo abaixo somente # sera executado se este # arquivo for executado # diretamente. # # nao o serah se a classe # TiaVelha for importada # para dentro de outro # programa python if __name__=='__main__':       # criando uma 'nova' tia velha     # com nome 'Odila' e idade 67     # eh neste momento que __init__()     # serah chamado     odila=TiaVelha('Odila',67)       # executando um metodo     odila.apresentar_se()       print     print     print       # fazendo a tia odila falar 15 vezes     for x in range(15):         odila.falar()

 

 

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *