1. Trang chủ
  2. » Thể loại khác

Bài 3: HƯỚNG ĐỐI TƯỢNG TRONG C#. GV. Chử Đức Hoàng

34 4 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 34
Dung lượng 1,26 MB

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

Nội dung

Người lập trình có trách nhiệm làm cho máy tính có thể liên kết thông tin đó với những đối tượng trong thế giới thực.. • Tuy nhiên, máy tính chỉ là một cỗ máy, nó chỉ thực hiện những côn

Trang 1

Bài 3 HƯỚNG ĐỐI TƯỢNG TRONG C#

GV Chử Đức Hoàng

Trang 2

TÌNH HUỐNG DẪN NHẬP

 Vậy ngôn ngữ lập trình C# làm thế nào để thể hiện và thực hiện công

việc quản lý đối tượng trong thực tế trong máy tính?

• Những yếu tố chứa thông tin liên quan đến học viên của trường đại học quốc gianhư đã phân tích ở bài trước đều được đưa ra để quản lý các đối tượng thực đó làhọc viên Người lập trình có trách nhiệm làm cho máy tính có thể liên kết thông tin

đó với những đối tượng trong thế giới thực

• Tuy nhiên, máy tính chỉ là một cỗ máy, nó chỉ thực hiện những công việc được lậptrình, vì thế người lập trình phải cung cấp cho máy tính những thông tin theo cáchthức mà nó cũng nhận thức được cùng những đối tượng như chúng ta nhận thức

Trang 3

MỤC TIÊU

Trình bày về lập trình hướng đối tượng

Lập trình hướng đối tượng trong C#

Trình bày được cách gọi và khai báo các lớp, đối tượng và các phương

thức trong C#

Xây dựng một chương trình C# thể hiện lớp và các thuộc tính Tạo đối

tượng và sử dụng đối tượng đó

Trang 5

• Lập trình hướng đối tượng là phương pháp lập trình lấy đối tượng làm nền tảng đểxây dựng thuật toán, xây dựng chương trình

• Có sự tương xứng giữa các đối tượng trong chương trình và các đối tượng trên thực

tế và có hướng tiếp cận đa dạng

• Đối tượng phần mềm thông thường là sự kết hợp giữa mã lệnh và dữ liệu trong mộtthể thống nhất

1.1 MỞ ĐẦU - TRÌNH BÀY VỀ PHƯƠNG PHÁP LẬP TRÌNH HƯỚNG

ĐỐI TƯỢNG

Trang 6

Tính bao gói: Khả năng truy suất vào các thành phần

của một đối tượng trong khi vẫn đảm bảo che giấu các

đặc tính riêng tư bên trong đối tượng được gọi là tính

bao gói

Tính kế thừa: Tính kế thừa cho phép các đối tượng có

thể chia sẻ hay mở rộng các thuộc tính hoặc phương

thức mà không phải tiến hành định nghĩa lại

Tính trừu tượng: Một đặc tả trừu tượng cho ta biết

một đối tượng có thể làm gì mà không bận tâm vào việc

nó làm như thế nào

Tính đa hình: Tính đa hình thể hiện khi với cùng một

phương thức nhưng có thể có cách ứng xử khác nhau ở

những lớp cùng giao diện

1.1.1 CÁC ĐẶC TÍNH CƠ BẢN CỦA LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

Trang 7

• Khả năng tái sử dụng cao

• Ổn định và dễ bảo trì

• Chi phí giảm dần

• Tăng năng suất lập trình

• Tăng chất lượng phần mềm

• Tăng tính dễ hiểu của phần mềm

• Vòng đời của phần mềm tăng

1.1.2 ƯU ĐIỂM CỦA LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

Trang 8

• Lớp là khái niệm dùng để mô tả một nhóm các đối tượng có những thuộc tính, hành

vi và những mối quan hệ thông thường tương tự nhau

• Thuật ngữ lớp có thể hiểu là “lớp các đối tượng (class)” là khuôn mẫu để sinh ra đốitượng, mỗi đối tượng được coi như là một “thể hiện” của lớp với những giá trị thuộctính cũng như cách thức hoạt động đặc trưng

• Trong C# hỗ trợ đơn thừa kế giữa các lớp và một lớp bắt buộc phải được thừa kế từmột lớp nào đó

1.1.3 LỚP

Trang 9

Nhap():void Inthongtin():void Tinhtb(): float

Tên lớp

Thuộc tính

Phương thức

Trang 10

• Đối tượng là thể hiện (instance) của một lớp

• Mỗi đối tượng có:

 Định danh;

 Thuộc tính (dữ liệu);

 Hành vi (phương thức)

Đối tượng là các sinh viên có:

Định danh: Sinh viên

Thuộc tính: tên, tuổi, số hiệu sinh viên, điểm thi,…

Hành vi: hàm tạo, nhập dữ liệu sinh viên, tính điểm cho sinh viên,…

1.1.4 ĐỐI TƯỢNG

Trang 11

1.1.4 ĐỐI TƯỢNG

Thuộc tính và hành vi của đối tượng

• Thuộc tính là những đặc điểm đặc trưng của đối tượng, thể hiện thông qua nhữnggiá trị cụ thể

• Hành vi là những cách thức mà qua đó đối tượng thể hiện sự hoạt động hay chứcnăng của chúng

Actions:

Nhap() Inthongtin() Tinhtb()

Name: Anna Sohieusv:122 Diemtoan: 4 Diemly: 5 Diemhoa: 6

Actions:

Nhap() Inthongtin() Tinhtb()

Name: Jack Sohieusv:123 Diemtoan: 7 Diemly: 8 Diemhoa: 9

Trang 12

1.1.4 ĐỐI TƯỢNG

Quản lý bộ nhớ khi sử dụng đối tượng.

• Stack: khi gọi phương thức, bộ nhớ được yêu cầu cho các tham số và các biến cục

bộ Khi phương thức kết thúc, vùng nhớ được giải phóng

• Heap: Khi tạo một đối tượng sử dụng từ khóa new và lời gọi phương thức khởi tạo

Nó sẽ được giải phóng một cách tự động khi kết thúc

42 Sinhvien SV

Trang 13

Cú pháp khai báo lớp trong C#:

[Thuộc tính truy cập] class <Định danh lớp>[:Lớp cơ sở]

Trang 14

1.2 LỚP TRONG C#

Các thuộc tính truy cập

Public: Không hạn chế giới hạn truy cập Những thành viên được đánh dấu public

có thể được dùng bởi bất kì các phương thức của lớp bao gồm những lớp khác

Private: Chỉ được truy cập bởi các phương thức trong lớp

Protected: Chỉ được các phương thức bên trong lớp và những phương thức dẫnxuất từ lớp đó truy cập

Internal: Đượ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ốihợp ngữ với nó

Protected internal: Được truy cập bởi các phương thức của lớp, các phương thứccủa lớp dẫn xuất của lớp và bất cứ lớp nào trong cùng khối hợp ngữ của nó

Trang 15

-Hàm tạo (Constructor): là hàm đặc biệt giúp tạo và khởi tạo các trạng thái ban đầu chođối tượng Nếu không có hàm tạo này thì trình biên dịch tạo một constructor mặc định

để khởi tạo một số giá trị mặc định như: gán chuỗi rỗng cho chuỗi, gán 0 cho kiểu số,gán false cho kiểu bool

Sinhvien+ Sinhvien()

Trang 16

tensv: kiểu dữ liệu chuỗi

sohieusv: kiểu dữ liệu số nguyên

11 public class Sinhvien {

12 private String tensv;

13 private int sohieusv;

Trang 17

• Việc mô tả lớp chỉ có ý nghĩa đặc tả một nhóm đối tượng có chung đặc điểm thuộctính và phương thức mà chưa thực sự tạo ra một đối tượng.

• Lớp luôn là kiểu dữ liệu tham chiếu trong C#

• Để tạo ra đối tượng ta sử dụng từ khóa new kết hợp với hàm tạo.

• Có hai cách để tạo đối tượng:

Trang 18

• Hàm tạo (Constructor) hay còn gọi là bộ khởi dựng được mô tả trong mỗi lớp dùng

để tạo và khởi tạo các trạng thái ban đầu của đối tượng Nó được gọi một lần duy

nhất khi khởi tạo đối tượng

• Trước khi bộ khởi dựng được thực hiện thì đối tượng chưa được cấp phát trong bộnhớ Sau khi bộ khởi dựng thực hiện hoàn thành thì bộ nhớ sẽ lưu giữ một đối tượnghợp lệ của lớp vừa khai báo

Trang 19

1.4 HÀM TẠO

Đặc điểm của hàm tạo

• Có các loại hàm tạo: mặc định, không tham số, có tham số, tĩnh và sao chép

• Tên hàm tạo giống như tên lớp

48.sinhvien(); // phương thức không tham số

49.sinhvien(var1, var2);//phương thức khởi tạo có tham số

50.sinhvien SV2 = new sinhvien( SV1 );

Trang 20

1.4 HÀM TẠO

Sử dụng đối tượng

• Sau khi khai báo một đối tượng thuộc lớp sinhvien thì thông qua đối tượng này, ta

có thể truy xuất vào các thành phần phương thức và thuộc tính của đối tượng vừađược tạo

• Ví dụ: muốn thực hiện phương thức nhap() của đối tượng thuộc lớp sinhvien ta khaibáo và sử dụng thông qua đối tượng tham chiếu SV1

52.Sinhvien SV1 = new Sinhvien();

Trang 21

• Cú pháp khai báo hàm hủy trong ngôn ngữ C# như sau:

~Class1() {}

• Thực hiện nhiệm vụ xoá đối tượng

59.class sinhvien 60.{

1.5 HÀM HỦY - DESTRUCTOR

Đặc điểm của hàm huỷ

• Tên hàm huỷ trùng với tên lớp và có tiền tố là một dấu sóng(~);

Trang 22

• Lớp

 Là đặc tả chi tiết về đối tượng (còn gọi là bản mẫu -blueprint)

 Một lớp có thể cho phép tạo ra nhiều đối tượng

• Đối tượng

 Là thể hiện của một lớp với những đặc điểm, chức năng cụ thể;

 Các đối tượng từ cùng một lớp sẽ có cùng cấu trúc và chức năng như mô tảtrong lớp

1.6 PHÂN BIỆT ĐỐI TƯỢNG VÀ LỚP

Trang 23

1.6 PHÂN BIỆT ĐỐI TƯỢNG VÀ LỚP

Mối tương quan giữa đối tượng thực tế và đối tượng phần mềm

67 public class Car {

68 private int price;

69 private String color;

70 }

Car myCar=new Car(); Car yourCar=new Car();

Nguyễn X Tên:

12345 SohieuSV:

Sinhvien

Là bản mẫu, mô tả đối tượng

Là thể hiện của một lớp với những đặc điểm, chức năng cụ thể.

Dữ liệu của lớp

Trang 25

 Equals(object objA, object objB)

 ReferenceEquals(object objA, object objB)

 GetType()

 MemberwiseClone()

 Finalize()

Trang 26

1.6 PHÂN BIỆT ĐỐI TƯỢNG VÀ LỚP (tiếp theo)

26

Con trỏ “this”

“this” được dùng để tham chiếu đến thể hiện hiện hành của một đối tượng “this” này được

xem là con trỏ ẩn đến tất các phương thức không có thuộc tính tĩnh trong một lớp Mỗi phương thức có thể tham chiếu đến những phương thức khác và các biến thành viên thông

qua “this”.

“this” được sử dụng trong ba trường hợp:

 Sử dụng khi các biến thành viên bị che lấp bởi tham số đưa vào:

74 public void tinhtb( int diemtb)

Trang 27

• Là hàm hay thủ tục khai báo trong lớp

• Hành vi giao tiếp với bên ngoài: Static và non static

83 public class sinhvien

89 public class Tester () {

90 sinhvien sv = new sinhvien ( );

Trang 28

diem2) {

Trang 29

1.7 PHƯƠNG THỨC

Nạp chồng phương thức

• Ngôn ngữ C# cho phép trong một lớp có thể xây dựng nhiều phương thức cùng tên,cùng giá trị trả về nhưng nhận các tham số khác nhau Chức năng này được gọi lànạp chồng phương thức

• Một lớp không thể có hai phương thức giống nhau cả tên và tham số

107.void tinhtong( int diemtoan );

108.void tinhtong( int diemtoan, int diemly );

109.void tinhtong( int diemtoan, int diemly , int diemhoa);

Trang 30

Phương thức ảo

• Phương thức ảo:

 Khai báo từ khoá virtual

 Cho phép lớp con có thể thay thế

• Đây chính là thực thi tính đa hình

 Một phương thức của lớp cơ sở (lớp cha) có thể được thực thi khác nhau ở lớpdẫn xuất (lớp con)

 Lớp sinhvien1 phủ quyết lại cách tính điểm trung bình của lớp sinhvien

125 return kq;

126 } 127.}

1.7 PHƯƠNG THỨC (tiếp theo)

Trang 31

1.7 PHƯƠNG THỨC (tiếp theo)

Đóng gói dữ liệu với property

• C# cung cấp khai báo hàm chung gọi là property cho hàm get/set để thay thế chocách dùng truyền thống Geter/seter

• Property có khác biệt so với phương thức thành viên:

 Không có tham số

 Không có cặp ngoặc

 Thân có hai từ khoá “get” để lấy và “set” để đặt giá trị cho property

 Trong thân “set” có biến mặc định là “value” mang kiểu khai báo là property vàvalue nhận giá trị gán cho property

Trang 32

1.7 PHƯƠNG THỨC (tiếp theo)

Cài đặt property

128.class sinhvien 129.{

130 protected double diemthi=0;

Trang 33

1.7 PHƯƠNG THỨC (tiếp theo)

Trang 34

TÓM LƯỢC CUỐI BÀI

• Nắm được những khái niệm cơ bản trong lập trình hướng đối tượng

• Nắm được đặc trưng của công nghệ C#

• Viết ứng dụng theo hướng đối tượng với C#

Ngày đăng: 23/07/2022, 03:50

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