THIS TRONG JAVA: 6 Cách sử dụng từ khóa THIS

Bài viết này mình sẽ giúp bạn tìm hiểu về từ khóa this trong Java qua 6 ví dụ cụ thể để bạn nắm rõ cách sử dụng chúng trong khi lập trình.

1. Giới thiệu vấn đề

Nhưng làm sao phân biệt được hai khái niệm này?

Đôi khi người lập trình đặt tên chúng y hệt nhau khiến việc xử lý đôi khi gặp chút khó khăn.

Hoặc khi làm việc với đối tượng và các hàm constructor, muốn gọi qua lại giữa các hàm constructor thì bạn sẽ làm như thế nào?

> Đọc thêm: Tất tần tật về Constructor trong Java

Làm thế nào để tận dụng code có sẵn của các hàm mà không cần viết lại nhiều lần?

Dám chắc rằng bạn sẽ bối rồi khi cần giải quyết vấn đề như thế.

Tuy nhiên trong Java, bạn chỉ cần sử dụng một từ thôi đã đủ để giải quyết các vấn đề trên – đó chính là this.

Từ khóa this trong Java là một biến tham chiếu, được sử dụng để tham chiếu tới đối tượng của lớp hiện tại.

Hay nói theo cách khác, từ khóa this dùng để ánh xạ đối tượng hiện tại.

Giống như trong lớp NgườiYêu có rất nhiều đối tượng như Thảo, An, Uyên, Trang,… thì khi xử lý các thuộc tính và phương thức ta sẽ dùng từ em để ám chỉ đối tượng hiện tại cần thực hiện.Khi thao tác với Java được một thời hạn dài, những bạn có lẽ rằng đã nghe qua thuộc tính của lớp và biến của hàm. Nhưng làm thế nào phân biệt được hai khái niệm này ? Đôi khi người lập trình đặt tên chúng y hệt nhau khiến việc giải quyết và xử lý nhiều lúc gặp chút khó khăn vất vả. Hoặc khi thao tác với đối tượng người tiêu dùng và những hàm constructor, muốn gọi qua lại giữa những hàm constructor thì bạn sẽ làm như thế nào ? Làm thế nào để tận dụng code có sẵn của những hàm mà không cần viết lại nhiều lần ? Dám chắc rằng bạn sẽ bối rồi khi cần xử lý yếu tố như vậy. Tuy nhiên trong Java, bạn chỉ cần sử dụng một từ thôi đã đủ để xử lý những yếu tố trên – đó chính làTừ khóalà một biến tham chiếu, được sử dụng để tham chiếu tới đối tượng người tiêu dùng của lớp hiện tại. Hay nói theo cách khác, từ khóa this dùng để ánh xạ đối tượng người dùng hiện tại. Giống như trong lớpcó rất nhiều đối tượng người dùng như, … thì khi giải quyết và xử lý những thuộc tính và phương pháp ta sẽ dùng từđể ám chỉ đối tượng người tiêu dùng hiện tại cần thực thi .

2. 6 Cách sử dụng từ khóa this trong Java

6 Cách sử dụng this trong Java

6 Cách sử dụng this trong Java

 

Trong Java, từ khóa this tuy ngắn gọn như có tổng cộng tất cả 6 cách sử dụng.

2.1. Sử dụng this để tham chiếu tới biến instance của lớp hiện tại.

Đây là cách mà từ khóa this giúp bạn phân biệt giữa biến toàn cụctham số khi tên của chúng hoàn toàn giống nhau.

Phần code ví dụ bên dưới hy vọng sẽ giúp bạn hiểu ra vấn đề.


package thisdemo;

public class ReferInstanceVariables {

    int a;

    int b;

    / / Hàm constructor chứa tham số

    ReferInstanceVariables(int a, int b) {

        this.a = a;

        this.b = b;

}

    void display() {

    / / Hiển thị giá trị của biến a và b

        System.out.println(” a = ” + a + “\ nb = ” + b);

}

    public static void main(String[] args) {

        ReferInstanceVariables object = new ReferInstanceVariables(1, 99);

        object.display();

}

}
 

Như bạn thấy đó, biến a và biến b đặt ở bên ngoài hàm ReferInstanceVariables có tên hoàn toàn giống tham số được truyền vào.

Tuy nhiên, khi gọi this.a thì Java sẽ hiểu là nó cần gọi đến biến a có trong bối cảnh (context) hiện tại.

Trong trường hợp này, this.a = a sẽ tương đương với this.a = 1. Do đó, biến a sẽ được gán giá trị 1 khi chạy chương trình.

Tương tự như vậy đối với this.b = b

2.2. Sử dụng this() gọi Constructor của lớp hiện tại

Cách này được ưu tiên sử dụng nếu chương trình có nhiều Constructor và có nhu yếu sử dụng lại .


package thisdemo;

public class InvokeConstructor {

    int a;

    int b;

    / / Hàm constructor mặc định

    InvokeConstructor() {

        this(1, 99);

        System.out.println(” Hàm constructor mặc định\ n”);

}

    / / Hàm constructor chứa tham số

    InvokeConstructor(int a, int b) {

        this.a = a;

        this.b = b;

        System.out.println(” Tham số mặc định “);

}

    public static void main(String[] args) {

        InvokeConstructor object = new InvokeConstructor();

}

}
 

Khi bạn chạy chương trình, bạn sẽ thấy this(1, 99) sẽ gọi đến contructor có chứa tham số (chính xác là 2 tham số kiểu int)

2.3. Sử dụng this để trả về biến instance của lớp hiện tại.

Đặc biệt quan tâm rằng kiểu trả về của phương pháp phải là kiểu class. Nếu không tin bạn hãy thử in ra biến tham chiếu và this để kiểm tra .


package thisdemo;

public class ReturnInstance {

    int a;

    int b;

    / / Hàm constructor mặc định

    ReturnInstance() {

        a = 1;

        b = 99;

}

    / / Phương thức trả về biến instance của lớp

    ReturnInstance get() {

        return this;

}

    / / Hiện thị giá trị của a và b

    void display() {

        System.out.println(” a = ” + a + “\ nb = ” + b);

}

    public static void main(String[] args) {

        ReturnInstance object = new ReturnInstance();

        object.get().display();

}

}
 

Hãy thử chạy để xem hiệu quả bạn nhé .

2.4. Sử dụng this làm đối số của phương thức.

Thông thường thì this trong trường hợp này được sử dụng nhiều so với những chương trình Java có tương quan đến những nhu yếu giải quyết và xử lý sự kiện .


package thisdemo;

public 

class

 MethodParameter {

    int a;

    int b;

    / / Hàm constructor mặt đinh

    MethodParameter() {

        a = 1;

        b = 99;

}

    / / Phương thức này nhận this như thể một tham số

    void display(MethodParameter obj) {

        System.out.println(” a = ” + obj.a + “\ nb = ” + obj.b);

}

    / / Trả về biến instance của lớp

    void get() {

        display(this);

}

    public static void main(String[] args) {

        MethodParameter object = new MethodParameter();

        object.get();

}

}
 

2.5. Sử dụng để gọi phương thức của lớp hiện tại.

Nhưng trên thực tế, nếu bạn quên hoặc không sử dụng từ khoá this, trình biên dịch của Java sẽ tự động thay bạn thêm từ khoá this cho việc gọi phương thức.


package thisdemo;

public class InvokeClassMethod {

    void display() {

        / / gọi hàm show

        this.show();

        System.out.println(” Kết thúc hàm display “);

}

    void show() {

        System.out.println(” Hàm show được gọi “);

}

    public static void main(String args[]) {

        InvokeClassMethod ahihi = new InvokeClassMethod();

        ahihi.display();

}

}
 

2.6. Sử dụng làm đối số của hàm constructor.

Tính năng này trong thực tiễn rất hữu dụng, nhất là với những hàm constructor được sử dụng nhiều lần .


package thisdemo;

public class ArgumentConstructor {

    int x = 100;

    / / Hàm constructor tạo ra đối tượng người dùng A

    / / sau đó chuyển nó thành đối số trong hàm constructor

    ArgumentConstructor() {

        Ahihi obj = new Ahihi(this);

}

    / / phương pháp hiện thị giá trị của x

    void display() {

        System.out.println(” Giá trị của x trong lớp B là : ” + x);

}

    class Ahihi {

        ArgumentConstructor obj;

        / / Phương thức khởi tạo tham số với dối tượng B

        Ahihi(ArgumentConstructor obj) {

            this.obj = obj;

            / / gọi phương pháp display của lớp B

            obj.display();

}
}

    public static void main(String[] args) {

        ArgumentConstructor obj = new ArgumentConstructor();

}

}
 

3. Chúc mừng bạn đã hiểu sâu thêm về từ khóa this trong Java

This trong Java là một trong những từ khoá cực kỳ quan trọng, nó vừa giúp bạn tối ưu được code, vừa hỗ trợ xây dựng các phương án giải quyết vấn đề một các nhanh – gọn – lẹ.

Nếu bạn đam mê và theo đuổi để trở thành một lập trình viên Java thì chắc chắn luôn là bạn còn làm việc với this dài dài.

Bởi Java làm việc hầu hết dựa trên lớp và các đối tượng mà this chính là cầu nối quan trọng để liên kết các thành phần bên trên lại với nhau.

Nếu bạn chưa hiểu và dùng được từ khóa this thì hãy luyện tập đi luyện tập lại 6 cách sử dụng ở trên bạn nhé.

Hoặc…

> Thực sự làm chủ ngôn ngữ Java bằng cách tham gia Khóa học Java Fullstacklà một trong những từ khoá cực kỳ quan trọng, nó vừa giúp bạn tối ưu được code, vừa tương hỗ thiết kế xây dựng những giải pháp xử lý yếu tố một những nhanh – gọn – lẹ. Nếu bạn đam mê và theo đuổi để trở thành một lập trình viên Java thì chắc như đinh luôn là bạn còn thao tác với this dài dài. Bởi Java thao tác hầu hết dựa trên lớp và những đối tượng người dùng mà this chính là cầu nối quan trọng để link những thành phần bên trên lại với nhau. Nếu bạn chưa hiểu và dùng đượcthì hãy rèn luyện đi rèn luyện lại 6 cách sử dụng ở trên bạn nhé. Hoặc …

this trong JavaScript ( Rất khác với this trong Java đó )> Có thể bạn muốn biết :

HỌC VIỆN ĐÀO TẠO CNTT NIIT – ICT HÀ NỘI

Học Lập trình chất lượng cao ( Since 2002 ). Học thực tiễn + Tuyển dụng ngay !

Đc : Tầng 3, 25T2, N05, Nguyễn Thị Thập, CG cầu giấy, TP. Hà Nội

SĐT : 02435574074 – 0383.180086

E-Mail : [email protected]

Fanpage: https://facebook.com/NIIT.ICT/

# niit # icthanoi # niithanoi # niiticthanoi # hoclaptrinh # khoahoclaptrinh # hoclaptrinhjava # hoclaptrinhphp # java # php # python