IT - Lập trình

Static trong Java là gì? Những thông tin cơ bản nhất về Static 2021

3.8/5 - (24 bình chọn)

Static là một trong những từ khóa quan trọng của Java. Để lập trình tốt, bạn cần nắm chắc khái niệm của từ khóa Static cũng như các dạng thể hiện và cách sử dụng của nó. Static không gây khó khăn cho người dùng nhưng lại đòi hỏi bạn phải thấu hiểu hoàn toàn khái niệm của nó để có thể vận dụng tốt. Với bài viết sau đây, Teky giúp bạn tìm hiểu về các thông tin và nội dung xung quanh từ khóa Static trong Java.

Khái niệm của Static trong Java là gì?

Đầu tiên, ta sẽ tìm hiểu đáp án cho câu hỏi, Static là gì? Về cơ bản, từ khóa Static được dùng để quản lý bộ nhớ một cách có hệ thống hơn. Tuy nhiên, Static không thể quản lý bộ nhớ của đối tượng (hay còn gọi là thể hiện lớp) mà chỉ quản lý bộ nhớ của lớp thôi.

Static có thể được áp dụng với các biến, các phương thức, các khối hoặc các lớp lồng nhau. Chi tiết về cách sử dụng Static như sau:

Tìm hiểu về Static trong Java
Tìm hiểu về Static trong Java
  • Biến Static (Static Variables): Ta có thể thấy rằng, Static dịch ra là Tĩnh. Chính vì vậy, biến Static hay được gọi là biến tĩnh khi ta khai báo chúng.
  • Phước thức Static (Static Methods): Khi người dùng tiến hành khai báo một phương thức dưới dạng Static thì nó được gọi là phương thức Static.
  • Khối Static (Static Blocks): Khi muốn khởi tạo các thành viên thuộc nhóm dữ liệu Static, ta sẽ tiến hành sử dụng khối Static.
  • Lớp Static (Static Class): Người dùng có thể đặt các lớp lồng nhau thành dạng Static. Các lớp lồng nhau này có thể được truy cập mà không cần đến object của các lớp bên ngoài.
  • Import Static: Ta được phép tiến hành Import các Static Member của một lớp hoặc một package vào một lớp khác bằng phương thức sử dụng từ khóa Import với các phiên bản Java từ 5 trở lên. Sau đó, người dùng có thể vận dụng Import Static đó như một thành viên của lớp.

dang-ky-lap-trinh

>>> xem thêm : Jira là gì? Tổng hợp một số ưu nhược điểm của Jira

Cấu trúc hoạt động của biến Static trong Java

Biến Static có thể dùng để chỉ thuộc tính chung của một nhóm đối tượng chứ không chỉ một đối tượng riêng lẻ. Ví dụ, ta dùng biến Static để khai báo tên công ty của một nhóm nhân viên hoặc tên trường đại học của một nhóm sinh viên. Trong khu vực class, biến Static chỉ nhận bộ nhớ được một lần duy nhất tại thời điểm class loading.

Biến Static trong Java còn có thể được khai báo đồng thời cùng các từ khóa Static khác. Khi đó, nó được gọi là class variable. Để tiết kiệm bộ nhớ hơn, biến Static được sử dụng như một thuộc tính chung của tất cả các objects (hoặc instances) trong lớp đó. Nó có thể được gọi khi chưa cần tạo đối tượng nào.

Các bước hoạt động của Static trong lớp
Các bước hoạt động của Static trong lớp

Nếu một biến vừa được khai báo Static lại vừa được khai báo Final trong Java thì nó được xem như một hằng số. Khi giải trình một hằng số, người dùng cần viết hoa chữ cái đầu và phân cách bằng dấu (_) khi có nhiều từ.

Giá trị mặc định dùng để khai báo biến Static và non-Static là tương đồng. Cụ thể:

  • Giá trị mặc định của primitive integers (long, int, short, byte) là 0
  • Giá trị mặc định của primitive floating points (double, float) là 0.0
  • Giá trị mặc định của boolean là false
  • Giá trị mặc định của object references là null

>>> Xem thêm : Lập trình Assembly là gì? Có nên học Assembly hay không?

Ví dụ về biến Static Class trong Java

Ta có 300 sinh viên trường đại học TMU, college được dùng để chỉ thuộc tính chung của các đối tượng. Khi sử dụng Static, ta sẽ chỉ cần cấp phát bộ nhớ cho tất cả các đối tượng trong 1 lần duy nhất.

// Chương trình Java ví dụ về biến static

class Student{

  int id; //instance variable

  String name;

  static String college =”TMU”; //static variable

  //constructor

  Student(int i, String n){

    id = i;

    name = n;

  }

  // Phương thức để hiển thị thông tin sinh viên

  void display(){

    System.out.println(id+” “+name+” “+college);

  }

}

// Tạo class khác để thực hiện hiển thị dữ liệu

public 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=”TMU – ICT Hà Nội”;

    s1.display();

    s2.display();

  }

}

Với nội dung như trê, ta thu được kết quả là:

17 Hải TMU

18 Doanh TMU

Ví dụ về Static trong Java
Ví dụ về Static trong Java

>>> Xem thêm : App Inventor là gì? Hướng dẫn sử dụng App Inventor

Lưu ý về phương thức Static Java

Đặc điểm của phương thức Static trong Java

Như đã nói ở trên, một phương thức được gọi là Static khi ta khai báo nó với biến Static. Phương thức Static bao gồm một số đặc điểm rất riêng biệt:

  • Phương thức Static thuộc một lớp nhưng không phải đối tượng của lớp.
  • Người dùng có thể gọi phương thức Static mà không cần phải khởi tạo trước một lớp.
  • Biến Static có thể được truy cập bởi phương thức Static để thay đổi giá trị của nó.
  • Phương thức Static không thể gọi được phương thức non-Static, nó chỉ có thể gọi được phương thức dạng khác. Ngoài ra, phương thức Static cũng không thể truy cập được data của phương thức non-Static.
  • Ta không thể dùng phương thức Static với 2 từ khóa this và super.
  • Bản chất của quá trình đè dựa trên hoạt động gán động khi chương trình đang chạy hoặc gán tĩnh tại thời gian biên dịch. Chính vì thế, người dùng không thể ghi đè phương thức trong Java. Phương thức tĩnh không có ràng buộc với thực thể của class nên cũng không thể ghi đè nó.
Đặc điểm của Static trong Java
Đặc điểm của Static trong Java

Trường hợp nên sử dụng phương thức Static

Có những trường hợp riêng để sử dụng phương thức Static. Người dùng nên cân nhắc các yếu tố sao cho phương thức Static phát huy hiệu quả ở mức cao nhất và tránh được rủi ro.

Một trong những trường hợp phổ biến nhất để sử dụng từ khóa Static trong Java cho một phương thức là khi phương thức ấy không bị phụ thuộc vào trạng thái của một đối tượng bất kỳ. Nói dễ hiểu hơn tức là phương thức không cần dùng đến dữ liệu thành viên. Mọi thứ sẽ được truyền đi dưới dạng tham số.

Bạn có thể ứng dụng Static Method như một phương thức tiện ích bởi nó cho phép người dùng truy cập trực tiếp bằng tên lớp mà không cần bất cứ thể hiện nào. Ví dụ phổ biến nhất của trường hợp này chính là lớp java.lang.Math.

Và cuối cùng, người ta cũng sẽ sử dụng phương thức Static trong trường hợp các Design Pattern cần truy cập global như Singleton pattern, Factory pattern…

dang-ky-lap-trinh-teky1

>>> Xem thêm : Ip là gì? Cách check ip update 2022 mà bạn cần phải biết!

Ví dụ về phương thức Static trong Java

Ví dụ: Website gpcoder.com hiện sở hữu rất nhiều bài viết. Mỗi bài viết cần phải có địa chỉ của website ở cuối. Tất nhiên là các địa chỉ này đều giống nhau và có nhiều lớp cần sử dụng. Để giảm thiểu lưu trữ bộ nhớ và dễ dàng chia sẻ khi sử dụng ở các lớp khác, người dùng nên áp dụng từ khóa Static như sau:

public class UsingStaticExample {

    private String subject;

    UsingStaticExample (String subject) {

        this.subject = subject;

    }

    public void print() {

        System.out.println(“Subject = ” + subject);

        System.out.println(“Website = ” + MyWebsite.WEBSITE);

    }

    public static void changeWebsite(String website) {

        MyWebsite.WEBSITE = website;

    }

    public static void main(String[] args) {

        UsingStaticExample ex1 = new UsingStaticExample(“Core Java”);

        ex1.changeWebsite(“abc.com”);

        ex1.print();

        System.out.println(“—-“);

        UsingStaticExample.changeWebsite(“https://gpcoder.com”);

        ex1.print();

    }

}

Từ đó, ta có kết quả thu được là:

Subject = Core Java

Website = abc.com

—-

Subject = Core Java

Website = https://gpcoder.com

Mời bạn đọc tham khảo thêm: Thủ thuật tăng tốc máy tính Win 10 không phải ai cũng biết

Kết luận

Với bài viết trên, Teky đã giúp bạn đọc hiểu thêm một số thông tin cơ bản xung quanh biến và phương thức Static trong Java. Thực ra dùng Static không hề khó nếu bạn nắm rõ khái niệm và cách thức hoạt động của nó. Static hoạt động rất tốt trong trường hợp người dùng muốn tiết kiệm bộ nhớ và giảm tải các quy trình trùng lặp với nhau. Tuy nhiên, hãy cân nhắc các trường hợp nên sử dụng Static như chúng tôi đã gợi ý. Việc quá lạm dụng Static ngược lại sẽ gây tốn thời gian và rắc rối hơn.

Cảm ơn bạn đọc đã theo dõi bài viết về Static trong Java trong Java của chúng tôi. Đừng quên rằng Teky còn rất nhiều bài viết giải mã về lập trình – IT rất hấp dẫn.

Học viện công nghệ Teky là nơi học lập trình hàng đầu Việt Nam

TEKY là Học viện sáng tạo công nghệ với chương trình giảng dạy STEAM (Science – Technology – Engineering – Art – Mathematics) theo chuẩn Mỹ đầu tiên tại Việt Nam dành cho trẻ em từ 4 đến 18 tuổi.

Được thành lập vào tháng 6 năm 2016, TEKY quyết tâm thực hiện sứ mệnh mang đến cho thế hệ trẻ Việt Nam kiến thức toàn diện về STEAM, đặc biệt là các tư duy công nghệ, khoa học máy tính và kỹ năng thế kỷ 21 – 4Cs (Critical Thinking: Tư duy phản biện – Communication: Giao tiếp – Creativity: Sáng tạo – Collaboration: Làm việc nhóm).

Trải nghiệm học lập trình miễn phí
Trải nghiệm học lập trình miễn phí

Đây là chương trình không chỉ trang bị kiến thức lập trình mà còn rèn luyện nhóm kỹ năng 4Cs. Trẻ sẽ được:

  •  Học tư duy phản biện thông qua việc phân tích các vấn đề.
  •  Học tính sáng tạo tư duy Logic thông qua việc lắp đặt và lập trình robot th ông qua các mô hình Lego Mindstorm, app trò chơi. Giúp con học giỏi môn Toán trên lớp
  •  Kỹ năng hợp tác thông qua các trò chơi team-building, các dự án nhóm trên lớp.
  •  Phát huy khả năng giao tiếp hiệu quả bằng nhiều bài tập và hoạt động hấp dẫn.

Các bộ môn giảng dạy tại Teky gồm: Lập trình và phát triển ứng dụng, lập trình game, lập trình web với python  Lập trình Scratch Robotics Engineering, Công nghệ 3D và MultiMedia. Chúng tôi tin rằng trẻ em Việt Nam có cơ hội phát triển mạnh mẽ trong một nền kinh tế số và cần được trang bị sẵn sàng để trở thành những doanh nhân công nghệ trong tương lai.

Liên hệ ngay học viện công nghệ sáng tạo TEKY để được tư vấn khóa học:

  • Cam kêt 7 tuổi có thể lập trình
  • Top 10 dự án giáo dục có tầm ảnh hưởng nhất Đông Nam Á 2017 & 2018
  • Top 3 Dự án xuất sắc nhất, NextGen – Thụy Sĩ
  •  Hotline Hà Nội: 024-7109-6668 | 0975-241-015
  •  Hotline Hồ Chí Minh: 028-7109 9948 | 097-900-8642

Website https://teky.edu.vn | Email: support@teky.edu.vn |

Những bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Back to top button
Nội dung

 

TRẢI NGHIỆM CÔNG NGHỆ

 

Your message has been successfully sent

Unable to send.