Baixe o app para aproveitar ainda mais
Prévia do material em texto
Java Jse: Programação Básica Avaliação Dissertativa: Faça um programa Java simples para uma biblioteca, que deverá armazenar um conjunto de objetos da classe Livro. A classe livro deve conter os atributos título, autor, ano de publicação e número de páginas. Crie um método obterFichaCatalografica, que traz uma String com estes dados. No classe Principal do programa, armazene os objetos da classe livro em um ArrayList. Ao final, exiba ao usuário a ficha catalográfica de todos os livros cadastrados. Classe Principal package bibliotecas; //import bibliotecas.Livro; import java.util.List; import javax.swing.JOptionPane; import java.util.ArrayList; public class Principal { public static void main(String[] args) { List<Livro> livros = new ArrayList<>(); String titulo, autor, anoPublicacao, numeroDePaginas, opcao = null; do { titulo = JOptionPane.showInputDialog(null, "Informe o Título do livro: "); autor = JOptionPane.showInputDialog(null, "Informe o Auto do livro: "); anoPublicacao = JOptionPane.showInputDialog(null, "Informe o Ano de Publicação: "); numeroDePaginas = JOptionPane.showInputDialog(null, "Informe o Número de Páginas: "); Livro livro = new Livro(titulo, autor, anoPublicacao, numeroDePaginas); livros.add(livro); opcao = JOptionPane.showInputDialog(null, "Digite N para catalogar um novo LIVRO" + " ou qualquer outra letra para terminar."); } while (opcao.toUpperCase().equals("N")); for (Livro umLivro : livros) { JOptionPane.showInputDialog(null, umLivro); } } } Classe Livro package bibliotecas; public class Livro { private String titulo; private String autor; private String anoPublicacao; private String numeroDePaginas; public Livro( String titulo, String autor, String anoPublicacao, String numeroDePaginas) { this.titulo = titulo; this.autor = autor; this.anoPublicacao = anoPublicacao; this.numeroDePaginas = numeroDePaginas; } public String getTitulo() { return titulo; } public void setTitulo(String titulo) { this.titulo = titulo; } public String getAutor() { return autor; } public void setautor(String autor) { this.autor = autor; } public String getAnoPublicacao() { return anoPublicacao; } public void setAnoPublicacao(String anoPublicacao) { this.anoPublicacao = anoPublicacao; } public String getNumeroDePaginas() { return numeroDePaginas; } public void setNumeroDePaginas(String numeroDePaginas) { this.numeroDePaginas = numeroDePaginas; } public String toString() { return "TÍTULO: " + titulo + "\n" + "AUTOR: " + autor + "\n" + "ANO DA PUBLICAÇÃO: " + anoPublicacao + "\n" + "NÚMERO DE PÁGINAS: " + numeroDePaginas + "\n\n\n"; } } TESTE I: 1- Escolha a alternativa com o trecho de código correto para exibir ao usuário seis números aleatórios entre 1 e 60 (para ele usar, por exemplo, em uma aposta da MegaSena), como no exemplo da figura (sem valores repetidos). A Errada B Errada C Certa D Errada 2- Escolha a alternativa com o trecho de código correto para exibir ao usuário seis números aleatórios entre 1 e 60 (para ele usar, por exemplo, em uma aposta da MegaSena), como no exemplo da figura (sem valores repetidos). Como declaramos métodos construtores em todas as classes, não será possível instanciar objetos a partir delas usando o “construtor default” (aquele que não recebe valores como parâmetro quando é invocado usando o comando new). Errada Todo objeto instanciado, a partir de qualquer uma das três classes, possuirá nome e idade definidos. Porém , somente um AlunoRegular possuirá algum valor no campo orientador, obtido por meio do seu construtor. Para os demais, orientador ficará sempre vazio (NULL). Certa A classe AlunoRegular recebe as características (métodos e atributos) existentes em sua superclasse Aluno). Porém, como os campos nome e idade estão definidos em Aluno como private, não serão acessíveis em AlunoRegular. Errada O comando super é utilizado para acesso aos membros existentes na superclasse da classe onde é utilizado. Ele é principalmente usado quando, na reimplementação de um método, queremos também usar a versão original, herdade da superclasse. 3- A palavra-chave da linguagem Java usada para estabelecer uma relação de herança entre duas classes é: inherits. Errada extends. Certa implements. Errada complements. Errada 4- Para permitir a portabilidade de um aplicativo Java, o programa compilado não é convertido diretamente em código binário, que ficaria “preso” a uma determinada arquitetura. Ao invés disso, o compilador javac transforma o código fonte Java em um __I__, denominado __II__ que poderá, posteriormente, ser convertido pela JVM (Java Virtual Machine) no código binário específico da plataforma em que o programa será executado. As lacunas I e II são corretamente preenchidas por: Respostas Pseudo-código - ASCII. Errada Código objeto - assembly. Errada Código intermediário - bytecode. Certa Código interpretado – Common Language. Errada 5- Em Java, se precisamos realizar uma grande quantidade de concatenações em uma mesma string, devemos usar: O operador de concatenação “+”. Errada Um objeto da classe StringBuilder. Certa Um objeto da classe String. Errada O operador de junção de String, o ponto. Errada 6- Escolha a alternativa correta em relação à utilização da palavra chave this dentro da definição de uma classe Java: Sinalizar que “esta classe” (por isso o uso de this) possuirá métodos privados que somente serão acessados usando getters e setters. Errada Definir que o método atual (“this”) é um método estático, que é invocado diretamente na classe, e não nos objetos instanciados a partir dela. Errada Documenta o uso de polimorfismo em uma classe, quando reescrevemos um método herdado da superclasse. Errada Impedir a ambiguidade na atribuição de um valor passado como parâmetro de um método setter a uma variável interna de uma classe. Certa 7- Escolha a alternativa contendo a linha de código Java utilizada para exibição da seguinte tela: JOptionPane.showInputDialog(`Qual é o seu nome?`); Errada JOptionPane.showMessageDialog(null, `Qual é o seu nome?`); Errada String nome = JOptionPane.showInputDialog(null, `Qual é o seu nome?`); Certa String nome = JOptionPane.showMessageDialog(`Qual é o seu nome?`); Errada 8- Assinale a alternativa que contenha uma afirmação verdadeira: Um getter é um método público existente dentro de uma classe que é usado para uma outra classe obter um valor interno da primeira. Certa Para permitir a modificação de um valor de um campo oculto, usamos os métodos getters (que poderíamos traduzir como `definidores` ou `modificadores`). Errada Seguindo a convenção mais usada, o método setter para um campo privado chamado idade deve se chamar setidade. Errada De acordo com a forma padrão de se declarar um método getter, para um campo privado denominado idade do tipo int, deveríamos iniciá-lo com “public void getidade(int idade) {”. Errada 9- Escolha a alternativa com o trecho de código correto (e sem ambiguidade) para o setter e o getter padrões de um campo privado chamado endereco, do tipo String, existente em uma classe qualquer. A Errada B Certa C Errada D Errada 10- Dentro do Eclipse, existem diversas subdivisões da tela que auxiliam o programador a gerenciar seu projeto. Qual o nome da área em que podem ser visualizados, de forma hierárquica, os métodos e atributos da classe aberta no editor de código? Package Explorer. Errada Workspace. Errada Console. Errada Outline. Certa TESTE II: 1- Para ativar manualmente o recurso de auto completar do Eclipse, usamos a combinaçãode teclas: CTRL + ESPAÇO. Certa CTRL + A. Errada ALT + ESPAÇO. Errada ALT + A. Errada 2- Toda classe criada em Java sem uma superclasse, herda automaticamente a chamada `classe raiz` da linguagem, denominada: Object. Certa Class. Errada SuperClass. Errada ObjectClass. Errada 3- Considere o seguinte trecho de código em Java: (Ver Imagem) A finalidade do uso dos nomes das classes PessoaFisica e PessoaJuridica, entre parênteses, antes do objeto cliente como em (PessoaJuridica)cliente e (PessoaFisica)cliente é: Fazer conversão de tipos: neste caso, PessoaFisica é convertido para PessoaJuridica e vice-versa. Errada Converter o valor digitado pelo usuário na janela exibida pelo JOptionPane em algo que possa ser armazenado nos campos de PessoaFisica ou PessoaJuridica. Errada Possibilitar que os setters existentes nos campos de PessoaFisica e PessoaJuridica possam receber como parâmetro o retorno de JOptionPane.showInputDialog. Errada Realizar um casting, que consiste em fazer com que o Java interprete um objeto declarado genericamente de forma mais específica. Certa 4- Mesmo sem conhecer o conteúdo das classes Funcionario, Horista e Vendedor, assinale a alternativa sobre o que podemos concluir das seguintes linhas: Não existe construtor default (sem parâmetros) para Funcionario, Horista e Vendedor. Errada Horista e Vendedor também são Funcionario. Certa Os construtores usados indicam que não existem getters e setters para os campos passados como parâmetro. Errada Ocorrerá dois erros neste trecho, pois horista deve ser declarado como Horista, assim como vendedor deve ser declarado como do tipo Vendedor. Errada 5- No IDE Eclipse, o botão (Ver Imagem) existente em sua barra de ferramentas é usado para: Criar um objeto. Errada Criar um novo projeto. Errada Criar um novo método dentro de uma classe. Errada Criar uma classe. Certa 6- Em programação orientada a objetos, qual das alternativas abaixo representa a melhor definição de polimorfismo? Respostas Está relacionado com as várias maneiras que um mesmo método pode ser executado em diversas classes. Certa São as diferentes formas de se instanciar uma classe, ou seja, seus diferentes métodos construtores. Errada O polimorfismo é um conceito de programação orientado a objetos relativo às várias maneiras de ocultar o mecanismo interno de funcionamento de uma classe. Errada Temos um caso de polimorfismo sempre quando uma classe herda a outra. Dessa maneira, sempre haverá mais de uma forma de utilizá-la. 7- Em uma linha de código da classe abaixo existe um problema. Qual? O campo nome deveria ser private, e não protected. Errada A atribuição existente dentro do setter está ambígua. Certa A sintaxe do comando setter não segue as convenções da linguagem Java. Errada A ausência de um getter: se implementamos o setter, é obrigatório possuir um getter – caso contrário, o programa não compilará. 8- No exemplo seguinte, está evidente a utilização de qual conceito de programação orientada a objetos? Herança. Errada Encapsulamento. Errada Abstração. Errada Sobrecarga de métodos. Certa 9- Em programação Java, escolha a opção que melhor representa a definição de casting. Consiste na possibilidade de, dado um determinado objeto pertencente a uma hierarquia de classes, fazê-lo ser tratado pelo interpretador Java como pertencente a uma outra classe dentro desse hierarquia. Certa É a possibilidade existente em Java de inicializar um objeto com vários construtores, cada um recebendo uma certa quantidade de parâmetros. Errada Casting é o termo utilizado para várias implementações de um mesmo método, ou seja, é um exemplo de uso prático de sobrecarga. Errada O conceito de casting é usado quando queremos fazer a conversão entre um objeto de uma classe para outra classe não relacionada. Por meio do casting, podemos converter um valor double para uma String, por exemplo. Errada 10-Considere que temos uma classe chamada Turma. Dentro dela, temos um campo chamado alunos, que é um ArrayList de objetos Aluno. Também está definido que uma turma é composta por um ou mais alunos; ou seja, não existe turma sem aluno. O que temos aqui é um caso de: Abstração. Errada Associação. Errada Composição. Certa Agregação. Errada
Compartilhar