Buscar

ListaDeQuetõesDiscursivas_LP

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;
}
...
}

Continue navegando