Menu
CoddyTech

Từ khóa this

Thuộc phần Lập trình hướng đối tượng trong hành trình Java của Coddy. Bài học 4 trên 87.

Từ khóa (keyword) this chỉ instance hiện tại của một lớp (class). Nó phân biệt giữa các trường và tham số (parameter) có cùng tên.

Nếu không có this, tham số sẽ che khuất trường

public class Person {
    private String name;
    
    public Person(String name) {
        name = name;  // Gán tham số cho chính nó!
    }
}

Dùng this để gán giá trị đúng cách

public class Person {
    private String name;
    
    public Person(String name) {
        this.name = name;  // Gán tham số (parameter) cho thuộc tính
    }
    
    public String getName() {
        return this.name;
    }
}

Sử dụng this trong các phương thức

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";
    }
}

Từ khóa this luôn trỏ đến đối tượng hiện tại. Từ khóa này rất cần thiết khi tên tham số trùng với tên trường, giúp tránh nhầm lẫn và lỗi.

challenge icon

Thử thách

Trung bình

Hoàn thiện lớp Person bằng từ khóa this để phân biệt các trường với tham số:

  • Hàm khởi tạo dùng this để gán tham số cho các trường
  • Các phương thức getter dùng this để truy cập các trường
  • Phương thức getDescription() trả về "<name>, age <age>, from <city>"

Tự làm thử

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 iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Lập trình hướng đối tượng

Tự luyện tập: Trình biên dịch Java online