Buscar

Exercícios revisão P2 - respostas

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

Prévia do material em texto

Exercícios revisão POO I 
Crie um método estático que receba um verbo regular terminado em AR e mostre a conjugação no presente. 
Exemplo: Verbo Andar 
Eu ando 
Tu andas 
Ele anda 
Nós andamos 
Vós andais 
Eles andam 
public static void conjuga(String verbo){ 
 if(verbo.endsWith("ar")){ 
 String inicio = verbo.substring(0, verbo.length()-2); 
 System.out.println("Eu " + inicio + "o"); 
 System.out.println("Tu " + inicio + "as"); 
 System.out.println("Ele " + inicio + "a"); 
 System.out.println("Nós " + inicio + "amos"); 
 System.out.println("Vós " + inicio + "ais"); 
 System.out.println("Eles " + inicio + "am"); 
 } 
 } 
Escreva a classe ConversaoDeUnidadesDeTempo com métodos estáticos para conversão aproximada das unidades de 
velocidade segundo a lista abaixo. 
• 1 minuto = 60 segundos 
• 1 hora = 60 minutos 
• 1 dia = 24 horas 
• 1 semana = 7 dias 
• 1 mês = 30 dias 
public class ConversaoDeUnidadesDeTempo{ 
 public static double min2sec(double min){ 
 return min * 60; 
 } 
 public static double sec2min(double sec){ 
 return sec / 60; 
 } 
 public static double ho2min(double ho){ 
 return ho * 60; 
 } 
 public static double min2ho(double min){ 
 return min / 60; 
 } 
 
 public static double dia2ho(double dia){ 
 return dia * 24; 
 } 
 public static double ho2dia(double ho){ 
 return ho / 24; 
 } 
 public static double sem2dia(double sem){ 
 return sem * 7; 
 } 
 public static double dia2sem(double dia){ 
 return dia / 7; 
 } 
 
 public static double mes2dia(double mes){ 
 return mes * 30; 
 } 
 public static double dia2mes(double dia){ 
 return dia / 30; 
 } 
 
 public static void main(String[] args){ 
 System.out.println(dia2ho(2)); 
 System.out.println(ho2dia(24)); 
 } 
 
} 
 
Escreva uma classe chamada Aluno com os campos matricula (int) e nome String. Essa classe também deve ter um 
campo numMatricula declarado como static, e que incremente o valor desse campo cada vez que uma instância da 
classe for criada e seja atribuído ao campo matricula. 
public class Aluno { 
 private int matricula; 
 private String nome; 
 private static int numMatricula=0; 
 
 public int getMatricula() { 
 return matricula; 
 } 
 
 public String getNome() { 
 return nome; 
 } 
 
 public void setNome(String nome) { 
 this.nome = nome; 
 } 
 
 public Aluno(String nome) { 
 this(); 
 this.nome = nome; 
 } 
 
 public Aluno(){ 
 this.matricula = ++numMatricula; 
 } 
 
 @Override 
 public String toString() { 
 return "Aluno{" + "matricula=" + matricula + ", nome=" + nome 
+ '}'; 
 } 
 
} 
 
Escreva uma classe que contenha métodos estáticos para retornar o maior de dois, três, quatro e cinco valores inteiros. 
public class CalculaMaiores { 
 public static int maior(int n1, int n2){ 
 return (n1>n2)?n1:n2; 
 } 
 public static int maior(int n1, int n2, int n3){ 
 return (maior(n1,n2)>n3)?maior(n1,n2):n3; 
 } 
 public static int maior(int n1, int n2, int n3, int n4){ 
 return (maior(n1,n2,n3)>n4)?maior(n1,n2,n3):n4; 
 } 
 public static int maior(int n1, int n2, int n3, int n4, int n5){ 
 return (maior(n1,n2,n3,n4)>n5)?maior(n1,n2,n3,n4):n5; 
 } 
} 
Escreva um método estático que recebe como parâmetros uma List<Double> e um double e retorna a quantidade dos 
elementos dessa coleção que é maior que o número passado. 
public static int ex03(List<Double> l, double n){ 
 int t = 0; 
 for(int i=0; i<l.size(); i++) 
 if(l.get(i)>n) 
 t++; 
 return t; 
 } 
Crie uma classe Empregado com os atributos nome (String) e salario (Double). 
Implemente um construtor sobrecarregado que receba todos os parâmetros dessa classe. 
Os objetos dessa classe devem ser capazes de serem ordenados em um List através do valor de seu salário, para tanto 
essa classe deve implementar a interface Comparable<Object>. 
public class Empregado implements Comparable{ 
 private Double Salario; 
 private String nome; 
 
 public Double getSalario() { 
 return Salario; 
 } 
 
 public void setSalario(Double Salario) { 
 this.Salario = Salario; 
 } 
 
 public String getNome() { 
 return nome; 
 } 
 
 public void setNome(String nome) { 
 this.nome = nome; 
 } 
 
 public Empregado(Double Salario, String nome) { 
 this.Salario = Salario; 
 this.nome = nome; 
 } 
 
 @Override 
 public int compareTo(Object o) { 
 if(o instanceof Empregado){ 
 Empregado e = (Empregado) o; 
 return this.Salario.compareTo(e.getSalario()); 
 } 
 return -1; 
 } 
 
 
Observe o método a seguir 
public static void divide(int dividendo, int divisor) { 
System.out.println("Divisão = " + (dividendo / divisor)); 
} 
Implemente a exceção (classe) ExcecaoDivisaoPorZero. Esta exceção será lançada pelo método divide e é filha 
direta da classe Exception 
public class ExcecaoDivisaoPorZero extends Exception { 
 
 public ExcecaoDivisaoPorZero(String message) { 
 super(message); 
 } 
} 
 
Altere o método divide para que o mesmo além de obrigar a utilização de controle de exceção também lance uma 
mensagem personalizada 
public static void divide(int dividendo, int divisor) throws 
ExcecaoDivisaoPorZero { 
 if(divisor!=0) 
 System.out.println("Divisão = " + (dividendo / divisor)); 
 else 
 throw new ExcecaoDivisaoPorZero("O divisor não pode ser 
zero"); 
} 
 
try{ 
 divide(1,1); 
}catch(ExcecaoDivisaoPorZero e){ 
 System.out.println(e.getMessage()); 
}catch(Exception e){ 
 System.out.println(e.getMessage()); 
}finally{ 
 System.out.println("finalizando"); 
} 
 
Escreva um método public static void trocaPalavras(List<String> lista, int n, String p) que recebe uma coleção de String 
e troca as palavras dessa lista com exatamente n caracteres, onde n é um inteiro, por outra palavra p. Esse método 
verifica se uma palavra da lista possui n caracteres de tamanho e a substitui pela palavra p passada como parâmetro. 
public static void trocaPalavras(List<String> l, int n, String p){ 
 for(int i=0; i<l.size(); i++) 
 if(l.get(i).length()==n) 
 l.set(i, p); 
 } 
Uma aplicação que usa o padrão MVC tem uma classe Controle. Essa classe tem um método public void 
criarCliente(String nome, int codigo). Esse método deve criar um novo cliente, mas antes verifica se o codigo passado 
como parâmetro é válido. Caso o método decida que o codigo é inválido, deve abortar a criação do novo cliente, e 
lançar uma exceção de nome CodigoInvalidoException. 
Caso seja válido deve checar em seguida se já existe um cliente com esse codigo em um List que armazena clientes. Se o 
codigo já constar nessa lista, deve lançar uma exceção de nome CodigoDuplicadoException. Caso nenhuma dessas 
situações ocorra, deve criar um novo cliente, e inserir esse cliente na lista. 
Sabendo que na classe Cliente existe um construtor public Cliente(String nome, int codigo) além de getters e setters 
para os seus atributos, e na classe Controle existe um List<Cliente> com o nome clientes que armazena clientes, faça: 
 Escreva o método boolean checarCodigo(int codigo) que verifica se um código é válido ou não. Um código 
válido é um número maior que 999 e menor que 10000. 
 Escreva o método boolean existeCodigo(int codigo) que verifica se existe um cliente armazenado na lista com o 
código passado como parâmetro. 
 Escreva o método public void criarCliente(String nome, int codigo) com as verificações necessárias e o 
lançamento das exceções solicitadas 
 
public booleanchecarCodigo(int codigo){ 
 if(codigo>999 && codigo<10000) 
 return true; 
 return false; 
 } 
 
 public boolean existeCodigo(int codigo){ 
 for(int i=0; i<clientes.size(); i++) 
 if(clientes.get(i).getCodigo()==codigo) 
 return true; 
 return false; 
 } 
 
 public void criarCliente(String nome, int codigo) throws 
CodigoInvalidoException, CodigoDuplicadoException{ 
 if(!checarCodigo(codigo)) throw new CodigoInvalidoException(); 
 if(existeCodigo(codigo)) throw new CodigoDuplicadoException(); 
 this.clientes.add(new Cliente(nome, codigo)); 
 }

Outros materiais