Buscar

Artigo_POO_Python

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

5
Orientação a Objetos: Um estudo sobre a Linguagem Python
Gustavo dos Santos Canapa (gustavo.s.canapa@gmail.com) – Luciano Santos Cardoso (lucianoscardoso@gmail.com) 
Resumo
A programação orientada a objetos é um paradigma de programação na qual classes definem objetos da vida real. Cada classe irá determinar o comportamento dos objetos, definindo por métodos e seus possíveis estados que são definidos através de seus atributos. Este paradigma de programação foi criado com o intuito de aproximar o mundo virtual com o mundo real. Para dar suporte à definição de objeto, foi criada uma estrutura que se denomina Classe, que reúne objetos com suas características em comum, descreve todos os serviços disponíveis por seus objetos e quais informações podem ser armazenadas no mesmo.
Palavras-chave: Orientação a objeto. Classes. Objetos.
Introdução
	Com a programação orientada a objetos, conseguimos trazer objetos da vida real ao mundo virtual, como por exemplo um carro, podemos transforma-lo em um objeto, descrevendo suas características e as funções que ele executa, deste modo temos um carro virtualmente, no qual ele executa oque sua modelagem precisa.
	Em Python, os objetos são criados a partir de classes por meio de atribuições; O objeto é uma instância da classe, que possui suas proprias características. Um objeto continua existindo na memória enquanto houver pelo menos um referência a ele. O interpretador do Python possui uma funcão que é chamada de “coletor de lixo ou Garbage Collector” que limpa a memória de objetos sem referências.
1 Classe em Python
Para começar, adicionaremos uma Class Carro, para criar esta classe vamos começar definindo o que é necessário para criar um objeto deste tipo e para isso teríamos que começar pelo inicializador.
O Python possui uma flexibilidade, que permite que criemos um objeto ao colocarmos pass e indicarmos que simplesmente estamos passando-o. Por exemplo, trabalharemos com o carro golf, em seguida verificaremos se o objeto está pronto, com print(). 
Algoritmo 1 – Criação de classe
Fonte: Elaborado pelo autor
Até o momento, “golf” não possui atributos, se clicarmos no botão “Run Code”, a IDE ou seu editor de códigos vai imprimir no terminal ou console as informações de algumas memórias do Python.
Agora vamos modelar essa classe, que na verdade não possui apenas pass, e sim atributos como def, com o qual definiremos o construtor ( __init__). O construtor sempre receberá self e também passaremos outros atributos como: nome, marca, ano e cor. Assim, são exibidas as informações correspondentes ao tentarmos imprimir um objeto que seja do tipo Carro:
Algoritmo 2 – Passando atributos para a classe Carro
Fonte: Elaborado pelo autor
	
2 Método
	Um método é uma função que “pertence” a um objeto instância em Python, o termo método não é aplicado exclusivamente em instâncias de classes definidas pelo usuário, outros tipos de objetos também podem ter métodos. Por exemplo, listar possuem os métodos append, insert, remove, sort e entre outros. O método serve para definirmos algo que será modificado posteriormente, e que nào será definido no momento da criação.
	Classes proporcionam uma forma de organizar dados e funcionalidades juntos. Criar uma nova classe cria um novo “tipo” de objeto, permitindo que novas “instâncias” desse tipo sejam produzidas. Cada instância da classe pode ter atributos anexados a ela, para manter seu estado. Instâncias da classe também podem ter métodos (definidos pela classe) para modificar seu estado.
Em comparação com outras linguagens de programação, o mecanismo de classes de Python introduz a programação orientada a objetos sem acrescentar muitas novidades de sintaxe ou semântica. É uma mistura de mecanismos equivalentes encontrados em C++ e Modula-3. As classes em Python oferecem todas as características tradicionais da programação orientada a objetos: o mecanismo de herança permite múltiplas classes base (herança múltipla), uma classe derivada pode sobrescrever quaisquer métodos de uma classe ancestral, e um método pode invocar outro método homônimo de uma classe ancestral. Objetos podem armazenar uma quantidade arbitrária de dados de qualquer tipo. Assim como acontece com os módulos, as classes fazem parte da natureza dinâmica de Python: são criadas em tempo de execução, e podem ser alteradas após sua criação (“9. Classes — documentação Python 3.9.5”).
No trecho de código abaixo, temos os métodos “porta_fechada” e “abrir_porta”, no qual “abrir_porta” recebe como parâmetro “porta_fecha” e caso a porta esteja fechado irá abrir a porta e caso esteja aberta não irá abrir a porta. 
Algoritmo 3 – Definindo métodos
Fonte: Elaborado pelo autor
3 Herança
	A herança determina que uma classe (filha) pode herdar atributos e métodos de outra classe (pai) e, assim evitar que haja muita repetição de código.
Neste caso criamos a classe Moto que é filha da classe Carro, nela herdamos os atributos e métodos, nesta classe filha adicionamos apenas mais um atributo que é “tipo”, nele passaremos o estilo da moto (naked ou carenada) e também herdamos da classe pai os métodos ligar, desligar e estado.
Algoritmo 4 – Criação de uma classe filha herdando atributos da classe pai
Fonte: Elaborado pelo autor
Note que a classe filha só estão repassando seus de nome, ano, marca e cor para a classe Pai através do super() e que nenhum método foi implementado dentro dessa classe.
Agora, por herdar a classe Carro, a classe Moto pode, sem nenhuma alteração, utilizar o método estado() e ligar(), definidos na classe pai (PINHEIRO, 2019).
4 Encapsulamento
Encapsulamento é quando procuramos esconder de clientes (usuários de uma classe) todas as informações que não são necessárias ao uso da classe. Por exemplo, suponha que precisássemos criar uma classe para armazenar as informações de funcionários de uma empresa, como ilustrado no código abaixo (RAMALHO, 2013) .
Algoritmo 5 – Criação de encapsulamento
Fonte: (RAMALHO, 2013)
Nesta classe, o salário de um funcionário é calculado com base nas horas trabalhadas. As informações sigilosas dos funcionários, como o salário, estão expostas a clientes da classe, o que não é desejado. Para garantir que algo não seja visível a clientes da classe, existe uma convenção de que dados ou métodos cujo nome começa com dois underscores (__) não devem ser acessados fora da classe.
Algoritmo 6 – Criação de encapsulamento
Fonte: (RAMALHO, 2013)
Porém, dado que essa forma de encapsulamento é somente um indicativo de que os dados e métodos de quais começam com “__” não devem (mas podem) ser acessados. Para garantir que variáveis de uma classe não sejam alteradas. Esse mecanismo consiste do uso do decorador @property, que nos permite restringir o acesso as varáveis da classe. 
Algoritmo 7 – Criação de encapsulamento
Fonte: (RAMALHO, 2013)
Desta forma ao tentar alterar o valor da propriedade salario, o cliente recebe um erro avisando a forma correta de mudar o salário de um funcionário. Além destes dois níveis de visibilidade, Python nos permite também criar variáveis ou métodos que são visíveis somente na classe e em classes dela derivadas. A convenção é que variáveis ou métodos cujo nome começa com _ (um underscore apenas) são visíveis em uma hierarquia de classes, ou seja, na classe base e nas classes derivadas, mas não devem ser acessados fora destes casos.
5 Referências
9. Classes — documentação Python 3.9.5. Disponível em: <https://docs.python.org/pt-br/3/tutorial/classes.html>. Acesso em: 20 maio. 2021. 
PINHEIRO, F. Utilizando herança no Python. Disponível em: <https://www.treinaweb.com.br/blog/utilizando-heranca-no-python/>. Acesso em: 20 maio. 2021. 
RAMALHO, L. Encapsulamento em Python: 2013. 
CRISTIANO, P.; ALMEIDA, S. DE. Programação Orientada a Objetos e Algoritmos em Java. 2009.
MATTHES, E. Curso intensivo de Python. v. 53 
Python 3: Avançando na orientação a objetos. Disponível em: . Acesso em: 20 maio. 2021.

Continue navegando