Static Trong Java Là Gì

Cập nhật: 06/01/2022 Lượt xem: 7 Views

Từ khóa static trong Java được sử dụng đầy đủ để quản lý bộ nhớ. Chúng ta có thể áp dụng từ khóa stactic với biến, phương thức, và lớp lồng nhau.

Bạn đang xem: Static trong java là gì

*

Từ khóa Static trong Java

Từ khóa static thuộc về class chứ không phải thuộc về thể hiện của class.

Static có thể là:

Variable (Biến của class)Method (Phương thức của class)BlockNested class

1. Biến static trong Java

Nếu bạn tuyên bố bất kỳ biến nào với từ khóa static, nó là một biến static.

Biến static có thể được sử dụng để chỉ thuộc tính chung của tất cả các mục tiêu (không phải là duy nhất cho từng mục tiêu), ví dụ: tên doanh nghiệp của nhân viên, tên trường đại học của sinh viên, v.v.Biến static chỉ nhận được bộ nhớ một lần trong khu vực class tại thời điểm tải lớp (class loading).

1.1. Ưu điểm của biến static

Biến static làm cho bộ nhớ chương trình của bạn hiệu quả hơn (tức là, nó tiết kiệm bộ nhớ).

1.2. Có vấn đề gì không có biến static?

class Student int id; String name; String college=”NIIT”; Giả sử có 500 sinh viên trong trường đại học NIIT, thời gian này tất cả các data member cá thể sẽ nhận được bộ nhớ mỗi khi mục tiêu được tạo.

Tất cả các sinh viên có id và name duy nhất của nó, vì vậy data member cá thể là tốt trong trường hợp như vậy.

Ở đây, ‘college” nhắc đến thuộc tính chung của tất cả các mục tiêu. Nếu chúng ta làm cho nó thành static, trường này sẽ chỉ nhận được cấp phát bộ nhớ một lần.

Lưu ý: Thuộc tính static chia sẻ cho tất cả các mục tiêu, nó có thể gọi khi chưa cần tạo mục tiêu nào.

1.3. Ví dụ về biến static

Để hiểu rõ về biến static hơn thì chúng ta sẽ cùng xem ví dụ sau:

File: TestStaticVariable1.java

// Chương trình Java ví dụ về biến static class Student int id; //instance variable String name; static String college =”NIIT”; //static variable //constructor Student(int i, String n) id = i; name = n; // Phương thức để hiển thị thông tin sin viên void display() System.out.println(id+” “+name+” “+college); // Tạo class khác để thực hiện hiển thị dữ liệupublic class TestStaticVariable1 public static void main(String args) Student s1 = new Student(17,”Hải”); Student s2 = new Student(18,”Doanh”); // Chúng ta có thể thay đổi trường đại học của tất cả sv bằng 1 dòng code //Student.college=”NIIT – ICT Hà Nội”; s1.display(); s2.display(); Kết quả:

17 Hải NIIT18 Doanh NIIT

1.4. Chương trình bộ đếm không có biến static

Trong ví dụ này, chúng ta đã tạo ra một biến thể hiện có tên là count được tăng lên trong hàm tạo.

Do biến mục tiêu nhận được bộ nhớ tại thời điểm tạo mục tiêu, mỗi mục tiêu sẽ có bản sao của biến thể hiện.

Xem thêm: Vib Là Ngân Hàng Vib Là Ngân Hàng Gì ? Ngân Hàng Vib Có Uy Tín Không?

Tham khảo:

Nếu nó được tăng lên, nó sẽ không phản ánh đến các mục tiêu khác. Vì vậy, mỗi mục tiêu sẽ có giá trị là 1 trong biến count.

// Chương trình Java sử dụng biến thể hiện (instance variable) // lấy bộ nhớ tại mỗi thời điểm tạo mục tiêu của class.class Counter int count = 0;/* lấy bộ nhớ tại mỗi thời điểm thể hiện được tạo*/ Counter() count++; // Tăng lên 1 đơn vị System.out.println(count); public static void main(String args) // Tạo các mục tiêu Counter c1=new Counter(); Counter c2=new Counter(); Counter c3=new Counter(); Kết quả:

111

1.5. Chương trình bộ đếm có biến static

Như chúng ta đã nhắc ở trên, biến static sẽ chỉ nhận được bộ nhớ một lần, nếu bất kỳ mục tiêu nào thay đổi giá trị của biến tĩnh, nó sẽ giữ lại giá trị của nó.

// Chương trình Java sử dụng biến static// nó chia sẻ với tất cả các mục tiêu.class Counter static int count = 0;/* Chỉ nhận bộ nhớ một lần và giữ lại giá trị của nó*/ Counter() count++; // Tăng lên 1 đơn vị System.out.println(count); public static void main(String args) // Tạo các mục tiêu Counter c1=new Counter(); Counter c2=new Counter(); Counter c3=new Counter(); Kết quả:

123

2. Phương thức static trong Java

Nếu bạn áp dụng từ khóa static cho bất kỳ phương thức nào, nó được gọi là phương thức static.Một phương thức static thuộc về class chứ không phải là mục tiêu của một class.Một phương thức static có thể được gọi mà không cần tạo một thể hiện của một class.Một phương thức static có thể truy cập static data member và có thể thay đổi giá trị của nó.

2.1. Ví dụ về phương thức static trong Java

// Chương trình Java sử dụng phương thức static class Student int id; String name; static String college = “NIIT”; // Phương thức static thay đổi giá trị của biến static static void change() college = “NIIT – ICT Hà Nội”; // Hàm tạo để khởi tạo biến Student(int i, String n) id = i; name = n; // Phương thức hiển thị dữ liệu void display() System.out.println(id+” “+name+” “+college); // Class tạo và hiển thị dữ liệu của mục tiêu public class TestStaticMethod public static void main(String args) Student.change(); // Gọi phương thức change() // Tạo mục tiêu Student s1 = new Student(17,”Hải”); Student s2 = new Student(18,”Doanh”); Student s3 = new Student(19,”Việt”); // Gọi phương thức hiển thị dữ liệu s1.display(); s2.display(); s3.display(); Bạn đoán college lúc này là NIIT hay là NIIT – ICT Hà Nội?

Kết quả:

17 Hải NIIT – ICT Hà Nội18 Doanh NIIT – ICT Hà Nội19 Việt NIIT – ICT Hà Nội

2.2. Một ví dụ khác sử dụng phương thức static

// Chương trình Java để lập phương của một số đã cho bằng phương thức tĩnhclass Calculate static int cube(int x) return x*x*x; public static void main(String args) int result = Calculate.cube(5); System.out.println(result); Như bạn thấy đấy, chúng ta có thể gọi phương thức static mà không cần khởi tạo mục tiêu nào cả.

Kết quả:

125

Hạn chế của phương thức static là gì?

Có 2 điểm hạn chế của phương thức static:Phương thức static không thể sử dụng data member non-static hoặc không thể gọi phương thức non-static trực tiếp.this và super không thể được sử dụng trong bối cảnh static.

Ví dụ:

class A int a = 40; //non static public static void main(String args) System.out.println(a); Kết quả:

Compile Time Error

Tại sao phương thức main của Java là static?

Đó là bởi vì mục tiêu không cần phải gọi một phương thức static.

Nếu đó là một phương thức non-static, trước tiên Máy ảo Java tạo một mục tiêu sau đó gọi phương thức main() sẽ dẫn đến vấn đề cấp phát thêm bộ nhớ.

3. Java static block

Java static block:

Được sử dụng để khởi tạo static data member.Nó được thực thi trước phương thức static tại thời điểm class loading.

3.1. Ví dụ về static block trong Java

Để hiểu hơn về static block chúng ta hãy xem ví dụ sau:

class A2 static System.out.println(“static block được gọi”); public static void main(String args) System.out.println(“Hello main”); Kết quả:

static block được gọiHello main

3.3. Có thể thực thi một chương trình mà không có phương thức main() không?

Không.

Một trong những cách làm như vậy là sử dụng static block, nhưng chỉ có thể cho đến JDK 1.6. Kể từ JDK 1.7, không thể thực thi một class java mà không có phương thức main.

Bạn thử chạy thì biết:

class A3 static System.out.println(“static block được gọi”); System.exit(0); Kết quả nếu chạy từ phiên bản JDK 1.6 trở về trước:

static block được gọiNhưng kể từ phiên bản JDK 1.7 trở đi thì:

Error: Main method not found in class A3, please define the main method as: public static void main(String args)or a JavaFX application class must extend javafx.application.Application

Bạn đã hiểu về từ khóa static trong Java chưa?

Như vậy là trong bài viết này bạn đã được tìm hiểu về từ khóa static, biến static, phương thức staticblock static trong Java.

Xem thêm: Phản Dame Nghĩa Là Gì – Nên Dùng Từ Này Trong Trường Hợp Nào

Hãy thực hiện lại các ví dụ để thực sự hiểu về static trong Java nhé.

Chuyên mục: Kiến thức


Từ khoá liên quan về chủ đề Static Trong Java Là Gì

#Static #Trong #Java #Là #Gì.

Chân thành cảm ơn bạn đã đọc tin tại Centralreadingmosque

Vậy là bạn đã có thêm nhiều thông tin và kiến thức bổ ích về chủ đề Static Trong Java Là Gì rồi nhé. Hãy cùng Centralreadingmosque đọc thêm nhiều bài viết hơn để có nhiều kiến thức tổng hợp hữu ích hơn nhé!. Xin cám ơn người mua đã quan tâm theo dõi.

Nguồn: Static Trong Java Là Gì

Các bài viết trên trang chỉ có tính chất tham khảo, không thay thế cho việc chẩn đoán hoặc điều trị.
Bình luận của bạn