Menu
Coddy logo textTech

this Anahtar Kelimesi

Coddy'nin Java Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 4 / 87.

this anahtar kelimesi, bir sınıfın mevcut örneğine atıfta bulunur. Aynı isme sahip alanlar ve parametreler arasında ayrım yapar.

this olmadan, parametre alanı gölgeler

public class Person {
    private String name;
    
    public Person(String name) {
        name = name;  // Parametreyi kendisine atar!
    }
}

Değerleri doğru bir şekilde atamak için this kullanımı

public class Person {
    private String name;
    
    public Person(String name) {
        this.name = name;  // Parametreyi alana atar
    }
    
    public String getName() {
        return this.name;
    }
}

Metotlarda this kullanımı

public class Person {
    private String name;
    private int age;
    
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    public String getDescription() {
        return this.name + " is " + this.age + " years old";
    }
}

this anahtar kelimesi her zaman geçerli nesneyi işaret eder. Parametre adları alan adlarıyla eşleştiğinde, karışıklığı ve hataları önlemek için bu gereklidir.

challenge icon

Görev

Orta

Alanlar ve parametreler arasındaki ayrımı yapmak için this anahtar kelimesini kullanarak Person sınıfını tamamlayın:

  • Parametreleri alanlara atamak için this kullanan bir yapıcı (constructor)
  • Alanlara erişmek için this kullanan getter metotları
  • "<name>, age <age>, from <city>" döndüren bir getDescription() metodu

Kopya kağıdı

this anahtar kelimesi, bir sınıfın mevcut örneğine atıfta bulunur ve aynı isme sahip alanlar (fields) ile parametreler arasında ayrım yapar.

this olmadan, parametre alanı gölgeler:

public Person(String name) {
    name = name;  // Parametreyi kendisine atar!
}

Değerleri doğru şekilde atamak için this kullanımı:

public Person(String name) {
    this.name = name;  // Parametreyi alana atar
}

Getter metotlarında this kullanımı:

public String getName() {
    return this.name;
}

Birden fazla alan ile this kullanımı:

public class Person {
    private String name;
    private int age;
    
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    public String getDescription() {
        return this.name + " is " + this.age + " years old";
    }
}

Kendin dene

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();
        int age = Integer.parseInt(scanner.nextLine());
        String city = scanner.nextLine();
        
        Person person = new Person(name, age, city);
        
        System.out.println("Name: " + person.getName());
        System.out.println("Age: " + person.getAge());
        System.out.println("City: " + person.getCity());
        System.out.println(person.getDescription());
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Nesne Yönelimli Programlama bölümündeki tüm dersler