Object-Oriented Programming Using C#
NGÔN NGỮ LẬP TRÌNH NÂNG CAO
Ver. 1.0
Slide 1 of 45
Object-Oriented Programming Using C#
Cơ sở
Khái niệm hướng đối tượng hình thành cơ sở của tất cả các ngôn ngữ lập trình hướng đối tượng hiện đại. Sự hiểu biết các khái niệm cơ bản bản của hướng đối tượng giúp định hướng một nhà phát triển sử dụng ngôn ngữ lập trình hiện đại khác nhau, và hiệu quả hơn. C# là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft với mục đích xây dựng một ngôn ngữ lập trình đơn giản, hiện đại và có mục đích chung cho phát triển ứng dụng. Mục đích môn học cung cấp cho sinh viên bước vào thế giới lập trình hướng đối tượng sử dụng ngôn ngữ C#, một nền tảng vững chắc trong các phương pháp lập trình hướng đối tượng và nguyên tắc cơ bản của ngôn ngữ lập trình C#.
Ver. 1.0
Slide 2 of 45
Object-Oriented Programming Using C#
Mục tiêu
Giải thích các đặc tính của phương pháp hướng đối tượng Miêu tả các pha của phương pháp hướng đối Định nghĩa lớp trong C# Khai báo biến Viết và chạy chương trình C#
Nội dung buổi học:
Ver. 1.0
Slide 3 of 45
Object-Oriented Programming Using C#
Phương pháp hướng đối tượng
Hướng đối tượng là một phương pháp phát triển phần mềm dựa trên mô hình hóa một hệ thống thế giới thực Một chương trình hướng đối tượng bao gồm các lớp - class và các đối tượng - object Chúng ta sẽ cùng hiểu thế nào là class và object
Ver. 1.0
Slide 4 of 45
Object-Oriented Programming Using C#
Phương pháp hướng đối tượng (tiếp)
Class
Car
Toyota Camry
Honda Acura
Suzuki Reno
Objects
Ver. 1.0
Slide 5 of 45
Object-Oriented Programming Using C#
Nền tảng của hướng đối tượng
Nó có trạng thái Nó có hành vi Nó được xác định duy nhất
Một đối tượng nghĩa là một “cái gì đó hữu hình” mà có khả năng trình bày cho các giác quan. Một đối tượng có các đặc tính sau:
Một đối tượng tương tác với các đối tượng khác thông qua thông điệp.
Chúng ta cùng đi hiểu sâu hơn về các khái niệm này.
Ver. 1.0
Slide 6 of 45
Object-Oriented Programming Using C#
Nền tảng của hướng đối tượng (tiếp)
Vị trí của ô tô tại một ví trí như là Trạng thái của nó
Sự di chuyển của ô tổ như là Hành vi của nó
Biển số XX 4C 4546 xác định duy nhất chiếc ô tô này
Ver. 1.0
Slide 7 of 45
Object-Oriented Programming Using C#
Nhấp nháy đèn để truyền thông điệp tới các ô tô khác
Nền tảng của hướng đối tượng (tiếp)
Ver. 1.0
Slide 8 of 45
Object-Oriented Programming Using C#
Câu hỏi?
Xác định hành vi có thể của các đối tương sau: 1. Một chiếc điện thoại di động 2. Một máy nghe nhạc
tiếp
Giải pháp: 1. Hành vi của điện thoại di động: Tắt, Rung, Kêu, và Gọi 2. Hành vi của máy nghe nhạc: Chạy, Dừng, Quay lại, và Chạy
Ver. 1.0
Slide 9 of 45
Object-Oriented Programming Using C#
Câu hỏi
Ông An và Bình đã đi đến nhà ga tàu để đặt vé để khởi hành vào thành phố Hồ Chí Minh ngày 3 tháng 12. Tại nhà ga, họ yêu cầu nhân viên bán vé tại quầy vé để đặt hai vé cho chuyến tàu nhanh loại thượng hạng. Hãy xác định: 1. Thông điệp của người nhận trong tình huống này là ai? 2. Những phương thức mà người nhận có thể sử dụng?.
viên tại quầy bán vé.
2. Nhân viên bán vé sẽ kiểm tra xem có sẵn hai vé như yêu cầu hay không. Nếu vé vẫn còn thì nhân viên bán hàng sẽ nhập chi tiết về khách hàng (tên, tuổi, ngày khởi hành, chỗ ngồi..), xác nhận đặt chỗ và thu tiền vé.
Giải pháp: 1. Thông điệp của người nhận trong tình huống này sẽ là nhân
Ver. 1.0
Slide 10 of 45
Object-Oriented Programming Using C#
Đặc điểm của phương pháp hướng đối tượng
Mô hình hóa thế giới thực (Realistic modeling) Có thể sử dụng lại (Reusability) Khả năng phục hồi để thay đổi (Resilience to change) Tồn tại các kiểu khác nhau (Existence as different forms)
Ver. 1.0
Slide 11 of 45
Object-Oriented Programming Using C#
Câu hỏi?
trạm nguyên liệu)
Nêu rõ các tình huống sau có thể dùng lại: 1. Giấy tái chế. 2. Bơm có thể dùng lại (tương tự bơm được sử dụng tốt và ở
Giải pháp: 1. Nó không thể dùng lại vì giấy không sử dụng bị phá hủy trước khi giấy tái chế được sử dụng. Giấy không sử dụng đã mất đi tính xác định của nó và không thể được xem như là giấy tái chế.
2. Nó trình bày tính sử dụng lại vì một máy bơm có thể được sử dụng để hút nước cũng như xăng dầu. Nó không cần thiết để sử dụng cùng máy bơm trong cả hai trường hợp. Hai máy riêng biệt có thể được sử dụng bởi vì nó thuộc về lớp “Pump”.
Ver. 1.0
Slide 12 of 45
Object-Oriented Programming Using C#
Phases of Object Orientation
Pha phân tích (The analysis phase) Pha thiết kế (The design phase) Pha thực thi (The implementation phase)
Các pha sau trong tiến trình phát triển phần mềm:
Chúng ta cùng thảo luận về quá trình xây dựng một tòa nhà.
Ver. 1.0
Slide 13 of 45
Object-Oriented Programming Using C#
Câu hỏi?
Là một thành viên của nhóm phát triển phần mềm, bạn đã được giao nhiệm vụ tạo ra một modun phần mềm chấp nhận và hiển thị thông tin chi tiết khách hàng như tên, tuổi, địa chỉ, số điện thoại. Xác định lớp mà bạn sẽ tạo ra và phương thức của nó?
Lớp cần thiết là:
Khách hàng
Lớp sẽ có các phương thức là:
Chấp nhận thông tin khách hàng Hiển thị thông tin khách hàng
Giải pháp:
Ver. 1.0
Slide 14 of 45
Object-Oriented Programming Using C#
Giới thiệu về C#
Một chương trình là một tập hợp các câu lệnh để thực thi một nhiệm vụ cụ thể. Ngôn ngữ lập trình sử dụng chương trình để phát triển ứng dụng phần mềm. Trình biên dịch là một chương trình đặc biệt mà xử lý các câu lệnh được viết bằng một ngôn ngữ cụ thể và chuyển đổi chúng thành ngôn ngữ máy. Quá trình chuyển đổi này được gọi là biên dịch.
Ver. 1.0
Slide 15 of 45
Object-Oriented Programming Using C#
Giới thiệu C# (Tiếp.)
C# còn được gọi là C-Sharp, là một ngôn ngữ được được giới thiệu bởi Microsoft. C# được thiết kế đặc biệt để làm việc với nền tảng .NET của Microsoft.
Chúng ta cùng tìm hiểu cấu trúc của chương trình C#.
Ver. 1.0
Slide 16 of 45
Object-Oriented Programming Using C#
Classes in C#
public static void Main(string[] args) {
System.Console.WriteLine("Hello, World!
\n");
}
}
Xem xét một ví dụ sau: public class Hello {
Ver. 1.0
Slide 17 of 45
Object-Oriented Programming Using C#
public class Hello {
Classes in C# (Contd.)
public static void Main(string[] args) {
System.Console.WriteLine("He llo, World! \n");
}
}
Từ khóa class được sử dụng để khai báo một lớp
Ver. 1.0
Slide 18 of 45
Object-Oriented Programming Using C#
public class Hello {
Classes in C# (Contd.)
public static void Main(string[] args) {
System.Console.WriteLine( "Hello, World! \n");
}
}
Tên class Được sử dụng để xác định tên class
Ver. 1.0
Slide 19 of 45
Object-Oriented Programming Using C#
Classes in C# (Contd.)
public class Hello {
public static void Main(string[] args) {
Hàm Main()
System.Console.WriteLine( "Hello, World! \n");
}
}
Là điểm khởi đầu của toàn bộ ứng dụng Nó được sử dụng để tạo các đối tượng và gọi hàm thành viên
Ver. 1.0
Slide 20 of 45
Object-Oriented Programming Using C#
Classes in C# (Contd.)
public class Hello {
System.Console.WriteLine()
public static void Main(string[] args) {
System.Console.WriteLine( "Hello, World! \n");
}
}
Hiển thị nội dung trong nháy kép ra màn hình
Ver. 1.0
Slide 21 of 45
Object-Oriented Programming Using C#
public class Hello {
Classes in C# (Contd.)
public static void Main(string[] args) {
System.Console.WriteLine( "Hello, World! \n");
}
}
Ký tự đặc biệt Hiển thị xuống dòng mới. Ký tự đặc biệt khác như: \t, \b và \a
Ver. 1.0
Slide 22 of 45
Object-Oriented Programming Using C#
Demo: Tạo lớp
Là thành viên của một nhóm đang phát triển đồ chơi JoyToys, Inc., Bạn được giao nhiệm vụ tạo ra một mô đun xe đạp chấp nhận và hiển thị thông tin chi tiết chiếc xe đạp. Khai báo lớp Bike và các hàm thành viên của nó. Hàm thành viên chấp nhận chi tiết về xe sẽ hiển thị thông điệp ”Accepting Bike Details”.Tương tự, hàm thành viên hiển thị chi tiết xe trên màn hình và hiển thị thông điệp: “Displaying Bike Details”.
Vấn đề:
Ver. 1.0
Slide 23 of 45
Object-Oriented Programming Using C#
Khai báo biến
Một biến là một vị trí trong bộ nhớ mà có tên và giá trị. Một biến có liên quan đến một kiểu dữ liệu mà định nghĩa kiểu dữ liệu có thể được lưu trữ trong biến.
Ver. 1.0
Slide 24 of 45
Object-Oriented Programming Using C#
Khai báo và khởi tạo biến
Chúng ta có thể khai báo và khởi tạo biến theo cú pháp sau:
Ver. 1.0
Slide 25 of 45
Object-Oriented Programming Using C#
Khai báo và khởi tạo biến (tiếp.)
Xem xét ví dụ và khởi tạo biến sau: int class_rank=2;
Kiểu dữ liệu trong C# Trình bày các kiểu dữ liệu được lưu trữ trong biến. C# cung cấp đa dạng kiểu biến như là:: • char • int • float • double • bool • string
Ver. 1.0
Slide 26 of 45
Object-Oriented Programming Using C#
Kiểu dữ liệu trong C#
Chúng ta cùng hiểu đa dạng kiểu dữ liệu trong C# thông qua ví dụ sau:
Ver. 1.0
Slide 27 of 45
Object-Oriented Programming Using C#
Kiểu dữ liệu trong C# (tiếp.)
string Name = “Peter”
float Marks = 83.56
int Age = 23
char Vowel = ‘a’
Ver. 1.0
Slide 28 of 45
Object-Oriented Programming Using C#
Kiểu dữ liệu trong C# (tiếp.)
Xem xét ví dụ khai báo và khởi tạo biến như sau: int class_rank=2;
Num
int Num; Num=5;
5
Memory allocated
Biến được khai báo và khởi tạo
Định vị bộ nhớ trong các kiểu giá trị
Kiểu dữ liệu trong C# Kiểu dữ liệu sau được hỗ trợ bởi C#: • Value types
Ver. 1.0
Slide 29 of 45
Object-Oriented Programming Using C#
Khai báo và khởi tạo biến
Xem xét ví dụ khai báo và khởi tạo biến như sau : int class_rank=2;
string Str=“Hello”;
Address
Str
H
E
L
L
O
0 1 2 3 4
Memory Allocation of the String Type Variable
Data types in C# The following types of data types are supported by C#: • Reference types
Ver. 1.0
Slide 30 of 45
Object-Oriented Programming Using C#
Khai báo và khởi tạo biến (Tiếp.)
Xem xét ví dụ khai báo và khởi tạo biến như sau : int class_rank=2;
Tên biến trong C# Các quy tắc khai báo biến trong C#: • Bắt đầu bằng chữ và dấu
gạch dưới
• Không được chứa khoảng
trống và ký tự đặc biệt
• Phải là duy nhất • Có thể có nhiều ký tự • Không được trùng với từ
khóa
Ver. 1.0
Slide 31 of 45
Object-Oriented Programming Using C#
Khai báo và khởi tạo biến (Tiếp.)
Ví dụ về biến đúng và không đúng trong C#
Name
#Score
Age
2Strank
Family_Size
Gender
Xem xét ví dụ khai báo và khởi tạo biến như sau: int class_rank=2;
Ver. 1.0
Slide 32 of 45
Object-Oriented Programming Using C#
Khai báo và khởi tạo biến (Tiếp.)
Xem xét ví dụ khai báo và khởi tạo biến như sau : int class_rank=2;
Khởi tạo biến trong C# Giá trị cụ thể cần lưu trữ trong một biến, có thể là số nguyên, số thập phan hoặc ký tự.
Ver. 1.0
Slide 33 of 45
Object-Oriented Programming Using C#
Chấp nhận giá trị và lưu trữ trong biến thành viên
Console.ReadLine()
Được sử dụng để nhận đầu vào từ người sử dụng và lưu trữ vào biến
Convert.ToInt32(Console.Rea dLine());
Để hiểu cách thức chấp nhận và lưu trữ trong một biến, chúng ta xem xét ví dụ sau: int Number; Number=
Ver. 1.0
Slide 34 of 45
Object-Oriented Programming Using C#
Chấp nhận giá trị và lưu trữ trong biến thành viên (tiếp)
Convert.ToInt32()
Chuyển giá trị người dùng nhập sang kiểu int
Convert.ToInt32(Console.Rea dLine());
Để hiểu cách thức chấp nhận và lưu trữ trong một biến, chúng ta xem xét ví dụ sau: int Number; Number=
Ver. 1.0
Slide 35 of 45
Object-Oriented Programming Using C#
Viết và chạy chương trình với C#
Chúng ta cùng học cách viết, dịch, và chạy chương trình viết bằng C#
Ver. 1.0
Slide 36 of 45
Object-Oriented Programming Using C#
Tạo một ví dụ chương trình C#
Từ khóa using được sử dụng để include namespaces trong chương trình
Giải thích mã sử dụng ký hiệu //.
//Member variables string Engine; int NoOfWheels; //Member functions
Biến thành viên dùng để lưu trữ giá trị cho class
void AcceptDetails()
Hàm thành viên được khai báo bên trong class được sử dụng để thực thi nhiện vụ cụ thể.
Một chương trình C# có thể viết sử dụng trình soạn thảo Notepad. Xem xét ví dụ sau: using System; class Car {
Ver. 1.0
Slide 37 of 45
Object-Oriented Programming Using C#
{
Console.WriteLine("Enter the Engine Model"); Engine = Console.ReadLine(); Console.WriteLine("Enter the number of Wheels"); NoOfWheels = Convert.ToInt32(Console.ReadLine());
} public void DisplayDetails() {
Console.WriteLine("The Engine Model is:{0}", Engine); Console.WriteLine("The number of wheels are:{0}", NoOfWheels);
}
}
Tạo một ví dụ chương trình C# (tiếp)
Ver. 1.0
Slide 38 of 45
Object-Oriented Programming Using C#
class ExecuteClass được sử dụng từ class Car.
//Class để tạo thể hiện của class Car class ExecuteClass {
public static void Main(string[] args) {
Car MyCar = new Car(); MyCar.AcceptDetails(); MyCar.DisplayDetails();
}
}
Tạo một ví dụ chương trình C# (tiếp)
Ver. 1.0
Slide 39 of 45
Object-Oriented Programming Using C#
Biên dịch và chạy chương trình C#
.cs.
Sau khi viết chương trình trong Notepad, chúng ta cần dịch và chạy nó để đưa ra kết quả đầu ra. Trình biên dịch sẽ chuyển đổi mã thành mã máy để máy tính có thể hiểu được. Các bước cần thiết để dịch và chạy chương trình C#. 1. Lưu mã được viết trong Notepad với tập tin mở rộng có đuôi
2. Để dịch mã, chúng ta vào Visual Studio 2005 Command Prompt. Chọn StartAll ProgramsMicrosoft Visual Studio 2005Visual Studio ToolsVisual Studio 2005 Command Prompt. Cửa sổ Visual Studio 2005 Command Prompt được hiển thị để dịch chương trình.
3. Tại cửa sổ Visual Studio 2005 Command Prompt, Di
chuyển tới thư mục chứa tập tin.
Ver. 1.0
Slide 40 of 45
Object-Oriented Programming Using C#
4. Dịch chương trình sử dụng dòng lệnh sau:
csc ExecuteClass.cs
5. Để chạy chúng ta sử dụng dòng lệnh sau:
ExecuteClass.exe or ExecuteClass
Biên dịch và chạy chương trình C#
Ver. 1.0
Slide 41 of 45
Object-Oriented Programming Using C#
Demo: Tạo một chương trình C#
David là thành viên của đội phát triển phần mềm Automatic Ranking dành cho cuộc thi đấu tennis. Bạn được giao nhiện vụ tạo ra chương trình. Chương trình sẽ chấp nhận chi tiết về người chơi tennis và hiển thị nó ra: Name chứa nhiều nhất 25 ký tự. Rank là một số
Bạn hãy giúp David viết chương trình này.
Vấn đề:
Ver. 1.0
Slide 42 of 45
Object-Oriented Programming Using C#
Tổng kết
Phương pháp hướng đối tượng, hệ thống bao gồm các đối tượng tương tác với đối tượng khác. Một đối tượng là một thực thể mà có thể có ranh rới vật lý. Tuy nhiên, nó sẽ có các đặc tính sau:
State Behavior Identity
Một class bao gồm một tập các đối tượng mà cùng cấu trúc và hành vi. Nếu một đối tượng miêu tả một hành động từ đối tượng khác nó sẽ gửi thông điệp tới đối tượng đó. Đối tượng nhận thông điệp được gợi là người nhận (receiver), và tập hành động đưa ra bởi người nhận cấu thành phương thức.
Trong buổi học bạn đã được học:
Ver. 1.0
Slide 43 of 45
Object-Oriented Programming Using C#
Những đặc tính của phương pháp lập trình hướng đối tượng là:
Mô hình hóa thế giới thực - Realistic modeling Khả năng sử dụng lại - Reusability Khả năng phục hồi để thay đổi - Resilience to change Tồn tại theo các dạng khác nhau - Existence as different forms Một mô hình hệ thống được xây dựng theo các pha: phân tích, thiết kế và triển khai. Mục đích của mô hình để giúp nhà phát triển hiểu đúng đắn và họ cố gắng để học theo. Trong C#, một class được tạo bởi sử dụng từ khóa class. Nó được xác định bởi tên của class. Phương thức Console.WriteLine()được sử dụng để hiện thị nội dung ra màn hình. Main() là hàm đầu tiên được xử lý trong chương trình C#.
Tổng kết (tiếp).