A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Conceitos básicos de orientação a objetos

Apresentações semelhantes


Apresentação em tema: "Conceitos básicos de orientação a objetos"— Transcrição da apresentação:

1 Conceitos básicos de orientação a objetos
Prof. Natalia Castro Fernandes Engenharia de Telecomunicações – UFF 2º semestre/2012

2 Introdução Forma de programar Programação não estruturada
Programas simples e pequenos Ex: Cartões Programação Estruturada (ou Modular) Programas divididos em módulos Módulos com estruturas de dados internas

3 Introdução Programação Orientada à Objetos
Programas estruturados pelos dados e não pelas operações Dados, chamados de classe, especificam as operações válidas Módulos agrupados por dados e suas representações Unifica as ideias de algoritmos e estruturas de dados através do conceito de Objeto Programas organizados pelo comportamento dos objetos e não como uma simples sequência de comando e chamadas desconectadas.

4 Classe É a representação de um tipo abstrato de dados Especifica:
Atributos Métodos (funções) Define as propriedades e o comportamento dos conjuntos de objetos.

5 Objeto É uma instância de uma classe
Identificado univocamente pelo seu nome Possui estado, determinado pelo valor dos atributos ao longo do tempo Estado modificado pela aplicação dos métodos Mudança de estados define comportamento do objeto

6 Orientação a objetos em Python
Classe “Fábrica” de objetos A rigor, em Python, uma classe também é um objeto Uso de módulo.método é uma forma de usar um módulo como um objeto. O mesmo se aplica às classes Definição de uma classe class nome: var = valor ... def metodo (self, ... arg):

7 Definição de classes Na definição dos métodos, os atributos são chamados como nome_da_classe.atributo O primeiro argumento de qualquer método é sempre self O self é uma referência a própria instância da classe É uma forma de a classe dizer que se refere a si mesma Atributos da classe podem ser chamados também como self.atributo Um objeto de uma classe é criado usando nome_da_classe()

8 Exemplos – Criação de classes

9 Exemplos – Criação de classes

10 Exemplos (o que não fazer)

11 Exemplos – Uso do self

12 Exemplos – Atributos internos e externos

13 Exemplos - Reescrevendo
Atenção: o.extra() daria erro. Por que?

14 Exercícios Crie uma classe que represente um carro. Essa classe deve ter pelo menos dois atributos (placa e cor) e pelo menos três métodos: seguir, virar_esquerda, virar_direita Crie uma classe motorista, que deve ter o método dirigir(carro, direção) Crie um script que faça um motorista, em posse de um carro, dirigir gerando 3 eventos consecutivos. O evento, que pode ser seguir em frente, virar à esquerda ou virar à direita, deve ser escolhido aleatoriamente. Os métodos de cada um dos objetos criados devem imprimir uma mensagem na tela toda vez que forem evocados.

15 Construtores em Python
Chamados automaticamente na criação de instâncias Utilizados declarando-se um método __init__

16 Exemplo

17 Exemplo

18 Destrutores A linguagem Python já apresenta um ‘coletor de lixo’
Gerenciamento de memória alocada feita de forma automática Uso dos destrutores para: Fechar sockets Fechar conexões com banco de dados Fechar arquivos Etc; Formato: __del__ Destrutores são chamados após o fim do escopo no qual o objeto está inserido

19 (mensagens impressas apenas no sys.stderr )
Atenção: As mensagens do destrutor podem não aparecer no console que você está usando. (mensagens impressas apenas no  sys.stderr ) Se houver necessidade de criar logs, usar arquivos e colocar exit no final do código.

20 Herança e Polimorfismo
Para uma classe herdar atributos e métodos de outra, basta declarar isso na definição da classe Formato: Class Filha(Classe_Pai): Filha é uma sub-classe ou uma derivada de Classe_Pai e Classe_Pai é uma superclasse ou base de C É possível adicionar novos métodos e atributos à classe Filha, assim como é possível modificar métodos da Classe_Pai.

21 Herança e Polimorfismo
Caso um método ou um atributo seja redefinido e seja necessário chamar esse método ou atributo da superclasse, colocar essa chamada de forma explicita Construtores e destrutores da classe e da superclasse precisam ser chamados pelo construtor da nova classe

22 Declaração de herança Declaração de novos atributos Redefinição de método Atributo definido na classe pai Uso da função pela definição do pai e do filho

23

24 Redefinição de atributo
Uso de atributo do pai e do filho

25 Descomentando a linha pai.__init__(self)

26 Construtores e herança
O construtor da classe pai apenas atua sobre os atributos da classe filha Os atributos do pai chamados como pai.atributo não serão impactados pelo construtor do pai Cuidado ao sobrescrever indevidamente atributos

27

28 Herança de múltiplas classes
Uma classe pode ter vários pais Herda os atributos e métodos de todas as classes pais Se duas classes pais possuírem o mesmo método ou o mesmo atributo, vale o atributo da classe declarada primeiro

29

30 Exercício Crie uma calculadora, utilizando o esquema de classes a seguir. Calculadora Divisão Soma Subtração Multiplicação

31 Módulo operador Permite reescrever o uso de comparações de objetos, operações lógicas e matemáticas, operações de sequência e testes de tipo abstrato Com isso, é possível reescrever o que deve ser feito quando se deseja somar ou subtrair dois objetos, por exemplo

32

33 Módulo operador Principais funções
operator.lt(a, b) ou operator.__lt__(a, b) operator.le(a, b) ou operator.__le__(a, b) operator.eq(a, b) ou operator.__eq__(a, b) operator.ne(a, b) ou operator.__ne__(a, b) operator.ge(a, b) ou operator.__ge__(a, b) operator.gt(a, b) ou operator.__gt__(a, b)

34 Módulo operador Principais funções operator.is_(a, b) = Return a is b
operator.abs(obj) operator.__abs__(obj) operator.add(a, b) operator.__add__(a, b) operator.and_(a, b) operator.__and__(a, b) operator.div(a, b) operator.__div__(a, b) operator.mod(a, b) operator.__mod__(a, b)

35 Módulo operador Mais informações em:

36 Exercício Crie uma classe matriz que, com seu construtor, cria uma matriz m x n. Essa classe deve sobrescrever os métodos para adição, subtração, multiplicação e divisão, de tal forma que as operações sejam realizadas nas matrizes de forma adequada.


Carregar ppt "Conceitos básicos de orientação a objetos"

Apresentações semelhantes


Anúncios Google