Escolar Documentos
Profissional Documentos
Cultura Documentos
Assinale verdadeiro ou falso nas afirmativas abaixo (cada resposta errada diminui 0,2 da
pontuação máxima da questão que pode ser obtida na questão):
(V) No diagrama a), uma variável do tipo Pessoa pode armazenar tanto
instâncias de objetos do tipo Funcionário quanto Cliente.
(V) Considerando o diagrama b), pode-se dizer que todo objeto Funcionário
é um Cliente e, também, uma Pessoa.
(F) Considerando o diagrama b) e assumindo que Pessoa é uma classe
abstrata, podemos dizer que ao instanciar um objeto do tipo Cliente, ele
também pode ser visto como uma Pessoa ou como um Funcionário.
(V) No diagrama c), uma instancia de um objeto Funcionário pode ser vista
tanto como Pessoa quanto Cliente.
(F) Assumindo uma implementação Java, ao considerar o diagrama c), as
classes Pessoa e Cliente são necessariamente abstratas.
(V) No diagrama a), se Pessoa é uma classe abstrata, pode-se instanciar
apenas objetos das classes Funcionário e Cliente.
(F) Em qualquer um dos diagramas, uma instância de um objeto Cliente
também pode ser visto como uma Pessoa.
(V) Em qualquer um dos diagramas, uma instância de um objeto
Funcionário também pode ser visto como Pessoa.
(V) Considerando o diagrama b), uma variável p do tipo Pessoa pode
receber uma instância de um objeto Funcionário.
(V) Assumindo uma implementação Java, ao considerar o diagrama c), se
Pessoa é uma classe abstrata, necessariamente Cliente deve ser uma
interface e vice-versa.
8. (2018/2) A linguagem Java dispõe de um suporte nativo a vetores, que exige a
definição de seu tamanho no momento da instanciação. Depois de instanciado, o
tamanho do vetor não pode ser modificado. Escreva uma classe chamada Vetor
cujos objetos simulem vetores de tamanho variável. A classe define os seguintes
métodos:
Escreva uma classe que representa todas as despesas de um indivíduo. Ela mantém um
vetor (ou estrutura de lista) onde podem ser registradas tanto despesas de um dia
(DespesaDia), quanto despesas de um mês (DepesaMes). A classe implementa os seguintes
métodos:
Neste código
11. (2019/1) Dada uma classe Equipamento na qual cada objeto representa um conjunto de N
equipamentos de uma empresa com seus respectivos valores, cujo diagrama UML está
representado a seguir:
construtor recebe como parâmetro o número de equipamentos e cria um
vetor de valores do respectivo tamanho.
getNumeroEquipamentos retorna o número de equipamentos.
getValor recebe como parâmetro o número do equipamento (começando de
zero) e retorna seu valor.
setValor recebe como parâmetro o número do equipamento e seu valor e
o registra.
Cada equipamento possui um código numérico sequencial, começando de zero, que corresponde
a sua posição no vetor.
Todo equipamento só é corrigido anualmente no mês em que foi comprado, por este motivo a
classe deve acrescentar para cada equipamento um registro do seu mês de compra. Além disto, deve
possuir os métodos:
Note que o atributo “valor” da classe Equipamento é privado, portanto, só poderá ser acessado
indiretamente, até mesmo pela classe herdeira.
public class EquipamentoCorrigido extends Equipamento {
private int[] mesDeCompra;
private int mesCorrente;
interface B {
String converte(int x);
}
a) no corpo da classe C, o método converte deverá ser definido apenas uma vez e a assinatura
será uma escolha do programador, podendo ser a prevista na declaração da interface A ou a
prevista na declaração da interface B;
b) no corpo da classe C, o método converte deverá ser definido apenas uma vez, com a
assinatura prevista na declaração da interface A, mencionada em primeiro lugar na cláusula
implements da declaração da classe C;
c) no corpo da classe C, o método converte deverá ser definido apenas uma vez, com a
assinatura prevista na declaração da interface B, mencionada em último lugar na cláusula
implements da declaração da classe C;
d) no corpo da classe C, o método converte deverá ser definido pelo menos duas vezes, sendo
que uma definição corresponderá à assinatura prevista na declaração da interface A e a outra
definição corresponderá à assinatura prevista na declaração da interface B; <<< Alternativa
correta
e) haverá um erro em tempo de compilação, assinalando ao programador a impossibilidade de a
classe C implementar simultaneamente as duas interfaces.
13. (2019/2) Crie uma hierarquia de classes para uma loja que venda livros, CDs e DVDs.
Sobrescreva o método toString() para que imprima:
● Para livros: nome, preço e autor;
● Para CDs: nome, preço e número de faixas;
● Para DVDs: nome, preço e duração.
Todos os dados dos itens vendidos devem ser inicializados a partir do método construtor de
cada classe. Evite ao máximo duplicação de código utilizando! Em seguida, crie uma classe Loja
com o método main() que adiciona 6 produtos diferentes (a sua escolha) a um vetor e, por fim,
imprima o conteúdo do vetor. Lembre que para que isso seja possível, é necessário utilizar
polimorfismo, a partir de uma classe base na hierarquia proposta. Esta classe deve ser abstrata!
@Override
public String toString() {
return “Nome: ” + nome + “ - Valor: ” + valor;
}
}
public class Livro extends Item {
private String autor;
@Override
public String toString() {
return super.toString() + “\nAutor: ” + autor;
}
}
@Override
public String toString() {
return super.toString() + “\nNúmero de Faixas: ”
+
numeroDeFaixas;
}
}
@Override
public String toString() {
return super.toString() + “\nDuração: ” + duracao;
}
}
loja.imprimir();
}
}
// Compara os códigos
return this.codigo.equals(item.codigo);
}
}
@Override
public String toString() {
return super.toString() + “\nAutor: ” + autor;
}
}
@Override
public String toString() {
return super.toString() + “\nDuração: ” + duracao;
}
}
loja.imprimir();
}
}
Representa um animal
public interface Animal {
public String getNomeEspecie();
public String getNomeAnimal();
}
getNomeEspecie Retorna o nome da espécie do animal.
getNomeAnimal Retorna o nome do animal.
O método deve contabilizar o número de animais disponíveis em cada uma das espécies
e retornar os resultados como um mapa (Map) onde a chave deve ser uma String que
corresponde ao nome da espécie, associada a um valor inteiro que corresponde ao número de
animais daquela espécie. Devem ser consideradas apenas as espécies cujos animais estão
presentes no vetor A.
/*
Observação: ainda não vimos o uso de estruturas de dados e
coleções disponíveis em Java, como um mapa (Map), mas
apresento a solução para que vocês observem a utilização das
interfaces. Em outro momento, discutiremos este tipo de
estrutura. (Certamente, isso NÂO será cobrado na prova!)
*/
public void contabilizaAnimaisPorEspecie(Animal[] A,
Ferramentas F)
{
int i;
Animal[] animais;
Map<String, int> animaisPorEspecie = new TreeMap<>();
17. (2019/1) Um jardim zoológico definiu a seguinte interface que estende a interface
Animal: