1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Kỹ thuật lập trình: Chương 3 - ThS. Phạm Thanh An

28 438 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 28
Dung lượng 590,47 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng Kỹ thuật lập trình: Chương 3 - ThS. Phạm Thanh An

Trang 1

Chương 3

Xây dựng lớp, đối tượng

ThS Phạm Thanh An

Khoa Công nghệ thông tin

Đại học Ngân hàng Tp Hồ Chí Minh

Nội dung trình bày

nhiệm vụ liên quan

tả một cái gì đó mà chúng ta muốn thao tác

trong hệ thống: là thực thể vật lý hoặc thực thể

khái niệm

vi (behaviors)

Trang 2

điệp (sending message)

Lớp

Lớp là bản mẫu hay một kiểu chung cho

tất cả những đối tượng có những đặc

trưng giống nhau

Trong lập trình hướng đối tượng, lớp

được xem là đồng nhất với kiểu dữ liệu

trừu tượng

Một lớp có thể tạo ra một số không giới

hạn các đối tượng

Trang 3

Quận 9 117-2321

Khách hàng

Tên Địa chỉ Điện thoai

Lớp với đối tượng

Ghi chú: trong C# phần kết thúc của lớp không

có dấu “;” như khai báo lớp trong ngôn ngữ C++

Trang 4

Ví dụ về định nghĩa lớp

public class hocsinh

{

private string hoten;

public int lop ;

public void lenlop();

private float sodutk ;

public void naptien(float sotien)

{ sodutk = sodutk + sotien; }

public bool ruttien(float sotien)

{ if ( sodutk < sotien) return false ;

else { sodutk = sodutk - tienrut; return true ; }

public Không giới hạn Những thành phần public có thể được dùng

bởi bất cứ các phương thức của lớp bất kỳ.

private Thành viên trong một lớp A được đánh dấu là private thì chỉ

có thể được truy cập bởi các phương thức của lớp A.

protected Thành viên trong lớp A được đánh dấu là protected thì chỉ có

thể được truy cập các phương thức bên trong lớp A và những

phương thức của những lớp dẫn xuất từ lớp A

Trang 5

Bổ từ truy cập (Access modifiers)

Bổ từ truy

cập Giới hạn truy cập

internal Thành viên trong lớp A được đánh dấu là internal thì được

truy cập bởi những phương thức của bất cứ lớp nào trong

cùng khối hợp ngữ với A.

protected

internal

Thành viên trong lớp A được đánh dấu là protected

internal được truy cập bởi các phương thức của lớp A, các

phương thức của lớp dẫn xuất của A, và bất cứ lớp nào

trong cùng khối hợp ngữ của A.

Phương thức

Có trả về giá trị (int, float, string, object, vv)

tượng

<Bổ từ truy cập> <kiểu trả về> <tên phương thức> (d/s tham số)

{

< câu lệnh> ; // thân phương thức

}

Tham số của phương thức

liệu

bộ

và khởi tạo giá trị bằng giá trị của tham số truyền

vào

Trang 6

Tạo đối tượng

Sử dụng từ khóa new

Đối tượng = new tênlớp()

Ví dụ:

Trang 7

Phương thức thiết lập (constructor)

việc khởi tạo các thành phần của đối tượng

public, không trả về giá trị (không sử dụng

void)

đối tượng = new tênlớp(các tham số)

Ví dụ: Phương thức thiết lập

using System;

public class Thang

{

private int days;

public Thang(int songay)

Thang thang1 =new Thang(31);

Thang thang4 = new Thang(30);

Console.WriteLine (Thang1.days);

}

}

Ví dụ: lớp Rectangle

Trang 8

Phương thức thiết lập (tt)

Nếu không định nghĩa phương thức thiết

lập, trình biên dịch sẽ cung cấp một

phương thức thiết lập mặc định.

Phương thức thiết lập mặc định được

tạo ra cho một đối tượng sẽ không thực

Trang 9

public Time( System.DateTime dt )

{ Year = dt.Year; Month = dt.Month; Date =

dt.Day; Hour = dt.Hour; Minute = dt.Minute;

System.DateTime currentTime =System.DateTime.Now;

Time t = new Time( currentTime );

t.DisplayCurrentTime( );

}

}

} // end namespace

Trang 10

Khởi tạo biến thành viên

Các biến thành viên có thể được khởi

tạo trực tiếp khi khai báo trong quá trình

khởi tạo

private int Giay = 30; // Khởi tạo

Nạp chồng phương thức thiết lập

Chúng ta có thể định nghĩa nhiều

phương thức thiết lập trong một lớp

Với điều kiện

khác nhau

Ví dụ

public class taikhoan

{

private float sodutk ;

private float gioihanrut;

public taikhoan( int sd)

Trang 11

taikhoan tk1 = new taikhoan(50);

taikhoan tk2 = new taikhoan(50,10);

Ví dụ : Nạp chồng constructor

Trang 12

Phương thức thiết lập sao chép

sao chép tất cả các biến từ một đối tượng đã có và

Phương thức thiết lập sao chép (tt)

Để sao chép từ một đối tượng đã hiện

hữu t1 là đối tượng của lớp ThoiGian

như sau:

sao của đối tượng t1

Trang 13

Từ khóa this

thể hiện hiện hành của một đối tượng

tên

những phương thức khác và các biến thành

viên thông qua tham chiếu this này

và phương thức tĩnh

Từ khóa this (tt)

tham số đưa vào, như trường hợp sau

public void SetYear( int Nam)

{

this.Nam = Nam;

}

(Nam) cùng tên với thành phần của lớp

Trang 14

Các thành viên tĩnh (static member)

lớp có thể là những thành viên thể hiện

(instance members) hay những thành viên tĩnh

(static members)

tượng, liên quan đến 1 thể hiện của lớp (một đối

Sử dụng từ khóa “ static” để khai báo

một thuộc tính hay một phương thức với

thuộc về lớp

Trang 15

viên tĩnh thông qua một thể hiện,

public static int currentCount;

public static int IncrementCount()

{

return ++currentCount;

}

}

Trang 16

Các thuộc tính tĩnh rất hữu ích khi chúng

ta muôn lưu trữ các trạng thái liên quan

đến tất cả thể hiện của lớp

Phương thức tĩnh có tác dụng khi hành

vi là chung cho của lớp chứ không phải

một thể hiện cụ thể nào của lớp.

Trang 17

Cat muop = new Cat();

Cat miu = new Cat();

chiếu this và một thể hiện nào tham chiếu tới

tiếp đến các thành phần không tĩnh (nonstatic)

(nonstatic), phải tạo ra một thể hiện lớp

Ví dụ:

using System;

public class Class1

{

public void SomeMethod(int p1, float p2)

{ Console.WriteLine(“Ham nhan duoc hai tham so: {0} va {1}”, p1,p2); }

Class1 c = new Class1();

c.SomeMethod( var1, var2 );

}

}

Trang 18

Phương thức thiết lập tĩnh

tĩnh (static constructor), thì phương thức thiết lập

tĩnh này sẽ được thực hiện trước bất cứ thể hiện

nào của lớp được tạo ra

thức thiết lập tĩnh này được thực hiện

trước bất kì biến đối tượng nào được tạo ra

Lưu ý về phương thức thiết lập tĩnh

thức thiết lập tĩnh

1 lần cho dù chúng ta có tao ra một số bất kỳ

các đối tượng

truy cập (private, public, ) và không nhận bất

kỳ tham số nào

trước bất kỳ phương thức thiết lập mức thể

hiện

Trang 19

Phương thức thiết lập private

Được sử dụng khi một lớp chỉ có các

thành phần tĩnh, và đối tượng của lớp

không cần tạo ra

Phương thức thiết lập private (tt)

cục (đều phải khai báo trong 1 lớp)

những lớp tiện ích nhỏ chỉ để chứa các phương thức

tĩnh (lớp Math, Console)

không có phương thức thiết lập public, thì tất cả

các lớp khác (ngoại trừ lớp lồng) không được phép

tạo ra thể hiện của lớp này

Phương thức hủy (Destructors)

trước

những đối tượng không dùng nữa hoặc không tham

chiếu đến nữa

Cú pháp: … ~<Tên lớp>()

{

<câu lệnh> ; }

Trang 20

Phương thức hủy (Destructors)

Có duy nhất 1 phương thức hủy trong 1 lớp

Không thể gọi tường minh phương thức hủy

Không nhận bất kỳ tham số nào

Khổng thể nạp chồng hay kế thừa

Không nhân các bổ từ truy cập

Ví dụ: phương thức hủy

Truyền tham số

Mặc định, các kiểu giá trị thì sẽ được

truyền giá trị vào cho phương thức

C# đưa ra khả năng cho phép ta truyền

các tham số kiểu giá trị dưới hình thức là

tham chiếu, sử dụng các bổ từ:

cho tham số truyền vào

đầu cho tham số truyền vào

Trang 21

Ví dụ: Truyền tham số

Ví dụ: với bổ từ ref

Ví dụ: với bổ từ out

Trang 22

Quá tải phương thức ( Overloading)

Sử dụng cùng một tên cho các phương

Trang 23

Quá tải phương thức

using System;

public class Area

{

private int areaVal;

public void AreaCal(int radius)

sum = Int32.Parse(value1) + Int32.Parse(value2);

Console.WriteLine ("Sum is {0}",sum);

Console.WriteLine ("Strings are converted to integers to add”);

}

Đóng gói dữ liệu với thuộc tính

liệu trong một lớp, tránh truy cập trực tiếp

bằng cách đọc và ghi tới các trường này thông

phương thức trong đó các dữ liệu được che dấu,

đảm bảo cho yêu cầu thiết kế hướng đối tượng

Trang 24

Đóng gói dữ liệu với thuộc tính

public class Employee

{

private string fullName;

public string GetFullName()

Đóng gói dữ liệu với thuộc tính

<Bổ từ truy cập> có thể là private, public,

protected hay internal, <Kiểu trả về> có thể

Đóng gói dữ liệu với thuộc tính

public class Employee

{

private string fullName;

// Property for fullName

public string Name

{

get { return fullName; }

set { fullName = value;}

}

}

Định nghĩa Property để cho các chương trình client truy cập

static void Main() { Employee p = new Employee();

p.Name = “Tom”;

Console.WriteLine (p.Name);

}

Trang 25

Đóng gói dữ liệu với thuộc tính

public class Employee

{

private string fullName;

// read-only Property for fullName

public string Name

{

get { return fullName; }

}

}

Trang 26

Write-Only Property

Chỉ tồn tại khối set

public class Employee

{

private string fullName;

// write-only Property for fullName

public string Name

{ public class RightNow

{ // public member variables

public static int Year;

public static int Month;

public static int Date;

public static int Hour;

public static int Minute;

public static int Second;

static RightNow( )

{ System.DateTime dt = System.DateTime.Now;

Year = dt.Year; Month = dt.Month;

Date = dt.Day; Hour = dt.Hour;

Minute = dt.Minute; Second = dt.Second;

}

}

Các trường chỉ đọc

public class Tester

{ static void Main( )

Trang 27

Các trường chỉ đọc

và tránh thay đổi giá trị thuộc tính year, chúng

ta khai báo như sau

public static readonly int Year; // thuộc tính chỉ

Ngày đăng: 27/05/2014, 14:58

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w