TỪ KHÓA STATIC TRONG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

     
khóa đào tạo và huấn luyện Lập trình thiết kế C# .Net thiết kế OOP với C# Từ khóa Static trong Lập trình hướng đối tượng

Dẫn nhập

Ở những bài học trước, chúng ta đã cùng nhau khám phá về CÁC LOẠI PHẠM VI truy nã CẬP vào C# OOP.

Bạn đang xem: Từ khóa static trong lập trình hướng đối tượng

Hôm nay chúng ta sẽ cùng tìm hiểu về Từ khoá static trong thiết kế hướng đối tượng C#.

Nội dung

Để gọi hiểu bài xích này xuất sắc nhất chúng ta nên có kỹ năng và kiến thức cơ bạn dạng về các phần:

Trong bài học kinh nghiệm này, họ sẽ cùng tìm hiểu các vấn đề:

Đặc điểm của thành viên tĩnh.Biến tĩnh.Phương thức tĩnh.Lớp tĩnh.Phương thức khởi tạo nên tĩnh.

Đặc điểm của thành viên tĩnh

Bình thường các thuộc tính, phương thức sẽ sở hữu đặc điểm:

Chỉ rất có thể sử dụng sau khi khởi tạo đối tượng.Dữ liệu ở trong về riêng rẽ mỗi đối tượng (xét thuộc 1 trực thuộc tính thì các đối tượng khác nhau thì nằm trong tính này sẽ mang những giá trị không giống nhau).Được gọi trải qua tên của đối tượng.

Đôi lúc fan lập trình ước muốn 1 trực thuộc tính nào đó được dùng chung cho mọi đối tượng người dùng (chỉ được cấp phát 1 vùng lưu giữ duy nhất). Từ đó định nghĩa thành viên tĩnh ra đời.

Đặc điểm của member tĩnh:

Được khởi tạo 1 lần duy nhất ngay lúc biên dịch chương trình.Có thể dùng chung cho rất nhiều đối tượng.Được gọi thông qua tên lớp.Được huỷ lúc kết thúc chương trình.

Có 4 nhiều loại thành viên tĩnh chính:

Biến tĩnh (static variable).Phương thức tĩnh (static method).Lớp tĩnh (static class).Phương thức khởi sản xuất tĩnh (static constructor).

Để khai báo 1 thành viên tĩnh ta thực hiện từ khoá static đặt trước thương hiệu biên, tên cách thức hoặc tên lớp. Chi tiết sẽ được trình bày ngày sau đây.

Biến tĩnh

Cú pháp:

static = ;

Trong đó:

static là trường đoản cú khoá để khai báo member tĩnh. là giá trị thuở đầu mà biến chuyển tĩnh này chứa. Nếu như bạn không khai báo giá trị này thì C# thì từ bỏ gán cực hiếm mặc định và giới thiệu 1 cảnh báo khi bạn biên dịch chương trình.

Bạn hoàn toàn có thể hiểu biến tĩnh là:

Mộtbiến dùng chung cho mọi đối tượng người sử dụng thuộc lớp.Nó được khởi sinh sản vùng nhớ 1 lần duy nhất ngay trong khi chương trình được hấp thụ vào bộ nhớ lưu trữ để triển khai và huỷ khi xong chương trình.

Ngoài biến chuyển tĩnh ra thì hằng số cũng có thể được gọi thông qua tên lớp và không phải khởi tạo đối tượng nhưng vươn lên là tĩnh linh hoạt hơn đó là gồm thể biến hóa giá trị khi buộc phải thiết.

Về cách thực hiện thì bạn thao tác hoàn toàn giống 1 biến bình thường chỉ cần lưu ý là yêu cầu gọi trở thành này thông qua tên lớp.

Ví dụ:

Ta muốn thống trị số lượng mèo đang xuất hiện (giả sử 1 đối tượng được tạo thành là 1 nhỏ mèo)

class mèo private int weight; /* Khai báo property tương xứng với ở trong tính. Tuy vậy trong bài này mình không áp dụng tới nhưng mình vẫn khai báo để nhắc các bạn nhớ tuân thủ tính đóng gói. */ public int Weight get return weight; set weight = value; private int height; public int Height get return height; phối height = value; /* Khai báo 1 vươn lên là static thương hiệu Count để chứa số lượng mèo hiện tại tại. Mỗi lần có một đối tượng được tạo ra thì ta vẫn tăng Count lên. */ public static int Count = 0; public Cat() weight = 20; height = 500; /* vì chưng constructor chỉ được gọi khi có đối tượng người dùng được tạo ra nên ta đang tăng Count ở đây */ Count++; Trong hàm main:

Console.WriteLine(" So luong meo ban dau: " + Cat.Count);Cat BlackCat = new Cat(); // tạo thành con mèo đầu tiênConsole.WriteLine(" So luong meo hien tai: " + Cat.Count);Cat WhiteCat = new Cat(); // tạo thành con mèo trang bị 2Console.WriteLine(" So luong meo hien tai: " + Cat.Count);Kết quả khi chạy đoạn code trên:

*

Phương thức tĩnh

Cú pháp:

static

// văn bản phương thức

Trong đó:

static là từ khoá để khai báo thành viên tĩnh.

Hàm tĩnh được sử dụng với 2 mục tiêu chính:

Hàm tĩnh là một trong những hàm dùng chung của lớp. Được gọi thông qua tên lớp với không cần khởi tạo bất kỳ đối tượng nào, từ đó tránh việc tiêu tốn lãng phí bộ nhớ.Hỗ trợ trong bài toán viết các hàm tiện ích để áp dụng lại.

Về sử dụng thì bạn thao tác trọn vẹn giống 1 phương thức bình thường chỉ cần lưu ý là phải gọi cách làm này trải qua tên lớp.

Ví dụ:

Bạn viết 1 hàm tiện ích đó là tính luỹ quá của 1 số ít nguyên để hỗ trợ tính toán.

class TienIch { /* Khai báo và định nghĩa 1 phương thức tính luỹ thừa 2 số nguyên */ public static long LuyThua(int CoSo, int SoMu) { long KetQua = 1; for (int i = 0; i vào hàm main ta demo gọi phương thức này ra cần sử dụng thử:

/*Gọi phương thức trải qua tên lớp với không đề xuất khởi tạo nên đối tượng.*/Console.WriteLine(TienIch.LuyThua(3, 3));Kết quả lúc chạy chương trình trên:

*

Lớp tĩnh

Cú pháp:

static class

// các thành phần của lớp

Trong đó:

static là trường đoản cú khoá để khai báo thành viên tĩnh.class là từ khoá để khai báo lớp.

Xem thêm: Top 9 Phần Mềm Tạo Nhạc Beat Android, Top 7 Phần Mềm Làm Nhạc Beat Miễn Phí Tốt Nhất

Lớp tĩnh có các đặc điểm

Chỉ chứa các thành phần tĩnh (biến tĩnh, cách tiến hành tĩnh).Không thể khai báo, khởi chế tạo 1 đối tượng thuộc lớp tĩnh.

Với 2 điểm sáng trên có thể thấy lớp tĩnh thường được sử dụng với mục tiêu khai báo 1 lớp phầm mềm chứa những hàm ứng dụng hoặc hằng số vì:

Ràng buộc các thành phần bên phía trong lớp bắt buộc là static.Không chất nhận được tạo ra các đối tượng người dùng dư quá làm tiêu tốn lãng phí bộ nhớ.Mọi thứ rất nhiều được truy vấn thông qua tên lớp.

Xét lại lấy ví dụ trong phần hàm tĩnh. Ví dụ là người hoàn toàn có thể vô ý sản xuất ra đối tượng người dùng thuộc TienIch. Đối tượng này khá vô nghĩa vì không tồn tại gì để sử dụng. Để tránh vấn đề này ta thêm keyword static vào trước khai báo lớp.

Trong C# có nhiều lớp tiện ích sử dụng lớp tĩnh, phương thức tĩnh để khai báo. Ví dụ nổi bật đó là lớp Math.

Lớp Math chứa:

Các hằng số nhứ PI, E.Các phương thức cung ứng tính toán như: sin, cos, tan, sqrt, exp, . . .

Bạn hoàn toàn có thể tự tìm hiểu chúng bằng cách gõ “Math.” để xem các thành phần của lớp Math.

*

Phương thức khởi tạo nên tĩnh

Cú pháp:

static ()

// ngôn từ của constructor

Trong đó:

static là trường đoản cú khoá để khai báo thành viên tĩnh. là thương hiệu của lớp chứa constructor này.

Đặc điểm của constructor tĩnh

Không được phép khai báo phạm vi truy tìm cập. Nếu cố ý làm vấn đề đó C# đang báo lỗi khi biên dịch.

*

Constructor tĩnh vẫn được hotline 1 lần duy nhất khi chương trình được hấp thụ vào bộ nhớ lưu trữ để thực thi như là 1 cách để ta tùy chỉnh thiết lập một số thông số kỹ thuật theo ý muốn trước khi có bất kỳ đối tượng như thế nào được tạo ra ra.Constructor tĩnh cũng giống phương thức tĩnh bắt buộc không thể gọi các thuộc tính chưa hẳn static.

Ví dụ:

Giả sử như bạn có một biến tĩnh chỉ định color chủ đạo của ngày và màu sắc chủ đạo này dựa vào vào bây giờ là vật dụng mấy.Thứ 2: màu xanh dươngThứ 3: màu đỏThứ 4: màu sắc tímThứ 5: màu sắc hồngThứ 6: màu đenThứ 7: màu xanh lá cây láChủ nhật: color vàng

Rõ ràng là bạn muốn khởi sinh sản giá trị cho đổi thay tĩnh này nhưng:

Không thể khởi tạo bằng phương pháp gán trực tiếp như thế này:

public static string MauChuDao = "Red";Vì ngoài màu đỏ ra thì còn có màu tím với màu này phụ thuộc vào ngày hiện tại tại.

Không thể khởi tạo biến chuyển tĩnh này vào constructor bình hay được. Vì chưng constructor bình hay chỉ được call khi có đối tượng được khởi tạo.

Trường hợp này thì constructor tĩnh là 1 phương án đơn giản tuy thế hiệu quả.

class MauSac /* mang sử màu nhà đạo là 1 chuỗi cam kết tự lưu lại tên màu tương xứng */ public static string MauChuDao; /* dùng static constructor để kiểm soát ngày lúc này và khởi chế tác giá trị cho trở thành tĩnh MauChuDao */ static MauSac() /* Khai báo đối tượng người dùng ngày giờ cùng lấy ngày giờ bây giờ của hệ thống */ DateTime now = DateTime.Now; /* kéo ra thứ của ngày bây giờ và so sánh với 7 ngày trong tuần */ switch (now.DayOfWeek) case DayOfWeek.Friday: MauChuDao = "Black"; break; case DayOfWeek.Monday: MauChuDao = "Blue"; break; case DayOfWeek.Saturday: MauChuDao = "Green"; break; case DayOfWeek.Sunday: MauChuDao = "Yellow"; break; case DayOfWeek.Thursday: MauChuDao = "Pink"; break; case DayOfWeek.Tuesday: MauChuDao = "Red"; break; case DayOfWeek.Wednesday: MauChuDao = "Purple"; break; Trong hàm main ta thử chất vấn xem bằng cách gọi nằm trong tính MauChuDao ra:

/* In ra màn hình hiển thị giá trị của ở trong tính màu chủ đạo */Console.WriteLine(" Mau chu dao cua hom nay: " + MauSac.MauChuDao);Kết quả khi chạy đoạn code trên:

*

Kết luận

Nội dung bài xích này giúp các bạn nắm được:

Đặc điểm của thành viên tĩnh.Biến tĩnh.Phương thức tĩnh.Lớp tĩnh.Phương thức khởi tạo nên tĩnh.

Bài sau chúng ta sẽ khám phá về KẾ THỪA trong LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG C#.

Cảm ơn các bạn đã theo dõi bài xích viết. Hãy để lại phản hồi hoặc góp ý của bản thân để vạc triển bài viết tốt hơn. Đừng quên “Luyện tập – thách thức – không lo ngại khó”.

Xem thêm: Xuất Dữ Liệu Từ Youtube Analytics, Lấy Thông Tin Video Trên Youtube

Thảo luận

Nếu các bạn có ngẫu nhiên khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt thắc mắc trong phần BÌNH LUẬN bên dưới hoặc trong mục HỎI và ĐÁP trên tủ sách zerovn.net.com để cảm nhận sự hỗ trợ từ cùng đồng.