Font size
WorksheetsProgramação Orientada a Objetos - Herança
Total questions: 98
Worksheet time: 49mins
O ______ é inerente ao processo de solução de problemas utilizado pelos seres humanos.
Reuso
Erro
Aleatoriedade
Desorganização
Na medida em que soluções são encontradas, estas são utilizadas em problemas similares.
Verdadeiro
Falso
Reutilização de software é o processo de criação de sistemas de software a partir de ______ existente ao invés de construí-los a partir do zero.
software
hardware
documentação
projetos
Para entregar software de qualidade em menos tempo, é preciso reutilizar.
Verdadeiro
Falso
O Reuso veio para agilizar o processo de desenvolvimento de software, aumentando a sua ______ e diminuindo o seu ______.
confiabilidade; custo
complexidade; desempenho
dificuldade; tempo
instabilidade; valor
Reuso é uma das principais vantagens anunciadas pela Orientação a Objetos. Complete: Composição é quando a "____" b (parte essencial).
a é parte essencial de b
a é independente de b
a é opcional para b
a é substituível por b
Reuso é uma das principais vantagens anunciadas pela Orientação a Objetos. Complete: Agregação é quando a "____" b (parte).
a é parte de b
b é parte de a
a e b são independentes
a contém b
Reuso é uma das principais vantagens anunciadas pela Orientação a Objetos. Complete: Associação é quando a "____"
a é usado por b
a herda de b
a implementa b
a depende de b
Reuso é uma das principais vantagens anunciadas pela Orientação a Objetos. Complete: Herança é quando b "____" a (substituição pura) ou b "____" a (substituição útil, extensão).
b é a (substituição pura) ou b é um tipo de a (substituição útil, extensão)
b tem a (substituição pura) ou b faz parte de a (substituição útil, extensão)
b usa a (substituição pura) ou b depende de a (substituição útil, extensão)
b contém a (substituição pura) ou b implementa a (substituição útil, extensão)
O que significa composição em programação orientada a objetos, conforme apresentado na imagem?
Composição é a criação de uma nova classe usando classes existentes como atributos.
Composição é o processo de herdar métodos de uma classe base.
Composição é a definição de métodos estáticos em uma classe.
Composição é a utilização de interfaces para implementar múltiplos comportamentos.
De acordo com o diagrama apresentado, um trem é formado por quais componentes?
A) Apenas locomotiva
B) Apenas vagões
C) Locomotiva e vagões
D) Passageiros
No exemplo de código Java apresentado, qual é o papel da classe Locomotiva dentro da classe Trem?
A classe Locomotiva é usada como um atributo da classe Trem, representando a composição.
A classe Locomotiva herda todos os métodos da classe Trem.
A classe Locomotiva é responsável por criar instâncias da classe Trem.
A classe Locomotiva substitui a classe Trem no código.
O que significa agregação em programação orientada a objetos, conforme explicado na imagem?
Uma classe herda atributos de outra classe
Uma classe usa outra classe como atributo, mas não depende dela para existir
Uma classe não pode existir sem outra classe
Uma classe implementa métodos de outra classe
Qual é o tipo de coleção utilizada para armazenar os objetos Farol?
ArrayList
HashMap
LinkedList
HashSet
O que significa o conceito de associação em programação orientada a objetos?
A) Uma classe herda atributos de outra
B) Uma classe faz uso de outra sem que ela faça parte de sua estrutura
C) Uma classe é composta por outras classes
D) Uma classe não depende de nenhuma outra
No diagrama apresentado, qual é o relacionamento entre as classes Trem e EstradaDeFerro? Preencha o espaço em branco: Trem ______ EstradaDeFerro.
usa
herda de
é parte de
implementa
Reuso - Associação Criação de uma nova classe fazendo uso de outras usando classes (acoplamento menor). Associação: um trem usa uma estrada de ferro (não faz parte do trem, mas ele depende dela). Observe o exemplo de código abaixo: class Trem { EstradaDeFerro estrada = new EstradaDeFerro(); ... } Qual conceito está sendo aplicado neste exemplo?
A) Herança
B) Associação
C) Composição
D) Polimorfismo
Qual técnica de reuso é mais adequada para representar o relacionamento entre as classes Conta e Cliente?
Composição
Herança
Agregação
Polimorfismo
Qual alteração deve ser feita na classe Conta para permitir a associação com múltiplos clientes?
Alterar o atributo de Cliente para uma lista de Clientes.
Remover o atributo Cliente da classe Conta.
Adicionar um método para excluir clientes.
Transformar a classe Conta em uma interface.
O que significa o relacionamento de herança em programação orientada a objetos, conforme mostrado na imagem?
Criação de novas classes sem relação com as existentes
Criação de novas classes estendendo classes existentes
Criação de métodos privados
Criação de variáveis globais
Observe a representação UML detalhada de 'Veículo' na imagem. Quais métodos pertencem à classe 'Veículo'?
getVelocidade(), getPassageiros(), acelera(), freia()
getCor(), setModelo(), ligaRadio()
abrirPorta(), fecharPorta(), buzina()
getAno(), setMarca(), trocarPneu()
O que é herança em programação orientada a objetos?
Um mecanismo que permite a uma classe herdar todos os métodos e os atributos de outra classe.
Um mecanismo que permite a uma classe criar novos métodos.
Um mecanismo que permite a uma classe excluir métodos de outra classe.
Um mecanismo que impede o reuso de código.
Complete: Uma classe que herda de outra classe é chamada de ________ e a classe que fornece a herança é chamada de ________.
subclasse, superclasse
superclasse, subclasse
classe base, classe derivada
classe filha, classe mãe
De acordo com o diagrama apresentado, qual é a superclasse de Classe B?
Classe A
Classe C
Classe D
Classe E
De acordo com o diagrama apresentado, quais são as subclasses de Classe B?
Classe C, Classe D, Classe E
Classe A, Classe F, Classe G
Classe D, Classe F, Classe H
Classe E, Classe G, Classe H
A classe B é uma superclasse de Classe C, Classe D e Classe E.
Verdadeiro
Falso
Complete: As superclasses definem _______ e _______ genéricos que serão herdados pelas classes derivadas.
atributos; métodos
classes; objetos
funções; variáveis
parâmetros; valores
Complete: Um método herdado de uma superclasse pode ser _______ pela classe derivada, mantendo o mesmo nome mas agindo de forma diferente.
redefinido
removido
duplicado
renomeado
Complete: Normalmente, os atributos de um objeto só podem ser consultados ou modificados através dos seus métodos (_______ e _______).
getters; setters
constructors; destructors
listeners; emitters
readers; writers
Na linguagem de programação Java, pode-se definir a visibilidade dos métodos e atributos. Com relação a essa característica, é correto afirmar que:
métodos declarados como public em uma superclasse, quando herdados, precisam ser protected em todas as subclasses dessa classe.
métodos declarados como protected em uma superclasse, quando herdados, precisam ser protected ou public nas subclasses dessa classe.
o nível de acesso protected é mais restritivo do que o nível de acesso default.
métodos declarados como public só podem ser acessados a partir dos métodos da própria classe ou de classes derivadas.
métodos declarados como default só podem ser acessados a partir dos métodos da própria classe.
De acordo com o diagrama apresentado, o que a classe 'Bicicleta' representa em relação à classe 'Veículo' em Java?
Bicicleta é um tipo de Veículo
Veículo é um tipo de Bicicleta
Bicicleta não tem relação com Veículo
Bicicleta herda de Carro
No contexto de herança em Java, complete a frase: 'Bicicleta ______ um Veículo.'
é
tem
faz
usa
Java adota o modelo de árvore para herança de classes. Qual é a classe que está na raiz dessa hierarquia de classes em Java?
String
Object
Integer
Class
Complete: Em Java, a classe _______ é a raiz da hierarquia de classes.
Object
String
System
Class
Qual palavra reservada em Java é usada para indicar herança entre classes?
extends
implements
inherits
super
Em Java, quando uma classe não declara de quem herda, ela estende implicitamente qual classe?
Object
String
System
Class
Os construtores das subclasses em Java herdam automaticamente os construtores das superclasses?
Sim
Não
Para chamar o construtor da superclasse em uma subclasse em Java, qual comando deve ser utilizado?
super()
this()
parent()
base()
Observe o diagrama de herança em Java apresentado. Qual das opções abaixo representa corretamente a relação de herança entre as classes?
A) Circulo herda de Quadrado
B) Quadrado herda de Forma
C) Triangulo herda de Circulo
D) Forma herda de Triangulo
No exemplo de código apresentado: class Circulo extends Forma {...} class Quadrado extends Forma {...} class Triangulo extends Forma {...} Qual palavra-chave é utilizada para indicar herança em Java?
extends
implements
inherits
super
No diagrama, a classe Forma possui os métodos desenha() e apaga().
Verdadeiro
Falso
Como é realizada a chamada de métodos em uma hierarquia de classes em Java?
A) A mensagem é enviada ao objeto e percorre verticalmente uma hierarquia de classe até que uma definição seja encontrada.
B) A mensagem é enviada diretamente à classe principal.
C) O método é chamado apenas na classe filha.
D) O método é chamado apenas no objeto.
Preencha o espaço em branco: Em Java, a definição de método é procurada ________ na hierarquia de classes até ser encontrada.
verticalmente
horizontalmente
diagonalmente
aleatoriamente
O uso de herança em Java aumenta o acoplamento entre as classes, isto é, a dependência de uma classe em relação a outra.
Verdadeiro
Falso
Qual é a relação entre classe 'pai' e 'filha' em Java?
Fraca
Forte
Independente
Inexistente
O forte acoplamento da Herança dificulta a mudança pontual no sistema.
Verdadeiro
Falso
Mesmo depois de reescrever um método da superclasse, a subclasse ainda pode acessar o método da superclasse.
Verdadeiro
Falso
Preencha a lacuna: A sintaxe padrão para acessar um método da superclasse em Java é _________.
super.método()
this.método()
parent.método()
base.método()
Preencha: A palavra reservada ______ é utilizada para fazer referência aos membros (atributos e métodos) da superclasse.
super
this
base
parent
Preencha: O comando ______ é utilizado para chamar construtores da superclasse.
super()
this()
parent()
base()
Por definição, o ______ é chamado (implicitamente) pelo construtor da subclasse. Se houver necessidade de chamá-lo explicitamente, os seus argumentos deverão ser informados.
super()
init()
this()
parent()
Preencha: Toda a chamada a ______ deverá ser feita na primeira instrução do construtor da subclasse.
super()
this()
init()
parent()
Qual é a diferença entre o uso de 'super(raio)' e 'super.apaga()' no contexto da herança em Java?
'super(raio)' chama o construtor da classe pai, enquanto 'super.apaga()' chama um método da classe pai.
Ambos chamam métodos da classe pai.
'super(raio)' chama um método estático da classe pai, enquanto 'super.apaga()' chama o construtor da classe pai.
Ambos chamam o construtor da classe pai.
Preencha o espaço em branco: No exemplo apresentado, 'super(raio)' é utilizado para __________ da classe pai.
chamar o construtor
acessar um atributo privado
finalizar a classe
criar um método estático
1) A classe Carro do sisalucar deve ser modificada para herdar de qual classe, conforme o diagrama UML apresentado, e implementar quais métodos?
Deve herdar de Veículo e implementar getVelocidade(), getPassageiros(), acelera() e freia().
Deve herdar de Passageiro e implementar apenas acelera() e freia().
Deve herdar de Motorista e implementar getVelocidade() e getPassageiros().
Deve herdar de Veículo e implementar apenas acelera().
O que deve ser feito para permitir a locação de motos e ônibus na aplicação sisalucar?
Alterar a aplicação para permitir a locação desses veículos.
Remover a funcionalidade de locação de carros.
Adicionar apenas motos, sem ônibus.
Manter a aplicação sem alterações.
Para criar duas subclasses de Conta, quais nomes devem ser utilizados?
ContaCorrente e ContaPoupanca
ContaSimples e ContaEspecial
ContaDigital e ContaFixa
ContaBasica e ContaPremium
Quais são os atributos da entidade Ent1?
cent11, cent12, aent11, aent12
cent21, cent22, aent21, aent22
cent31, cent32, aent31, aent32
cent41, cent42, aent41, aent42
Quais são os atributos da entidade Ent2?
cent21, aent21, aent22, aent23
cent22, aent24, aent25, aent26
cent23, aent27, aent28, aent29
cent24, aent30, aent31, aent32
Quais são os atributos da entidade Ent3?
cent31, aent31, aent32
cent31, aent33, aent34
cent32, aent31, aent33
cent30, aent30, aent32
Quais são os atributos da entidade Ent4?
cent41, aent41, aent42, aent43
cent42, aent44, aent45, aent46
cent43, aent47, aent48, aent49
cent44, aent50, aent51, aent52
Quais são os atributos da entidade Ent5?
cent51, aent51
cent52, aent52
cent53, aent53
cent54, aent54
O que é Sobrecarga (overloading) em Java?
Quando uma subclasse define um método com o mesmo nome do método herdado da superclasse, mas com assinatura diferente.
Quando uma subclasse define um método com o mesmo nome e mesma assinatura do método herdado da superclasse.
Quando uma subclasse define novos métodos sem relação com os métodos herdados da superclasse.
Complete: Anulação ou Sobreposição (overriding) ocorre quando uma subclasse define um método com o mesmo nome e ______ do método herdado da superclasse.
mesma assinatura
mesmo valor de retorno
mesmo modificador de acesso
mesmo corpo
Métodos constantes (final) podem ser sobrepostos em subclasses.
Verdadeiro
Falso
O que é Extensão em Java?
Quando uma subclasse define um método com o mesmo nome do método herdado da superclasse, mas com assinatura diferente.
Quando uma subclasse define novos métodos, sem qualquer relação com os métodos herdados da superclasse.
Quando uma subclasse define um método com o mesmo nome e mesma assinatura do método herdado da superclasse.
O que é sobrecarga (overloading) em programação orientada a objetos?
É a definição de múltiplos métodos com o mesmo nome, mas com diferentes parâmetros.
É a capacidade de uma classe herdar métodos de outra classe.
É o processo de esconder detalhes de implementação de um objeto.
É a modificação do comportamento de um método herdado.
Verdadeiro ou falso: Uma boa prática é usar a sobrecarga somente nos métodos que possuam a mesma funcionalidade.
Verdadeiro
Falso
Verdadeiro ou falso: A sobrecarga pode ser feita igualmente nos métodos construtores.
Verdadeiro
Falso
Observe o exemplo de código apresentado sobre sobrecarga (overloading): void mover (int dx, int dy) { x += dx; y += dy; } void mover (int raio, float ang) { x += raio*Math.cos(ang); y += raio*Math.sen(ang); } Qual é o conceito ilustrado por esses métodos com o mesmo nome, mas parâmetros diferentes?
Herança
Sobrecarga
Polimorfismo
Encapsulamento
No exemplo apresentado, qual é a diferença entre os métodos 'void mover (int dx, int dy)' e 'void mover (int raio, float ang)'?
A diferença está nos parâmetros: o primeiro recebe dois inteiros (dx, dy) e o segundo recebe um inteiro (raio) e um float (ang).
A diferença está no retorno: o primeiro retorna um valor e o segundo não retorna nada.
A diferença está no nome dos métodos, que são diferentes.
A diferença está na visibilidade dos métodos, um é público e o outro é privado.
Analise o seguinte trecho de código: void doIt(int ...v){ //instruções } void doIt(boolean ...v){ //instruções } É correto afirmar que este é um exemplo de sobrecarga de métodos?
Sim
Não
Com base no exemplo apresentado, o que significa a sobrecarga de construtores?
A) Definir diferentes formas de criar um objeto
B) Criar apenas um tipo de objeto
C) Utilizar apenas variáveis globais
D) Não utilizar construtores na classe
No exemplo mostrado, qual é a posição do objeto p1 após a execução do código?
(0,0)
(1,1)
(2,2)
(3,3)
No exemplo mostrado, qual é a posição do objeto p2 após a execução do código?
(1,2)
(2,1)
(0,0)
(2,2)
O que é o encadeamento de construtor em programação orientada a objetos?
Quando um construtor chama outro construtor usando o comando this().
Quando um método chama outro método.
Quando uma classe herda de outra classe.
Quando um objeto é destruído.
Complete a linha de código do construtor abaixo usando o comando correto: Ponto () { ________; } A resposta está presente no exemplo da imagem.
this(0,0)
super(0,0)
Ponto(0,0)
return(0,0)
DIFERENÇAS this e this()
A palavra reservada this é utilizada para informar que a variável manipulada é um atributo da classe, e não uma simples variável.
A palavra reservada this() é usada para acessar métodos estáticos da classe.
A palavra reservada this() serve para criar uma nova instância da classe.
A palavra reservada this é utilizada apenas em métodos estáticos.
DIFERENÇAS this e this() Preencha:
No exemplo anterior, os atributos x e y de Ponto recebem os valores passados pelas variáveis x e y.
No exemplo anterior, o método this() é usado para acessar métodos estáticos da classe.
No exemplo anterior, o this sempre se refere a métodos privados da classe.
No exemplo anterior, o this() serve para criar variáveis locais temporárias.
DIFERENÇAS this e this() Preencha:
O comando this() é utilizado para chamar construtores.
O comando this() é utilizado para acessar métodos estáticos.
O comando this() é utilizado para declarar variáveis locais.
O comando this() é utilizado para finalizar o programa.
De acordo com a explicação, quando é necessário usar 'this' e 'super' em Java?
Quando for necessário referenciar explicitamente a instância (this)
Quando for necessário referenciar a superclasse (super)
Quando não for necessário usar 'this' ou 'super'
Observe o código abaixo: class Numero { public int x = 10; } class OutroNumero extends Numero { public int x = 20; public int total() { return this.x + super.x; } } Qual será o valor retornado pelo método total()?
30
20
10
40
Verdadeiro ou falso: 'this()' e 'super()' são usados apenas em chamadas de construtores.
Verdadeiro
Falso
O que é anulação (overriding) em programação orientada a objetos?
Quando uma subclasse define um método com a mesma assinatura do método herdado da superclasse
Quando uma classe define um novo método sem relação com a superclasse
Quando um objeto é criado a partir de uma classe
Quando uma classe herda atributos de outra classe
Complete: A mensagem é enviada ao objeto e percorre _______ uma hierarquia de classe até que uma definição seja encontrada.
verticalmente
horizontalmente
diagonalmente
circularmente
No diagrama apresentado, o método é anulado por qual definição?
Pela definição inicial na superclasse
Pela definição na subclasse
Pela definição no objeto
Pela definição na hierarquia mais baixa
Observe o exemplo de código apresentado sobre anulação (overriding): void mover (int dx, int dy) { x += dx; y += dy; } void mover (int dx, int dy) { x += dx - dy; y += dy - dx; } Qual método pertence à SUPERCLASSE?
O primeiro método (x += dx; y += dy;) pertence à SUPERCLASSE.
O segundo método (x += dx - dy; y += dy - dx;) pertence à SUPERCLASSE.
No exemplo de anulação (overriding), qual é a principal diferença entre o método mover da SUPERCLASSE e o da SUBCLASSE?
O método da SUPERCLASSE apenas soma dx e dy às coordenadas, enquanto o da SUBCLASSE subtrai dy de dx e dx de dy.
O método da SUPERCLASSE multiplica dx e dy, enquanto o da SUBCLASSE divide dx por dy.
O método da SUPERCLASSE ignora dx e dy, enquanto o da SUBCLASSE utiliza apenas dx.
O método da SUPERCLASSE apenas imprime as coordenadas, enquanto o da SUBCLASSE altera as coordenadas.
No contexto de anulação (overriding), a SUBCLASSE pode redefinir o comportamento de um método da SUPERCLASSE.
Verdadeiro
Falso
De acordo com o diagrama apresentado, qual das seguintes opções representa um método que pertence apenas à subclasse 'Carro' e não à superclasse 'Veículo'?
getVelocidade()
abastece()
freia()
getPassageiros()
No contexto do diagrama, complete: A classe 'Carro' é uma _______ de 'Veículo'.
subclasse
instância
atributo
método
O que significa a afirmação: "Novos métodos são criados na subclasse" em relação ao diagrama?
Significa que a subclasse pode ter métodos que não existem na superclasse.
Significa que a subclasse não pode ter métodos próprios.
Significa que apenas a superclasse pode criar métodos novos.
Significa que métodos criados na subclasse são automaticamente removidos da superclasse.
Qual é o principal benefício do uso de composição em vez de herança na programação orientada a objetos?
Aumenta a dependência entre as classes
Reduz o acoplamento entre as classes
Permite acesso direto aos atributos privados
Impede o reuso de código
Em Java, qual palavra reservada é utilizada para impedir que uma classe seja herdada?
abstract
static
final
private
O que acontece se uma subclasse em Java tentar acessar um atributo privado da superclasse diretamente?
O atributo é herdado como público
O acesso é negado e ocorre erro de compilação
O atributo é acessado normalmente
O atributo é convertido em protegido
Qual é o principal benefício do uso de composição em vez de herança na programação orientada a objetos?
Elimina a necessidade de métodos
Permite múltiplas heranças
Aumenta a complexidade do código
Reduz o acoplamento entre as classes
Em Java, qual palavra-chave é utilizada para acessar o construtor da superclasse dentro de uma subclasse?
super
base
extends
parent
Complete: O conceito de polimorfismo permite que _______ diferentes sejam tratados de forma uniforme através de uma interface comum.
métodos estáticos
atributos privados
variáveis
objetos
