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



tải về 1.36 Mb.
trang7/28
Chuyển đổi dữ liệu21.12.2018
Kích1.36 Mb.
1   2   3   4   5   6   7   8   9   10   ...   28

Từ khóa this

      1. Sử dụng this để phân biệt tham số phương thức và biến thành viên của lớp.


Xây dựng lớp phuơng trình bậc hai đơn giản và thực hiện tính nghiệm cho phương trình đó. Trong chương trình có xây dựng hàm thiết lập không tham số và có tham số. Sử dụng từ khóa thí trong bài để phân biệt rõ biến thành viên của lớp và tham số của phương thức.

a, Hướng dẫn:

Vì trong bài chỉ yêu cầu xây dựng một lớp đơn giản nên thành phần thuộc tính và phương thức gồm có:

Thuộc tính: Các hệ số của phương trình bậc hai;



Phương thức :

  • Phương thức khởi tạo không tham số: public ptbachai()

  • Phương thức khởi tạo ba tham số:public ptbachai(int a, int b, int c)

Vì trong phương thức này ta sử dụng tham số của phương thức trùng với biến thành viên của lớp nên ta phải sử dụng từ khóa thí để phân biệt giữa chúng.

  • Phương thức nhập

  • Phương thức hiện phương trình

  • Phương thức tính nghiệm

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

using System;

namespace vidu4

{

class Ptbachai

{

public double a, b, c;

public ptbachai()

{

a = 5;



b = 3;

c = 8;


}

public ptbachai(int a, int b, int c)

{

this.a = a;



this.b = b;

this.c = c;

}

public void nhap()

{

Console.WriteLine("nhap he so cho PTB2:");



a = Convert.ToInt32(Console.ReadLine());

b = Convert.ToInt32(Console.ReadLine());

c = Convert.ToInt32(Console.ReadLine());

}

private void tinhnghiem()

{

double x, y;

double delta;

delta=this.b*this.b-4*this.a*this.c;



if (delta < 0)

{

Console.WriteLine("khong co nghiem");



}

else

{

if (delta == 0)

{

x = -this.b / 2 *this. a;



Console.WriteLine("nghiem kep x = y ={0}",x);

}

else

{

x = (-this.b - Math.Sqrt(delta)) / 2 *this.a;



y = (-this.b + Math.Sqrt(delta)) / 2 *this.a;

Console.WriteLine("PT co hai nghiem phan biet:");

Console.WriteLine("x = {0}; y = {1}", x, y);

}

}



}

public void hien()

{

Console.WriteLine("phuong trinh bac hai:");



Console.WriteLine("{0}*x2 + {1}*x + {2}", this.a, this.b, this.c);

}

class tester

{

static void Main(string[] args)

{

ptbachai x = new ptbachai();



x.hien(); x.tinhnghiem();

ptbachai y = new ptbachai();

y.nhap();

y.hien();

y.tinhnghiem();

Console.ReadKey();

}

}

}



}

Trong phương thức khởi tạo ba tham số có câu lệnh this.a=a thì this.a chính là biến thành viên của lớp còn a ở đây lại là tham số của phương thức mà bạn nhập vào khi chạy chương trình và nó đựơc truyền vào bằng câu lệnh gán. Các biến public được truy xuất tại mọi nơi trong chương trình. Biến khai báo bằng từ khóa này được hiểu như là biến công cộng của lớp và có thể truy xuất bất kì nếu muốn.

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


phuong trinh bac hai:

5*x2 + 3*x + 8

khong co nghiem

nhap he so cho PTB2

5

8

- 4



phuong trinh bac hai:

5*x2 + 8*x + -4

PT co hai nghiem phan biet:

x = -50; y = 10





      1. Sử dụng từ khóa thí để trao đối tượng hiện hành như một tham số, minh học

        sử dụng biến khai báo private


Xây dựng một lớp nhanvien nhập họ tên, chức vụ nhân viên, tiền lương nhân viên, hiện thông tin có liên quan. Xây dựng một lớp dùng để tính thuế mà nhân viên phải nộp cho nhà nước từ tiền lương đó. (Số tiền này hiển thị cùng các thông tin liên quan đến nhân viên trong phương thức hiển thị của lớp nhanvien).

a, Hướng dẫn:

Các thành phần của lớp nhanvien chúng ta vẫn xây dựng bình thường như các ví dụ trước. Chỉ khác ở chỗ trong phương thức hiện có tham chiếu tới đối tượng của lớp Thue dùng để tính thuế phải nộp như sau: Thue.Thuephainop(this) trong đó Thuephainop là phương thức tính thuế của class Thue có đối số là đối tượng lớp nhanvien.

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



using System;

class Nhanvien

{

private string hoten;



private string chucvu;

private decimal tienluong;

public Nhanvien()

{

}



public Nhanvien(string hoten, string chucvu, decimal tienluong)

{

Console.WriteLine("Su dung PTTL 3 tham so:");



this.hoten = hoten;

this.chucvu = chucvu;

this.tienluong = tienluong;

}

public void nhap()

{

Console.Write("Ho ten:");



hoten = Console.ReadLine();

Console.Write("Chuc vu:");

chucvu = Console.ReadLine();

Console.Write("Tien luong:");

tienluong = decimal.Parse(Console.ReadLine());

}

public void dipslayNV()

{

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



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

Console.WriteLine("Tien luong la:\t{0:C}", tienluong);

// Trao doi tuong cua lop Thue nhu mot doi so

Console.WriteLine("Thue phai nop:\t{0:C} ", Thue.Thuephainop(this));

}

// xay dung phuong thuc chi doc gia tri cua doi tuong



public decimal luong

{

get { return tienluong; }

}

}

class Thue



{

public static decimal Thuephainop(Nhanvien E)

{

return 0.03m * E.luong;

// E.luong: doc gia tri cua truong luong

}

}



class MainClass

{

static void Main()

{

Nhanvien E1 = new Nhanvien("Nguyen Tien Quynh Anh","thu ki", 2200000);



E1.dipslayNV();

Nhanvien E2 = new Nhanvien();

E2.nhap();

E2.dipslayNV();

Console.ReadKey();

}

}


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




Su dung PTTL 3 tham so:

Hien thi thong tin:

Ho ten: Nguyen Tien Quynh Anh

Chuc vu: thu ki

Tien luong: $2,200,000.00

Thue phai nop: $ 66,000.00

Nhap thong tin:

Ho ten: Chu Thi Minh Ha

Chuc vu: ke toan

Tien luong: 2546000

Hien thi thong tin:

Ho ten: Chu Thi Minh Ha

Chuc vu: ke toan

Tien luong la: $2546000

Thue phai nop: $76,380.00







    1. Поделитесь с Вашими друзьями:
1   2   3   4   5   6   7   8   9   10   ...   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