quarta-feira, 13 de fevereiro de 2013

[Python] Criando classes

Que tal programar orientado a objetos em Python? É isso que iremos aprender nesse post. Com a programação orientada a objetos fica muito mais fácil você reutilizar seu código, permite construir sistemas bem mais complexos etc.

Para entendermos melhor o código é preciso saber alguns conceitos básicos:

Na programação orientada a objetos, temos classes que definem os objetos. Mas o que é uma classe?

A classe representa um conjunto de objetos com características similares. Por exemplo, tenho uma classe chamada Carro, essa classe pode conter vários objetos que possuem características afins. Posso ter um objeto chamado Uno, outro objeto chamado Frontier e assim sucessivamente. Veja que fica muito mais fácil você programar porque no mundo real funciona assim!

O objeto é uma instância de uma classe. Se eu tenho uma classe chamada Pessoas, posso ter o objeto José, o objeto Maria e assim por diante.

Atributos são as características de um objeto. Por exemplo, o objeto João (que pertence a classe Pessoas) pode possuir alguns atributos (características) tais como: nome, CPF, idade etc.

Métodos definem as habilidades dos objetos, o que eles podem fazer, na verdade são as funções da nossa classe. Novamente pegando como exemplo a classe Pessoas, podemos definir os métodos (funções) tais como "inserir_nome", "inserir_idade" etc.

Exemplo de código:


Na linha 3 temos a criação de uma classe chamada Geek. Dentro da classe eu coloco os métodos, na classe em questão temos os métodos "__init__", "inserir_idade" e "inserir_hobby".

Linha 5: método __init__ é o construtor. Construtor determina quais ações devem ser executadas quando da criação de um objeto. Os dois underlines significa que é um método nativo da classe object. Tem dois parâmetros: self e nome. Todos os métodos têm como primeiro argumento o self, é uma espécie de referência àquele objeto (o self é equivalente ao "this" do Java por exemplo).

Linha 6: método inserir_idade, como o próprio nome já diz serve para inserirmos a idade. Possui dois parâmetros: self e idade.

Linha 11: método inserir_hobby serve para inserir o hobby. Possui dois parâmetros: self e hobby.

Linha 14: criação de um objeto chamado geek da classe Geek. Veja que eu já passei o nome porque o construtor __init__ pede que seja passado o nome.  O self não é necessário na chamada dos métodos, apenas na definição.

Linha 15: agora eu posso utilizar os métodos da classe Geek. Nessa linha utilizo o método inserir_idade para inserir a idade do geek.

Linha 16: utilizo o método inserir_hobby para inserir o hobby do geek.

Linhas 18 à 20: mostro o nome, idade e hobby.


2 comentários:

Anônimo disse...

Onde vc "declara" os atributos da classe ??

admin disse...

Não precisa declarar, o atributo é criado no momento que é dado um valor a ele.