Buscar

Conteúdo Interativo 4

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 11 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 11 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 9, do total de 11 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

Prévia do material em texto

06/12/2021 19:28 Disciplina Portal
https://estacio.webaula.com.br/Classroom/index.asp?191C757E76=484D213C2740B0F19DC3C17D0E7D5F6153FE93CC57DDA5ED2325A36… 1/11
Programação RAD
Aula 4: Fundamentos da linguagem de script
orientada a objeto
INTRODUÇÃO
Você já deve ter ouvido que a orientação a objetos é um dos assuntos dos quais não há como fugir no aprendizado de
qualquer linguagem de programação. Mas não é bem assim! Lembre-se de que existem linguagens com outros
paradigmas, as quais nunca serão orientadas a objeto. 
06/12/2021 19:28 Disciplina Portal
https://estacio.webaula.com.br/Classroom/index.asp?191C757E76=484D213C2740B0F19DC3C17D0E7D5F6153FE93CC57DDA5ED2325A36… 2/11
De fato, a maioria das linguagens bem conhecidas e muito usadas no mercado possui esse caráter. E Python é uma
delas. 
Assim como outros aspectos da linguagem, criar e usar objetos é bem simples em Python. Porém, é muito importante
que você retome os conhecimentos adquiridos da orientação a objetos de outras linguagens. 
Nesta aula, de�niremos alguns conceitos importantes, tais como herança, abstração, encapsulamento e polimor�smo. 
Vamos lá?
OBJETIVOS
Explicar o funcionamento da orientação a objetos em Python.
Criar scripts com objetos nessa linguagem.
Usar objetos em Python.
06/12/2021 19:28 Disciplina Portal
https://estacio.webaula.com.br/Classroom/index.asp?191C757E76=484D213C2740B0F19DC3C17D0E7D5F6153FE93CC57DDA5ED2325A36… 3/11
ORIENTAÇÃO A OBJETOS
A orientação a objetos é um paradigma de programação (glossário) muito usado nos dias de hoje pelas principais
linguagens. E Python está entre elas. 
É muito comum encontrar programadores que repetem código da internet sem nem saber o que estão fazendo ou a
teoria que envolve o recurso usado. Por isso, conhecer os fundamentos das linguagens é extremamente importante
para gerar códigos mais e�cazes e reutilizáveis. 
Antes de nos aprofundarmos nos códigos, vamos relembrar os pilares que sustentam a orientação a objetos. São eles:
Vamos entendê-los:
Herança
Mecanismo mais relacionado com reuso de código dentro da orientação a objetos – uma
grande vantagem desse tipo de paradigma. 
Exemplo 
Uma criança herda características de seus pais, estes herdam de seus avós, os avós dos
bisavôs, e assim por diante. Na orientação a objetos, um objeto abaixo de uma hierarquia
herda características de todos os objetos superiores a ele.
Abstração
O problema de qualquer engenheiro de software é transportar para o mundo computacional
uma visão da realidade de acordo com o paradigma que escolheu para desenvolver o
projeto. 
No caso da orientação a objetos, a abstração envolve três questões: 
06/12/2021 19:28 Disciplina Portal
https://estacio.webaula.com.br/Classroom/index.asp?191C757E76=484D213C2740B0F19DC3C17D0E7D5F6153FE93CC57DDA5ED2325A36… 4/11
1. Todo objeto precisa ter uma identidade. 
2. Todo objeto possui propriedades, ou seja, os elementos que o de�nem. 
3. Todo objeto possui métodos ou ações que executa. 
Portanto, podemos abstrair elementos do mundo real e convertê-los em objetos para que
sejam implementados em alguma linguagem orientada a objetos.
Encapsulamento
Pilar que esconder as propriedades de um objeto, tornando o programa mais seguro e
deixando à mostra somente as ações que o objeto pode executar. 
Basicamente, quando usamos propriedades privadas relacionadas a métodos assessores
(get e set), evitamos o acesso direto à propriedade do objeto, aumentando a segurança da
aplicação. 
Exemplo 
Quando assistimos à TV, só nos preocupamos com o ato de ligar ou desligar o aparelho, o
que ocorre internamente. Mas os circuitos envolvidos dentro da televisão não são de nosso
conhecimento nem de nosso interesse.
Polimor�smo
Os objetos-�lhos herdam atributos e métodos de seus pais, mas, em algumas situações, é
importante que ações para um mesmo método sejam diferentes. O polimor�smo ocorre
quando existe uma alteração do funcionamento interno de um método herdado de um
objeto-pai. 
Exemplo 
Vamos voltar a pensar no funcionamento da TV. O televisor pode ser um objeto que herda de
uma classe chamada eletrodoméstico. Sabemos que todo eletrodoméstico pode ser ligado
ou desligado, certo? Considerando dois objetos (uma TV e uma máquina de lavar roupa),
ambos têm o método ligar e desligar, mas a forma como fazem isso é múltipla
(polimor�smo).
Os quatro pilares são fundamentais para entendermos o paradigma de orientação a objetos. Cada linguagem os
implementa de forma diferente, mas, no geral, o resultado é o mesmo.
Atenção
06/12/2021 19:28 Disciplina Portal
https://estacio.webaula.com.br/Classroom/index.asp?191C757E76=484D213C2740B0F19DC3C17D0E7D5F6153FE93CC57DDA5ED2325A36… 5/11
, 
Embora os conceitos não se alterem, existem detalhes especí�cos que envolvem a herança e o polimor�smo em algumas
linguagens.
FUNÇÕES EM PYTHON
Na orientação a objetos, precisamos escrever métodos nas classes, os quais são bem semelhantes às funções e aos
procedimentos da programação estruturada. 
Por isso, antes de começarmos a escrever programas orientados a objetos, precisamos aprender a escrever funções
em Python. 
Vamos, então, mostrar uma função de�nida nessa linguagem:
1 def printme (str):
2 "Esta função vai imprimir: "
3 print str
4 return
Você consegue descobrir para que serve?
Re�ita sobre isso enquanto explicamos sua estrutura:
1. Toda função em Python começa com o comando def.
2. Depois do def, há o nome da função
3. Em seguida, aparece a lista de parâmetros, que pode estar vazia, mas os parênteses são obrigatórios.
4. Após essa lista, estão os dois pontos (“:”).
5. Observe que há uma indentação nas linhas 2, 3 e 4. Todo o código que estiver indentado fará parte do corpo da
função. A indentação é muito importante na de�nição de funções. Portanto, cuidado ao digitar os blocos de comandos.
6. Toda função termina com o comando return, que pode ser seguido ou não de uma variável de retorno.
A FUNÇÃO FOI DEFINIDA NO EXEMPLO ANTERIOR, MAS COMO
EXECUTAR UMA DEFINIDA PELO USUÁRIO?
Lembre-se de que já aprendemos a fazer isso: quando usamos o print() ou input(), estamos, na verdade, chamando
funções prede�nidas na Python – também denominadas buit-in. 
Como exemplo, vamos usar o IDLE. Observe a �gura:
06/12/2021 19:28 Disciplina Portal
https://estacio.webaula.com.br/Classroom/index.asp?191C757E76=484D213C2740B0F19DC3C17D0E7D5F6153FE93CC57DDA5ED2325A36… 6/11
Como podemos perceber, aqui, chamar a função não é muito diferente do que em outras linguagens.
Vamos tratar das funções novamente e com mais detalhes na aula 9. Como nosso objetivo atual é aprender a
orientação a objetos, o que estudamos até o momento é su�ciente.
Saiba Mais
, 
Talvez, você tenha achado estranha a string do exemplo, mas sua história é bem interessante. Se quiser saber mais sobre o
assunto, assista ao vídeo Edward Snowden on Passwords: last week tonight with John Oliver. (https://www.youtube.com/watch?
v=yzGzB-yYKcc)
CLASSES EM PYTHON
Em Python, a criação de uma classe também é bem simples. Observe sua sintaxe:
class Nome_da_classe:
 'String de documentação da
classe (Opcional) '
 Corpo_da_classe
Vamos analisar um exemplo:
1 class Empregado:
2 'Classe base para empregados'
https://www.youtube.com/watch?v=yzGzB-yYKcc
06/12/2021 19:28 Disciplina Portal
https://estacio.webaula.com.br/Classroom/index.asp?191C757E76=484D213C2740B0F19DC3C17D0E7D5F6153FE93CC57DDA5ED2325A36… 7/11
3 contador = 0
4
5
 def __init__ (self, nome,
salario):
6 self.nome = nome
7 self.salario = salario
8 Empregado.contador += 1
9
10 def mostra_contador (self):
11
 Print ("Número de
empregados: %d" % Empregado.contador)
12
13 def mostra_empregado (self):
14
 Print ("Nome: ",
self.nome, ", Salário: ", self.salario)
Esta é uma classe! Se você analisar seu código, perceberá que não é tão diferente de outras linguagens. No fundo, aestrutura é bem parecida com qualquer outra linguagem orientada a objetos. 
Para que a compreensão se torne mais fácil, vamos explicar a classe linha a linha:
Linha 1
De�nição da classe e seu nome (Empregado). Não se esqueça de colocar os dois pontos (“:”) após essa nomenclatura.
Linha 2
Breve descrição da classe. Observe que NÃO é um comentário, e sim uma string que faz parte da documentação da classe.
Linha 3
Criação de uma variável de classe – chamada, aqui, de contador. A de�nição de variáveis é feita conforme as regras da
linguagem. Lembre-se de que variável de classe é diferente de variável de instância.
Linha 4
Atividades de controle gerencial.
Impacto por mudanças gerenciais.
06/12/2021 19:28 Disciplina Portal
https://estacio.webaula.com.br/Classroom/index.asp?191C757E76=484D213C2740B0F19DC3C17D0E7D5F6153FE93CC57DDA5ED2325A36… 8/11
EXERCÍCIO
Agora, que você já aprendeu sobre as classes em Python, crie uma classe em que represente um ponto cartesiano com
coordenadas X e Y. As coordenadas devem fazer parte do construtor. Elabore uma frase para representar e documentar
a classe.
Resposta Correta
OBJETOS EM PYTHON
Agora que já criamos as classes, é o momento de instanciar os objetos. 
Vamos usar como base a classe Empregado:
>>> emp1 = Empregado("Fabiano",1000) 
>>> emp2 = Empregado("João Neves", 1500)
Aqui, não precisamos declarar o objeto antes e, depois, instanciá-lo com “new” ou outro comando, como em outras
linguagens. Em Python, realizamos o processo de forma direta.
Como criamos um construtor para a classe, ele é invocado quando criamos objetos da classe referenciada.
Observe que não passamos o self como parâmetro, e sim o nome e o salário na mesma ordem em que são de�nidos
na assinatura do método construtor.
EXERCÍCIO
Vamos retomar o exercício anterior. Você se lembra da classe que criou para representar um ponto cartesiano? Agora,
adicione mais dois pontos. 
Linhas de 5 a 8
De�nição do método construtor. Observe seu nome especí�co: “__init__()”. Quando a Python encontra esse método, trata-o como
construtor da classe. Dentro dele, de�nimos as variáveis de instância da classe.
Linhas de 10 a 13
Os outros métodos da classe são criados como funções normais, com exceção de que o primeiro argumento para cada método é
o self. A Python coloca o self na lista para você, mas ele não precisa ser referenciado quando for chamar os métodos.
06/12/2021 19:28 Disciplina Portal
https://estacio.webaula.com.br/Classroom/index.asp?191C757E76=484D213C2740B0F19DC3C17D0E7D5F6153FE93CC57DDA5ED2325A36… 9/11
p ➜ com coordenadas 2 e 3; 
q ➜ com coordenadas 3 e 2.
Resposta Correta
Agora, vamos analisar mais um exemplo:
Vamos, então, acessar os elementos da classe
>>> emp1.mostra_empregado() 
Nome : Fabiano , Salário: 1000 
>>> emp2.mostra_empregado() 
Nome : João Neves , Salário: 1500
Podemos até incluir, remover ou modi�car os atributos de classe e de objetos a
qualquer momento
>>> emp1.idade = 44
Note que criamos uma nova variável de instância na classe Empregado
>>> print("Nome: ",emp1.nome," - Salário: ",emp1.salario," - Idade:
",emp1.idade) 
Nome: Fabiano - Salário: 1000 - Idade: 44
Já para o objeto emp2, temos...
>>> print("Nome: ",emp2.nome," - Salario:",emp2.salario," -
Idade:",emp2.idade) 
Traceback (most recent call last): 
 File "", line 1, in 
 print("Nome: ",emp2.nome," - Salario:",emp2.salario," -
Idade:",emp2.idade) 
AttributeError: 'Empregado' object has no attribute 'idade'
EXERCÍCIO
No caso do emp2 há um erro. Você conseguiu perceber? 
Identi�que-o e explique como podemos corrigi-lo.
06/12/2021 19:28 Disciplina Portal
https://estacio.webaula.com.br/Classroom/index.asp?191C757E76=484D213C2740B0F19DC3C17D0E7D5F6153FE93CC57DDA5ED2325A3… 10/11
Resposta Correta
Em vez de usar as instruções normais para acessar atributos, você também pode aplicar as seguintes funções:
getattr (objeto, nome [, default])
Para acessar o atributo do objeto
hasattr (objeto, nome)
Para veri�car se existe um atributo ou não
setattr (objeto, nome, valor)
Para de�nir um atributo (se não existe, será criado)
delattr (objeto, nome)
Para excluir um atributo
Atenção
, Assim como sugerimos nas aulas anteriores, refaça os exemplos apresentados aqui. Execute, erre, descubra seus erros e tente
corrigi-los. Praticar é essencial no aprendizado de uma nova linguagem de programação.
EXERCÍCIO
Para �nalizarmos esta aula, vamos praticar com mais um exercício. 
Crie um método para retornar o valor da coordenada X e outro para retornar o valor da coordenada Y.
Resposta Correta
06/12/2021 19:28 Disciplina Portal
https://estacio.webaula.com.br/Classroom/index.asp?191C757E76=484D213C2740B0F19DC3C17D0E7D5F6153FE93CC57DDA5ED2325A3… 11/11
Glossário
PARADIGMA DE PROGRAMAÇÃO
“[Aquele que] fornece e determina a visão que o programador possui sobre a estruturação e execução do programa.” 
Disponível em: https://goo.gl/wA4raQ (https://goo.gl/wA4raQ). Acesso em: 16 out. 2017.
VARIÁVEL DE CLASSE
Membro de uma classe. Atributo que está presente na própria classe e que é compartilhado por todos os seus objetos.
VARIÁVEL DE INSTÂNCIA
Membro de uma classe. Variável que cada objeto carrega consigo durante sua existência, cujos valores podem ser modi�cados.
https://goo.gl/wA4raQ

Outros materiais