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 eh_bolsista;
private double desconto;
private Curso curso;
Curso curso,
int cod_matricula,
boolean eh_bolsista,
double desconto) {
this .nome = nome;
this .curso = curso;
this .cod_matricula = cod_matricula;
this .eh_bolsista = eh_bolsista;
this .desconto = desconto;
}
public String getMensalidadeFinal
( ) { if ( eh_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 += 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.25 ) ,
22334455 ,
false ,
0 ) ;
System .
out .
println ( a1.
getDados ( ) ) ; System .
out .
println ( a2.
getDados ( ) ) ; }
}
Y2xhc3MgQ3Vyc28gewogICAgcHJpdmF0ZSBTdHJpbmcgbm9tZV9jdXJzbywgbml2ZWxfY3Vyc287CiAgICBwcml2YXRlIGRvdWJsZSBtZW5zYWxpZGFkZV9jdXJzbzsKCiAgICBwdWJsaWMgQ3Vyc28oU3RyaW5nIG5vbWVfY3Vyc28sIFN0cmluZyBuaXZlbF9jdXJzbywgZG91YmxlIG1lbnNhbGlkYWRlX2N1cnNvKSB7CiAgICAgICAgdGhpcy5ub21lX2N1cnNvID0gbm9tZV9jdXJzbzsKICAgICAgICB0aGlzLm5pdmVsX2N1cnNvID0gbml2ZWxfY3Vyc287CiAgICAgICAgdGhpcy5tZW5zYWxpZGFkZV9jdXJzbyA9IG1lbnNhbGlkYWRlX2N1cnNvOwogICAgfQoKICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGFkb3MoKSB7CiAgICAgICAgcmV0dXJuICJDdXJzbzogIiArIHRoaXMubml2ZWxfY3Vyc28gKyAiIGVtICIgKyB0aGlzLm5vbWVfY3Vyc28gKyAiXG4iOwogICAgfQoKICAgIHB1YmxpYyBkb3VibGUgZ2V0TWVuc2FsaWRhZGUoKSB7CiAgICAgICAgcmV0dXJuIG1lbnNhbGlkYWRlX2N1cnNvOwogICAgfQp9CgpjbGFzcyBBbHVubyB7CiAgICBwcml2YXRlIFN0cmluZyBub21lOwogICAgcHJpdmF0ZSBpbnQgY29kX21hdHJpY3VsYTsKICAgIHByaXZhdGUgYm9vbGVhbiBlaF9ib2xzaXN0YTsKICAgIHByaXZhdGUgZG91YmxlIGRlc2NvbnRvOwogICAgcHJpdmF0ZSBDdXJzbyBjdXJzbzsKCiAgICBwdWJsaWMgQWx1bm8oU3RyaW5nIG5vbWUsCiAgICAgICAgICAgICAgICAgQ3Vyc28gY3Vyc28sCiAgICAgICAgICAgICAgICAgaW50IGNvZF9tYXRyaWN1bGEsCiAgICAgICAgICAgICAgICAgYm9vbGVhbiBlaF9ib2xzaXN0YSwKICAgICAgICAgICAgICAgICBkb3VibGUgZGVzY29udG8pIHsKICAgICAgICB0aGlzLm5vbWUgPSBub21lOwogICAgICAgIHRoaXMuY3Vyc28gPSBjdXJzbzsKICAgICAgICB0aGlzLmNvZF9tYXRyaWN1bGEgPSBjb2RfbWF0cmljdWxhOwogICAgICAgIHRoaXMuZWhfYm9sc2lzdGEgPSBlaF9ib2xzaXN0YTsKICAgICAgICB0aGlzLmRlc2NvbnRvID0gZGVzY29udG87CiAgICB9CgogICAgcHVibGljIFN0cmluZyBnZXRNZW5zYWxpZGFkZUZpbmFsKCkgewogICAgICAgIFN0cmluZyByZXNwID0gIiI7CiAgICAgICAgaWYgKGVoX2JvbHNpc3RhKSB7CiAgICAgICAgICAgIHJlc3AgKz0gIkJvbHNpc3RhIGNvbSBkZXNjb250byBkZTogIiArIHRoaXMuZGVzY29udG8gKyAiJVxuIjsKICAgICAgICAgICAgcmVzcCArPSAiTWVuc2FsaWRhZGU6IFIkICIgKyBjdXJzby5nZXRNZW5zYWxpZGFkZSgpICogKDEgLSB0aGlzLmRlc2NvbnRvIC8gMTAwKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXNwICs9ICJNZW5zYWxpZGFkZTogUiQgIiArIGN1cnNvLmdldE1lbnNhbGlkYWRlKCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiByZXNwOwogICAgfQoKICAgIHB1YmxpYyBTdHJpbmcgZ2V0RGFkb3MoKSB7CiAgICAgICAgU3RyaW5nIHJlc3AgPSAiQWx1bm86ICIgKyB0aGlzLm5vbWUgKyAiXG4iOwogICAgICAgIHJlc3AgKz0gY3Vyc28uZ2V0RGFkb3MoKTsKICAgICAgICByZXNwICs9IGdldE1lbnNhbGlkYWRlRmluYWwoKTsKICAgICAgICByZXR1cm4gcmVzcDsKICAgIH0KfQoKY2xhc3MgVGVzdGUgewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIEFsdW5vIGExID0gbmV3IEFsdW5vKCJNYXJ0aW4gRm93bGVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQ3Vyc28oIkFEUyIsICJHcmFkdWHDp8OjbyIsIDkyMC41MCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTEyMjMzNDQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMC41KTsKCiAgICAgICAgQWx1bm8gYTIgPSBuZXcgQWx1bm8oIktlbnQgQmVjayIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEN1cnNvKCJDb21wdXRhw6fDo28gQXBsaWNhZGEiLCAiTWVzdHJhZG8iLCAyMTUwLjI1KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMjMzNDQ1NSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGExLmdldERhZG9zKCkpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihhMi5nZXREYWRvcygpKTsKICAgIH0KfQo=