Pour reprendre ce que dit thelvin, vous devriez commencer par un de ces cours :
http://tahe.developpez.com/java/cours/
http://baptiste-wicht.developpez.com.../java/debuter/
http://java.developpez.com/livres/javaEnfants/
Version imprimable
Pour reprendre ce que dit thelvin, vous devriez commencer par un de ces cours :
http://tahe.developpez.com/java/cours/
http://baptiste-wicht.developpez.com.../java/debuter/
http://java.developpez.com/livres/javaEnfants/
Exception in thread "main" java.lang.Error: Unresolved compilation problem:Code:
1
2
3
4
5
6
7
8 public class Mere { public static void main(String[]args) { protected int x = 10; // variable locale à main, pas un attribut de Mere } System.out.println(x + " " + super.x); // code en dehors de toute méthode, illegal. De plus, super.x n'a aucun sens ici }
Syntax error, insert "}" to complete MethodBody
at Mere.main(Mere.java:4)
bien sûr, je lis bien,il manque "}";
mais j'ai mis partout ce fameux crossbody
rien changé,il y a 4 crossbody
System.out.println(x + " " + super.x);
dans ce ligne x est souligné avec un message
x cannot be resolved or is not a field
x du super.x
Pour completer tout ce qui a été dit, Voici ce que vous devez encore retenir:
- Le mot clé this refère au conteneur courant (généralement la classe courante).
ex: pour acceder à la variable x d'une classe A à partir de la classe B on écrira:
A.x;
A l'intérieur de B, on accedera à la variable x en faisant this.x
- Le mot clé super sert à faire appel au constructeur de la classe de base.
L'ennui c'est que c'est bien trop simpliste, et que ça ne se concentre que sur un seul aspect de this et un seul aspect de super. Pas top quand on a besoin de ce dont tu ne parles pas.
Non, l'objet courant. L'instance courante si tu préfères. Pas la classe courante. (Sauf si on utilise this comme appel de constructeur, auquel cas ça se discute.)
Non non non, tu t'embrouilles, là. Ton truc ça ne marche que si le x de A est un membre statique, et le x de B un membre non statique. Ça n'a juste rien à voir.Citation:
ex: pour acceder à la variable x d'une classe A à partir de la classe B on écrira:
A.x;
A l'intérieur de B, on accedera à la variable x en faisant this.x
De la classe mère, pas de la classe de base. Elle peut elle-même avoir une mère, qui a elle-même une mère...Code:- Le mot clé super sert à faire appel au constructeur de la classe de base.
De plus, super ne concerne pas que le constructeur : on peut aussi appeler les méthodes de la classe mère avec. (Et adresser les attributs et les classes imbriquées, aussi, mais c'est déjà plus rare.)