Exame POO-Java 2018: Questões e Soluções
Exame POO-Java 2018: Questões e Soluções
com/
Departamento de Informática Année universitaire 2017/2018
Faculdade de Ciências Filière SMI, Semestre 5
Universidade Mohammed Premier Exame da sessão normal
9 de Fevereiro de 2018
Oujda
Examen en POO-Java
Durée :1h30
Exercício 1 (7pts)
O que o código a seguir exibe? (dê primeiro a exibição, depois explique brevemente o porquê).
classeA{
static intx =2;
inty =3;
public void mensagem() {
[Link]("MensagemdométododaclassA
e ");
}
public static voidg(){
[Link]("Métodog(d)aclassA
e ");
}
public intc a l c u l(){
retornar(x + y);
}
}
classeBestendeA{
mensagem pública() {
[Link]("MétodomensagemdaclasseB");
}
public voidf(){
[Link]("Métodof(d)aclasseB");
}
public static voidg(){
[Link]("Métodog(d)aclasseB");
}
}
classe pública Exame2018{
public static voidmain( String [ ] args ) {
A a =newA( ) ;
B b = new B();
umamensagem
. ();
bmensagem
. ();
b.f();
a = novaB( );
umamensagem
. ();
a.g();
a .x=5; a . y=7;
[Link]("Apóoscálculo"+:b.cálculo());
}
}
1
Exercice 2 (13pts)
Deseja-se automatizar a gestão de uma biblioteca que inclui livros e associados.
Um livro é definido por um número ISBN (inteiro), um título e é escrito por no máximo 4 autores.
— crie a classeLivro;
— adicione um método exibir() que exiba o ISBN, o título e as informações dos autores.
teurs.
Boa sorte!
2
Departamento de Informática Ano letivo 2017/2018
Faculdade de Ciências Filière SMI, Semestre 5
Universidade Mohammed Premier Examen de la session normale
Oujda 9Fevereiro2018
importar [Link];
classe AgeException estende Exception{
public AgeException(){
[Link]("O número do autor não deve ser ")
negativo
}
}
classe Pessoa {
private String nom, prenom;
private int idade;
public Pessoa(String x, String y, int z){
nom = x;
prenom = y;
age = z;
}
public void exibir() {
[Link]("Nome: " + nom + ", sobrenome: " + prenom + ", idade: ");
+idade);
}
}
class Adherent estende Pessoa {
private int numAdher;
public Adherent(String x, String y, int z, int l) {
super(x,y,z);
numAdher = l;
}
public void mostrar() {
[Link]();
[Link]( " e numero: " +numAdher);
}
}
classe Autor estendendo Pessoa {
private int numAut;
public Autor(String x, String y, int z, int l) lança AgeException {
super(x,y,z);
se ( l <= 0 ) lançar nova AgeException();
senão {
numAut = l;
}
}
public void afficher() {
[Link]();
[Link]( " e número: " +numAut);
}
}
classe Livre {
private String titre;
private int ISBN;
private Auteur[] auth = new Auteur[4];
String b, c;
int i, z, l, nbre;
Scanner teclado = new Scanner ([Link]);
public Livre(String x,int y, int nbre){ //nbre pour nombre d'auteur
titre = x;
ISBN = y;
[Link] = nbre;
try{
for(i =0;i<nbre;i++){
[Link] ( " digite o nome " ) ;
b = [Link]();
[Link] ( " entrar o prenome " ) ;
c = [Link]( );
[Link] ( " inserir a idade " ) ;
z = [Link]( );
[Link] ( " entre o número " ) ;
l = [Link]();
[Link]( );
auth[i] = new Auteur(b,c,z,l);
}
}catch(AgeException e){
[Link](e);
[Link](-1);
}
}
public void exibir() {
[Link]("Livre de titre: " + titre + ", ISBN: " + ISBN)
e os autores são:
for(i =0;i<nbre;i++){
auth[i].afficher();
}
}
}
-----------------
Segunda versão
-----------------
importar [Link];
classe AgeException estende Exception{
public AgeException(){
[Link]("O número do autor não deve ser ")
negativo
}
}
classe Pessoa {
private String nom, prenom;
private int idade;
public Pessoa(String x, String y, int z) {
nom = x;
prenom = y;
age = z;
}
public void afficher() {
[Link]("Nome: " + nom + ", sobrenome: " + prenom + ", idade: ")
+idade);
}
}
class Adherent estende Pessoa {
private int numAdher;
public Adherent(String x, String y, int z, int l){
super(x,y,z);
numAdher = l;
}
public void exibir() {
[Link]();
[Link]( " e número: " +numAdher);
}
}
class Autor estende Pessoa {
private int numAut;
public Auteur(String x, String y, int z, int l) throws AgeException{
super(x,y,z);
se ( l <= 0 ) lançar nova AgeException();
senão {
numAut = l;
}
}
public void afficher() {
[Link]();
[Link]( " e numero: " +numAut);
}
}
classe Livre {
private String título;
private int ISBN;
private Auteur[] auth = new Auteur[4];
Exercício 1 (6pts)
O que o código a seguir exibe?
classEstudante {
privateStringnome, sobrenome ;
publicEtudiant ( String x , String y){
[Link]=x;
[Link]=y;
}
public voida f f i c h e r() {
[Link]("Nome"+:nom+"eprenome"+:prenom);
}
}
classe Examen {
public static void main(String[] argv) {
Estudante [ ] tab1 ={novoEstudante ("a","b") ,novoEstudante ("aa","bb"} ;
Estudante [ ] tab2 ={novoEstudante ("c","d") ,novoEstudante ("cc ","dd" };
Estudante [ ] tab3 ={novoEstudante ("c", "d") ,novoEstudante ("cc ", "dd")};
tab1 = tab2 ;
[Link]([Link]);
[Link]([Link](tab2));
[Link]([Link](tab2));
tab2[0]=newEtudiant("aaa","bbb");
tab1[0a].fciher();
tab2[0a].fciher();
tab3[0a].fciher();
}
}
Exercício 2 (14pts)
Desejamos gerenciar a seleção dos candidatos em um concurso. Para isso, definimos as informações
necessários para os candidatos autorizados a participar deste concurso:
—Nom: Nom du candidat
—Prénom: Prénom du candidat
—Número: Número do candidato
—Age: L’age du candidat. Il ne doit pas dépasser30ans.
1
Os funcionários públicos também podem participar deste concurso se cumprirem as condições.
de participação, em particular, a condição de idade.
[Link] a classe Candidaten adicionando uma exceção que será acionada se a idade associada
o candidato é superior a 30.
Boa sorte!