bonjour à tous,
Je suis débutant en java et je ne comprends pas très bien les différentes utilisations du mot clé "this". Je sais qu'il sert à désigner l'objet courant mais cela reste vague pour moi. Est-ce que quelqu'un pourrait m'expliquer avec des exemples concrets s'il vous plaît? Voici quelques exemples de l'occurrence de "this" que j'ai piqués dans le livre "thinking in java". Je lis et relis le passage mais j'arrive toujours pas à comprendre.

1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class Leaf {
   static Test monitor = new Test();
   int i = 0;
   Leaf increment() {
   i++;
  return this;
  }

  void print() {
  System.out.println("i = " + i);
  }

  public static void main(String[] args) {
  Leaf x = new Leaf();
  x.increment().increment().increment().print();
  monitor.expect(new String[] {
 "i = 3"
 });
 }
 }

2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class Flower {
static Test monitor = new Test();
int petalCount = 0;
String s = new String("null");

Flower(int petals) {
petalCount = petals;
System.out.println(
"Constructor w/ int arg only, petalCount= "
+ petalCount);
}

Flower(String ss) {
System.out.println(
"Constructor w/ String arg only, s=" + ss);
s = ss;
}

Flower(String s, int petals) {
this(petals);
//! this(s); // Can't call two!
this.s = s; // Another use of "this"
System.out.println("String & int args");
}

Flower() {
this("hi", 47);
System.out.println("default constructor (no args)");
}
3. un autre exemple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
public class Account
{
   
    private long deposit=0;
    public void despsit_sum(long sum)
    {
       synchronized (this){ 
            deposit+= sum;
   
         }
    }
Merci d'avance et bonnes vacances!