Teoria Unidad 3: Clases y Objetos

El dia de hoy abordaremos el tema de clases y objetos, el cual es un tema muy importante dentro de la programación.

Clases

Una clase en programación es una sección de codigo que sirve para la maquetación, puede definirse como un prototipo que define las variables y los métodos comunes a un cierto tipo de instancias, una clase define todo lo que caracteriza y pueden hacer las instancias creadas apartir de ella.

Basicamente una clase es como el modelo base para crear varios elementos personalizados, por ejemplo en el caso de los autos, existen varias marcas de auto que utilizan el mismo chasis pero el resultado final es un auto completamente distinto a otro.


Objetos

Los objetos o instancias de clase son entidades que poseen los metodos y atributos de su clase, son basicamente cualquier cosa real o abstracta acerca de la cual almacenamos datos y los metodos que controlan dichos datos. En resumen es terminos de programación es basicamente un elemento que puede utilizar los metodos y atributos declarados en una clase.

En la imagen anterior podemos ver un chasis de automovil, este chasis es la base arquitectonica de un auto, el chasis posee la dirección, la transmisión, las ruedas, en pocas palabras es en escencia la base del auto, con esta base podemos crear autos de distinto diseño como los autos en la imagen, ambos de distintas compañias, con distinto aspecto y posiblemente distintas caracteristicas y componentes pero ambos son instancias construidas a partir del mismo chasis (clase).

Una clase basicamente posee:
  • Un nombre
  • Atributos o propiedades
  • Constructor
  • Metodos
Los cuales podran ser usados por los objetos que sean creados apartir de ellos.

Ahora un objeto de igual modo poseera:
  • Un nombre
  • Atributos heredados de su clase
  • Metodos
Cabe destacar que aunque cada objeto posea los mismos metodos puede o no poseer diferentes atributos, por ejemplo, un atributo es basicamente una caracteristica, en el ejemplo anterior de los autos podemos decir que un atributo podria ser el color, mientras un auto sea color gris el otro aun siendo identico al anterior puede ser color rojo, es decir son objetos parecidos pero con atributos diferentes.

Clases y objetos en Python:

Para declarar una clase en python se utiliza la siguiente estructura

class nombre_clase():
    """Declaracion de atributos, en python es necesario inicializar los valores en algo
      para declararlos si es que aun no conoces los valores base de tu clase"""
    Atributo1="valor"
    Atributo2="valor"
    Atributo3="valor"
    
    """Declaracion de un constructor"""
    def __init__(self):
        self.Atributo1="Valor por default al crear el objeto para el Atributo1"
        self.Atributo2="Valor por default al crear el objeto para el Atributo2"
        self.Atributo3="Valor por default al crear el objeto para el Atributo1"
   
    """Declaracion de metodos"""
    def metodo1(self):
        #Instrucciones del metodo
    def metodo2(self):
        #instrucciones del metodo

Nota:El constructor es la función que se ejecuta al crear un objeto nuevo, este setea los atributos a unos valores iniciales, es como decir establece los valores de fabrica, en python este es declarado con la linea def __init__(self): seguido de los valores a asignar por default al nuevo objeto.
Para crear un objeto solo sera necesario usar una sintaxis similar a la siguiente:

objeto1=nombre_clase()

Para poder hacer uso de los metodos y/o atributos de la clase sera necesario hacer uso del elemento de acceso "punto" (.) para poder realizar esta acción, ejemplo: si queremos imprimir el valor del Atributo1 seria necesaria una instrucción similar a esta:

objeto1=nombre_clase()
print objeto1.Atributo1

Veamos un ejemplo mas desarrollado:


class Caninos():
    """Declaracion de atributos"""
    color=""
    altura=""
    def __init__(self):
        self.color="cafe"
        self.altura=1.2  #metros
    """Declaracion de metodos"""
    def ladrar(self):
        print "wof, wof"
    def grunir(self):
        print "grrrrrr grrrrr"


perro=Caninos()
lobo=Caninos()

print "El objeto 1 es un perro y es de color: ", perro.color, "y mide: ",perro.altura," metros"
print "Este perro dice: ",perro.ladrar()
lobo.color="Blanco"
lobo.altura="1.4"
print "El objeto 2 es un lobo y es de color: ", lobo.color, "y mide: ",lobo.altura," metros"
print "Este lobo dice: ",lobo.grunir()

Salida:


Comentarios