Orientação a Objetos em Python

Abstração

Abstração é a ação ou efeito de abstrair, ou seja, de isolar mentalmente um elemento ou uma propriedade de um todo, para considerar individualmente. Abstração é a habilidade de concentrar nos aspectos essenciais de um contexto qualquer, ignorando características menos importantes ou acidentais. A abstração enquanto pilar da programação orientada a objetos consiste em trabalhar um objeto dentro da programação se preocupando somente com suas principais propriedades, sem se apegar a pontos acidentais.

Definição: Abstração pode ser definida como a capacidade de representar cenários complexos usando termos simples.

  • Cenário 1: “Vou abrir a porta daquele veículo movido a combustível, entrarei, me sentarei, darei a partida no motor, pisarei na embreagem, engatarei a primeira marcha, acelerarei, controlarei a direção em que o carro irá se mover utilizando o volante”.
  • Cenário 2: “vou usar o meu carro para ir ao trabalho amanhã”

Abstração na Programação

Para abstrair devemos nos importar com os aspectos relevantes do problema em questão
Abstrair é simplificar.Abstração é concentrar-se no que um objeto é e faz antes de se decidir como ele será implementado. O uso de abstração preserva a liberdade para tomar decisões de desenvolvimento ou de implementação apenas quando há um melhor entendimento do problema a ser resolvido.

Abstração em Objetos

Um objeto é tudo aquilo que existe em seu problema. Deve-se abstrair um “objeto” real para representá-lo computacionalmente. Objetos constituem as estruturas básicas de uma aplicação.

Programação Orientada a Objetos

Na programação orientada a objetos um programa de computador é conceituado como um conjunto de objetos que trabalham juntos para realizar uma tarefa. Cada objeto é uma parte do programa, interagindo com as outras partes de maneira específica e totalmente controlada (CADENHEAD; LEMAY,2005, p. 6). Na visão da orientação a objetos, o mundo é composto por diversos objetos que possuem um conjunto de características e um comportamento bem definido.

A POO foi criada para tentar aproximar o mundo real do mundo virtual: a ideia fundamental é tentar simular o mundo real dentro do computador. Na POO o programador é responsável por moldar o mundo dos objetos, e explicar para estes objetos como eles devem interagir entre si. Os objetos “conversam” uns com os outros através do envio de mensagens. Junto com algumas dessas mensagens ainda é possível passar algumas informações para o objeto (parâmetros).

Classe: Abstração de um Objeto

Uma classe é a representação da abstração de um objeto. Classe como um modelo ou como uma especificação para um conjunto de objetos. Uma classe define as características (atributos) e o comportamento (métodos) de um conjunto de objetos. A POO é baseada na criação das classes, que a partir daí cria-se objetos e depois esses objetos interagem entre si.

Representação Gráfica de uma Classe

classe

Objeto

Um objeto é uma agente, criado a partir de classe, que possui características (atributos) próprias e executa ações (métodos). Um objeto é um instância de um classe. No paradigma de orientação a objetos, tudo pode ser potencialmente representado como um objeto.

Classe x Objeto

objdogClasse Cachorro
Características (Propriedades, Atributos)
    Raça
    Cor
Comportamentos (Ações, Métodos)
    Latir
    Farejar
    Correr

 

Exercício de Fixação

Faça a representação gráfica das classes abaixo:

  • Livro
  • Cliente
  • Aluguel
  • Biblioteca

Classe em Python

#calculadora.py
class Calculadora(object):

    def __init__(self, a, b):
        self.a = a
        self.b = b

    def soma(self):
        return self.a + self.b

    def subtrai(self):
        return self.a - self.b

    def multiplica(self):
        return self.a * self.b

    def divide(self):
        return self.a / self.b

Objetos em Python

c = Calculadora(128,2)
print('Soma:', c.soma())
print('Subtração:', c.subtrai())
print('Multiplicação:', c.multiplica())
print('Divisão:', c.divide())

Exercício de Fixação

Faça a representação em python das classes abaixo:

  • Livro
  • Cliente
  • Aluguel
  • Biblioteca

 

2 comments

  • Aristoteles

    class Cliente(object):

    def __init__(self, nome, cpf, endereco, telefone):
    self.nome = nome
    self.cpf = cpf
    self.endereco = endereco
    self.telefone = telefone

    def getNome(self):
    return self.nome

    def setNome(self, nome):
    self.nome = nome

    def setTelefone(self, telefone):
    self.telefone = telefone

    def getTelefone(self):
    return self.telefone

    def setEndereco(self, endereco):
    self.Endereco = endereco

    def getEndereco(self):
    return self.endereco

    def getCPF(self):
    return self.cpf

    class Venda(object):
    def __init__(self, cliente, plano, valor):
    self.cliente = cliente
    self.plano = plano
    self.valor = valor

    def getCliente(self):
    return self.cliente

    def setCliente(self, cliente):
    self.cliente = cliente

    def getValor(self):
    return self.valor

    def setValor(self, valor):
    self.valor = valor

    def getPlano(self):
    return self.plano

    def setPlano(self, plano):
    self.plano = plano

    def cadastrar(lista):
    nome = input(“Informe o nome: “)
    cpf = input(“Informe o cpf: “)
    endereco = input(“Informe o endereço: “)
    telefone = input(“Informe o telefone: “)
    cli = Cliente(nome, int(cpf), endereco, int(telefone))
    lista.append(cli)

    def exibir(lista):
    for cli in lista:
    print(“Nome: ” + cli.getNome())
    print(“Endereço: ” + cli.getEndereco())
    print(“Telfone: ” + str(cli.getTelefone()))
    print(“CPF: ” + str(cli.getCPF()))

    def alterar(lista, cpf):
    cont = 0
    for cli in lista:
    if cli.getCPF() == int(cpf):
    print(“Nome: ” + cli.getNome())
    print(“Endereço: ” + cli.getEndereco())
    print(“Telfone: ” + str(cli.getTelefone()))
    print(“CPF: ” + str(cli.getCPF()))
    confirmacao = input(“Confirma Alteração [S/N]? “)
    if confirmacao.upper() == “S”:
    nome = input(“Informe o nome: “)
    cpf = input(“Informe o cpf: “)
    endereco = input(“Informe o endereço: “)
    telefone = input(“Informe o telefone: “)
    cli = Cliente(nome, int(cpf), endereco, int(telefone))
    lista[cont] = cli
    cont = cont +1

    def excluir(lista, cpf):
    for cli in lista:
    if cli.getCPF() == int(cpf):
    print(“Nome: ” + cli.getNome())
    print(“Endereço: ” + cli.getEndereco())
    print(“Telfone: ” + str(cli.getTelefone()))
    print(“CPF: ” + str(cli.getCPF()))
    confirmacao = input(“Confirma Exclusão [S/N]? “)
    if confirmacao.upper() == “S”:
    lista.remove(cli)

    def menu():
    print(“1- Cadastrar Cliente”)
    print(“2- Exibir Cliente”)
    print(“3- Alterar Cliente”)
    print(“4- Excluir Cliente”)
    print(“5- Realizar Venda”)
    print(“6- Exibir Venda”)
    print(“7- Sair”)
    opcao = input(“”)
    return opcao

    def consultarCliente(listaCliente, cpf):
    for cli in listaCliente:
    if cli.getCPF() == int(cpf):
    return cli
    return None

    def realizarVenda(listaCliente,listaVenda):
    plano = input(“Informe o Plano: “)
    val = input(“Informe o Valor: “)
    cpf= input(“Informe CPF: “)
    cliente = consultarCliente(listaCliente, cpf)
    if cliente != None:
    venda = Venda(cliente, plano, val)
    listaVenda.append(venda)
    else:
    print(“Cliente Inválido!”)

    def exibirVenda(listaVenda):
    for venda in listaVenda:
    print(“Plano: ” + venda.getPlano())
    print(“Valor: ” + venda.getValor())
    print(“Nome do CLiente: ” + venda.getCliente().getNome())

    # programa principal

    op = 0
    listaCliente = []
    listaVenda = []
    while op != “7”:
    op = menu()
    if op == “1”:
    cadastrar(listaCliente)
    elif op == “2”:
    exibir(listaCliente)
    elif op == “3”:
    cpf = input(“Informe CPF: “)
    alterar(listaCliente, cpf)
    elif op == “4”:
    cpf = input(“Informe CPF: “)
    excluir(listaCliente, cpf)
    elif op == “5”:
    realizarVenda(listaCliente, listaVenda)
    elif op == “6”:
    exibirVenda(listaVenda)
    elif op ==”7″:
    print(“Saindo …”)
    else:
    print(“Opção Inválida!”)

  • Lino

    #calculadora.py

    class Calculadora(object):

    def __init__(self, a, b):
    self.a = a
    self.b = b

    def soma(self):
    return self.a + self.b

    def subtrai(self):
    return self.a – self.b

    def multiplica(self):
    return self.a * self.b

    def divide(self):
    return self.a / self.b

    v1 = int(input(“Digite numero: “))
    v2 = int(input(“Digite numero: “))
    op = input(“Informe Operação [+,-,*,/]: “)
    calc = Calculadora(v1, v2)
    if op == “+”:
    print (“= ” + str(calc.soma()))
    elif op == “-“:
    print (“= ” + str(calc.subtrai()))
    elif op == “*”:
    print (“= ” + str(calc.multiplica()))
    elif op == “/”:
    print (“= ” + str(calc.divide()))
    else:
    print (“Operação Inválida!”)

Deixe uma resposta

Specify Google Client ID and Secret in Super Socializer > Social Login section in admin panel for Google Login to work

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