0% ont trouvé ce document utile (0 vote)
31 vues3 pages

Java Corrige

Le document présente des exercices sur les méthodes et la portée des variables en Java, en expliquant les erreurs de compilation liées aux méthodes statiques et aux variables d'instance. Il aborde également l'héritage et l'accès aux membres de classe, en indiquant les erreurs spécifiques rencontrées lors de l'accès à des variables privées et protégées. Enfin, des corrections sont fournies pour les erreurs identifiées dans le code Java présenté.

Transféré par

balkisb231
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
31 vues3 pages

Java Corrige

Le document présente des exercices sur les méthodes et la portée des variables en Java, en expliquant les erreurs de compilation liées aux méthodes statiques et aux variables d'instance. Il aborde également l'héritage et l'accès aux membres de classe, en indiquant les erreurs spécifiques rencontrées lors de l'accès à des variables privées et protégées. Enfin, des corrections sont fournies pour les erreurs identifiées dans le code Java présenté.

Transféré par

balkisb231
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Correction activité 1 chapitre 1 avancée

Exercice 1
Les méthodes qui ne peuvent pas être static sont les constructeurs ou celles qui utilisent des variables
d’instance ou invoquent des méthodes d’instance sans référence. Par conséquent sont dans ce
programme : VerificationStatic, afficher, ajouter, plusGrand
package dadbd24;
public class VerificationStatic {
int x, y;
String nom;
static final float g=9 ;
VerificationStatic (String n, int a, int b){
nom=n;
x=a;
y=b;
}
void afficher(){
[Link](nom + " " + x + " " + y);
}
void ajouter(VerificationStatic obj){
x = x + obj.x;
y = y + obj.y;
nom = nom + [Link];
// g=7 ;// g ne peux pas être modifié
}
static VerificationStatic nouveau(int n){
VerificationStatic res = new VerificationStatic ("aaa",3,5);
res.x = (int)( n+g);
res.y = n*2;
[Link] = "Auto_"+n;
return res;
}
boolean plusGrand(VerificationStatic obj){
if (obj.x == x){
return y>obj.y;
} else{
return x>obj.x;
}
}
static boolean comparer(VerificationStatic obj1, VerificationStatic obj2){
if (obj1.x == obj2.x){
return obj1.y>obj2.y;
}else{
return obj1.x>obj2.x;
}
}
public static void main(String[] args) {
VerificationStatic v1=new VerificationStatic("ok",3,5);
VerificationStatic v2=new VerificationStatic("Yes",7,14);
comparer(v1,v2);
nouveau(8);
[Link](v2);
[Link]( [Link](v1));
}
}
Exercice 2
1. class Essai{
2. int y, x;
3. final static float z=3.0 ; //manque f après 3.0
4. int m1(){// type de retour doit être float
5. int f ;
6. return f+z; // f n’est pas initialisé ………………..………………
7. }
8. static void m2(final int h){
9. h=5; // on ne peut pas modifier la valeur de h car elle est déclarée final. h reçoit sa valeur
// initiale lors de l’invocation de m2()
10. [Link](h+x); //x variable d’instance ne peut pas être utilisé dans une
//méthode static sans référence
11. }
12. public static void main(String [] a){
13. Essai e=new Essai();
14. e.m2();//warning : méthode static => pas besoin d’une référence pour l’appeler
15. m1();// méthode d’instance doit être invoquée à l’aide d’une instance car elle est appelé depuis
une méthode static. Correction : e.m1() ;
16. x=7; //variable d’instance doit être utilisé avec son instance (car x ici est utilisé dans une
//méthode static). Correction : e.x=7 ;
17. }

Application 2
Soit la classe suivante :
package packA ;
public class A {
public int i ;
private int a;
protected int b;
int c;
public void afficher() { [Link](i+a+b); }
}
Indiquer si les classes suivantes compilent. Indiquer les erreurs en cas de non compilation.
package packA ;
public class B extends A {
public void traiter() { [Link](i+a+b+c); }
}
Erreur de compilation au niveau de la dernière instruction. La variable a est private, n’est pas
accessible hors de sa classe A

package packA ;
public class E {
public B b = new B();
public void traiter() { [Link]();}
}
Il n’y a pas d’erreur de compilation. La classe B hérite la méthode afficher de A et donc, cette
méthode peut être invoquée à l’aide d’une instance de type B

package packD ;
import packA.A;
public class D {
public A k = new A();
public void traiter() { [Link](k.c + k.i + k.b); }
}
Erreur de compilation au niveau de la dernière instruction. Les variables c et b sont inaccessible
hors de leurs package

package packF;
import packA.A;
public class F extends B{
public void traiter() { [Link](i+b+c); }
}
Erreur de compilation au niveau de la derniere instruction. La variable a est private, n’est pas
accessible hors de sa classe classA
package packF;
import packA.A;
public class F extends A{
public void traiter() {
[Link](i+b);
A k = new A();
[Link](k.i+k.b);
}
}
Erreur de compilation au niveau de la dernière instruction. La variable b est protected, n’est pas
accessible hors de son package par une instance de la classe mère (A), mais, accessible hors de son
package par héritage avec une instance de la classe fille, cas de la première instruction d’affichage.

Vous aimerez peut-être aussi