Tải bản đầy đủ (.pptx) (46 trang)

Chương 1 Tổng quan về hướng đối tượng trong c

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.18 MB, 46 trang )

Chương 1
TỔNG QUAN VỀ LẬP TRÌNH
HƯỚNG ĐỐI TƯỢNG VÀ NGÔN NGỮ C#
Lê Quý Tài


HÀ NỘI – 2014


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#

Chương 1. Tổng quan về lập trình hướng đối

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
Chương 1. Tổng quan về lập trình hướng đối

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

Chương 1. Tổng quan về lập trình hướng đối

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

Chương 1. Tổng quan về lập trình hướng đối

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
Mỗi chương trình con có thể được gọi nhiều lần
trong CT chính.
Các CT con có thể được gọi đến để thực hiện
theo một thứ tự bất kỳ, tùy thuộc vào giải thuật
trong CT chính mà không phụ thuộc vào thứ tự
khai báo của các CT con.
Ch­¬ng tr×nh chÝnh

m ai
n()


Hµm_1

Hµm_2

Hµm_4

Hµm_7

Hµm_3

Hµm_5

Hµm_8

Hµm_6

Hµm_9

Chương 1. Tổng quan về lập trình hướng đối

6/46


Lập trình cấu trúc/lập trình thủ tục
 Nhược điểm





Không hỗ trợ sử dụng lại mã nguồn vì giải thuật
luôn phụ thuộc chặt chẽ vào CTDL, do đó khi thay
đổi CTDL phải thay đổi giải thuật và viết lại CT.
Không phù hợp với các phần mềm lớn: tư duy cấu
trúc với các giải thuật chỉ phù hợp với các bài toán
nhỏ, nằm trong phạm vi modul của CT

Chương 1. Tổng quan về lập trình hướng đối

7/46


Lập trình hướng đối tượng
Object-oriented programming

 Có 2 đặc trưng cơ bản:




Đóng gói dữ liệu: dữ liệu luôn được tổ chức thành
các thuộc tính của lớp đối tượng. Việc truy nhập
đến dữ liệu phải thông qua các phương thức của
lớp đối tượng.
Sử dụng lại mã nguồn: thể hiện qua cơ chế kế
thừa. Cơ chế này cho phép các lớp đối tượng có
thể kế thừa từ các lớp đối tượng khác và có thể
sử dụng lại các phương thức (mã nguồn) của các
lớp bị kế thừa mà không cần định nghĩa lại.


Chương 1. Tổng quan về lập trình hướng đối

8/46


Lập trình hướng đối tượng
 Ưu điểm:







Dữ liệu không bị thay đổi tự do trong CT vì dữ liệu
đã được đóng gói vào các đối tượng. Muốn truy
nhập vào dữ liệu phải thông qua phương thức cho
phép của đối tượng.
Khi thay đổi CTDL của một đối tượng, chỉ cần
thay đổi một số hàm thành phần của đối tượng
này mà không cần thay đổi các mã nguồn của các
đối tượng khác.
Có thể sử dụng lại mã nguồn,tiết kiệm tài nguyên.
Phù hợp với các dự án phần mềm lớn,phức tạp.

Chương 1. Tổng quan về lập trình hướng đối

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

Chương 1. Tổng quan về lập trình hướng đối

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)

Chương 1. Tổng quan về lập trình hướng đối

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…

Chương 1. Tổng quan về lập trình hướng đối

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

Đối tượng có:
trạng thái (state)
và hành động
(behavior)

Trạng thái

Hành động

Con chó

Tên
Màu
Giống

Sủa
Vẩy tai
Chạy
ăn

Xe đạp

Bánh xe
Bàn đạp
Dây xích


Tăng tốc
Giảm tốc
Chuyển bánh răng

Chương 1. Tổng quan về lập trình hướng đối

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
Chương 1. Tổng quan về lập trình hướng đối

Phương thứ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.
Lớp và đối tượng? Có mối quan hệ tương ứng lẫn nhau nhưng bản
chất lại khác nhau:
- Lớp là sự trừu tượng hóa của các đối tượng, đối tượng lại là một
thể hiện của lớp.
- Đối tượng là một thực thể cụ thể,có thực. Lớp là một khái niệm trừu
tượng, chỉ tồn tại ở dạng khái niệm để mô tả các đặc tính chung
của một số đối tượng.
- Tất cả các đối tượng thuộc cùng 1 lớp có cùng các thuộc tính và
phương thức.

Chương 1. Tổng quan về lập trình hướng đối

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

Các đối tượng

Lớp
Chương 1. Tổng quan về lập trình hướng đối

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


Chương 1. Tổng quan về lập trình hướng đối

17/46


Đóng gói
Implementation

Outside View

Order
int orderNum
int custNum
CalculatePrice( )

Public methods
of Order


PUBLIC:
CreateOrder( )
UpdateOrder( )
GetOrderTotal( )
Next( )

CreateOrder
UpdateOrder
GetOrderTotal
Next

Chương 1. Tổng quan về lập trình hướng đối

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


Chương 1. Tổng quan về lập trình hướng đối

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.

Chương 1. Tổng quan về lập trình hướng đối

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.

Chương 1. Tổng quan về lập trình hướng đối

21/46



2. Giới thiệu về ngôn ngữ C#
 Microsoft .NET
 Ngôn ngữ C#

Chương 1. Tổng quan về lập trình hướng đối

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)

Chương 1. Tổng quan về lập trình hướng đối

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
Language
Runtime CLR

Framework
Class
Library FLC

.NET
Framework

Chương 1. Tổng quan về lập trình hướng đối

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


Chương 1. Tổng quan về lập trình hướng đối

25/46


×