Java Static Keyword

Tĩnh là gì

Tĩnh là một sửa đổi không truy cập.

lap-trinh-java
Java Static Keyword

Có thể áp dụng với

Từ khóa tĩnh có thể được áp dụng cho

  • phương pháp
  • Biến
  • Lớp lồng trong lớp khác
  • Khối khởi tạo

Không áp dụng cho

Từ khóa tĩnh không thể được áp dụng cho

  • Lớp (Không lồng nhau)
  • Constructor
  • Giao diện
  • Phương thức Lớp bên trong cục bộ (Sự khác biệt sau đó lớp lồng nhau)
  • Phương thức lớp bên trong
  • Biến sơ thẩm
  • Biến cục bộ

Mục đích của từ khóa tĩnh trong Java

Từ tĩnh có thể được sử dụng để đính kèm Biến hoặc Phương thức vào Lớp. Biến hoặc Phương thức được đánh dấu tĩnh thuộc về Lớp thay vì bất kỳ trường hợp cụ thể nào. Nó trái ngược với biến Instance.

Cách gọi

Biến tĩnh và Phương thức có thể được sử dụng mà không cần có thể hiện của Class. Chỉ có Class là cần thiết để gọi một Phương thức tĩnh hoặc biến tĩnh.

/*
 * Here we will learn to access Static method and Static Variable.
 */
public class JavaStaticExample {
	static int i = 10;
	static void method() {
		System.out.println("Inside Static method");
	}
	public static void main(String[] args) {
		// Accessing Static method
		JavaStaticExample.method();
		// Accessing Static Variable
		System.out.println(JavaStaticExample.i);
		/*
		 * No Instance is required to access Static Variable or Method as we
		 * have seen above. Still we can access the same static variable and
		 * static method using Instace references as below.
		 */
		JavaStaticExample obj1 = new JavaStaticExample();
		JavaStaticExample obj2 = new JavaStaticExample();
		/*
		 * Accessing static variable in Non Static way. Compiler will warn you
		 * with below warning.
		 *
		 * The static field JavaStaticExample.i should be accessed in a static
		 * way.
		 */
		System.out.println(obj1.i);
		// Accessing satic method using reference.
		// Warning by compiler
		// "The static method method() from the type JavaStaticExample should be accessed in a static way"
		obj1.method();
	}
}

Đầu ra của chương trình trên:

Inside Static method
10
10
Inside Static method

Lưu ý *:  Từ khóa tĩnh có thể được sử dụng với các biến và Phương thức. Nó  không áp dụng cho Class .

Biến lớp – Trường tĩnh

Các biến lớp còn được gọi là các trường tĩnh chia sẻ các đặc điểm trên tất cả các Đối tượng trong một Lớp. 

Khi bạn khai báo một trường là tĩnh, chỉ một trường hợp duy nhất của biến liên quan được tạo, điều này là chung cho tất cả các Đối tượng của Lớp đó. 

Do đó, khi một Đối tượng thay đổi giá trị của biến Class, nó sẽ ảnh hưởng đến tất cả các Đối tượng của Class. 

Chúng ta có thể truy cập vào một biến Lớp bằng cách sử dụng tên của Lớp và không nhất thiết phải sử dụng tham chiếu đến một Đối tượng riêng lẻ trong Lớp. 

Các biến tĩnh có thể được truy cập ngay cả khi không có Đối tượng của Lớp đó tồn tại. Các biến lớp được khai báo bằng từ khóa tĩnh.

Phương thức lớp – Phương thức tĩnh

Các phương thức Class, tương tự như các biến Class có thể được gọi mà không cần có một thể hiện của Class. 

Các phương thức lớp thường được sử dụng để cung cấp các hàm toàn cục cho các chương trình Java. 

Ví dụ: Các phương thức trong gói java.lang.Math là các phương thức Class. Bạn không thể gọi các Phương thức không tĩnh từ bên trong Phương thức tĩnh.

Static Keyword Rules

  • Biến hoặc Phương thức   được đánh dấu tĩnh thuộc về Lớp thay vì bất kỳ Trường hợp cụ thể nào. 
  • Phương thức tĩnh hoặc biến có thể được sử dụng mà không cần tạo hoặc tham chiếu một thể hiện của Class. 
  • Nếu có các phiên bản, một biến tĩnh của một Lớp sẽ được chia sẻ bởi tất cả các phiên bản của lớp đó, Điều này sẽ chỉ dẫn đến một bản sao .
  • Phương thức tĩnh không thể truy cập vào một biến không tĩnh cũng như không thể gọi trực tiếp Phương thức không tĩnh (Nó có thể gọi hoặc truy cập Phương thức hoặc biến qua các thể hiện ).

Cheat-sheet

  • Tĩnh là một sửa đổi không truy cập.
  • Công cụ sửa đổi tĩnh có thể được áp dụng cho một biến hoặc Phương thức hoặc khối hoặc Lớp bên trong.
  • Các thành viên tĩnh chỉ thuộc về Class chứ không phải là một thể hiện.
  • Phương thức tĩnh không thể truy cập vào một biến thể hiện .
  • Các phương thức tĩnh không thể được ghi đè lên một s chúng là Class cụ thể và không thuộc về một Instance.
  • Phương pháp tĩnh có thể được xác định lại .
  • Nếu một Class chứa bất kỳ khối tĩnh nào, thì khối đó sẽ chỉ được thực thi khi Class được tải trong JVM. Tạo nhiều phiên bản không chạy khối tĩnh nhiều lần. Chỉ các constructor sẽ được thực hiện nhiều lần.
  • Nếu Class.forName ( kiểu class_name trên mạng ) được gọi thì khối tĩnh của Class sẽ được thực thi.

Bài viết gần đây

Hướng dẫn AOP Spring

Lập trình hướng đối tượng (AOP) khen ngợi OOP theo nghĩa là nó cũng cung cấp tính mô đun. Nhưng đơn vị chính của...

Bộ sưu tập cho người mới bắt đầu Java

Set là một Khung bộ sưu tập Java. Set là một Giao diện trong gói java.util . Nó thực hiện Bộ sưu tập Giao diện.

URI tùy chỉnh trong thẻ tùy chỉnh JSP

Chúng ta có thể sử dụng URI tùy chỉnh, để báo cho bộ chứa web về tệp tld. Trong trường hợp như vậy,...

Tiêm phụ thuộc với phương pháp nhà máy vào Spring

Spring framework cung cấp cơ sở để tiêm đậu bằng phương pháp nhà máy. Để làm như vậy, chúng ta có thể sử...

Sưu tập bản đồ cho người mới bắt đầu Java

Bản đồ là một Giao diện đi theo khung Bộ sưu tập Java. Map Collection Tutorial for...

Lặp lại bằng cách sử dụng thẻ tùy chỉnh JSP

Chúng ta có thể lặp lại nội dung thân của bất kỳ thẻ nào bằng phương thức doAfterBody () của giao diện IterationTag .

Leave a reply

Please enter your comment!
Please enter your name here