Buscar

PROGRAMAÇÃO I - Atividade 03

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

12/14/2020 Unicesumar - Ensino a Distância
1/10
ATIVIDADE 03 - ADS - PROGRAMAÇÃO I - 2020
Período:27/07/2020 08:00 a 14/08/2020 23:59 (Horário de Brasília)
Status:ENCERRADO
Nota máxima:0,50
Gabarito:Gabarito será liberado no dia 15/08/2020 00:00 (Horário de Brasília)
Nota obtida:0,40
1ª QUESTÃO
Variáveis estáticas não pertencem a um objeto, mas sim a uma classe. Uma variável estática é compartilhada
entre todas as instâncias da classe. Assim, todas as instâncias vão acessar a mesma variável. Um exemplo de
utilização de variável estática é para contar o número de vezes que uma classe é instanciada.
Observe o código abaixo e analise as afirmações:
 1 public class ObjetoCriador {
 2 private static int contador = 0;
 3 
 4 public ObjetoCriador(int n) {
 5 contador++;
 6 for (int i = 0; i <n; i++) {
 7 new ObjetoCriador(n-1);
 8 }
 9 }
 10 public static void main(String[] args) {
 11 new ObjetoCriador(3);
 12 System.out.println(contador);
 13 }
 14 }
I – Será impresso na tela o número 3.
II – O programa entrará em um loop infinito, pois sempre que um ObjetoCriador é criado, novos objetos são
criados. Assim o programa dá um erro.
III – O método “main” pode acessar a variável “contador”, mesmo ela sendo privada.
IV – Já que os objetos criados não são atribuídos a uma variável, não terá como acessá-los depois.
É correto o que se afirma em:
ALTERNATIVAS
I e II, apenas.
II e III, apenas.
III e IV, apenas.
I, II e III, apenas.
II, III e IV, apenas.
2ª QUESTÃO
O modificador “abstract” torna uma classe ou um método abstrato. Não é possível criar objetos de classes
abstratas. Uma classe abstrata apenas serve de superclasse para outras classes. Todo método abstrato deve
ser sobrescrito por uma subclasse, a menos que a subclasse também seja abstrata. Neste caso, outra
subclasse que for concreta (não abstrata) é quem deverá sobrescrever os métodos abstratos.
Observe o código abaixo.
12/14/2020 Unicesumar - Ensino a Distância
2/10
Poligono.java:
 1 public abstract class Poligono {
 2 protected int quantidadeDeLados;
 3 
 4 public Poligono(int quantidadeDeLados) {
 5 if (quantidadeDeLados < 3) {
 6 System.out.println("Quantidade de lados inválido");
 7 }
 8 this.quantidadeDeLados = quantidadeDeLados;
 9 }
 10 
 11 public int getQuantidadeDeLados() {
 12 return quantidadeDeLados;
 13 }
 14 
 15 public abstract void imprimirQuantidadeLados() {
 16 System. out.println("Quantidade de lados: " + quantidadeDeLados);
 17 }
 18 
 19 public abstract double calcularArea();
 20 }
Retangulo.java:
 1 public class Retangulo extends Poligono {
 2 private int base;
 3 private int altura;
 4 
 5 public Retangulo(int base, int altura) {
 6 super(4);
 7 this.base = base;
 8 this.altura = altura;
 9 }
 10 public double calcularArea() {
 11 return base * altura;
 12 }
 13 }
Triangulo.java
 1 public class Triangulo extends Poligono {
 2 private int base;
 3 private int altura;
 4 
 5 public Triangulo(int base, int altura) {
 6 super(3);
 7 this.base = base;
 8 this.altura = altura;
 9 }
 10 public double calcularArea() {
 11 return base * altura / 2;
 12 }
 13 }
Considerando o texto e o código acima, avalie as afirmações abaixo.
I – As classes Triangulo e Retangulo apresentam erro, pois elas não sobrescrevem o método
"imprimirQuantidadeDeLados".
II – O método "imprimirQuantidadeLados" da classe Poligono não poderia ter um corpo, pois ele é abstrato.
12/14/2020 Unicesumar - Ensino a Distância
3/10
III – O atributo "quantidadeDeLados" pode ser acessado pelas classes Triângulo e Retângulo, pois o
modificador “protected” permite o acesso pelas subclasses.
IV – O atributo "quantidadeDeLados" poderia ter o modificador "static", pois é um atributo que é inicializado
no construtor e seu valor não é alterado depois.
É correto o que se afirma em:
ALTERNATIVAS
I e II, apenas.
II e III, apenas.
III e IV, apenas.
I, II e III, apenas.
II, III e IV, apenas.
3ª QUESTÃO
"A programação sem goto não só é possível, como desejável. Todo programa pode ser desenvolvido
usando-se para interromper o fluxo sequencial da execução apenas as estruturas convencionais de decisão e
repetição: esse é o espírito da programação estruturada, que torna os programas mais organizados e
compreensíveis."
 
Pinheiro, Francisco A. C. Elementos de Programação em C. Porto Alegre: Bookman, 2012. pg. 186.
As estruturas de repetição são muito utilizadas em programação e também possuem formas de interromper
ou "escapar" das iterações. Veja o código abaixo.
public class Desvios {
 public static void main(String args[]) {
 for (int i = 0; i < 12; i++) {
 if (i % 3 == 0) continue;
 if (i % 5 == 0) break;
 if (i % 7 == 0) continue;
 System.out.print(i + " ");
 }
 }
}
Considerando o texto e o código acima, assinale a alternativa com a saída do programa na tela.
ALTERNATIVAS
1.
1 2.
1 2 4.
1 2 4 6.
1 2 4 6 8 11.
4ª QUESTÃO
12/14/2020 Unicesumar - Ensino a Distância
4/10
Fonte:Vida de Programador
 
Um programa em Java começa a ser executado a partir do método main. Considerando o texto acima, avalie
as afirmações abaixo.
 
I – Apenas a classe principal de um programa em Java precisa ter o método main.
 II – Apesar da orientação a objetos, dentro dos métodos o programa segue um fluxo de execução como na
programação estruturada.
 III – Em Java, cada classe fica em um arquivo com o nome da classe e a extensão .java. As demais classes
podem ser chamadas a partir da classe principal, por exemplo.
 IV – As classes utilizadas por um mesmo programa devem estender a classe principal do programa.
 
É correto o que se afirma em:
ALTERNATIVAS
I e II, apenas.
II e III, apenas.
III e IV, apenas.
I, II e III, apenas.
II, III e IV, apenas.
5ª QUESTÃO
É correto afirmar que a Herança é um dos recursos mais utilizados em orientação a objeto. O fato de um
objeto poder herdar as características de outros objetos facilita muito a vida do programador, reduzindo a
quantidade de código escrito e reaproveitando inúmeras funcionalidades já criadas.
Considerando o texto acima, analise o código abaixo.
public class Anfibio extends Maritimo, Terrestre {
}
Considerando o código acima, assinale a alternativa correta.
ALTERNATIVAS
12/14/2020 Unicesumar - Ensino a Distância
5/10
O termo "extends" é utilizado para interfaces e não para herança.
Ocorrerá um erro ao tentar executar o código, pois o Java não suporta Herança Múltipla.
Ao rodar o código, as classes "Maritimo" e "Terrestre" serão criadas, porém a classe "Anfibio" não.
Pode-se concluir que a classe "Anfibio" herda da classe "Maritimo" e também da classe "Terrestre".
Ocorrerá um erro, ao tentar executar o código, pois antes da palavra "Terrestre", também deveria ter a palavra
"extends".
6ª QUESTÃO
Toda classe criada em Java, que não herda de nenhuma outra, automaticamente herda de Object. A classe
Object vem junto com a biblioteca padrão do Java. Como ela possui alguns métodos, toda classe herdará
seus métodos. Dois métodos que pertencem à classe Object são "equals" e "toString". 
Observe o código abaixo.
 1 public class Cachorro {
 2 private String nome;
 3 
 4 public Cachorro(String nome) {
 5 this.nome = nome;
 6 }
 7 
 8 public static void main(String[] args) {
 9 Cachorro meuCachorro = new Cachorro("bilu");
 10 System.out.println(meuCachorro);
 11 } 
 12 }
Considerando o texto e o código acima, assinale a alternativa correta.
ALTERNATIVAS
Será impresso na tela "bilu", pois é o nome do cachorro.
Será impresso "meuCachorro", pois é o nome da variável.
O programa não irá executar, pois não é permitido imprimir objetos.
Será impresso um identificadordo objeto na memória, mas não será impresso "bilu".
Não será impresso "bilu", pois o atributo nome é privado. Para imprimir "bilu" deve existir um método getNome.
7ª QUESTÃO
12/14/2020 Unicesumar - Ensino a Distância
6/10
"Javabeans são convenções escolhidas pela sociedade de desenvolvedores para estabelecer um padrão
entre as diferentes classes que são criadas ao redor do mundo, e assim, desta forma, facilitar o uso de
objetos criados a partir desta classe. Apesar de o programa funcionar sem adotar estas convenções, o ideal é
segui-las para que sua classe possa ser facilmente reutilizável e para que você, acostumado com as
convenções, possa facilmente utilizar outras classes."
 
JUNIOR, Edson A. O.; NOEL, Andre A. Programação I. Maringá-Pr.: UniCesumar, 2018. (adaptado)
Considerando o texto acima, avalie as afirmações abaixo.
I – Segundo as convenções estabelecidas como Javabeans, todos os atributos, getters e setters devem ser
definidos como privados, enquanto demais métodos devem ser públicos.
II – Construtores devem ser criados com parâmetros de entrada, deixando de fora construtores vazios.
III – Os construtores da classe devem ser direcionados para um único construtor. 
IV – Ao colocar um atributo como privado, é necessário que haja um método para alterar o valor do atributo
e um método para recuperar o valor do atributo.
É correto o que se afirma em:
ALTERNATIVAS
I e II, apenas.
II e III, apenas.
III e IV, apenas.
I, II e III, apenas.
II, III e IV, apenas.
8ª QUESTÃO
"A área de desenvolvimento de software está se tornando cada vez mais complexa. Para lidar com essa
realidade, os desenvolvedores contam com linguagens de programação baseadas no paradigma de
orientação a objetos, cujos pilares são abstração, encapsulamento, herança e polimorfismo."
ENADE 2017. Adaptado.
Analise o código abaixo.
public abstract class Impressora {
 String nome;
 Impressora() {}
 Impressora(String n) {
 this.nome = n;
 }
 public void imprimir() {
 System.out.println("Eu sou uma impressora!");
 }
}
class Matricial extends Impressora {
 public Matricial () {}
 public void imprimir() {
 System.out.println("Imprimindo na Matricial");
 }
12/14/2020 Unicesumar - Ensino a Distância
7/10
}
public class JatoDeTinta extends Impressora {
 public JatoDeTinta() {}
 public void imprimir() {
 System.out.println("Imprimindo na Jato de tinta");
 }
}
public class Laser extends Impressora {
 public Laser() {}
 public void imprimir() {
 System.out.println("Imprimindo na Laser");
 }
}
public class Main {
 public static void main(String args[]) {
 Impressora imp[] = new Impressora[3];
 imp[0] = new Laser();
 imp[1] = new Matricial();
 imp[2] = new JatoDeTinta();
 for(int i = imp.length - 1; i >= 0; i--) {
 imp[i].imprimir();
 }
 }
}
Considerando o texto e o código acima, avalie as afirmações.
I – A execução do código, via classe Main, resulta na saída "Imprimindo na Laser", seguida de um erro, dado
que a classe Matricial não é pública.
II – O código faz uso da técnica denominada polimorfismo.
III – A anotação @Override deveria ser utilizada neste código, visando boas práticas, ainda que não seja
obrigatória.
IV – Um objeto instanciado a partir da classe Impressora terá como saída "Eu sou uma impressora!" ao ser
chamado seu método imprimir().
É correto o que se afirma em:
ALTERNATIVAS
I e II, apenas.
II e III, apenas.
III e IV, apenas.
I, II e III, apenas.
II, III e IV, apenas.
9ª QUESTÃO
12/14/2020 Unicesumar - Ensino a Distância
8/10
Uma aplicação java deve ter pelo menos uma classe que contenha o método main(), o qual é responsável
por iniciar toda a execução do programa. Todo método deve possuir uma assinatura que compreende um
conjunto de informações que definem o método. Sobre a assinatura do método main(), analise as
informações abaixo:
I. Todo método main() deve ser público (public).
II. Todo método main() deve ser estático (static).
III. Todo método main() deve receber um array de objetos String como parâmetro.
IV. Todo método main() recebe a palavra reservada void, pois retorna valores desse tipo ao final de sua
execução.
É correto o que afirma em:
ALTERNATIVAS
I, apenas.
I e III, apenas.
I, II e III, apenas.
II, III e IV, apenas.
I, II, III e IV.
10ª QUESTÃO
12/14/2020 Unicesumar - Ensino a Distância
9/10
Em desenvolvimento de softwares orientados a objetos, não é aconselhável deixarmos os atributos das
classes desprotegidos, ou seja, com acesso público aos objetos externos, uma vez que alguma informação
maliciosa pode ser passada diretamente para o atributo do objeto. Por isso, cria-se métodos conhecidos
como "getters" e "setters", para garantir que toda informação passada a um atributo passe antes por esses
métodos, que conterão o código necessário para fazer a filtragem das informações que serão passadas aos
atributos em questão, que, por sua vez, passarão a ser privados. A este processo chamamos de
"Encapsulamento".
Analise os trechos de código abaixo.
 1 package unicesumar.ead.java.calculadora;
 2 
 3 public abstract class Botao {
 4 private boolean clicado;
 5 
 6 protected boolean isClicado() {
 7 return clicado;
 8 }
 9 
 10 protected void setClicado(boolean clicado) {
 11 if (!this.isClicado()){
 12 this.clicado = clicado;
 13 }
 14 }
 15 
 16 protected abstract void resetBotao();
 17 }
--------------------------------------------------------------------------
 1 package unicesumar.ead.java.calculadora;
 2 
 3 public class BotaoNumerico extends Botao {
 4 private int numero;
 5 
 6 public BotaoNumerico(int numero) {
 7 this.numero = numero;
 8 }
 9 
 10 public int getNumero() {
 11 return numero;
 12 }
 13 
 14 public void setNumero(int numero) {
 15 this.numero = numero;
 16 }
 17 
 18 @Override
 19 protected void resetBotao() {
 20 this.setNumero (0);
 21 this.setClicado (false);
 22 }
 23 }
Considerando o texto e os códigos acima, assinale a alternativa correta.
ALTERNATIVAS
12/14/2020 Unicesumar - Ensino a Distância
10/10
O atributo "clicado" não está encapsulado.
O código não mostra o processo de Encapulamento.
Ao ser instanciado um objeto da classe "Botao", podemos acessar o atributo "clicado" através do método "isClicado".
Por não possuir o atributo "clicado", a classe "BotãoNumerico" não poderá prover acesso ao mesmo, ao ser
instanciada.
Ao ser instanciado um objeto da classe "BotaoNumerico", podemos acessar o atributo "clicado" através do método
"isClicado".

Outros materiais