Buscar

Programacao orientada a objetos modelagem de problemas

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 26 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 26 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 26 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

Programação orientada a objetos: 
modelagem de problemas
APRESENTAÇÃO
O paradigma de programação orientada a objetos foi originalmente criado por Alan Kay, autor 
da linguagem de programação Smalltalk. Embora seja um paradigma de programação mais novo 
no que diz respeito ao seu emprego pelas linguagens de programação, algumas delas já haviam 
implementado as suas ideias, sendo a Simula 67, criada em 1967, a primeira linguagem a 
realmente utilizar a programação orientada a objetos. 
A programação orientada a objetos trouxe uma nova maneira de se pensar projetos de softwares, 
sendo que sua aplicação deixa bem clara as etapas de análise, projeto e codificação de softwares. 
Seu conceito básico está em abstrair que tudo pode ser classificado como um objeto, cada objeto 
implementando atributos e métodos e se relacionando a outros objetos, daí advém seu nome 
“programa orientado aos objetos”. Conhecer e entender esse paradigma de programação é 
fundamental, já que, atualmente, ele é implementado por muitas linguagens.
Nesta Unidade de Aprendizagem, você vai entender o que é programação orientada a objetos, 
bem como vai conhecer algumas linguagens que o implementam e como são aplicados os seus 
conceitos.
Bons estudos.
Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados:
Definir programação orientada a objetos.•
Identificar as linguagens orientadas a objetos.•
Aplicar a programação orientada a objetos.•
DESAFIO
O principal conceito da programação orientada a objetos é que todo programa é uma coleção de 
objetos que se relacionam e apresentam comportamentos e atributos únicos. 
Uma empresa contratou você para desenvolver um programa simples em uma linguagem 
orientada a objetos. O escopo desse programa é controlar os pedidos feitos em uma lanchonete. 
A seguir, no Desafio, veja como os pedidos são feitos atualmente e como eles deverão ser 
realizados após o desenvolvimento do programa:
Com base nos requisitos que você viu, elabore uma descrição das possíveis classes, métodos e 
atributos que seu programa deve apresentar para contemplar o escopo desse cenário. Agora, os 
atributos e os métodos não precisam ser definidos, apenas identificados.
INFOGRÁFICO
A programação orientada a objetos contém alguns conceitos considerados pilares desse 
paradigma. Para que uma linguagem de programação realmente seja considerada orientada a 
objetos é necessário que ela implemente os pilares abstração, encapsulamento, herança e 
polimorfismo.
A seguir, no Infográfico, veja o significado de cada um desses conceitos e o porquê de sua 
relevância para a programação:
CONTEÚDO DO LIVRO
O paradigma de orientação a objetos é amplamente implementado pelas linguagens de 
programação existentes. A programação orientada a objetos permite que o desenvolvimento de 
um programa resulte de uma organização do contexto a que se propõe, implementando seu 
universo como uma coleção de objetos que se relacionam e de que se abstraem características e 
métodos únicos.
Leia o capítulo Programação orientada a objetos: modelagem de problemas, da obra 
Paradigmas de programação, e veja como as linguagens de ampla adoção implementam esse 
paradigma e, ainda, confira alguns exemplos de implementação de código em linguagem 
orientada a objetos.
Boa leitura.
PARADIGMAS DE 
PROGRAMAÇÃO 
Fabricio Machado da Silva
Programação orientada 
a objetos: modelagem 
de problemas
Objetivos de aprendizagem
Ao final deste texto, você deverá apresentar os seguintes aprendizados:
 � Definir programação orientada a objetos.
 � Identificar as linguagens orientadas a objetos.
 � Aplicar a programação orientada a objetos.
Introdução
A programação orientada a objetos (POO) surgiu como um paradigma 
que apresentava uma disciplina para novos projetos de desenvolvimento 
de software. Etapas com análise e projeto de software que, em outros 
paradigmas, acabavam sendo minimizados na POO, se tornam requisitos 
fundamentais.
Não é difícil imaginar que a POO acabou se tornando um padrão con-
sumido pela engenharia de software e que possibilitou avanços significati-
vos na programação de computadores. Seu uso permitiu que reutilização 
de código se tornasse algo praticamente comum em desenvolvimento 
de software, servindo como base para novos conceitos, como os serviços. 
Neste capítulo, você entenderá o conceito de POO, conhecerá al-
gumas linguagens que implementam esse paradigma e exemplos de 
aplicação em projetos de programas de computador.
Programação orientada a objetos
O conceito de POO tem suas raízes na linguagem de programação Simula 67, 
criada por Alan Kay, o precursor dos conceitos desse paradigma de programa-
ção. Contudo, sua grande evolução foi totalmente alcançada com a chegada 
da linguagem de programação Smalltalk 80: 
De fato, algumas pessoas consideram Smalltalk o modelo base para uma 
linguagem de programação puramente orientada a objetos. Uma linguagem 
orientada a objetos deve fornecer suporte para três recursos chave de lingua-
gem: tipos de dados abstratos, herança e vinculação dinâmica de chamadas 
a métodos (SEBESTA, 2018, p. 547).
Linguagens que suportam a POO são, atualmente, muito usadas. Algumas 
das linguagens de programação mais novas, projetadas para a POO, não 
implementam mais conceitos de linguagens procedurais como as primei-
ras implementavam. Porém, ainda assim, empregam estruturas básicas da 
programação estruturada e são imperativas, como as linguagens Java e C#, 
atualmente muito utilizadas e consideradas exemplos de sucesso de POO.
Smalltalk 80 foi primeira linguagem a implementar completamente os 
conceitos da POO, pois, em 1980, mesmo com a evolução dos módulos e pacotes 
pelas linguagens de programação da época, os problemas ainda persistiam. Um 
dos maiores problemas com os recursos atuais era que não existia mecanismo 
para inicialização e finalização automática do tipo fornecido. Segundo Tucker 
e Noonan (2009, p. 307) “As inicializações normalmente necessárias incluem 
abertura de um arquivo, alocação de memória e inicialização de variáveis locais 
ao módulo”. Já quanto às finalizações, incluem o fechamento de arquivos e 
a liberação de memória.
Além disso, alguns programadores e projetistas começaram a perceber 
que algumas necessidades não eram atendidas com as atuais linguagens de 
programação imperativa de decomposição funcional e abstração de dados, 
como os padrões de graphical user interfaces (GUI), que poderiam ser melhor 
implementadas com o conceito de objetos que pudessem trocar mensagens 
uns com os outros. Uma GUI poderia ser mais facilmente implementada se 
considerarmos, por exemplo, que seus componentes (botões, áreas de texto, 
imagens etc.) são tratados como objetos que podem interagir entre si e com 
o usuário do sistema. 
Programação orientada a objetos: modelagem de problemas2
Assim, a POO surge como um paradigma centrado no desenvolvimento 
de objetos, no lugar da atual decomposição funcional e abstração de dados. 
Na Figura 1, você pode perceber um pouco dessa diferença entre a atual 
programação estruturada e o conceito de objetos.
Figura 1. Comparativo entre programação estruturada e objetos.
Fonte: Adaptada de Gasparotto (2014).
...
...
...
...
...
Dados
globais
Programação estruturada
Procedimento
Procedimento
Procedimento
Procedimento
Procedimento
Dados objeto
Dados objeto
Dados objeto
POO
Método
Método
Método
Método
Método
Método
Em uma linguagem de POO, o encapsulamento dos tipos de dados e suas 
funções é alcançado por meio da implementação das classes. Uma classe é 
uma declaração de um tipo de objeto que encapsula os seus tipos de dados 
pelos seus atributos e funções por meio de seus métodos. É comum ouvir falar 
que uma classe serve como uma matriz de objetos, pois, ao determinar os seus 
atributos e métodos, serve como um modelo para que diversas instâncias de 
um objeto sejam criadas a partir de sua estrutura.
Ao analisar a Figura 1, você pode perceberque um programa em progra-
mação estrutural possui um desempenho melhor que um mesmo programa 
em POO, e isso ocorre pelo fato de, na programação estruturada, um código 
ser executado após o outro sequencialmente, ao passo que na POO são ne-
cessários alguns desvios. Entretanto, a POO traz outros pontos que acabam 
sendo mais interessantes no contexto de aplicações modernas. Como, na 
maioria das aplicações, o desempenho das aplicações não é uma das grandes 
preocupações (devido ao poder de processamento dos computadores atuais), 
a POO se tornou muito difundida. 
3Programação orientada a objetos: modelagem de problemas
Na próxima seção, vamos abordar como as linguagens Java, C# e Python 
implementam os conceitos da POO. Essas linguagens serão exemplos por serem 
muito utilizadas atualmente no contexto de desenvolvimento de software.
Linguagens orientadas a objetos
Agora, você entenderá um pouco sobre as linguagens Java, C# e Python, 
atualmente muito utilizadas e que implementam os conceitos da POO.
Java é uma linguagem de programação que foi desenvolvida pela Sun 
Microsystems no início da década de 1990. Ela se tornou um símbolo da POO, 
inclusive causando certa confusão, por julgarem que a POO era um paradigma 
de Java e não ao contrário (MACHADO; FRANCO; BERTAGNOLLI, 2016, 
p. 54).
De fato, a característica mais marcante da linguagem de programação 
Java está relacionada a sua portabilidade, pois os sistemas construídos não 
são compilados em código nativo da plataforma. Programas em Java são 
compilados para um bytecode, que é executado por uma máquina virtual, a 
Java virtual machine, que permite que os programas escritos em Java possam 
ser rodados em qualquer plataforma compatível com a sua máquina virtual.
Em Java, todo o programa usa classes e objetos, e é fundamental que o 
programador compreenda esses conceitos da POO para conseguir programar 
em Java. Os programas são escritos em pequenos pedaços separados, chamados 
de objetos. Segundo Machado, Franco e Bertagnolli (2016, p. 78), “Objetos 
são pequenos programas que guardam dentro de si os dados — em suma, as 
variáveis — que precisam para executar suas tarefas”. Os objetos também 
trazem em si, como sub-rotinas, as instruções para processar esses dados. 
As variáveis que um objeto guarda são chamadas de atributos, e as suas sub-
-rotinas são chamadas de métodos.
Programação orientada a objetos: modelagem de problemas4
Veja o exemplo de uma classe Cachorro em Java com os atributos nome, 
peso, altura e cor e o método pular().
public class Cachorro{
 public String nome;
 public float peso;
 public float altura;
 public String cor;
 
 void pular{
 if(altura>=80){
 System.out.println("Seu Cachorro pula alto");
 
 }
 }
}
Como você pode observar, a programação em Java é praticamente regrada 
pelos conceitos de POO, e as classes são a base de qualquer código Java. 
Qualquer análise para um novo programa em Java deve partir do entendimento 
do seu contexto e projeção das classes.
Agora, vamos analisar a linguagem C#. A linguagem C# (lê-se C Sharp) 
é definida pela Microsoft, que a desenvolve como uma linguagem de POO 
que faz parte de sua plataforma de desenvolvimento .NET. Embora a lingua-
gem C# tenha sido criada totalmente do zero pela Microsoft, foi baseada na 
linguagem C++, e possui muitos elementos das linguagens Java e Pascal. 
A plataforma .NET na qual teve seu desenvolvimento inicial, apresentou 
algumas limitações que motivaram que, em 1999, fosse montada uma força 
tarefa para o desenvolvimento de uma nova linguagem para essa plataforma.
Segundo Ledur (2018, p. 108):
A criação da linguagem C# ajudou muito no desenvolvimento do .NET, pois 
a plataforma não precisou se adequar a nenhum código de alguma linguagem 
já existente. O C# foi criado especificamente para .NET, sendo que muitas 
outras linguagens têm suporte à C#.
5Programação orientada a objetos: modelagem de problemas
Os principais objetivos do projeto da linguagem C# são:
 � Ser simples moderna e de propósito geral OO.
 � Ter uma linguagem e suas implementações que forneçam suporte para 
princípios de engenharia de software.
 � Ser destinada à utilização no desenvolvimento de componentes de 
software.
 � Possibilitar a portabilidade dos programas escritos em C#, assim como 
é possível na linguagem Java.
 � Fornecer suporte para a escrita de programa, tanto hospedados local-
mente como incorporados.
A Figura 2 mostra um exemplo da estrutura de uma classe em C#.
Figura 2. Exemplo da estrutura de uma classe em C#.
Fonte: Rodrigues (2017, documento on-line).
Você pode perceber que, assim como em Java, C# possui uma estrutura 
semelhante com a declaração dos atributos da classe logo no início e depois em 
seus métodos, além de uma semelhança na sintaxe entre as duas linguagens, 
o que é explicado devido ao embasamento do C# na linguagem Java.
Programação orientada a objetos: modelagem de problemas6
Para finalizar esta seção, vamos abordar a POO na linguagem de progra-
mação Python, que é uma linguagem de programação bastante utilizada por 
sua facilidade de aprendizado, aliada as suas características de programação 
de alto nível, de script, imperativa, OO e interpretada. 
Python é uma linguagem que permite o desenvolvimento tanto no conceito 
de programação estruturada como a POO. Possui suporte a tipificação dinâ-
mica, recursos de gerenciamento de uso de memória, além de oferecer uma 
abrangente biblioteca padrão. Os interpretadores Python possuem suporte 
para diversos sistemas operacionais, possibilitando a adaptação dos sistemas 
construídos.
A origem do nome Python, apesar de confundido com o animal cobra, 
na realidade é oriunda do grupo de comédia britânico que era assistido pelo 
criador da linguagem, chamado Monty Python, formado por Graham Cha-
pman, John Cleese, Eric Idle, Michael Palin, Terry Jones e Terry Gilliam. 
Carinhosamente, são chamados de Pythonistas os programadores Python, 
e as referências aos trabalhos do grupo de comédia estão espalhadas pelos 
tutoriais e sua documentação (LUTZ; ASCHER, 2007).
Python é uma linguagem muito simples, fácil de usar e aprender, apesar 
disso, também é uma linguagem extremamente robusta e utilizada nas mais 
diversas soluções:
 � back-end de sistemas Web, customer relationship management (CRM), 
ou gerenciamento de relacionamento com o cliente; 
 � pesadas simulações de engenharia;
 � processamento pesado de efeitos especiais de filmes;
 � soluções de análise de dados (data analytics);
 � aprendizado de máquina, do inglês machine learning (ML).
Veja o exemplo de uma classe Pessoa em Python.
class Pessoa:
 def _ init _ (self, nome, idade):
 self.nome = nome
 self.idade = idade
 
 def setNome(self, nome):
 self.nome = nome
 
7Programação orientada a objetos: modelagem de problemas
 def setIdade(self, idade):
 self.idade = idade
 
 def getNome(self):
 return self.nome
 
 def getIdade(self):
 return self.idade
Apesar da sintaxe do Python ser um pouco diferente da sintaxe de Java e 
C#, é possível verificar a estrutura da classe com a definição de atributos e 
métodos e que Python é outro exemplar de linguagem OO. Na próxima seção, 
você verá alguns exemplos da aplicação da programação OO em classes de 
exemplos, para fixar o entendimento.
Desenvolvendo com programação 
orientada a objetos
Para ajudar a elucidar o conceito de POO, vamos começar analisando a se-
guinte situação: um exemplo em Java que demonstra a criação da classe 
Pessoa com os atributos nome, dataNascimento e CPF; e o método 
tirarCopias, que calcula o custo da geração de cópias em um sistema de 
gestão de impressões de uma escola. Esse sistema deve calcular o valor da 
cópia embasado na seguinte regra:
 � para alunos da escola, o valor unitário da cópia será de R$ 0,07;
 � para os demais usuários, o valor unitário será de R$ 0,10.
A diferença é que este requisito será implementado com osseguintes 
conceitos da POO:
 � classes;
 � heranças.
Programação orientada a objetos: modelagem de problemas8
Observe na Figura 3, onde consta a classe Pessoa.
Figura 3. Classe Pessoa em Java.
Fonte: Geovane (2012, documento on-line).
Na classe Pessoa podemos observar os seguintes atributos:
 � nome;
 � cpf;
 � data_nascimento.
Observamos, também, que essa classe possui o método tirarCopias, 
que faz o cálculo do valor da cópia para pessoas em geral, ou seja, pessoas 
que não são alunos. Porém, você pode estar se perguntando, onde estão os 
dados do aluno e o método que faz o cálculo do valor da cópia quando se 
trata de um aluno? 
Esses dados estão na classe Aluno, mas, como o Aluno também é uma 
pessoa e tem alguns atributos que são comuns as demais pessoas, não vamos 
repetir na classe Aluno. A Figura 4 mostra como ficaria a classe Alunos 
em Java.
9Programação orientada a objetos: modelagem de problemas
Figura 4. Classe Alunos em Java.
Fonte: Geovane (2012, documento on-line).
É possível, portanto, observar que no início da classe Aluno existe a 
declaração extends. Essa declaração significa que a classe Aluno está 
dizendo que herda a classe Pessoa, dessa forma, os atributos que são comuns 
à classe Pessoa não necessitam ser repetidos. Além disso, percebe-se que a 
classe Aluno possui o atributo matrícula, que é específico do Aluno.
Por fim, veja que, na classe Aluno, o método tirarCopias é alterado 
de acordo com o valor específico para os Alunos, o que é possível em razão 
de um outro recurso de POO: o polimorfismo. Polimorfismo é um recurso que 
permite ao objeto ter um comportamento diferente, dependendo da situação. 
Nesse caso, o cálculo do valor da cópia se altera por conta da situação de 
desconto de aluno.
Pelos exemplos apresentados, percebe-se na prática alguns recursos e usos 
da programação OO e seus benefícios para a programação, possibilitando, 
principalmente, a reutilização do código.
Conceitos como os observados nos exemplos das Figuras 3 e 4 são casos 
comuns em POO, por isso é importante todo programador conseguir abstrair 
classes com seus atributos e métodos separados e, quando utilizar conceitos 
bases da POO, como herança de classes, evitar reutilização de código.
Programação orientada a objetos: modelagem de problemas10
GASPAROTTO, H. M. Os 4 pilares da Programação Orientada a Objetos. DevMedia, 
Rio de Janeiro, 2014. Disponível em: https://www.devmedia.com.br/os-4-pilares-da-
-programacao-orientada-a-objetos/9264. Acesso em: 15 set. 2019.
GEOVANE, H. Entendendo e Aplicando Herança em Java. DevMedia, Rio de Janeiro, 2012. 
Disponível em: https://www.devmedia.com.br/entendendo-e-aplicando-heranca-em-
-java/24544. Acesso em: 15 set. 2019.
LEDUR, C. L. Desenvolvimento de sistemas com C#. Porto Alegre: SAGAH, 2018. 268 p.
LUTZ, M.; ASCHER, D. Aprendendo Python. 2. ed. Porto Alegre: Bookman; O’Reilly, 2007. 
566 p.
MACHADO, R. P.; FRANCO, M. H. I.; BERTAGNOLLI, S. C. Desenvolvimento de software III: 
programação de sistemas web orientada a objetos em Java. Porto Alegre: Bookman, 
2016. 220 p. (Série Tekne; Eixo Informação e Comunicação).
RODRIGUES, J. Como criar minha primeira classe em C#. DevMedia, Rio de Janeiro, 2017. 
Disponível em: https://www.devmedia.com.br/como-criar-minha-primeira-classe-em-
-csharp/38785. Acesso em: 15 set. 2019.
SEBESTA, R. W. Conceitos de linguagem de programação. 11. ed. Porto Alegre: Bookman, 
2018. 758 p.
TUCKER, A. B.; NOONAN, R. E. Linguagens de programação: princípios e paradigmas. 2. 
ed. Porto Alegre: AMGH, 2009. 630 p.
Leituras recomendadas
EDELWEISS, N.; LIVI, M. A. C. Algoritmos e programação: com exemplos em Pascal e C. 
Porto Alegre: Bookman, 2014. 476 p. (Série Livros Didáticos Informática UFRGS).
MILETTO, E. M.; BERTAGNOLLI, S. C. Desenvolvimento de software II: introdução ao de-
senvolvimento web com HTML, CSS, JavaScript e PHP. Porto Alegre: Bookman, 2014. 
276 p. (Série Tekne; Eixo Informação e Comunicação).
NICOLETTI, M. C. A cartilha Prolog. São Carlos: Edufscar, 2003. 124 p. (Série Apontamentos).
OKUYAMA, F. Y.; MILETTO, E. M.; NICOLAO, M. Desenvolvimento de software I: conceitos bá-
sicos. Porto Alegre: Bookman, 2014. 236 p. (Série Tekne; Eixo Informação e Comunicação).
PINHEIRO, F. A. C. Elementos de programação em C: em conformidade com o padrão 
ISO / IEC 9899. Porto Alegre: Bookman, 2012. 548 p.
11Programação orientada a objetos: modelagem de problemas
DICA DO PROFESSOR
Todo paradigma de programação tem vantagens e desvantagens, mas saber equilibrar os pontos 
positivos e negativos, entendendo qual é o melhor para determinada situação, é o desafio de um 
profissional de desenvolvimento de software.
A seguir, na Dica do Professor, veja algumas vantagens e desvantagens do paradigma de 
programação orientado a objetos, o que possibilitará o entendimento de quando é necessária a 
adoção de uma linguagem orientada a objetos.
Conteúdo interativo disponível na plataforma de ensino!
EXERCÍCIOS
1) O conceito principal da programação orientada a objetos, que justifica o nome do 
próprio paradigma, é que tudo pode ser abstraído para um objeto e, assim, um 
programa seria uma coleção de objetos que se relacionam e apresentam 
comportamento único. Assinale a alternativa que apresenta os principais 
componentes de um objeto:
A) Estados e atributos.
B) Métodos e colunas.
C) Tabelas e variáveis.
D) Atributos e métodos.
E) Estado e métodos.
A orientação a objetos trouxe alguns conceitos interessantes para a programação, e 2) 
um deles está relacionado ao conhecimento sobre a implementação interna da classe, 
o qual é desnecessário do ponto de vista do objeto. Assinale a alternativa correta 
quanto ao seu nome:
A) Relacionamentos.
B) Encapsulamento.
C) Classes.
D) Abstração.
E) Herança.
3) Um dos novos conceitos surgidos sobre a programação orientada a objeto é o de que 
ela é um mecanismo por meio do qual é possível selecionar as funcionalidades 
utilizadas de forma dinâmica por um programa no decorrer de sua execução. 
Assinale a alternativa correta que apresenta o nome desse mecanismo:
A) Atributos.
B) Herança.
C) Classes.
D) Abstração.
E) Polimorfismo.
Uma das grandes vantagens da adoção da programação orientada a objetos é a 4) 
reutilização de código e sua organização. Com relação às vantagens da reutilização de 
código na programação orientada a objetos, assinale a alternativa correta:
A) A reutilização de código é obtida pelo uso de funções nos programas.
B) Os códigos em linguagens OO são simplificados pelo uso de procedimentos.
C) A reutilização de código é consequência da análise e do projeto de código.
D) A reutilização de código é consequência de métodos e eventos.
E) A reutilização de código se obtém após a sua simplificação.
5) Um objeto é uma instância de uma classe em programação orientada a objetos. As 
classes definem, então, a estrutura dos objetos que serão instanciados a partir dela. 
Com base nessa afirmativa, analise a classe a seguir em Java e assinale a alternativa 
correta:
public class Bola 
{ 
String cor; 
int tamanho; 
boolean cheia; 
void encher() 
{ 
cheia = true; 
} 
void esvaziar() 
{ 
cheia = false; 
} 
}
A) Cor, tamanho e cheia são métodos da classe bola.
B) Esvaziar e encher são atributos do tipo void, da classe bola.
C) Cor, tamanho e cheia são atributos da classe bola.
D) Esvaziar, encher e cheia são métodos da classe bola.
E) Cor e tamanho são atributos e cheia método booleano da classe bola.
NA PRÁTICA
Python é uma linguagem de programação orientada a objetos com grande aceitação no 
mercado. Atualmente, ela está entre uma das linguagens de programação mais utilizadas, 
principalmente por ser uma linguagem de fácil aprendizado que possibilita a profissionais 
conhecedores de qualquer outra linguagem orientada a objetos implementar programas 
rapidamente. Além disso, ela pode se adaptar a diferentes contextos de negócio.
A seguir, no Na Prática, veja o desenvolvimento deuma estrutura simples com operações 
básicas para serem utilizadas no gerenciamento de uma conta de um banco e confira como a 
linguagem Python implementa a programação orientada a objetos:
SAIBA MAIS
Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do 
professor:
Entendendo a orientação a objetos
A programação orientada a objetos é um paradigma de programação, isto é, uma forma de 
programar e desenvolver um sistema baseada no conceito de objetos, que podem conter dados 
na forma de campos, os quais também são denominados atributos, e códigos, na forma de 
procedimentos conhecidos como métodos. No vídeo a seguir, veja o conceito de orientação a 
objetos, classes, atributos e métodos.
Conteúdo interativo disponível na plataforma de ensino!
Aplicando herança em Java
Quando se faz uma programação em Java, existe a necessidade de se trabalhar com várias 
classes. Isso se explica pelo fato de que, na maioria das vezes, classes diferentes apresentam 
características comuns e, assim, ao invés de criar outra classe com essas características, é 
possível usar as características de um objeto ou classe já existente. Essa é a herança. Confira, no 
vídeo a seguir, a aplicação do conceito de herança em JAVA.
Conteúdo interativo disponível na plataforma de ensino!

Outros materiais