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

Tìm hiểu chi tiết bên trong JVM

JVM (Java Virtual Machine) là một máy ảo. Nó cung cấp môi trường runtime, nơi mà mã Java bytecode sẽ được thực thi.

Sự Khác nhau giữa JDK, JRE và JVM

Trước khi thực sự đặt tay gõ các dòng code Java, cài đặt Java thì chúng ta phải hiểu sự khác nhau giữa JDK, JRE và JVM.

Hướng dẫn Cài đặt đường dẫn PATH trong Java

Nếu bạn tạo dự án Java bên ngoài thư mục JDK / bin, thì cần phải thiết lập đường dẫn của JDK. Đây là 2 cách cài đặt đường dẫn path trong Java.

Cách hoạt động của Chương trình Java: Hello Java

Tìm hiểu những gì xảy ra trong khi biên dịch và chạy chương trình java. Hơn nữa, chúng ta sẽ làm rõ một số câu hỏi ở chương trình Hello Java của chúng ta.

Viết Chương trình Java đầu tiên: Hello Java

Trong bài hướng dẫn này, chúng ta sẽ học cách viết chương trình đơn giản đầu tiên với ngôn ngữ lập trình Java. Qua bài này bạn sẽ biết cách viết Java, Compile và chạy một chương trình Java bất kỳ

So sánh JAVA vs C++

Hôm nay trong bài viết này mình sẽ so sánh Java vs C++. Còn nếu bạn muốn đọc thêm về so sánh Java vs PHP hay Java với C# thì xem thêm tại đây:

Leave a reply

Please enter your comment!
Please enter your name here