fork download
  1. class Curso {
  2. private String nome;
  3. private String nivel;
  4. private double mensalidade;
  5.  
  6. public Curso(String nome, String nivel, double mensalidade) {
  7. this.nome = nome;
  8. this.nivel = nivel;
  9. this.mensalidade = mensalidade;
  10. }
  11.  
  12. public String getNome() { return nome; }
  13. public String getNivel() { return nivel; }
  14. public double getMensalidade() { return mensalidade; }
  15. }
  16.  
  17. class Aluno {
  18. private String nome;
  19. private int cód_matrícula;
  20. private boolean é_bolsista;
  21. private double desconto;
  22. private Curso curso;
  23.  
  24. public Aluno(String nome, int cód_matrícula, boolean é_bolsista, double desconto, Curso curso) {
  25. this.nome = nome;
  26. this.cód_matrícula = cód_matrícula;
  27. this.é_bolsista = é_bolsista;
  28. this.desconto = desconto;
  29. this.curso = curso;
  30. }
  31.  
  32. private double calcularMensalidade() {
  33. if (é_bolsista) {
  34. return curso.getMensalidade() * (1 - this.desconto / 100);
  35. }
  36. return curso.getMensalidade();
  37. }
  38.  
  39. public String getDados() {
  40. String resp = "Aluno: " + this.nome + "\n";
  41. resp += "Curso: " + curso.getNivel() + " em " + curso.getNome() + "\n";
  42.  
  43. if (é_bolsista) {
  44. resp += "Bolsista com desconto de: " + this.desconto + "%\n";
  45. }
  46.  
  47. // Chamada ao método extraído
  48. resp += "Mensalidade: R$ " + calcularMensalidade();
  49.  
  50. return resp;
  51. }
  52. }
  53.  
  54. class Teste {
  55. public static void main (String args[]) {
  56. Curso c1 = new Curso("ADS", "Graduação", 920.50);
  57. Curso c2 = new Curso("Computação Aplicada", "Mestrado", 2150.45);
  58.  
  59. Aluno a1 = new Aluno("Martin Fowler", 11223344, true, 20.5, c1);
  60. Aluno a2 = new Aluno("Kent Beck", 22334455, false, 0, c2);
  61.  
  62. System.out.println(a1.getDados());
  63. System.out.println(a2.getDados());
  64. }
  65. }
Success #stdin #stdout 0.22s 47456KB
stdin
Standard input is empty
stdout
Aluno: Martin Fowler
Curso: Graduação em ADS
Bolsista com desconto de: 20.5%
Mensalidade: R$ 731.7975
Aluno: Kent Beck
Curso: Mestrado em Computação Aplicada
Mensalidade: R$ 2150.45