Baixe o app para aproveitar ainda mais
Prévia do material em texto
Java é uma linguagem multiplataforma, isto é, pode ser executada em vários sistemas operacionais ou dispositivos. Tal característica é em razão, principalmente, pela presença da Máquina Virtual Java. Explique como esta Máquina Virtual possibilita a execução dos programas Java em várias plataformas. Resposta: A máquina virtual java é um componente da plataforma java que funciona entre o sistema operacional e o programa java. Existe uma implementação de máquina virtual java para cada sistema operacional e/ou dispositivo móvel. Na verdade, é a máquina virtual java que interpreta o programa java. Objeto é uma instância de uma classe. Para instanciar uma classe em Java, deve-se utilizar um método especial chamado construtor. Explique quais características este método especial deve ter e implemente um método construtor para uma classe Carro com os atributos marca e modelo. Resposta: O método construtor deve ter o mesmo nome da classe e não pode possuir retorno. public Carro(String marca, String modelo) { this.marca=marca; this.modelo=modelo; } Erros de execução podem ocorrer em códigos fontes implementados. As boas práticas de desenvolvimento da programação orientada a objetos exigem que o desenvolvedor se preocupe com os possíveis erros de execução da sua aplicação. Na linguagem de programação Java para tratar erros, deve-se utilizar paradigma try / catch. Neste contexto, implemente uma aplicação Java que trate erros de divisão por zero. Resposta: public class ErroDivisaoZero{ public static void main(String[] args){ try{ int x = 0; int y =2; int resultado = y/x; } catch (ArithmeticException e){ System.out.println("erro de divisão por zero" + e.getMessage()); } } } Identifique no código abaixo um exemplo de Objeto (Instância), Método e Classe. Explique cada conceito deste. public class JavaApp { public static void main(String[] args) { Java java1 = new Java("1.5", "jdk"); System.out.println(java1.getNome()); } } Resposta: Objeto: java1 Classe: Java Método: getNome() Objeto é uma instância de classe. Classe é um modelo abstrato de dados. Método é uma operação ou ação ofertada pela classe. A metodologia orientada a objetos permite a modelagem de sistemas complexos. Conceitos relacionados com esta metodologia como classe, objetos, métodos, sobrecarga e polimorfismo possibilitam a construção de softwares de qualquer domínio. Neste contexto, apresente duas vantagens da metodologia orientada a objetos em relação às outras metodologias de desenvolvimento de software. Resposta: Multiplataforma, herança, Manutenção do projeto de software fica menos custosa, permite o reuso de código. Uma API (Application Programming Interface) é um conjunto de classes e componentes que facilitam o desenvolvimento de diversas aplicações em Java. Cite dois exemplos de classes da API Java e as suas funções. Resposta: ArrayList - classe que implementa uma collection que permite o armazenamento de um conjunto de objetos; JButton - classe que representa em SWING um botão. Implemente em Java uma classe Animal com os atributos nome, apelido e idade com seus métodos getters e setters e uma classe Aplicação que instancie dois objetos do tipo Animal. Resposta: public class Animal { private String nome; private String apelido; private int idade; public Animal(String nome, String apelido, int idade){ this.nome=nome; this.apelido=apelido; this.idade=idade; } public String getNome(){ return nome; } public String getApelido(){ return apelido; } public int getIdade(){ return idade; } public void setNome(String nome){ this.nome=nome; } public void setApelido(String apelido){ this.apelido=apelido; } public void setApelido(int idade){ this.idade=idade; } } public class AnimalApp{ public static void main(String[] args){ Animal animal1 = new Animal("gato siames","titi",10); Animal animal2 = new Animal("cachorro pastor","toto",20); } } A Linguagem de programação Java utiliza a metodologia orientada a objetos e permite a implementação de classe e objetos. Utilizando esta linguagem, implemente uma classe Computador com os atributos código, marca e modelo e uma classe com método main que instancia dois objetos com os seguintes dados: i) 2, "hp", "NXY000" e ii) 6, "acer", "YXU200". Resposta : public class Computador{ private int codigo; private String marca; private String modelo; public Computador(int codigo, String marca, String modelo){ this.codigo=codigo; this.marca = marca; this.modelo=modelo; } public class Principal{ public static void main(String[] args){ Computador comp1 = new Computador(2,"hp","NXY000"); Computador comp2 = new Computador(6,"acer","YXU200"); } } O programa abaixo pode gerar uma exceção? Se a resposta for positiva, como implementar um tratamento de exceção para que seja exibida uma mensagem em caso de erro? public class Exemplo1App extends Object { public static void main(String args[]){ int a[] = new int[2]; for (int i=1; i<=4; i++) System.out.println(a[i]); } } Resposta: Sim. Segue a Implementação: public class Exemplo1App extends Object { public static void main(String args[]){ try{ int a[] = new int[2]; for (int i=1; i<=4; i++) System.out.println(a[i]); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("erro de indice fora de faixa"); } } } A empresa XYZ precisa armazenar dados sobre Alunos(matricula, nome e nota) e Professores (matricula, nome e salario). Implemente utilizando o conceito de herança uma solução orientada a objetos em Java que atenda as necessidades da Empresa XYZ. Resposta: public class Pessoa { private int matricula; private String nome; public Pessoa(int matricula, String nome){ this.matricula=matricula; this.nome=nome; } public class Aluno extends Pessoa{ private float nota; public Aluno(int matricula, String nome, float nota){ super(matricula,nome); this.nota=nota; } public class Professor extends Pessoa { private float salario; public Professor(int matricula,String nome, float salario){ super(matricula,nome); this.salario=salario; } } Dada a classe Cliente. Escreva uma classe ClienteEspecial que tem, além dos atributos herdados, um atributo do tipo double chamado limiteChequeEspecial. public class Cliente (){ private String nome; //campo de instância private int numConta; //campo de instancia public Cliente(String n) //Construtor 1 da Classe Cliente { this(n, 0) //Chama o Construtor 2 da própria classe } public Cliente(String n, int c) //Construtor 2 da Classe Cliente { nome = n; numConta = c; } public int getNumConta () { return numConta; } public void setNumConta (int numero) { numConta = numero; } } Resposta: public class ClienteEspecial extends Cliente { private double limiteChequeEspecial; } Evento é um acontecimento relevante no meio externo ao sistema relevante. Pode ser considerado como o resultado da interação do usuário com algum componente GUI. A utilização de classes anônimas para tratar os eventos é de longe a mais eficiente quando o código que trata o evento é pequeno ou quando possuímos muitos componentes. Qual a sintaxe típica para a construção de uma classe anônima ? Resposta: <NomeDaInterface> <nomeDaInstânciaAnônima>= new <NomeDaInterface> { // implementação dos métodos da interface }; "um programa java pode ser executado no linux, windows e macOS". "Java pode ser executado em smartphones, pc, web etc.". As afirmações anteriores representam qual característica da plataforma java? Explique. Resposta:Estas afirmações representam a característica multiplataforma da plataforma java. A plataforma java pode ser executada em vários sistemas operacionais por causa da máquina virtual java. A classe abaixo foi implementada na visão procedural. Implemente esta classe utilizando os conceitos de Classe, Métodos Acessadores e Modificadores do paradigma Orientado a Objetos. Deverão ser feitas as classes Funcionário e Dependente. public class ConvertaOO { public static void main(String[] args) { String nome; int idade; nome = "Jose"; idade = 40; System.out.println(nome+idade); String nomedep; int idadedep; nome = "Ana"; idade = 20; System.out.println(nomedef+idadedep); } } Resposta: public class Funcionario { private String nome; private int idade; public Funcionario(String nome, int idade){ this.nome=nome; this.idade=idade; } public int getIdade(){ return idade; } public String getNome(){ return nome; } public void setNome(String nome){ this.nome=nome; } public void setIdade(int idade){ this.idade=idade; } } public class Dependente{ private String nome; private int idade; public Dependente(String nome, int idade){ this.nome=nome; this.idade=idade; } public int getIdade(){ return idade; } public String getNome(){ return nome; } public void setNome(String nome){ this.nome=nome; } public void setIdade(int idade){ this.idade=idade; } } public class ConvertaPrincipal { public static void main(String[] args) { Funcionario func1 = new Funcionario("jose",40); Dependente dep1 = new Dependente("ana",20); System.out.println(func1.getNome()+func1.getIdade()); System.out.println(dep1.getNome()+dep1.getIdade()); } } Explique o conceito de Polimorfismo e Sobrecarga. O código fonte abaixo possui exemplos destes conceitos? Se sim, aponte-os. import java.util.Vector; public class Pessoas { private String nome; private int codigo; public Pessoa (String nome, int codigo) { this.nome=nome; this.codigo=codigo; } public Pessoa(int codigo) { this.codigo=codigo; } public String toString(){ return "dados"+this.codigo+this.nome; } } public class PessoasEspeciais extends Pessoa { private String caracteristica; public PessoasEspeciais (String nome, int codigo, String caracteristica) { super(nome,codigo); this.caracteristica=caracteristica; } public String toString(){ return "dados"+this.codigo+this.nome+this.caracteristica; } } Resposta: Polimorfismo ocorre quando métodos possuem as mesmas assinaturas e implementações diferentes em classes distintas. Neste caso o método toString() é polimórfico. Métodos com o mesmo nome, mas assinaturas diferentes se constituem em sobrecarga. Neste caso o método construtor de Pessoa está sobrecarregado. Uma interface, chamada SituacaoAcademica, foi implementada onde foram definidos os métodos public abstract boolean obterSituacaoAluno() e public abstract float obterMediaAluno(). O método obterSituacaoAluno retorna true, se o aluno foi aprovado com média maior ou igual a 6 e, false se o aluno foi reprovado. O método obterMediaAluno() retorna a média aritmética do aluno considerando duas notas. Desenvolva uma classe que implemente esta Interface e seus métodos. Resposta: public interface SituacaoAcademica{ public abstract boolean obterSituacaoAluno(); public abstract float obterMediaAluno(); } public class Aluno implements SituacaoAcademica{ ... public boolean obterSituacaoAluno(){ if (this.media >= 6) { return true; } else{ return false; } } public float obterMeidaAluno(){ this.media=(this.notaav1+this.notaav2)/2; return this.media; } ... }
Compartilhar