Bài đăng nổi bật


Tĩnh (Static) có thể là:
  1. Static Variables (biến tĩnh)
  2. Static Methods (phương thức tĩnh)
  3. Static Blocks Of Code. (đoạn mã tĩnh)
Trước tiên hãy xem xét các biến tĩnh và các phương thức tĩnh.

Biến tĩnh trong Java là gì?

Biến tĩnh trong Java là biến thuộc về lớp và chỉ được khởi tạo một lần khi bắt đầu thực hiện.
  • Nó là một biến thuộc về lớp chứ không phải đối tượng (thể hiện)
  • Các biến tĩnh chỉ được khởi tạo một lần, khi bắt đầu thực hiện. Các biến này sẽ được khởi tạo trước, trước khi khởi tạo bất kỳ biến thể hiện nào
  • Một bản sao được chia sẻ bởi tất cả các phiên bản của lớp
  • Một biến tĩnh có thể được truy cập trực tiếp bằng tên lớp và không cần bất kỳ đối tượng nào
Cú pháp:
<class-name>.<variable-name>

Phương thức tĩnh trong Java là gì?

Phương thức tĩnh trong Java là một phương thức thuộc về lớp chứ không thuộc về đối tượng. Một phương thức tĩnh chỉ có thể truy cập dữ liệu tĩnh.
  • Đây là một phương thức thuộc về lớp chứ không thuộc về đối tượng (thể hiện)
  • Một phương thức tĩnh chỉ có thể truy cập dữ liệu tĩnh. Nó không thể truy cập dữ liệu không tĩnh (biến thể hiện)
  • Một phương thức tĩnh chỉ có thể gọi các phương thức tĩnh khác và không thể gọi một phương thức không tĩnh từ nó.
  • Một phương thức tĩnh có thể được truy cập trực tiếp bằng tên lớp và không cần bất kỳ đối tượng nào
  • Dù sao, một phương thức tĩnh không thể tham khảo từ khóa "này" hoặc "siêu"
Cú pháp:
<class-name>.<method-name>
Lưu ý: phương thức chính là tĩnh, vì ứng dụng phải có thể truy cập để chạy, trước khi bất kỳ việc khởi tạo nào diễn ra.
Hãy tìm hiểu các sắc thái của các từ khóa tĩnh bằng cách thực hiện một số bài tập!

Ví dụ: Cách gọi các biến và phương thức tĩnh

Bước 1) Sao chép mã sau vào trình chỉnh sửa
public class Demo{
   public static void main(String args[]){
     Student s1 = new Student();
     s1.showData();
     Student s2 = new Student();
     s2.showData();
     //Student.b++;
     //s1.showData();
  }
}

class Student {
int a; //initialized to zero
static int b; //initialized to zero only when class is loaded not for each object created.

  Student(){
   //Constructor incrementing static variable b
   b++;
  }

   public void showData(){
      System.out.println("Value of a = "+a);
      System.out.println("Value of b = "+b);
   }
//public static void increment(){
//a++;
//}

}
Bước 2) Lưu và biên dịch mã. Chạy mã như, java Demo .

Bước 3) Dự kiến ​​đầu ra hiển thị dưới đây

Sơ đồ sau đây cho thấy, cách các biến và đối tượng tham chiếu được tạo và các biến tĩnh được truy cập bởi các thể hiện khác nhau.
Các phương thức và biến tĩnh của Java
Bước 4) Có thể truy cập một biến tĩnh từ bên ngoài lớp bằng cú pháp ClassName.Variable_Name . Dòng không ghi chú # 7 & 8. Lưu, biên dịch và chạy. Quan sát đầu ra.
Value of a = 0
Value of b = 1
Value of a = 0
Value of b = 2
Value of a = 0
Value of b = 3
Bước 5) Dòng không ghi chú 25,26 & 27. Lưu, biên dịch và chạy.
 error: non-static variable a cannot be referenced from a static context a++; 
Bước 6) Lỗi =? Đây là bởi vì nó không thể truy cập dụ biến " a " từ phương pháp lớp java tĩnh " increment ".

Khối tĩnh Java

Khối tĩnh là một khối câu lệnh bên trong một lớp Java sẽ được thực thi khi một lớp được tải lần đầu tiên vào JVM
class Test{
 static {
 //Code goes here
 }
}
Một khối tĩnh giúp khởi tạo các thành viên dữ liệu tĩnh , giống như các hàm tạo giúp khởi tạo các thành viên thể hiện
Chương trình sau đây là ví dụ về khối tĩnh java.
Ví dụ: Cách truy cập khối tĩnh
public class Demo {
 static int a;
 static int b;
 static {
    a = 10;
    b = 20;
 }
 public static void main(String args[]) {

  System.out.println("Value of a = " + a);
  System.out.println("Value of b = " + b);

  }
}
bạn sẽ nhận được đầu ra sau của chương trình.
Value of a = 10
Value of b = 20

Post a Comment

أحدث أقدم