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