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

--------------------------------

Aluno: Kent Beck
Curso: Mestrado em Computação Aplicada
Mensalidade: R$ 2150.45