0
0
Lập trình
Admin Team
Admin Teamtechmely

Hiểu biết về từ khóa static, final, super, this() và super() trong Java

Đăng vào 1 tháng trước

• 5 phút đọc

Giới thiệu

Trong lập trình Java, việc hiểu rõ về các từ khóa như static, final, super, this()super() là rất quan trọng. Những từ khóa này không chỉ giúp quản lý bộ nhớ mà còn giúp tối ưu hóa mã nguồn và cải thiện khả năng mở rộng của ứng dụng. Bài viết này sẽ cung cấp cái nhìn sâu sắc về cách sử dụng chúng, kèm theo ví dụ cụ thể và các thực tiễn tốt nhất.

Nội dung

1. Từ khóa Final

Giới thiệu

Từ khóa final trong Java có thể được sử dụng với lớp, phương thức và biến. Khi khai báo một biến với từ khóa này, giá trị của biến sẽ không thể thay đổi sau khi được gán.

Cú pháp

java Copy
final DataType variableName = value;

final ReturnType methodName(Parameters) {
    // phương thức thân
}

final class ClassName {
    // lớp thân
}

Ví dụ

java Copy
final class FinalClass {
    final int finalVariable = 100;

    final void finalMethod(final int param) {
        System.out.println("Inside finalMethod");
        System.out.println("Final variable value: " + finalVariable);
        System.out.println("Final parameter value: " + param);
    }
}

public class MasteringBackend {
    public static void main(String[] args) {
        FinalClass obj = new FinalClass();
        obj.finalMethod(50);
    }
}

Kết quả

Copy
Inside finalMethod
Final variable value: 100
Final parameter value: 50

2. Từ khóa Static

Giới thiệu

Từ khóa static được sử dụng để khai báo biến, phương thức và lớp lồng nhau. Khi một biến được khai báo là static, chỉ có một bản sao của biến đó được tạo ra và chia sẻ giữa tất cả các đối tượng của lớp đó.

Cú pháp

java Copy
static DataType variableName;

static ReturnType methodName(Parameters) {
    // phương thức thân
}

static {
    // mã khởi tạo tĩnh
}

class OuterClass {
    static class NestedClass {
        // lớp thân
    }
}

Ví dụ

java Copy
public class BankAccount {
    private int accountNumber;
    private double balance;

    static double interestRate;      
    static int totalAccounts = 0;   

    static {
        System.out.println("Hệ thống ngân hàng đã khởi tạo.");
        interestRate = 4.5; 
    }

    public BankAccount(int accountNumber, double initialDeposit) {
        this.accountNumber = accountNumber;
        this.balance = initialDeposit;
        totalAccounts++;
    }

    public void displayAccountDetails() {
        System.out.println("Số tài khoản: " + accountNumber);
        System.out.println("Số dư: $" + balance);
        System.out.println("Lãi suất: " + interestRate + "%");
    }
}

Kết quả

Copy
Hệ thống ngân hàng đã khởi tạo.
Số tài khoản: 101
Số dư: $5000.0
Lãi suất: 4.5%

3. Từ khóa this

Giới thiệu

Từ khóa this là một biến tham chiếu trong Java, được sử dụng để tham chiếu đến đối tượng hiện tại mà phương thức hoặc hàm khởi tạo đang được gọi.

Ví dụ

java Copy
public class Student {
    String name;
    int age;

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public void displayInfo() {
        System.out.println("Tên: " + this.name);
        System.out.println("Tuổi: " + this.age);
    }
}

Kết quả

Copy
Tên: Ayush
Tuổi: 22

4. Từ khóa super

Giới thiệu

Từ khóa super được sử dụng để tham chiếu đến đối tượng của lớp cha ngay lập tức. Nó cho phép truy cập vào các biến và phương thức của lớp cha từ lớp con.

Ví dụ

java Copy
class Parent {
    void show() {
        System.out.println("Đây là phương thức của lớp cha");
    }
}

class Child extends Parent {
    void show() {
        super.show(); // Gọi phương thức của lớp cha
        System.out.println("Đây là phương thức của lớp con");
    }
}

Kết quả

Copy
Đây là phương thức của lớp cha
Đây là phương thức của lớp con

5. Chaining Constructors

Giới thiệu

Chaining constructors là việc gọi một hàm khởi tạo từ một hàm khởi tạo khác trong cùng một lớp bằng cách sử dụng từ khóa this(). Điều này giúp giảm thiểu mã lặp lại và làm cho mã nguồn dễ đọc hơn.

Ví dụ

java Copy
public class Student {
    String name;
    int age;

    public Student() {
        this("Unknown", 0);
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

Kết quả

Copy
Tên: Unknown, Tuổi: 0

6. Các lỗi thường gặp

  • Sử dụng không chính xác từ khóa final: Khi bạn khai báo một biến final, hãy chắc chắn rằng bạn chỉ gán giá trị một lần.
  • Quên từ khóa static: Nếu bạn cần chia sẻ dữ liệu giữa các đối tượng, đừng quên sử dụng từ khóa static.

7. Mẹo hiệu suất

  • Sử dụng static cho các biến không thay đổi: Giúp tiết kiệm bộ nhớ và tăng tốc độ truy cập.
  • Sử dụng final cho các biến không thay đổi giá trị: Đảm bảo rằng các biến này không bị thay đổi ngẫu nhiên.

8. Kết luận

Hiểu rõ về các từ khóa static, final, super, this()super() là rất quan trọng trong lập trình Java. Việc sử dụng đúng các từ khóa này giúp bạn tối ưu hóa mã nguồn và nâng cao hiệu suất ứng dụng.

9. Câu hỏi thường gặp

Câu hỏi 1: Tại sao nên sử dụng từ khóa final?

  • Để bảo vệ giá trị của biến và tránh việc thay đổi không mong muốn.

Câu hỏi 2: superthis có điểm gì khác nhau?

  • this tham chiếu đến đối tượng hiện tại, trong khi super tham chiếu đến lớp cha.

Hãy bắt đầu thực hành ngay hôm nay và áp dụng những kiến thức này vào dự án của bạn!

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào