Kom i gang. Det er Gratis
eller tilmeld med din email adresse
MODULE 2 af Mind Map: MODULE 2

1. access modifier

1.1. là các từ khóa được sử dụng để quy định mức độ truy cập đến lớp và các thành phần lớp

1.2. public có thể truy cập từ bất cứ đâu

1.3. private các phương thức và thuộc tính chỉ được phép truy xuất trong cung 1 lớp

1.4. protected các phương thức và thuộc tính được phép truy xuất trong cùng 1 lớp và ở lớp con kế thừa

2. Hàm

2.1. Thân hàm

2.2. là một khối lệnh thực hiện 1 nhiệm vụ nhất định

2.3. có thể sử dụng lặp đi lặp lại nhiều lần

2.4. không được thực thi ngay tức thì khi nạp trang php

2.5. chỉ thực thi khi được gọi hàm

2.6. khai báo hàm

2.6.1. Tên hàm

2.6.1.1. phải bắt đầu bằng ký tự chữ hoặc dấu gạch dưới

2.6.1.2. không phân biệt chữ hoa và chữ thường

2.6.1.3. nên đặt tên hàm có ý nghĩa

2.6.2. Tham số đầu vào

2.6.2.1. là cơ chế truyền dữ liệu đầu vào vào cho hàm

2.6.2.2. tham số giống như 1 biến

2.6.2.3. có thể truyền 1 hoặc nhiều tham số vào hàm

2.6.2.4. các tham số cách nhau bởi dấu phẩy (,)

2.6.2.5. các tham số được đặt trong () sau tên hàm

2.6.2.6. giá trị

2.6.2.6.1. có thể quy định giá trị mặc định của tham số. khi gọi hàm mà không truyền giá trị vào cho tham số đó thì giá trị mặc định được sử dụng

2.6.2.6.2. trả về

3. mảng

3.1. mảng đa chiều

3.1.1. là mảng có các phần tử là mảng

3.1.2. có thể có mảng 2 chiều 3 chiều hoặc nhiều hơn

3.1.3. thì cần nhiều chỉ số để truy xuất đến 1 phần tử

3.1.4. duyêt mảng

3.1.4.1. sử dụng các vòng lặp lồng nhau để duyệt qua tất cả các phần tử của mảng nhiều chiều

3.2. $array

3.2.1. indexarrays

3.2.1.1. mảng 1 chiều với 1 chỉ số

3.2.2. assocltivearrays

3.2.2.1. màng 1 chiều với chỉ số là 1 từ khóa

3.2.3. multidimenslonalalarrays

3.2.4. count() trả về độ dài của mảng

3.2.5. for và foreach để duyệt mang

3.3. là cơ chế giúp lưu trữ nhiều giá trị trong cùng 1 biến

3.4. các giá trị được lưu trong mảng thương là cung loại

3.5. khái niệm

3.5.1. tên mảng tuân thủ các quy tắc như tên biến

3.5.2. phần tử mảng : từng giá trị của mảng

3.5.3. độ dài mảng : số lượng phần tử của mảng

3.5.4. chỉ số : vị trí của các phần tử trong mảng

4. oop

4.1. static

4.1.1. được sử dụng để khai báo các thuộc tính và phương thức của lớp

4.1.2. các thành phần static trực thuộc lớp thay vi trực thuộc đối tượng

4.1.3. biến static còn được gọi là biến của lớp

4.1.4. phương thức static còn được gọi là phương thức của lớp

4.1.5. truy xuất các thành phần static bằng cách sử dụng lớp hoặc đối tượng

4.1.6. không cần khởi tạo vẫn có thể sử dụng các thành phần static

4.2. setter

4.3. getter

4.4. kế thừa

4.4.1. là cơ chế cho phép lớp con sử dụng lại các đặc điểm và hành vi đã được định nghĩa trong lớp cha

4.4.2. quan hệ lớp con với lớp cha là is-a

4.4.3. khái niệm

4.4.3.1. lớp được kế thừa gọi là lớp cha

4.4.3.2. lớp kế thừa gọi là lớp con

4.4.3.2.1. lớp con kế thừa tất cả thành phần của lớp cha ngoại trừ các thành phần khai báo private

4.4.3.2.2. lớp con có thể gọi constructor của lớp cha

4.4.3.2.3. lớp con có thể định nghĩa thêm các thuộc tính và phương thức mới

4.4.4. một số dạng kế thừa

4.4.4.1. single 1 lớp con kế thừa chỉ 1 lớp cha

4.4.4.2. multilevel 1 lớp con kế thừa từ 1 lóp cha, lớp cha lại kế thừa 1 lớp khác trên nó

4.4.4.3. hierarchical 1 lớp cha có nhiều lớp con với nhiều level khác nhau

4.4.5. cú pháp kế thừa

4.4.5.1. từ khóa extends được sử dụng dể kế thừa 1 lớp

4.4.6. method overriding (ghi đè phương thức )

4.4.6.1. là cơ chế cho phép lớp con định nghĩa lại các phương thức ở lớp cha

4.4.6.2. phương thức override ở lớp con có cùng tên cung danh sách tham số và kiểu dữ liệu trả về so với phương thức ở lớp cha

4.4.6.3. phương thức ở lớp con phải có access modifier có level bắng và cao hơn lớp cha

4.4.7. parent

4.4.7.1. được sử dụng trong 1 lớp con đẻ truy xuất các thuộc tính và phương thức lớp cha

4.4.7.2. parent::__construct được sử dụng trong lớp con để gọi đến constructor của lớp cha

4.4.8. final

4.4.8.1. được sử dụng với class hoặc method

4.4.8.2. với class ngăn chặn việc kế thừa 1 lớp

4.4.8.3. với method ngăn chặn việc ghi đè 1 phương thức

4.4.8.4. final class không thể là abstract class

4.5. là đơn vị thực thi cơ bản trong ngôn ngữ php, quy định hình thức và các khả năng của các đối tượng

4.6. constructor là 1 phương thức đặc biệt được sử dụng để khởi tạo các đối tượng của 1 lớp

4.7. đặt tên

4.7.1. tên lớp nên là 1 danh từ

4.7.2. tuân theo quy tắc Camel

4.7.3. nên đơn giản có nghĩa

4.7.4. không trùng với các từ khóa trong php

4.7.5. không được bắt đầu bằng chữ số . Có thể bắt đầu bằng ký tự $ hoặc _

4.8. khởi tạo đối tượng

4.8.1. sử dụng từ khóa new để tạo dối tượng

4.9. khai báo thuộc tính

4.9.1. mô tả các đặc điểm của đối tượng

4.9.2. thuộc tính còn được gọi là biến của đối tượng (instance variable)

4.10. khai báo phương thức

4.10.1. mô tả hành vi mà đối tượng có thể thực hiện

4.10.2. phương thức còn được gọi là phương thức của đối tượng (instance method)

4.11. hàm tạo (constructor)

4.11.1. dùng để tạo và khởi tạo các trạng thái ban đầu cuả đối tượng. Mặc định sẽ có 1 hàm tạo không có đối số được thêm vào cho lớp

4.11.2. có thể lựa chọn các constructor khác nhau bằng cách truyền vào các tham số khác nhau

4.12. truy xuất thuộc tính

4.12.1. thông qua biến trỏ đến đối tượng

4.12.2. sử dụng toán tử -> để truy xuất thuộc tính đối tượng

4.13. gọi phương thức

4.13.1. sử dụng toán tử -> để gọi phương thức đối tượng

4.14. từ khóa this

4.14.1. được sử dụng để đại diện cho đối tượng hiện tại

4.14.2. có thể sử dụng từ khóa this để truy cập đến các thành phần của đối tượng hiện tại

4.15. khai báo lớp đồng thời cũng là khai báo 1 kiểu dữ liệu mới để có thể khởi tạo các đối tượng thuộc kiểu dữ liệu đó

5. clean code

5.1. mã sạch

5.2. dễ đọc

5.3. dễ cải tiến

5.4. dễ bảo trì

5.5. ít phụ thuộc

5.6. không trùng lặp

5.7. thể hiện rõ ý tưởng thiết kế

5.8. tại sao cần clean code

5.8.1. năng suất sẽ giảm theo thời gian nếu làm việc với mã nguồn không tốt

5.8.2. các yếu tố ảnh hưởng đến mã nguồn

5.8.2.1. định danh

5.8.2.2. phương thức

5.8.2.3. ghi chú

5.8.2.4. định dạng của mã nguồn

5.8.2.5. thiết kế kiến trúc

5.8.2.6. xử lý lỗi và ngoại lệ

5.8.2.7. test

5.9. đặt tên tốt

5.9.1. cần thể hiện rõ ý nghĩa của đối tượng mà nó đại diện

5.9.2. tránh gây hiểu lầm

5.9.3. có sự khác biệt rõ ràng giữa các tên

5.9.4. tên phát âm được

5.9.5. tên gọi có thể tìm kiếm được

5.9.6. không viết tắt hoặc mã hóa

5.9.7. sử dụng đúng ngữ nghĩa

5.9.8. đặt tên lớp

5.9.8.1. nên là danh từ

5.9.8.2. tránh dùng từ gần nghĩa

5.9.8.3. nên bắt đầu bằng chữ viết hoa

5.9.8.4. tuân theo quy tắc CamelCase

5.9.9. tên phương thức

5.9.9.1. là 1 động từ hoặc bắt đầu bằng 1 động từ

5.9.9.2. bắt đầu bằng chữ viết thường

5.9.9.3. tuân theo quy tắc camelCase

6. Refactoring( tái cấu trúc mã nguồn )

6.1. là các kỹ thuật cho phép chỉnh sửa mã nguồn nội bộ mà không làm thay đổi hành vi củ hệ thống đối với bên ngoài

6.2. mục đích

6.2.1. mã nguồn dễ duy trì hơn

6.2.2. mã nguồn dễ mở rộng hơn

6.3. đổi tên biến và phương thức

6.3.1. để trở nên tốt hơn

6.3.1.1. dễ đọc

6.3.1.2. có ý nghĩa

6.3.1.3. thể hiện được ý nghĩa

6.3.1.4. tuân thủ coding convention

6.3.2. lưu ý

6.3.2.1. đổi tên tại vị trí khai báo

6.3.2.2. đổi tên tại các vị trí có sử dụng tên biến hoặc phương thức

6.3.3. nên sử dụng tính năng của IDE để đổi tên biến và phương thức

6.4. tách biến

6.4.1. giúp đơn giản hóa các biểu thức và giúp dễ hiểu hơn

6.5. tách hằng

6.5.1. mang lại ý nghĩa cho các giá trị thần kỳ và mã nguồn dễ hiểu hơn

6.6. tách phương thức

6.6.1. giúp các phương thức dễ đọc dễ hiểu dễ kiểm soát hơn

7. stack

7.1. giống như là 1 ngăn xếp

7.2. hoạt động theo nguyên lý last-in/first-out (vào sau / re trước )

7.3. có thể dùng mảng hoặc là 1 linkedlist để lưu trữ phần tử

7.4. thao tác cơ bản

7.4.1. push() : lưu giữ 1 phần tử trên ngăn xếp

7.4.2. pop() : xóa 1 phần tử từ ngăn xếp

7.4.3. peek() : lấy phần tử dữ liệu của ngăn xếp mà không xóa phần tử này

7.4.4. isEmpty() : kiểm tra rỗng

7.4.5. isfull() : kiểm tra ngăn xếp đã đầy hay chưa

8. abstract class

8.1. là những lớp có tính trừu tượng rất cao đến mức không thể tạo được các đối tượng của lớp đó

8.2. tính chất

8.2.1. không thể tạo đối tượng của lóp abstract

8.2.2. lớp abstract có thể có các thuộc tính và phương thức bình thường

8.2.3. 1 lớp chứa phương thức abstract thì lớp đó phải là abstract

8.2.4. 1 lớp không phải là abstract kế thừa 1 lớp cha abstract thì phai implement tất cả các phương thức abstract của lớp cha

8.2.5. 1 lớp abstract kế thừa 1 lớp cha abstract có thể không implement các phương thức của lớp cha

8.2.6. lớp abstract không thể là final

8.2.7. phương thức abstract không thể là final

9. thuật toán sắp xếp

9.1. là qúa trình xử lý 1 danh sách các phần tử để đặt chúng theo thứ tự thỏa mãn 1 tiêu chuẩn nào đó dựa trên nội dung thông tin lưu giữ tại mỗi phần tử

9.2. thường xét trường hợp các phần tử cần sắp xếp các con số

9.3. một số thuật toán sắp xếp

9.3.1. sắp xếp nổi bọt

9.3.1.1. so sánh 2 phần tử kề nhau nếu chúng chưa đứng đúng thứ tự thì đổi chỗ cho nhau

9.3.1.2. có thể tiến hành từ trên xuống (từ trái sang ) từ dưới lên ( từ phải sang )

9.3.1.3. ưu điểm : code ngắn gọn nhất

9.3.1.4. nhược điểm : hiệu suất thấp nhất

9.3.2. sắp xếp chèn

9.3.2.1. thực hiện sắp xếp day số theo cách duyệt tưng phần tử và chèn từng phần tử đó vào đúng vị trí trong mảng con đã sắp xếp sao cho dãy số trong mảng đã sắp xếp đó đảm bảo tính chất của 1 dãy số tăng dần

9.3.2.2. ưu điểm : chạy nhanh khi mảng nhỏ hay được sắp xếp 1 phần

9.3.2.3. nhược điểm : hiệu suất thấp

9.3.3. sắp xếp chọn

9.3.3.1. là sắp xếp 1 mảng bằng cách đi tìm phần tử có giá trị nhỏ nhất trong đoạn đoạn chưa được sắp xếp và đổi phần tử nhỏ nhất đó với phần tử ở đâu đoạn chưa được sắp xếp

9.3.3.2. thuật toán sẽ chia lam 2 mảng con

9.3.3.3. ưu điểm :thuật toán chạy nhanh hơn khi mảng sắp xếp 1 phần

9.3.3.4. nhược điểm : hiệu suất không cao

9.3.4. sắp xếp vun đống

9.3.5. sắp xếp nhanh

9.4. s

10. xử ký ngoại lệ

10.1. ngoại lệ là các lỗi phát sinh trong quá trình thực thi

10.2. các lỗi xảy ra

10.2.1. lỗi cú pháp

10.2.1.1. là lỗi xảy ra tại thời gian biên dịch trong các ngôn ngữ chương trình truyền thống và tại thời gian biên dịch trong javascript

10.2.2. lỗi chạy chương trình

10.2.2.1. là lỗi xảy ra trong suốt quá trình thực thi

10.2.3. lỗi logic

10.2.3.1. là kiểu lỗi khó có thể tìm dấu vết xảy ra khi tạo 1 lỗi về tính logic mà điều khiến script không nhận được kết quả như mong muốn

10.2.3.2. khó nắm bắt được lỗi logic bởi vì nó phụ thuộc vào yêu cầu và kiểu logic đặt vào chương trình

10.3. try-catch

10.3.1. dùng để tách phần giải quyết lỗi ra khỏi phần có thể sinh lỗi

10.3.2. quy định các loại ngoại lệ được bắt tại mức thực thi hiện hành

10.3.3. mã liên quan đến thuật toán nằm trong khối try

10.3.4. mã giải quyết vấn đề nằm trong khối catch

10.4. finally

10.4.1. sẽ luôn thực hiện vô điều kiện sau try-catch

10.5. throw

10.5.1. dùng để ném các lỗi có sẵn hoặc người dùng nghĩ ra

10.6. ngoại lệ do người dùng tạo

10.6.1. phải tạo 1 lớp là lớp mở rộng của lớp Exception có sẵn và chúng ta có thể thêm hàm để xử lý

11. String

11.1. là 1 kiểu dữ liệu cơ bản trong php

11.2. là dãy liên tiếp các ký tự

11.3. chuỗi không có ký tự gọi là chuỗi rỗng

11.4. đươc bao quanh bởi nháy đơn hoặc nháy kép

11.5. toán tử chuỗi

11.5.1. trong php để nối hai hay nhiều chuỗi ta sử dụng toán tử dấu chấm

11.6. ký tự đặc biệt

11.6.1. là những ký tự mà khi nó được viết vào bên trong chuỗi sẽ có nguy cơ làm ảnh hưởng đến cú pháp chuỗi khiến câu lệnh bị lỗi

11.7. chỉ số của ký tự chuỗi

11.7.1. chuỗi được coi như là mảng của các ký tự vì vậy các ký tự trong chuỗi được thao tác như thao tác với các phần tử trong mảng chứa các tập ký tự

12. Biểu thức chính quy

12.1. thường được gọi là Regex hoặc Regexp

12.2. là thuật toán khớp mẫu mạnh mẽ có thể được thực hiện trong 1 biểu thức nó giúp tiết kiệm thời gian khi xây dựng web động

12.3. là 1 nhóm các ký tự ký hiệu nó được sử dụng để tìm kiếm văn bản (text)

12.4. là 1 mẫu nó tương đồng quy luật với 1 chuỗi từ trái qua phải

12.5. trong lập trình nó được dùng với hàm xử ký chuỗi xử lý văn bản với các tác vụ tìm và thay thế chuỗi kiểm tra tính hợp lệ dữ liệu

12.6. tại sao dùng biểu thức chính quy

12.6.1. đơn giản hoá việc xác định các mẫu dữ liệu trong chuỗi dữ liệu băng cách gọi 1 hàm duy nhất giúp tiết kiệm thời gian lập trình

12.6.2. khi xác định đầu input người dùng nhập

12.6.3. highlight từ khóa tìm kiếm

12.6.4. khi tạo mẫu html tùy chỉnh biểu thức chính quy được sử dụng để xác đình các tag và thay thế chung bắng dữ liệu thực tế

12.6.5. đặc biệt sử dụng biểu thức chinh quy tăng perpormance của chương trình

12.7. khai báo

12.7.1. để khai báo 1 chuỗi Regular Expression / Regex ta chỉ cần khai báo băng ký tự / và kết thúc bằng ký tự /

12.8. Các ký tự dùng trong biểu thức chính quy được gọi là metacharacters

12.9. các hàm

12.9.1. preg_match()

12.9.1.1. so khớp và lấy kết quả của việc so sánh chuỗi dựa vào biểu thức chính quy. Hàm trả về TRUE/FALSE

12.9.2. preg_match_all()

12.9.2.1. ũng tương tự hàm preg_match() ở trên , tuy nhiên hai hàm này khác nhau ở chỗ , hàm preg_match_all() sẽ trả về toàn bộ các giá trị được so sánh khớp, còn hàm preg_match() chỉ trả về giá trị đầu tiên được so sánh khớp.

12.9.3. preg_split()

12.9.3.1. để chia nhỏ chuỗi thành mảng chứa các chuỗi con.

12.9.4. preg_replace()

12.9.4.1. dùng để tìm kiếm và thay thế một chuỗi nào đó khớp với đoạn Regular Expression truyền vào.

13. Cơ sở dữ liệu

13.1. là nhóm dữ liệu có tổ chức

13.2. là cơ chế lưu trữ dữ liệu

13.3. có nhiều CSDL khác nhau

13.3.1. CSDL phân cấp

13.3.2. CSDL mạng

13.3.3. CSDL quan hệ......

13.4. CSDL quan hệ

13.4.1. la CSDL được xây dựng trên mô hình dữ liệu quan hệ

13.4.2. dữ liệu được tổ chức trong bảng còn được gọi là quan hệ

13.4.3. dòng được gọi là bản ghi hoặc hàng

13.4.4. cột được gọi là thuộc tính hoặc trường

13.4.5. 1 bảng thường lưu trữ dữ liệu của 1 loại thực thể nhất định

14. Dữ liệu

14.1. là các mô tả về sự vật hiện tượng sự kiện... được biễu diễn dưới dạng các tài liệu chữ số ảnh âm thanh ....

14.2. dữ liệu rất hữu ích

14.3. việc lưu trữ dữ liệu là rất quan trọng

14.4. có nhiều cơ chế khác nhau để lưu trữ dữ liệu

14.5. khi xử lý dữ liệu thì chúng ta có được thông tin

14.6. dữ liệu và thông tin mang lại cho chúng ta tri thức

15. Hệ quản trị CSDL

15.1. là 1 ứng dụng máy tính được sử dụng để quản lý dữ liệu

15.2. còn được gọi là DBMS( database management system)

15.3. các chức năng của DBMS

15.3.1. định nghĩa dữ liệu ( definition)

15.3.2. cập nhập dữ liệu ( udate )

15.3.3. truy vấn dữ liệu ( retrieval )

15.3.4. quản lý dữ liệu ( administration) bảo mật theo dõi sao lưu.....

15.4. một số DBMS

15.4.1. mysql

15.4.2. mariadb

15.4.3. mongodb

15.4.4. sqlite

15.4.5. ibmdb2

15.4.6. oracledb

15.4.7. postgeresql

16. View

16.1. là 1 câu lệnh sql được lưu trữ trong CSDL với 1 tên xác định

16.2. là 1 thành phần của bảng dưới dạng truy truy vấn sql được xác định trước

16.3. 1 view có thể chứa tất cả các hàng của 1 bảng hoăc chọn các hàng từ bảng

16.4. 1 view có thể được tạo từ 1 hoặc nhiều bảng phụ thuộc vào truy vấn để tạo ra view

16.5. là 1 loại bảng ảo cho phép người dùng thực thi các câu lệnh sau

16.5.1. cấu trúc dữ liệu theo cách người dùng tìm thấy tự nhiên hoặc trực quan

16.5.2. hạn chế quyền truy cập vào dữ liệu theo cách mà người dùng có thể nhìn thấy và sửa đổi chính xác những gì mà họ cần

16.5.3. tóm tắt các bảng khác nhau có thể sử dụng để tạo báo cáo

16.6. ưu điểm của view

16.6.1. bảo mật thông qua quyền truy cập cá nhân

16.6.2. tùy biến việc hiển thị dữ liệu

16.6.3. kết hợp dữ liệu từ các bảng hay các view

16.6.4. các thao tác trên bản ghi

16.6.5. toàn vẹn ràng buộc kiểm tra

16.6.6. với người sử dụng cuối

16.6.6.1. dễ dàng hiểu được kết quả

16.6.6.2. dễ dàng thu được dữ liệu mong muốn

16.6.7. với nhà phát triển

16.6.7.1. dễ dàng hạn chế dữ liệu trả về

16.6.7.2. dễ dàng bảo trì ứng dụng

16.7. nhược điểm

16.7.1. khi truy vấn trong view sẽ chậm hơn trong table

16.7.2. bị phụ thuộc vaò table gốc nếu table gốc thay đổi cấu trúc thì phải thiết kế lại view sao cho phù hợp

16.8. phân loại view

16.8.1. standard view swr dụng các cột từ 1 hoặc nhiều bảng

16.8.2. indexed view được tạo chỉ mục unique clustered index

16.8.3. partitioned view được tạo bằng cách kết hợp dwx liệu đã được chia ra của các bảng từ 1 hoặc nhiều bảng

16.9. view hệ thống

16.9.1. các thuộc tính của1 đối tượng như bảng hay view được lưu trữ vào 1 bảng hệ thống đặc biệt là các siêu dữ liệu - metadata

16.9.2. siêu dữ liệu này gọi là khung nhìn hệ thống

16.9.3. các view hệ thống được chèn vào tự động trong CSDL do người dùng tạo

16.9.4. 1 số view hệ thống

16.9.4.1. catalog view

16.9.4.2. information schema views

16.9.4.3. compatibility views

16.9.4.4. replication views

16.9.4.5. dynamic management views

16.9.4.6. notification services views

16.10. hướng dẫn tạo view

16.10.1. view chỉ dược tạo trong CSDL hiện tại

16.10.2. 1 view có thể được xây dựng dựa vào các view khác và có thể lồng nhau tới 32 mức. Mỗi view có thể bao gồm tới 1024 cột

16.10.3. những giá tri mặc định những quy tắc và bẫy lỗi không thể được liên kết với view

16.10.4. câu truy vấn để khai báo với view khong thể bao gồm những mệnh đề OEDER BY, COMPUTE, COMPUTE BY , hoặc từ khóa INTO

16.11. tạo view

16.11.1. CREATE VIEW <view_name>[(columns list)] [with <view attributes>] AS <select_statement> [with check options]

16.12. sửa view

16.12.1. 1 view có thể sửa đổi bằng cách xóa và tạo mới lại hoặc sử dụng câu lệnh alter view

16.12.2. ALTER VIEW <view_name> AS <select statement> • Ví dụ: ALTER VIEW Salary_Details AS SELECT * FROM Employee_Details WHERE EmpID=1

16.13. xóa view

16.13.1. việc xóa 1 view không tác động đến các bảng cơ sở mà view tham chiếu đến

16.13.2. • Cú pháp: DROP VIEW <view_name> • Ví dụ: DROP VIEW Employee_Details

16.14. tùy chọn khi create view

16.14.1. tùy chọn check option

16.14.1.1. được sử dụng để đảm bảo rằng nếu muốn sửa đổi hoặc thêm dữ liệu thông qua view thì những dữ liệu đó phải thõa mãn tất cả điều kiện trong câu lệnh select khi định nghiã view

16.14.1.2. • Cú pháp: CREATE VIEW <view_name> AS <select statement> [WITH CHECK OPTION] • Ví dụ: CREATE VIEW CustDetail AS SELECT * FROM Customer WHERE City in (‘Hanoi’,‘Hai phong’, ‘HCM’) WITH CHECK OPTION; ➢ UPDATE CustDetail SET City=‘Quang Ninh’ WHERE CustID=‘c001’ ➢ not Execute

16.14.2. tùy chọn schemabinding

16.14.2.1. 1 view có thể được bao trong lược đồ của bảng cơ sở bằng cách sử dụng tuỳ chọn schemabinding

16.14.2.2. đảm bảo các bảng cơ sở có trong câu lệnh tạo view khong thể bị thay đổi khi nó có thể tác động đến phần định nghĩa view

16.14.2.3. • Cú pháp: CREATE VIEW <view name> WITH SCHEMABINDING AS <select statement> • Ví dụ: CREATE VIEW Cust WITH SCHEMABINDING AS SELECT * FROM dbo.Customer WHERE City IN (‘Hanoi’, ‘HP’); ➢ ALTER TABLE Customer ALTER COLUMN CustID varchar(7); ➢ Báo lỗi

16.15. tạo chỉ mục cho view

16.15.1. view phai có tùy chọn schemabinding

16.15.2. 1 view chỉ có 1 chỉ mục unique clustered index trên đó chỉ mục này phải được tạo trước sau đó có thể tạo thêm cá loại chỉ mục khác trên view

16.15.3. sau khi chỉ mục được tạo trên view nếu có bất kỳ sự thay đổi dữ liệu nào đều được tự động cập nhập lên chỉ mục

16.15.4. • Cú pháp: CREATE UNIQUE CLUSTERED INDEX <index_name> ON <view_name>(column_name,....

16.16. thao tác trên view

16.16.1. chỉ có thể isset và update vho view nếu

16.16.1.1. view khong có tùy chọn with check option

16.16.1.2. tất cả các cột dược chèn hay cập nhập phải thuộc về cùng 1 bảng cơ sở

16.16.1.3. không có tát cả các hàm sau avg, cuont, sum, min, max, grouping hoặc group by , union, distinct, top trong danh sách được chọn

16.17. issert view

16.17.1. các bộ dữ liệu có thể được chèn vào view bằng cách sử dụng câu lệnh issert

16.17.2. khi chèn vào trong view các bảng cơ sở được cập nhập cho phù hợp

16.17.3. Cú pháp: INSERT INTO <view_name>(col1, col2..) VALUES (value1, value2....

16.18. update

16.18.1. dữ liệu trong 1 hàng của view có thể được cập nhập bằng câu lệnh update

16.18.2. khi 1 view được cập nhập bảng cơ sở được cập nhập tương ứng

16.18.3. Cú pháp: UPDATE <view_name> SET column1=value1,.... WHERE <search_condition>

16.19. delete view

16.19.1. các hàng của view có thể xóa bằng cách sử dụng câu lệnh delete

16.19.2. khi các hàng được xóa trong view thì các hàng tương ứng cũng được xóa từ bảng cơ sở

16.19.3. Cú pháp: DELETE FROM <view_name> WHERE <search_condition>

17. Web & Web site

17.1. giao thức http là giao thưc truyền tải siêu văn bản

17.1.1. http request

17.1.2. http response

17.2. web server là một phần mềm /phần cứng để cung cấp các taì nguyên web

17.3. website

17.3.1. website tĩnh là các trang web mà nội dung củ nó không thay đổi. Những trang web tĩnh được viết bằng mã HTML thêm CSS , javascript để thêm hiệu ứng.

17.3.2. website động là website nội dung thay đổi sự thay đổi thùy theo thời gian tùy theo người dùng thùy theo ngữ cảnh. Thường sử dụng các ngôn ngữ phía server chẳng hạn như java,PHP,c#....và cơ sở dữ liệu

17.4. web là 1 không gian trên internet mà ở đó các tài liệu và các tài nguyên khác được chia sẻ dưới dạng ủl

17.5. website la tập hợp cá trang tài liệu và tài nguyên có liên quan đến nhau thường được truy cập qua một tên miền

17.6. LAMP là một bộ công nghệ được ưa chuộng và sử dụng phổ biến để xây dựng các ứng dụng web thông dụng

17.6.1. Linux là một họ các hệ điều hành mã nguồn mở

17.6.2. Aphache là phần mềm máy chủ dịch vụ web và miễn phí

17.6.3. MySQL là 1 hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở

17.6.4. PHP là 1 ngôn ngữ lập trình phía server

17.6.4.1. chức năng là xử lý yêu cầu của người dùng và sinh ra kết quả để trả về

17.6.5. tại sao nên sử dụng LAMP

17.6.5.1. các thành phần của LAMP đều là mã nguồn mở và miễn phí

17.6.5.2. cộng đồng sử dụng LAMP rất lớn

17.6.5.3. có nhiều các nền tảng (framework) thư viện (library) công cụ (tool)

17.6.5.4. các thành phần trong LAMP tương thích tốt vơi nhau và tuân theo các tiêu chuẩn của nghành

17.6.5.5. việc phát triển các ứng dụng LAMP khá nhanh chóng và dễ dàng

18. include && require

18.1. đều được sử dụng để nhúng trang php

18.2. điểm khác biệt

18.2.1. require sẽ tung ra lỗi nghiêm trọng ( E_COMPILE_EROR) và dừng thực thi

18.2.2. include sẽ tung ra cảnh cáo (E_WARNING) và tiếp tục thực thi

18.3. có thể nhúng trang php nhiều lần nếu được sử dụng nhiều nơi

18.4. include_once && require_once chỉ nhúng trang php duy nhất 1 lần

19. cấu trúc dữ liệu

19.1. là hình thức tổ chức 1nhoms dữ liệu

19.1.1. lưu trữ dữ liệu

19.1.2. cung cấp các phương thức để thao tác với dữ liệu

19.2. khái niệm

19.2.1. container: lớp chứa dữ liệu

19.2.2. Element: các phần tử dữ liệu

19.3. cấu trúc thông dụng

19.3.1. set : nhóm các phần tử không trùng nhau

19.3.2. array

19.3.3. list : nhóm các phần tử có thể trùng nhau

19.3.4. stack : nhóm các phần tử theo trật tự first-in/last-out (vào trước / ra sau )

19.3.5. queue : nhóm các phần tử theo trật tự first-in/ last-out ( vào trước / ra trước )

19.3.6. map : lưu trữ các cặp key/value

19.3.7. tree : lưu trữ theo mối quan hệ cha con

19.3.8. graph : lưu trữ theo mối quan hệ mạng lưới

19.4. ArrayLisst

19.4.1. là 1 danh sách

19.4.2. lưu trữ dữ liệu trong mảng

19.4.3. kích thước thay đổi được

19.4.4. truy xuất phần tử nhanh

19.4.5. thêm xóa phần tử chậm

19.4.6. thao tác cơ bản

19.4.6.1. get(): lấy về phần tử

19.4.6.2. add() : thêm 1 phần tử

19.4.6.3. remove(); xóa 1 phần tử

19.4.6.4. size() : lấy về số lượng phần tử

19.4.6.5. find(); tìm kiếm phần tử

19.4.6.6. isEmpty() : kiểm tra rỗng

19.5. LinkedLisst

19.5.1. các phần tử liên kết với nhau qua tham chiếu

19.5.2. truy xuất ngẫu nhiên chậm

19.5.3. thêm xóa phần tử nhanh

19.5.4. hoạt động trên cơ chế liên kết giữa các node . Mỗi node chứa dữ liệu của node đó và liên kết với node khác

19.5.5. singly linkedlisst

19.5.5.1. một node chỉ có 1 liên kết đến node phía sau nó. node cuối cùng trỏ về null

19.5.6. circular linkedlisst

19.5.6.1. node cuối cùng trỏ về node đầu tiên

19.5.7. doubly linkey list

19.5.7.1. một node chứa 2 liên kết trỏ đến phần tử trước và sau nó

19.5.7.2. phần tử phía trước của phần tử đầu tiên là null

19.5.7.3. phần tử phía sau của phần tử sau là null

19.5.8. circular doubly linkedlisst

19.5.8.1. node đầu tiên và node cuối cùng có liên kết trỏ đến nhau

20. sql- standard php library

20.1. sqlStack

20.1.1. cung cấp các chức năng chính của 1 stack được triển khai bằng cách sư dụng liên kết đôi

20.1.2. duyệt phần tử theo cơ chế LIFO IT_MODE_LIFO và IT_MODE_KEEP

20.1.3. kế thừa từ lớp Sqldoublylinkedlist nên được thừa kế tất cả các phương thức của lớp sqldoublylinkedlist

20.2. sqlqueue

20.2.1. cung cấp các chức năng chính của 1 hàng đợi queue, được triển khai bằng cách sử dụng danh sách liên kết đôi

20.2.2. duyệt các phần tử theo cơ chế FIFO

20.2.3. kế thừa từ lớp sqldoublylinkedlist nên được kế thừa tất cả các phương thức của lớp sqldoublylinkedlist

20.2.4. lưu ý: nếu chúng ta sử dụng push() và pop() thì hàng đợi sẽ hành xử như là 1 stack chứ không phải queue

20.3. là bộ thư viện chuẩn php cung cấp nhiều cấu trúc dữ liệu tiêu chuẩn trong các ứng dụng

20.4. một số cấu trúc dữ liệu như : doublylinkedlist, heaps, arrays, map

20.5. danh sách liên kết đôi là 1 danh sách có các node được liên kết với nhau theo cả 2 hướng

20.6. sqldoublylinkedlist

20.6.1. cung cấp các chức năng chính của một danh sách liên kết đôi

21. Queue

21.1. là một câu trúc dữ liệu trừu tượng, tương tự như hàng đợi trong đòi sống hàng ngày

21.2. tuân theo phương thức first-in/last-out ( vào trước / ra trước )

21.3. enqueue() : thêm 1 phần tử vào trong hàng đội

21.4. dequeue(): xóa 1 phần tử từ hàng đợi

21.5. peek(): lấy phần tử ở đầu hàng đợi mà không xóa phần tử này

21.6. isEmpty(): kiểm tra rỗng

21.7. isfull () : kiểm tra hàng đợi đầy hay chưa

22. tree

22.1. là một cấu trúc dữ liệu được sư dụng rộng rãi gồm các node được liên kết với nhau theo quan hệ cha con

22.2. khái niệm cơ bản

22.2.1. nút gốc

22.2.2. nút cha

22.2.3. nút con

22.2.4. nút lá

22.2.5. cây con

22.2.6. duyệt

23. php

23.1. Biến

23.1.1. cục bộ (local) sử dụng trong hàm

23.1.2. toàn cục (global) sử dụng ngoài hàm

23.1.2.1. có thể sử dụng từ khóa global để truy xuất biến toàn cục trong hàm. Có thể sử dụng mảng $_GLOBAL

23.1.3. tĩnh (static) giữ lại giá tri của biến cục bộ (local) mà không hủy đi

23.1.4. biến trong php bắt đầu bằng dấu $ tiêp theo là tên của biến

23.1.5. tên biến phải bắt đầu bằng 1 ký tự hoặc 1 dấu gạch dưới _

23.1.6. tên biến không thể bắt đầu bằng số

23.1.7. tên biến chỉ được bao gồm các ký tự chữ ký tự số và dấu gạch chân

23.1.8. tên biến phân biệt chữ hoa và chữ thường

23.1.9. biến có thể khai báo bất cứ đâu , vị trí khai báo biến quy định phạm vi mà biến đó có thể được sử dụng

23.2. Các kiểu dữ liệu

23.2.1. String(chuỗi)

23.2.2. integer( số nguyên)

23.2.3. Float(số thập phân)

23.2.4. Boolean(true/false)

23.2.5. Array(mảng)

23.2.6. Object( đối tượng )

23.2.7. NULL

23.2.8. Resource

23.3. toán tử

23.3.1. toán học(Arithmetic)

23.3.1.1. +,-,*,/,%

23.3.2. gán(Assignment)

23.3.2.1. =, -=, +=, *= , /=, %=

23.3.3. so sánh (Comparison)

23.3.3.1. == , ===, !=, >=, <=, <, >, <>, !==

23.3.4. tăng/ giamr( increment/decrement

23.3.4.1. ++, --

23.3.5. logic(logical)

23.3.5.1. &&, ||, !

23.3.6. string (chuỗi)

23.3.7. Array (mảng)

23.4. câu lệnh điều kiện

23.4.1. if

23.4.1.1. thực hiện câu lệnh nếu điều kiện là đúng

23.4.2. if.. else

23.4.2.1. Thực hiện một câu lệnh nếu điều kiện là đúng, còn nếu điều kiện sai thì thực hiện một câu lệnh khác

23.4.3. if ... elseif... else

23.4.3.1. Thực hiện các câu lệnh khác nhau với việc đánh giá nhiều hơn 2 điều kiện

23.4.4. switch .... case

23.4.4.1. Chọn thực hiện một hoặc nhiều câu lệnh tùy thuộc vào điều kiện

23.5. câu lệnh lặp

23.5.1. while

23.5.1.1. Kiểm tra điều kiện, nếu đúng thì thực hiện các câu lệnh, lặp lại các bước như thế.

23.5.2. do ... while

23.5.2.1. Thực hiện các câu lệnh, kiểm tra điều kiện, nếu đúng thì lặp lại các bước như thế.

23.5.3. for

23.5.3.1. Thực hiện lặp lại các câu lệnh trong một số lần nhất định

23.5.4. foreach

23.5.4.1. Thực hiện lặp lại các câu lệnh đối với từng phần tử của một mảng

24. log

24.1. error log ghi nhận các lỗi xảy ra

24.2. access ghi nhận các truy cập lên ứng dụng

24.3. vị trí lưu trữ log phụ thuộc vào hệ điều hành đang dùng webserver đang dùng và cấu hình của ứng dụng web

25. interface

25.1. là cấu trúc tương tự như lớp nhưng chỉ chứa hằng số và abstract method

25.2. quy định chung cho các lớp triển khai nó

25.3. sử dụng từ khóa interface để định nghĩa interface

25.4. tính chất

25.4.1. interface tạo ra 1 kiểu dữ liệu mới

25.4.2. không thể tạo đối tượng của interface

25.4.3. interface không thể chứa các phương thức không abstract

25.4.4. khi một lớp triển khai interface thì cần triển khai tất cả các phương thức được khai báo trong interface đó

25.4.5. interface có thể được thiết kế để khai báo cá phương thức chung cho các lớp không liên quan đến nhau

25.4.6. interface bổ sung cho việc java không hỗ trợ đa kế thừa

25.5. triển khai interface

25.5.1. 1 lớp triển khai interface bằng cách sử dụng từ khóa implements

25.5.2. 1 lớp có thể implements nhiều interface

25.6. kế thừa interface

25.6.1. 1 interface có thể kế thừa nhiều interface khác

25.6.2. interface con thừa hưởng các phương thức và hằng số được khai báo trong interface cha

25.6.3. interface con có thể khai báo thêm các thành phần mới

25.6.4. từ khóa extends được sử dụng để kế thừa interface

25.7. access modifier

25.7.1. mặc định là public

25.7.2. không cần thiết chỉ rõ access modifier của phương thức interface

25.8. khai báo hằng

25.8.1. có thể khai báo các hằng số trong interface

25.8.2. không cần thiết phải ghi rõ từ khóa final cho hằng số

25.8.3. không cân thiết chỉ rỏ access modifier cho hằng số

26. thuật toán tìm kiếm

26.1. tìm kiếm tuyến tính

26.1.1. mỗi phần tử được kiểm tra và nếu tìm thấy bất kỳ kết nối nào thì phần tử cụ thể đó được trả về nếu không tìm thấy thì quá trình tìm kiếm tiếp tục diễn ra cho tới khi tìm kiếm hết dữ liệu

26.2. tìm kiếm nhị phân

26.2.1. tìm kiếm 1 phần tử cụ thể bằng cách so sánh phần tử tại vị trí giữa nhất của tập dữ liệu

26.2.2. nếu tìm thấy kết nối thì chỉ mục của phần tử được trả về

26.2.3. nếu phần tử cần tìm là lớn hơn giá trị phần tử giữa thì phần tử cần tìm được tìm trong mảng con nằm bên phải phần tử giữa. nếu không thì tìm ở bên trái phần tử giữa, tiếp tục như vậy cho tới khi tìm hết mọi phần tử trên mảng con này

27. Sql

27.1. là viết tắt của cụm từ Structured Query Language ( ngôn ngữ truy vấn có cấu trúc )

27.2. được sử dụng để thao tác với các CSDL quan hệ

27.3. có nhiều phiên bản sql khác nhau mặc dù hầu hết đêu sử dụng chung cú pháp tuy nhiên cũng có 1 số khác biệt

27.4. các câu lệnh trong sql

27.4.1. thực thi các câu truy vấn

27.4.2. truy vấn dữ liệu từ csdl

27.4.3. thêm dữ liệu vào csdl

27.4.4. cập nhập dữ liệu trong csdl

27.4.5. xóa các bản ghi trong csdl

27.4.6. tạo csdl mới

27.4.7. tạo bảng trong csdl

27.4.8. xóa csdl

27.4.9. xóa bảng....

27.5. 1 số từ khóa quan trọng

27.5.1. SELECT

27.5.2. UPDATE

27.5.3. DELETE

27.5.4. INSERT

27.5.5. CREATE

27.5.6. ALTER

27.5.7. DROP

27.5.8. WHERE

28. Mysql

28.1. là 1 hệ quản trị CSDL quan hệ mã nguồn mở

28.2. có các phiên bản chạy được trên nhiều nền tangr:windows, linux, macos.....

28.3. mysql server: máy chủ dịch vụ quản trị

28.4. mysql client

28.4.1. ứng dụng cho phép kết nối và tương tác với mysql server

28.5. website chính thwcs: MySQL

29. PHPmyadmin

29.1. là công cụ mã nguồn mở miễn phí dành cho mysql và mariaDB

29.2. được viết bằng php

29.3. sử dụng phpmyadmin

29.3.1. nhập dữ liệu

29.3.2. xuất dữ liệu

29.3.3. tạo bảng

29.3.4. xóa bảng

29.3.5. chèn dữ liệu

29.3.6. xóa dữ liệu

29.3.7. cập nhập dữ liệu

29.3.8. lấy dữ liệu

30. Thiết kế và tạo cơ sở dữ liệu

30.1. phân tích và thiết cơ sở dữ liệu

30.1.1. là các thao tác được thực hiện để tìm ra1 mô hình CSDL trong 1 tình huống nhất định

30.1.2. kết quả của này là 1 bản thiết kế của csdl

30.1.3. dựa vào bản thiết kế của csdl chúng ta có thể viết các câu lệnh để tạo ra csdl đó

30.1.4. bản thiết kế csdl thường được biểu diễn dưới dạng 1 lưu đồ thực thể quan hệ

30.1.5. các bước phân tích và thiết kế cơ sở dữ liệu quan hệ

30.1.5.1. xác định mục tiêu của csdl

30.1.5.2. tìm hiểu và tổ chức các thông tin cân lưu trữ

30.1.5.3. phân chia thông tin vào trong các bảng

30.1.5.4. xác định trường dữ liệu cho từng bảng

30.1.5.5. xác định khóa chính của bảng

30.1.5.6. làm min thiết kế

30.1.5.7. áp dụng quy tắc chuẩn hóa

30.1.6. các loại quan hệ

30.1.6.1. 1-1(one- to - one)

30.1.6.1.1. là thuộc tính khóa bên này làm khóa ngoại bên kia hoặc ngược lại

30.1.6.2. 1-nhiều (one to many)

30.1.6.2.1. là thuộc tinh khóa bên 1 làm khóa ngoai bên nhiều

30.1.6.3. n-n( many to many)

30.1.6.3.1. là quan hệ mới có khóa chính gồm 2 thuộc tính khóa của 2 quan hệ

30.1.7. chuẩn hóa thiết kế

30.1.7.1. 1nf

30.1.7.1.1. là nếu giá trị của 1 trường bao gồm 1 giá trị không phải là 1 danh sách giá trị. Trường nay còn được gọi là atomic

30.1.7.2. 2nf

30.1.7.2.1. là 1 trường đã thuộc 1nf và mỗi cột không phải là khóa chính , không phụ thuộc hoàn toàn vào khóa chính

30.1.7.3. 3nf

30.1.7.3.1. là trường thuộc 2nf và các cột không phải là khóa độc lập với nhau

30.1.8. constraint (ràng buộc )

30.1.8.1. là quy tắc được quy định cho bảng

30.1.8.2. sử dụng constraint có thể hạn chế những dữ liệu có đưa vào trong bảng

30.1.8.3. giúp cho dữ liệu chính xác tin cậy toàn vẹn

30.1.8.4. dữ liệu đưa vào trong bảng cần tuân thủ các constraint

30.1.8.5. có thể quy định constraint cho bảng hoặc cột

30.1.9. 1 số ràng buộc thông dụng

30.1.9.1. not null để bắt buộc các trường phải có giá trị khác null

30.1.9.2. UNIQUE để bắt buộc các giá trị trong cột phải khác nhau

30.1.9.3. CHECK được sử dụng để quy định điêu kiên ràng buộc cho giá trị của 1 cột

30.1.9.4. DEFAULT được sử dụng để quy định giá trị mặc định cho 1 trường

30.1.10. PRIMARY KEY( khóa chính)

30.1.10.1. là 1 cột hoặc nhiều cột được sử dụng để xác định bản ghi duy nhất trong bảng

30.1.10.2. là UNIQUE và NOT NULL

30.1.10.3. mỗi bảng chỉ có thể có 1 khóa chính

30.1.10.4. từ khóa PRIMARY KEY được sử dụng để định nghĩa 1 khóa chính

30.1.11. khóa phức hợp

30.1.11.1. là khóa được tạo nên từ 2 hoặc nhiều cột

30.1.12. FOREIGN KEY ( khóa ngoại )

30.1.12.1. là cơ chế để tạo liên kết giữa 2 bảng trong cung cơ sở dữ liệu

30.1.12.2. được đặt trên 1 cột của bảng này và tham chiếu đến khóa chính của bảng khác

30.1.12.3. kiểu dữ liệu của khóa chính và khóa ngoại phải giống nhau

30.1.13. các kiểu dữ liệu

30.1.13.1. char

30.1.13.2. varchar

30.1.13.3. text

30.1.13.4. longtext

30.1.13.5. int

30.1.13.6. bigint

30.1.13.7. float

30.1.13.8. duoble

30.1.13.9. date

30.1.13.10. datetime

30.1.13.11. timestamp

30.1.13.12. time

30.1.14. crud

30.1.14.1. là tên gọi ngắn gọn để chỉ đến 4 thao tác cơ bản của 1 hệ thống có lưu trữ dữ liệu

30.1.14.2. Create: tạo dữ liệu

30.1.14.3. Read hoặc Retrieve: đọc dữ liệu

30.1.14.4. Update: cập nhập dữ liệu

30.1.14.5. Delete: xóa dữ liệu

31. Access modifier

31.1. là các từ khóa được sử dụng để quy định mức độ phạm vi truy cập đến lớp và các thành phần lớp

31.2. các mức độ truy cập

31.2.1. public

31.2.1.1. dung cho các lớp thuộc tính phương thức. quy định đươc truy cập từ bất cứ đâu

31.2.2. protected

31.2.2.1. dùng cho thuộc tính phương thức của lớp, chỉ được truy cập trong lớp và lớp con kế thừa

31.2.3. private

31.2.3.1. dùng cho thuộc tính và phương thức của lớp, chỉ được phép truy cập ở trong lớp

31.2.4. khi không khai báo access modifier thì mặc định là public

31.3. data field encapsulation( bao gói trường dữ lieeuj)

31.3.1. là hình thức hạn chế truy ccapj trực tiếp vào các thuộc tính của đối tượng bằng cách sử dụng từ khóa private

31.3.2. khai báo các phương thức để kiêm soát việc truy cập vào các thuộc tính của đối tượng

31.3.3. các phương thức cho phép thay đổi gọi là giá trị của thuộc tính gọi là setter, các phương thức cho phép lấy giá trị của thuộc tính gọi là getter

31.4. static

31.4.1. được sử dụng để khai báo các thuộc tính và phuong thức của lớp

31.4.2. các thành phần static trực thuộc lớp thay vì trực thuộc đối tượng

31.4.3. biến static còn được goi là biến của lớp

31.4.4. phương thức static còn được gọi là phương thức của lớp

31.4.5. có thể truy xuất các thành phần static băng cách sử dụng lớp hoặc đối tượng

31.4.6. không cần tạo đối tượng vẫn có thể sử dụng các thành phần static