Mục lục chương I: ĐỐi tưỢng và LỚP


Sử dụng các thành phần tĩnh



tải về 1.36 Mb.
trang10/28
Chuyển đổi dữ liệu21.12.2018
Kích1.36 Mb.
1   ...   6   7   8   9   10   11   12   13   ...   28

Sử dụng các thành phần tĩnh


Xây dựng lớp Nhanvien để quản lý nhân viên bao gồm mã nhân viên, chức vụ của nhân viên và họ tên nhân viên. Trong lớp sử dụng thành phần tĩnh như biến toàn cục trong phạm vi lớp theo dõi khi một đối tượng được tạo ra (bằng cách cho biết số thứ tự của nhân viên mới đó).

a, Hướng dẫn:

Thành phần dữ liệu của lớp gồm có: Mã nhân viên, chức vụ và họ tên của nhân viên đều là dữ liệu kiểu string.

Để theo dõi đối tượng mỗi khi một nhân viên được tạo ra thì dùng một biến static int demnhanvien có mức độ truy cập là public để có thể truy cập bất cứ khi nào.

Phương thức của lớp bao gồm: Các phương thức nhập, hiện, thiết lập thông thường. Ngoài ra còn có phương thức

public static int sttnhanvien()

{

return ++demnhanvien;



}

để tăng số lượng nhân viên hiện thời. Số thứ tự của nhân viên mặc định chính bằng số lượng nhân viên hiện thời.

b, Bài giải mẫu:


using System;

public class nhanvien

{

public string manv;



public string hoten;

public string chucvu;

public static int demnhanvien;

public nhanvien() // pt thiet lap

{

}



public nhanvien(string manv, string chucvu, string hoten)

{// phương thức thiết lập



this.manv= manv;

this.chucvu = chucvu;

this.hoten = hoten;

}

public void nhap()

{

Console.Write("\t Nhap vao ma cua nhan vien: ");



string nvid = Console.ReadLine();

Console.Write("\t Nhap vao chu vu cua nhan vien:");



string cv=Console.ReadLine();

Console.Write("\t Nhap vao ho ten cua nhan vien: ");



string name = Console.ReadLine();

hoten = name;






manv = nvid;

chucvu = cv;

}

public void hienthi()

{

Console.WriteLine("\t Ma nhan vien \t: {0}", this.manv);



Console.WriteLine("\t Chuc vu \t: {0}", this.chucvu);

Console.WriteLine("\t Ho ten cua nhan vien \t: {0}", this.hoten);

// truy nhập đến thành phần dữ liệu tĩnh thông qua tên lớp

Console.WriteLine("\t So thu tu \t: {0}", nhanvien.demnhanvien);

}

public static int sttnhanvien()

{

return ++demnhanvien;

}

}

class tester



{

static void Main()

{

Console.Write("\t So luong nhan vien hien thoi \t:");



string n = Console.ReadLine();

nhanvien.demnhanvien = Int32.Parse(n);

Console.WriteLine("\t tao mot doi tuong:");

nhanvien nv1 = new nhanvien();

nv1.nhap();

// gọi phương thức tĩnh thông qua tên lớp

nhanvien.sttnhanvien();

nv1.hienthi();

Console.WriteLine("\t them mot doi tuong:");

nhanvien nv2 = new nhanvien("gd","giam doc","Nguyen Ngoc Minh");

nhanvien.sttnhanvien();

nv2.hienthi();

Console.ReadKey();

}

}



Kết quả khi chạy chương trình:




So luong nhan vien hien thoi :445

Tao mot doi tuong:

Nhap vao ma cua nhan vien: nvkh




Nhap vao chuc vu cua nhan vien: Nhan vien ke hoach

Nhap vao ho ten cua nhan vien: Nguyen Van Hai Lam

Thong tin ve nhan vien:

Ma nhan vien :nvkh

Chuc vu :Nhan vien ke hoach

Ho ten :Nguyen Van Hai Lam

So thu tu :446

Them mot doi tuong:

Thong tin ve nhan vien:

Ma nhan vien :gd

Chuc vu :giam doc

Ho ten :Nguyen Ngoc Minh

So thu tu :447




    1. Hàm khởi tạo private để cấm tạo thể hiện của đối tượng


Chương trìnhmẫu một ví dụ đơn giản như sau:


namespace Static_class

{

public class vatnuoi

{

static vatnuoi()

{

Console.WriteLine("Loi goi nay duoc goi dau tien tu PT khoi tao static");



}

private vatnuoi() { }

public static int dem;

public static int Soluong()

{

return ++dem;

}

}

class Tesster



{

static void Main()

{

// nếu cố tình khai báo một đối tượng meo



// bằng câu lệnh này tì có lỗi khi biên dịch



// vì trong lớp không có hàm khởi tạo public

//vatnuoi cho = new vatnuoi(); // loi

vatnuoi.dem = 15;

Console.WriteLine("So luong vat nuoi luc dau la:{0}",vatnuoi.dem);

Console.WriteLine("Them moi mot con vat nuoi: meo tam the");

Console.WriteLine("So luong vat nuoi hien thoi la:{0}", vatnuoi.Soluong());

Console.ReadLine();

}

}



}

Trong chương trình nếu bạn cố tình khai báo:vatnuoi cho = new vatnuoi(); thì sẽ phát sinh lỗi như sau trong quá trình chạy:“Static_class.vatnuoi.vatnuoi()' is inaccessible due to its protection level”: không tạo ra được đối tượng lớp vatnuoi bởi nó có mức bảo vệ. Điều này chứng tỏ rằng chính phương thức khởi tạo tĩnh đã ngăn cấm tạo đối tượng thể hiện của lớp. Do vậy ta chỉ có thể truy cập tới các phương thức tĩnh của lớp mà thôi.

Kết quả khi chạy chương trình:


Loi goi nay duoc goi dau tien tu phuong thuc khoi tao static

So luong vat nuoi luc dau la: 15

Them mot con vat nuoi: meo tam the

So luong vat nuoi hien thoi la: 16



Từ kết quả trên cho thấy Một phương thức khởi tạo tĩnh sẽ được gọi ngay khi chương trình biên dịch mà không cần tạo đối tượng thể hiện nào của lớp.





    1. Поделитесь с Вашими друзьями:
1   ...   6   7   8   9   10   11   12   13   ...   28


Cơ sở dữ liệu được bảo vệ bởi bản quyền ©tieuluan.info 2019
được sử dụng cho việc quản lý

    Quê hương