Static là gì? Học Static trong PHP và Java

Static trong Java là kiến thức cơ bản mà ai học Java đều phải biết. Nhưng trong PHP, nó lại ít được nhắc đến trong trường hay các trung tâm nên nhiều lập trình ít kinh nghiệm bỏ qua nó, dẫn đến việc khi phỏng vấn dễ bị hổng kiến thức. Bài viết này sẽ viết kỹ về Static và so sánh giữa PHP và Java.

Kiến thức chung

Static trong lập trình hướng đối tượng là một thành phần tĩnh (có thể là thuộc tính hoặc phương thức) mà nó hoạt động như một biến toàn cục, dù cho nó có được xử lý ở trong bất kỳ một file nào đi nữa (trong cùng một chương trình) thì nó đều lưu lại giá trị cuối cùng mà nó được thực hiện vào trong lớp.

=> Static có thể dùng ở bất kỳ file nào và lưu giá trị cuối cùng.

Phương thức (hàm) Static là phương thức (hàm) mức lớp, nghĩa là không phương thức (hàm) nào trùng tên với nó. Override (ghi đè) cũng không được.

=> Static Function là hàm độc quyền, không trùng tên, không Override (ghi đè) được.

VD: public static void main()
Không hàm nào trong Java trùng tên main() hay tạo hàm main() mới Override (ghi đè) nội dung lên.

Thuật ngữ phải nhớ

Phương thức: là hàm
Thuộc tính: là biến.

Static trong Java

Static trong PHP

Demo

Hãy phân biệt 2 trường hợp có và không có Static sau

Static là gì? Học Static trong PHP và Java

Không có Static

Static là gì? Học Static trong PHP và Java

Có Static

Như chúng ta thấy, Class ConNguoi sẽ mặc định chạy từ trên xuống dưới.
khi không sử dụng Static, biến $name sẽ có giá trị là ‘amonymouse’ do chương trình chạy từ trên xuống dưới.
Khi có sử dụng Static, biến $name sẽ có giá trị là giá trị nhập vào từ nơi khác.

Gọi thành phần tĩnh

Gọi static trong cùng class: dùng self:: hoặc TenClass:: hoặc hoặc static::ten

Static là gì? Học Static trong PHP và Java

Gọi static ngoài class: dùng TenClass::tenPhuongThuc() hoặc ClassName::$tenthuoctinh hoặc cách truyền thống là $class = new TenClass() rồi $class->tenPhuongThuc()

Static là gì? Học Static trong PHP và Java

Gọi static từ class cha: dùng parent::getName();

Static là gì? Học Static trong PHP và Java

Tài liệu tiếng Anh: Zentut
Tài liệu tiếng Việt: toidicode

Static là gì? Học Static trong PHP và Java

Leave a Comment