Lập trình thủ tục / hàm Chương trình là một hệ thống các thủ tục và hàm.. Phương pháp lấy đối tượng làm nền tảng để xây dựng chương trình. Chương trình là một hệ thống những lớp đối
Trang 1Tổng Quan
Lập Trình Hướng Đối Tượng
Môn Lập Trình Hướng Đối Tượng – Chương 2
Nguyễn Minh Thành
[M] : Thanhnm@itc.edu.vn
Trang 2Giới thiệu
Học một ngôn ngữ lập trình mới là quan trọng Tuy
nhiên việc hiểu ý nghĩa của 1 khái niệm, 1 cách suy
nghĩ mới còn quan trọng hơn gấp nhiều lần.
Hiểu được “hướng đối tượng” không phải thông qua
cách học 1 ngôn ngữ hay một bộ công cụ nào đó
Mà đó là 1 cách tiếp cận, 1 cách suy nghĩ khác
Trang 41 Phần Mềm
Viết 1 phần mềm bao gồm rất nhiều công đoạn: phân tích &
thiết kế, cài đặt, kiểm tra/thử nghiệm và bảo trì.
Cài đặt (programming/coding) chỉ là 1 phần trong quá trình
trên.
C++/C#/Java v.v… là ngôn ngữ lập trình để cài đặt.
PP lập trình là các cách tiếp cận giúp cho quá trình cài đặt hiệu quả hơn.
Trang 5 Phương pháp lập trình phải có :
Tính tái sử dụng (reusability): thiết kế các thành phần có thể được
sử dụng trong nhiều phần mềm khác nhau
Tính mở rộng (extensibility): hỗ trợ các plug-ins.
Tính mềm dẻo (flexibility):
Có thể dễ dàng thay đổi khi thêm mới dữ liệu hay tính năng.
Các thay đổi không làm ảnh hưởng nhiều đến toàn bộ hệ thống
Trang 62 Các pp lập trình cổ điển
1 Lập trình tuyến tính
Chương trình là một dãy các lệnh.
Lập trình là xây dựng các lệnh trong dãy lệnh.
Không mang tính tái sử dụng, mở rộng & mềm dẻo.
2 Lập trình thủ tục / hàm
Chương trình là một hệ thống các thủ tục và hàm Mỗi thủ tục và hàm là một dãy các lệnh.
Lập trình là xác định xem chương trình gồm bao nhiêu thủ tục và hàm, và sau đó xác định các lệnh trong từng thủ tục
và hàm.
Kết quả là hệ thống cấu trúc và mối quan hệ giữa các
hàm/thủ tục
Trang 73 Lập trình đơn thể
Chương trình là một hệ thống những đơn thể Đơn thể là một
hệ thống các thủ tục và hàm có liên quan mật thiết với nhau Mỗi thủ tục và hàm là một dãy các lệnh Các đơn thể được lưu trên các tập tin đặc biệt và được biên dịch các tập tin
khác nhau.
Phân tích và tìm ra các đơn thể bao gồm thành phần dữ liệu
và các hàm/thủ tục liên quan.
Cách thực hiện dựa vào việc gom nhóm các thành phần
tương tự nhau về ý nghĩa, phạm vi…
Trang 9class Program
{
static string hoten;
static int van, toan;
Trang 11• Cài đặt với pp lập trình tuyến tính (chỉ dùng 1 hàm main và cấu trúc toàn cục)
class Program {
hs.van = int.Parse(Console.ReadLine()); hs.dtb = (float)(hs.toan + hs.van) / 2; Console.WriteLine("Diem trung binh: {0: 0.00}", hs.dtb);
} }
struct HOCSINH
{
public string hoten;
public int van, toan;
public float dtb;
}
Trang 12Các pp lập trình cổ điển (tt)
• Cài đặt với pp lập trình tuyến tính (chỉ dùng 1 hàm main và cấu trúc cục bộ)
class Program {
static void Main(string[] args) {
hs.van = int.Parse(Console.ReadLine()); hs.dtb = (float)(hs.toan + hs.van) / 2; Console.WriteLine("Diem trung binh: {0: 0.00}", hs.dtb);
} }
struct HOCSINH
{
public string hoten;
public int van, toan;
public float dtb;
}
Trang 13• Cài đặt với pp lập trình thủ tục (dùng biến toàn cục)
class Program
{
static string hoten;
static int van, toan; static float dtb;
static void Main(string[] args)
} static void TinhTrungBinh() {
dtb = (float)(toan + van) / 2; }
}
Trang 14Các pp lập trình cổ điển (tt)
• Cài đặt với pp lập trình thủ tục (dùng biến cục bộ)
static void Xuat(string hoten, int van, int toan, float dtb)
{ Console.WriteLine("Diem trung binh: {0: 0.00}", dtb);
} static float TinhTrungBinh(int van, int toan)
{ return (float)(toan + van) / 2; }
string hoten; int van, toan; float dtb;
Nhap(out hoten, out van, out toan);
dtb = TinhTrungBinh(van, toan);
Xuat(hoten, van, toan, dtb);
}
static void Nhap(out string hoten, out int van,
out int toan)
Trang 15Console.Write("Nhap ho ten: "); hs.hoten = Console.ReadLine();
Console.Write("Nhap diem toan: "); hs.toan = int.Parse(Console.ReadLine()); Console.Write("Nhap diem van: "); hs.van = int.Parse(Console.ReadLine()); hs.dtb = (float)(hs.toan + hs.van) / 2;
Trang 16Các pp lập trình cổ điển (tt)
• Cài đặt với pp lập trình thủ tục (dùng biến cấu trúc toàn cục)
struct HOCSINH
{
public string hoten;
public int van, toan;
static void Xuat() {
Console.WriteLine("Diem trung binh: {0: 0.00}", hs.dtb);
} }
Trang 17 Phương pháp lấy đối tượng làm nền tảng để xây dựng chương trình.
Chương trình là một hệ thống những lớp đối tượng Mỗi một
lớp đối tượng tương ứng với những đối tượng có xuất hiện trong thực tế mà chương trình cần quản lý.
Lập trình hướng đối tượng là xây dựng những lớp đối tượng, từ
đó tạo ra các đối tượng cần quản lý.
Lập trình hướng đối tượng là phương pháp lập trình dựa trên
kiến trúc lớp (class) và đối tượng (object)
Trang 183 Lập trình hướng đối tượng (tt)
• Đối tượng là sự gắn kết giữa dữ liệu của đối tượng và các hàm (còn gọi là phương thức) thao tác trên các dữ liệu này.
Đối tượng = Dữ liệu + Phương thức
• Khi viết chương trình theo phương pháp hướng đối tượng ta
phải trả lời các câu hỏi:
▫ Chương trình liên quan tới những lớp đối tượng nào?
▫ Mỗi đối tượng cần có những dữ liệu và thao tác nào?
▫ Các đối tượng quan hệ với nhau như thế nào trong chương trình?
• Ví dụ : Chương trình quản lý đào tạo có những lớp đói tượng nào ? Đối tượng nào ?
Trang 20Đặc điểm của pp lập trình HĐT
• Tính đóng gói (Encapsulation): Đây là quan điểm trung tâm trong lập trình hướng đối tượng với việc che dấu dữ liệu thông qua sự đóng gói Sự đóng gói chính là khả năng cất giữ riêng biệt dữ liệu và phương thức tác động lên dữ liệu đó Do vậy chúng ta không phải quan tâm tới việc “phải làm như thế nào”
mà chỉ điều khiển bằng “làm việc gì” Sự đóng gói không chỉ đơn thuần là gom chung dữ liệu và chương trình vào trong một khối mà phải có sự đồng nhất giữa dữ liệu và các thao tác tác động lên dữ liệu đó.
Trang 21là sử dụng lại những gì đã được xây dựng Với tính thừa kế chúng ta không phải mất công xây dựng lại từ đầu những đối tượng mới, chỉ cần bổ sung để có được những đặc tính cần thiết trong đối tượng mới Những lớp đối tượng đã có được sử dụng lại gọi là lớp cơ sở Những lớp thừa kế những hành vi và dữ liệu của lớp cơ sở gọi là lớp dẫn xuất , ngoài những đặc điểm của lớp cơ sở chúng còn có những tính chất riêng của mình Cứ như vậy lớp dẫn xuất lại đóng vai trò lớp cơ sở của các lớp dẫn xuất khác.
• Tính đa hình (pholymorphism): Cho phép gởi cùng một thông điệp đến những đối tượng khác nhau cùng có chung một đặc điểm
Trang 22Một số khái niệm
Thế giới thực Phương pháp lập
trình
Ngôn ngữ lập trình
Đối tượng trong thế giới thực Đối tượng Biến có kiểu cấu trúc
Khái niệm chung về đối tượng Lớp đối tượng Kiểu dữ liệu cấu trúc
Các thông tin được quan tâm
về 1 đối tượng
Thuộc tính Thành phần thuộc tính
của kiểu cấu trúc
Các khả năng của đối tượng Hành động Các phương thức
Phân công giữa các đối tượng Yêu cầu Gọi thực hiện phương
thức Một đối tượng phải có:
•Một tên gọi.
•Có chu trình sống (sinh ra, hoạt động và mất đi).
Trang 24FAQs
Trang 25Hết Chương 2
Môn Lập Trình Hướng Đối Tượng