Bài giảng Cơ sở Lập trình 1 - Chương 1: Tổng quan về lập trình hướng đối tượng và ngôn ngữ C#
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Cơ sở Lập trình 1 - Chương 1: Tổng quan về lập trình hướng đối tượng và ngôn ngữ C#", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_co_so_lap_trinh_1_chuong_1_tong_quan_ve_lap_trinh.pptx
Nội dung text: Bài giảng Cơ sở Lập trình 1 - Chương 1: Tổng quan về lập trình hướng đối tượng và ngôn ngữ C#
- Chương 1 TỔNG QUAN VỀ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG VÀ NGÔN NGỮ C# HÀ NỘI – 2015
- Nội dung 1 Tổng quan về lập trình hướng đối tượng 2 Giới thiệu về ngôn ngữ C# 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 2/46
- 1. Tổng quan về lập trình hướng đối tượng Vấn đề: Phần mềm ngày càng lớn ◼ Một số hệ Unix chứa khoảng 4M dòng lệnh ◼ Windows chứa hàng chục triệu dòng lệnh ◼ Người dùng ngày càng đòi hỏi nhiều chức năng, đặc biệt là các chức năng thông minh ◼ Phần mềm luôn cần được sửa đổi Giải pháp: Sử dụng lại mã nguồn ◼ Giảm chi phí và thời gian phát triển ◼ Nâng cao chất lượng Yêu cầu khi sử dụng lại mã nguồn ◼ Dễ hiểu, chính xác, rõ ràng ◼ Không cần thay đổi khi sử dụng trong chương trình mới 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 3/46
- Các phương pháp lập trình Lập trình không có cấu trúc Lập trình cấu trúc (lập trình thủ tục) Lập trình hướng đối tượng Lập trình hướng sự kiện Lập trình hướng thành phần 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 4/46
- Lập trình không có cấu trúc (non-structured programming) Là phương pháp xuất hiện đầu tiên ◼ các ngôn ngữ như Assembly, Basic ◼ sử dụng các biến tổng thể ◼ lạm dụng lệnh GOTO Nhược điểm ◼ khó hiểu, khó bảo trì, hầu như không thể sử dụng lại ◼ chất lượng kém ◼ chi phí cao ◼ không thể phát triển các ứng dụng lớn 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 5/46
- Lập trình cấu trúc/lập trình thủ tục (structured/procedural programming) Đặc điểm ◼ Xây dưng chương trình dựa trên các hàm/thủ tục/chương trình con ◼ Dữ liệu và xử lý (hàm) tách rời nhau ◼ Các hàm không bắt buộc phải tuân theo một cách thức chung truy cập vào dữ liệu 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 6/46
- Lập trình cấu trúc/lập trình thủ tục Nhược điểm ◼ Các hàm trong chương trình muốn trao đổi dữ liệu phải sử dụng biến toàn cục (global) → Thay đổi của của những biến toàn cục sẽ ảnh hưởng tới tất cả những thành phần liên quan ◼ Tính mở của hệ thống kém ◼ Tách biệt dữ liệu khỏi chức năng xử lý ◼ KHÔNG hỗ trợ việc sử dụng lại và kế thừa 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 7/46
- Lập trình hướng đối tượng Object-oriented programming Đặc điểm ◼ 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 ◼ Liên kết cấu trúc dữ liệu và thao tác ◼ Kết hợp những tri thức bao quát về các quá trình thực tế với những khái niệm trừu tượng sử dụng trong máy tính ◼ Hệ thống được xem là tập các lớp đối tượng ◼ Các đối tượng trao đổi với nhau thông qua việc gửi và nhận các thông điệp (message) 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 8/46
- Lập trình hướng đối tượng Đặc điểm ◼ Có tính mở cao ◼ Có cơ chế đóng gói, che giấu dữ liệu → an toàn ◼ Hỗ trợ sử dụng lại → Kế thừa 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 9/46
- Hướng cấu trúc vs Hướng đối tượng Hướng cấu trúc ◼ Data structures + algorithms = Program Hướng đối tượng ◼ Object + message = Program 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 10/46
- Các khái niệm cơ bản của LTHĐT Đối tượng (Object) Lớp (Class) Trừu tượng hóa (abstraction) Đóng gói/Che giấu thông tin (encapsulation) Truyền thông điệp (message) Kế thừa (inheritance) Đa hình (polymorphism) 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 11/46
- Đối tượng (Object) Đối tượng” là gì? ◼ là một người, địa điểm, sự kiện, sự vật Ví dụ: Đối tượng trong thế giới thực: Khách hàng sử dụng thẻ ATM ◼ Thông tin cá nhân: tên, tuổi, số tài khoản, lượng tiền đang có trong tài khoản ◼ Hoạt động: Đăng ký làm thẻ, huỷ thẻ, rút tiền, nạp tiền 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 12/46
- Đối tượng trong thế giới thực Một đối tượng trong thế giới thực là một thực thể cụ thể mà thông thường chúng ta có thể sờ, nhìn thấy hay cảm nhận được Trạng thái Hành động Đối tượng có: Con chó Tên Sủa trạng thái (state) Màu Vẩy tai và hành động Giống Chạy (behavior) ăn Xe đạp Bánh xe Tăng tốc Bàn đạp Giảm tốc Dây xích Chuyển bánh răng 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 13/46
- Đối tượng phần mềm Các đối tượng phần mềm có thể được dùng để biểu diễn các đối tượng trong thế giới thực Cũng có trạng thái và hành động ◼ Trạng thái: thuộc tính (attribute, property) ◼ Hành động: Phương thức (method) Đối tượng (object) là một thực thể phần mềm bao bọc thuộc tính và các phương thức liên quan Thuộc tính Có trạng thái và hành động ◼ Trạng thái: Thuộc tính (attribute, property) ◼ Hành động: Phương thức (method) ◼ Thuộc tính được xác định bởi các giá trị gọi là thuộc tính thể hiện Các đối tượng giao tiếp với nhau bằng các thông điệp Phương thức 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 14/46
- Lớp (class) Trong thế giới có nhiều đối tượng cùng loại ◼ Ví dụ: Tên, Tuổi, Trường, Khoa, đăng kí học, Bạn nghĩ tới ? Một lớp là một thiết kế (blueprint) hay mẫu (prototype) cho các đối tượng cùng kiểu Lớp định nghĩa tất cả các thuộc tính và phương thức chung cho tất cả các đôi tượng thuộc cùng một loại. Thể hiện/Thực thể (Instance) là một đối tượng của lớp ◼ Ví dụ: mỗi một đối tượng sinh viên là một thể hiện của lớp sinh viên Mỗi thể hiện có thể có những thuộc tính thể hiện khác nhau. ◼ Ví dụ ? 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 15/46
- Trừu tượng hoá (Abstraction) Sử dụng để quản lý các đối tượng phức tạp ◼ Tập trung vào các thuộc tính cần thiết ◼ Tóm lược nội dung chính của vấn đề ◼ Tìm ra những điểm chung giữa các đối tượng Trừu tượng hóa Tam giác Cạnh 1, canh 2, cạnh 3 Màu nền, màu biên Độ đậm biên Vẽ, tính diện tích, tính chu vi Lớp Các đối tượng 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 16/46
- Đóng gói (Encapsulation) Đóng gói dữ liệu là các thao tác tác động lên dữ liệu thành một thể thống nhất (lớp đối tượng) thuận tiện cho sử dụng lại Che giấu thông tin ◼ thao tác với dữ liệu thông qua các giao diện xác định ◼ Người dùng không phụ thuộc vào việc sửa đổi, thực thi bên trong → Tăng cường tính mềm dẻo 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 17/46
- Đóng gói Implementation Outside View Order int orderNum Public methods int custNum of Order CalculatePrice( ) PUBLIC: CreateOrder( ) CreateOrder UpdateOrder( ) UpdateOrder GetOrderTotal( ) GetOrderTotal Next( ) Next 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 18/46
- Truyền thông điệp (message) Các đối tượng gửi và nhận thông tin với nhau giống như con người trao đổi với nhau. Truyền thông điệp cho một đối tượng là yêu cầu đối tượng thực hiện một việc gì đó CONGNHAN.TINHLUONG (Hoten) Đối tượng Thông điệp Thông tin 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 19/46
- Kế thừa (inheritance) Một lớp này được quyền sử dụng một số tính chất (cả dữ liệu và các hàm thành phần) của các lớp khác. Nguyên lý chung của kế thừa: Chỉ những thuộc tính, hàm thành phần được bảo vệ và công khai là được quyền kế thừa, còn những thuộc tính, hàm thành phần riêng là không được phép kế thừa. ▪ C# chỉ hỗ trợ đơn kế thừa 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 20/46
- Đa hình (polymorphism) Là khả năng gửi một thông điệp chung đến nhiều đối tượng mà mỗi đối tượng lại có cách xử lý riêng theo ngữ cảnh của mình. 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 21/46
- 2. Giới thiệu về ngôn ngữ C# Microsoft .NET Ngôn ngữ C# 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 22/46
- Microsoft .NET Cung cấp giao diện lập trình (API) cho các dịch vụ (services) và các hàm API truyền thống của hệ điều hành Windows Cung cấp một nền tảng phát triển chung cho nhiều ngôn ngữ khác nhau của Microsoft: C#, Visual J#, Visual Basic Microsoft .NET gồm 2 phần chính: Framework và Integrated Development Environment (IDE) 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 23/46
- .NET framework .NET Framework có 2 thành phần chính: ◼ Bộ thực thi ngôn ngữ chung (Common Language Runtime – CLR) ◼ Thư viện lớp (Framework Class Library) Common Framework Language Class .NET Runtime - Library - Framework CLR FLC 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 24/46
- .NET Framework .NET Framework được dùng để phát triển những kiểu ứng dụng và dịch vụ: ◼ Ứng dụng console ◼ Ứng dụng giao diện đồ hoạ người dùng - GUI trên Windows (Windows Forms) ◼ Ứng dụng ASP.NET ◼ Dịch vụ XML Web ◼ 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 25/46
- .NET Framework 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 26/46
- Biên dịch .NET không biên dịch trực tiếp các chương trình thành file thực thi .NET biên dịch các chương trình thành các assembly, chứa các mã chương trình trung gian của Microsoft (Microsoft Intermediate Language – MSIL) CLR sẽ dịch một lần nữa, sử dụng chương trình biên dịch Just In Time (JIT) chuyển các mã MSIL sang mã máy và thực thi 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 27/46
- Biên dịch 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 28/46
- Visual Studio 2010 Được thiết kế dựa trên .NET Framwork 4.0 Cho phép triển khai ◼ Ứng dụng trên nhiều ngôn ngữ Visual Basic, Visual C++, Visual C#, Visual J# ◼ Ứng dụng Web và Web Services ◼ Ứng dụng di động Ưu điểm: ◼ Tất cả các ngôn ngữ đều dùng chhung một môi trường phát triển tích hợp – IDE ◼ Lập trình ASP.NET: truy cập CSDL hiệu quả, viết ứng dụng dễ dàng hơn 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 29/46
- Ví dụ: Chương trình HelloWorld Mở Visual Studio 2010 ◼ Start → All Programs → Microsoft Visual Studio 2010 → Microsoft Visual Studio 2010 ◼ Chọn New Project hoặc File → New → Project (Ctrl + Shift + N) ◼ Chọn ngôn ngữ, chọn chọn kiểu chương trình (Console hoặc Windows Forms) ◼ Đặt tên cho đồ án ở mục Name ◼ Chọn thư mục lưu đồ án ở mục Location ◼ Nhấn OK 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 30/46
- Ví dụ: Viết chương trình HelloWorld 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 31/46
- Chương trình HelloWorld Chương trình tự động tạo một khung dự án Thêm mã lệnh đơn giản hiển thị thông báo Hello World ra màn hình Nhấn F6 để dịch F5 để chạy chương trình 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 32/46
- Ngôn ngữ C# C# được phát triển bởi nhóm tác giả điều hành bởi Anders Hejlsberg C# được dẫn xuất từ C và C++ nhưng nó được tạo từ nền tảng tốt hơn C# là ngôn ngữ hướng đối tượng (Object Oriented Language) ◼ Hỗ trợ định nghĩa và làm việc với lớp (class) ◼ Hỗ trợ đầy đủ các đặc trưng của lập trình hướng đối tượng: đóng gói (encapsulation), kế thừa (inheritance) và đa hình (polymorphism) C# cung cấp những đặc tính hướng thành phần (component oriented): thuộc tính, sự kiện 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 33/46
- Ngôn ngữ C# C# là ngôn ngữ đơn giản C# là ngôn ngữ hiện đại C# là ngôn ngữ hướng đối tượng C# là ngôn ngữ mạnh mẽ và mềm dẻo C# là ngôn ngữ có ít từ khoá C# là ngôn ngữ hướng module C# sẽ trở nên phổ biến 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 34/46
- Ngôn ngữ C# 2 kiểu ứng dụng chính ◼ Console application Console application được thiết kế để chạy các dòng lệnh không hỗ trợ giao diện cho người sử dụng ◼ Window application Window application được thiết kế để chạy trên màn hình nền có hỗ trợ giao diện cho người sử dụng 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 35/46
- Tạo mới một Window Application File → New Project → Windows Forms Application 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 36/46
- Tạo mới một Console Application File → New Project → Console Application 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 37/46
- Các thành phần cơ bản trong Visual Studio 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 38/46
- Các thành phần cơ bản trong Visual Studio Title bar: Chứa tên dự án Menu bar: Chứa các thực đơn File, Edit, View, Project, Build, Debug ) Tools bar: Có 39 thanh công cụ ◼ Thanh Standard ◼ Ẩn/hiện: Nháy phải chuột lên thanh công cụ, chọn/bỏ chọn tên thanh công cụ 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 39/46
- Các thành phần cơ bản trong Visual Studio Toolbox: chứa các điều khiển khi thiết kế giao diện người dùng ◼ Ẩn/hiện: View → Toolbox 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 40/46
- Các thành phần cơ bản trong Visual Studio Form Desinger Solution Explorer ◼ Cho phép thiết kế ◼ View → Solution giao diện người Explorer dùng, sử dụng các điều khiển trong Toolbox ◼ View Code: Xem mã nguồn ◼ View Designer: Xem thiết kế giao diện 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 41/46
- Các thành phần cơ bản trong Visual Studio Properties Window ◼ Liệt kê tất cả các thuộc tính, sự kiện của các điều khiển ◼ View → Properties Window 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 42/46
- Một số thao tác cơ bản Mở chương trình ◼ File → Open → Project/Solution Lưu chương trình ◼ File -→ Save All ◼ Khi tạo đồ án, Visual Studio sinh ra các tập tin: *.sln (solution): mỗi ứng dụng có 1 tập tin loại này, bao gồm một hoặc nhiều tập tin dự án *.csproj (project): mỗi dự án có một hoặc nhiều tập tin nguồn (các tập tin trong cùng dự án có cùng ngôn ngữ) *.cs (source): chứa mã nguồn chương trình AssemblyInfor.cs: chứa các thuộc tính 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 43/46
- Một số thao tác cơ bản Biên dịch ◼ Dịch Solution: Build → Build Solution (F6) ◼ Dịch dự án: Build → Build tên dự án (Shift + F6) Chạy chương trình ◼ Chạy chương trình kèm sửa lỗi: Debug → Start Debugging (F5 hoặc nhấn ) ◼ Chạy chương trình không kèm sửa lỗi: Debug → Start Without Debugging (Ctrl+ F5) Dừng chương trình ◼ Debug → Stop Debugging (Shift + F5 ) 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 44/46
- Bài tập về nhà 1. Cài đặt Visual Studio 2010 (bản Ultimate) 2. Viết lại bài tập trên lớp 3. Viết các chương trình sau: (bằng ngôn ngữ C) a) Nhập vào một dãy số nguyên, sắp xếp dãy số theo chiều tăng dần và in kết quả ra màn hình. (Viết hàm: Nhập dãy số, In dãy, sắp xếp) b) Nhập vào 2 phân số, in ra màn hình tổng, hiệu, tích, thương của 2 phân số đó (viết hàm nhập, in phân số, tính tổng, hiệu, tích, thương) 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 45/46
- Bài tập về nhà c) Viết chương trình quản lý sinh viên. Mỗi SV gồm các thông tin: Mã SV, Họ tên, Ngày sinh, Quê quán, Điểm Toán, Lý, Hoá, Điểm trung bình - Nhập danh sách N sinh viên - In ra màn hình danh sách SV - Tìm kiếm sinh viên theo Mã SV - Đưa ra danh sách SV có điểm TB>7.0 (Viết các hàm: Nhập, In danh sách) 15/06/2021 Chương 1. Tổng quan về lập trình hướng đối tượng và ngôn ngữ C# 46/46