- konstruktorów używa się aby utworzyć obiekt (poczytaj o tym w internecie, nie ma sensu, żebym się rozpisywał skoro to jest podstawa podstaw i jest tysiące artykułów na ten temat)
- this, oznacza, że odwołujesz się do obecnej klasy. W twoim przypadku może i nie ma różnicy ale co jeśli chcesz zrobić coś takiego:
public class Person {
private String name;
public Person(String name) {
//i co teraz? jak przypisać name do name?
name = name; //ten kod tak naprawdę nie robi nic.
this.name = name; //to jedyne wyjście. this wskazuje, że chodzi Ci o pole klasy. W ten sposób najczęściej używa się this.
}
public void someMethod() {
name = "Jacek";
this.name = "Jacek";
//nie ma znaczenia jak napiszesz. Program zadziała tak samo.
}
}
Raczej this
to odwołanie do obiektu, który będzie utworzony na podstawie klasy, którą definiujesz. W większości przypadków nie potrzebujesz jawnego this
, a tworzenie konstruktorów wg powyższego schematu to dobrze widziana konwencja niż wymóg języka. Bez this
nie dasz rady zrobić jednego: zdefiniować metody zwracającej obiekt, która ją wywołała np.:
public class Person {
private String name;
public Person(String name) {
//i co teraz? jak przypisać name do name?
name = name; //ten kod tak naprawdę nie robi nic.
this.name = name; //to jedyne wyjście. this wskazuje, że chodzi Ci o pole klasy. W ten sposób najczęściej używa się this.
}
public Person someMethod() {
name = "Jacek";
return this;
}
public String getName(){
return name;
}
}
wtedy możesz zrobić tak:
Person me = new Person("JA");
System.out.println(me.someMethod().getName());