class Curso {
private String nome_curso, nivel_curso
; private double mensalidade_curso;
public Curso
( String nome_curso,
String nivel_curso,
double mensalidade_curso
) { this .nome_curso = nome_curso;
this .nivel_curso = nivel_curso;
this .mensalidade_curso = mensalidade_curso;
}
return "Curso: " + this .nivel_curso + " em " + this .nome_curso + "\n " ;
}
public double getMensalidade( ) {
return mensalidade_curso;
}
}
class Aluno {
private int cod_matricula;
private boolean e_bolsista;
private double desconto;
private Curso curso;
Curso curso,
int cod_matricula,
boolean e_bolsista,
double desconto) {
this .nome = nome;
this .curso = curso;
this .cod_matricula = cod_matricula;
this .e_bolsista = e_bolsista;
this .desconto = desconto;
}
public String getMensalidadeFinal
( ) {
if ( e_bolsista) {
resp += "Bolsista com desconto de: " + this .desconto + "%\n " ;
resp += "Mensalidade: R$ " + curso.getMensalidade ( ) * ( 1 - this .desconto / 100 ) ;
} else {
resp += "Mensalidade: R$ " + curso.getMensalidade ( ) ;
}
return resp;
}
String resp
= "Aluno: " + this .
nome + "\n " ; resp += curso.getDados ( ) ;
resp += this .getMensalidadeFinal ( ) ;
return resp;
}
}
class Teste {
public static void main
( String args
[ ] ) {
Aluno a1 = new Aluno(
"Martin Fowler" ,
new Curso( "ADS" , "Graduação" , 920.50 ) ,
11223344 ,
true ,
20.5 ) ;
Aluno a2 = new Aluno(
"Kent Beck" ,
new Curso( "Computação Aplicada" , "Mestrado" , 2150.00 ) ,
22334455 ,
false ,
0 ) ;
System .
out .
println ( a1.
getDados ( ) ) ; System .
out .
println ( a2.
getDados ( ) ) ; }
}
Y2xhc3MgQ3Vyc28gewogICAgcHJpdmF0ZSBTdHJpbmcgbm9tZV9jdXJzbywgbml2ZWxfY3Vyc287CiAgICBwcml2YXRlIGRvdWJsZSBtZW5zYWxpZGFkZV9jdXJzbzsKCiAgICBwdWJsaWMgQ3Vyc28oU3RyaW5nIG5vbWVfY3Vyc28sIFN0cmluZyBuaXZlbF9jdXJzbywgZG91YmxlIG1lbnNhbGlkYWRlX2N1cnNvKSB7CiAgICAgICAgdGhpcy5ub21lX2N1cnNvID0gbm9tZV9jdXJzbzsKICAgICAgICB0aGlzLm5pdmVsX2N1cnNvID0gbml2ZWxfY3Vyc287CiAgICAgICAgdGhpcy5tZW5zYWxpZGFkZV9jdXJzbyA9IG1lbnNhbGlkYWRlX2N1cnNvOwogICAgfQoKICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGFkb3MoKSB7CiAgICAgICAgcmV0dXJuICJDdXJzbzogIiArIHRoaXMubml2ZWxfY3Vyc28gKyAiIGVtICIgKyB0aGlzLm5vbWVfY3Vyc28gKyAiXG4iOwogICAgfQoKICAgIHB1YmxpYyBkb3VibGUgZ2V0TWVuc2FsaWRhZGUoKSB7CiAgICAgICAgcmV0dXJuIG1lbnNhbGlkYWRlX2N1cnNvOwogICAgfQp9CgpjbGFzcyBBbHVubyB7CiAgICBwcml2YXRlIFN0cmluZyBub21lOwogICAgcHJpdmF0ZSBpbnQgY29kX21hdHJpY3VsYTsKICAgIHByaXZhdGUgYm9vbGVhbiBlX2JvbHNpc3RhOwogICAgcHJpdmF0ZSBkb3VibGUgZGVzY29udG87CiAgICBwcml2YXRlIEN1cnNvIGN1cnNvOwoKICAgIHB1YmxpYyBBbHVubyhTdHJpbmcgbm9tZSwKICAgICAgICAgICAgICAgICBDdXJzbyBjdXJzbywKICAgICAgICAgICAgICAgICBpbnQgY29kX21hdHJpY3VsYSwKICAgICAgICAgICAgICAgICBib29sZWFuIGVfYm9sc2lzdGEsCiAgICAgICAgICAgICAgICAgZG91YmxlIGRlc2NvbnRvKSB7CgogICAgICAgIHRoaXMubm9tZSA9IG5vbWU7CiAgICAgICAgdGhpcy5jdXJzbyA9IGN1cnNvOwogICAgICAgIHRoaXMuY29kX21hdHJpY3VsYSA9IGNvZF9tYXRyaWN1bGE7CiAgICAgICAgdGhpcy5lX2JvbHNpc3RhID0gZV9ib2xzaXN0YTsKICAgICAgICB0aGlzLmRlc2NvbnRvID0gZGVzY29udG87CiAgICB9CgogICAgcHVibGljIFN0cmluZyBnZXRNZW5zYWxpZGFkZUZpbmFsKCkgewogICAgICAgIFN0cmluZyByZXNwID0gIiI7CgogICAgICAgIGlmIChlX2JvbHNpc3RhKSB7CiAgICAgICAgICAgIHJlc3AgKz0gIkJvbHNpc3RhIGNvbSBkZXNjb250byBkZTogIiArIHRoaXMuZGVzY29udG8gKyAiJVxuIjsKICAgICAgICAgICAgcmVzcCArPSAiTWVuc2FsaWRhZGU6IFIkICIgKyBjdXJzby5nZXRNZW5zYWxpZGFkZSgpICogKDEgLSB0aGlzLmRlc2NvbnRvIC8gMTAwKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXNwICs9ICJNZW5zYWxpZGFkZTogUiQgIiArIGN1cnNvLmdldE1lbnNhbGlkYWRlKCk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gcmVzcDsKICAgIH0KCiAgICBwdWJsaWMgU3RyaW5nIGdldERhZG9zKCkgewogICAgICAgIFN0cmluZyByZXNwID0gIkFsdW5vOiAiICsgdGhpcy5ub21lICsgIlxuIjsKICAgICAgICByZXNwICs9IGN1cnNvLmdldERhZG9zKCk7CiAgICAgICAgcmVzcCArPSB0aGlzLmdldE1lbnNhbGlkYWRlRmluYWwoKTsKICAgICAgICByZXR1cm4gcmVzcDsKICAgIH0KfQoKY2xhc3MgVGVzdGUgewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgewoKICAgICAgICBBbHVubyBhMSA9IG5ldyBBbHVubygKICAgICAgICAgICAgICAgICJNYXJ0aW4gRm93bGVyIiwKICAgICAgICAgICAgICAgIG5ldyBDdXJzbygiQURTIiwgIkdyYWR1YcOnw6NvIiwgOTIwLjUwKSwKICAgICAgICAgICAgICAgIDExMjIzMzQ0LAogICAgICAgICAgICAgICAgdHJ1ZSwKICAgICAgICAgICAgICAgIDIwLjUpOwoKICAgICAgICBBbHVubyBhMiA9IG5ldyBBbHVubygKICAgICAgICAgICAgICAgICJLZW50IEJlY2siLAogICAgICAgICAgICAgICAgbmV3IEN1cnNvKCJDb21wdXRhw6fDo28gQXBsaWNhZGEiLCAiTWVzdHJhZG8iLCAyMTUwLjAwKSwKICAgICAgICAgICAgICAgIDIyMzM0NDU1LAogICAgICAgICAgICAgICAgZmFsc2UsCiAgICAgICAgICAgICAgICAwKTsKCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGExLmdldERhZG9zKCkpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihhMi5nZXREYWRvcygpKTsKICAgIH0KfQoJCQk=