fork(1) download
  1. class Bolsa {
  2. private double desconto;
  3.  
  4. public Bolsa(double desconto) {
  5. this.desconto = desconto;
  6. }
  7.  
  8. public String getDados() {
  9. return "Bolsista com desconto de: " + desconto + "%\n";
  10. }
  11.  
  12. public double aplicarDesconto(Curso curso) {
  13. return curso.getMensalidade() * (1 - desconto / 100);
  14. }
  15.  
  16. protected void setDesconto(double desconto) {
  17. this.desconto = 0;
  18. }
  19. }
  20.  
  21. class BolsaNula extends Bolsa {
  22. public BolsaNula() {
  23. super(0);
  24. }
  25.  
  26. public String getDados() {
  27. return "";
  28. }
  29. }
  30.  
  31. class Curso {
  32. private String nome, nivel;
  33. private double mensalidade;
  34.  
  35. public Curso(String nome, String nivel, double mensalidade) {
  36. this.nome = nome;
  37. this.nivel = nivel;
  38. this.mensalidade = mensalidade;
  39. }
  40.  
  41. public String getDados() {
  42. return "Curso: " + nivel + " em " + nome +"\n";
  43. }
  44.  
  45. public double getMensalidade() {
  46. return mensalidade;
  47. }
  48. }
  49.  
  50. class Aluno {
  51. private String nome;
  52. private Curso curso;
  53. private Bolsa bolsa;
  54. private int cod_matricula;
  55.  
  56. public Aluno(
  57. String nome,
  58. Curso curso,
  59. Bolsa bolsa,
  60. int cod_matricula
  61. ) {
  62. this.nome = nome;
  63. this.curso = curso;
  64. this.bolsa = bolsa;
  65. this.cod_matricula = cod_matricula;
  66. }
  67.  
  68. public String getDados() {
  69. return getNome() + curso.getDados() + bolsa.getDados() + getMensalidade();
  70. }
  71.  
  72. private String getNome() {
  73. return "Aluno: "+ nome +"\n";
  74. }
  75.  
  76. private String getMensalidade() {
  77. return "Mensalidade: R$ " + bolsa.aplicarDesconto(curso);
  78. }
  79. }
  80.  
  81. class Teste {
  82. public static void main (String args[]) {
  83. Aluno a1 = new Aluno(
  84. "Martin Fowler",
  85. new Curso("ADS", "Graduação", 920.50),
  86. new Bolsa(20.5),
  87. 11223344
  88. );
  89.  
  90. Aluno a2 = new Aluno(
  91. "Kent Beck",
  92. new Curso("Computação Aplicada", "Mestrado", 2150.45),
  93. new BolsaNula(),
  94. 22334455
  95. );
  96.  
  97. System.out.println(a1.getDados());
  98. System.out.println(a2.getDados());
  99. }
  100. }
Success #stdin #stdout 0.31s 59088KB
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