Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 63 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
63
Dung lượng
1,18 MB
Nội dung
Lê Viết Mẫn - lvman@hce.edu.vn
Cơ bản NNLT C#
v 1.0 - 10/2012
Cơ bản
ngôn ngữlậptrình C#
1
Monday, October 15, 12
Lê Viết Mẫn - lvman@hce.edu.vn
Cơ bản NNLT C#
chúng ta đã học
2
1. Lậptrình là gì ?
2. C# và .NET
3. Thiết kế thuật toán
Monday, October 15, 12
Lê Viết Mẫn - lvman@hce.edu.vn
Cơ bản NNLT C#
Giải bài toán trên máy tính
3
1. Xác định bài toán
2. Thiết kế thuật toán
3. Phân tích thuật toán
4. Cài đặt thuật toán
5. Kiểm tra / Bắt lỗi
6. [ Sửa lỗi ]
Monday, October 15, 12
Lê Viết Mẫn - lvman@hce.edu.vn
Cơ bản NNLT C#
Nội dung
1. Lậptrình hướng đối tượng
2. Cách tạo ra một chương trình C#
3. Các thành phần của một chương trình C#
4. Biến, kiểu dữ liệu, Hằng
5. Toán tử
6. Lậptrình chương trình đơn giản với C#
4
Monday, October 15, 12
Lê Viết Mẫn - lvman@hce.edu.vn
Cơ bản NNLT C#
Lập trình
hướng đối tượng
5
Monday, October 15, 12
Lê Viết Mẫn - lvman@hce.edu.vn
Cơ bản NNLT C#
.NET và hướng đối tượng
6
•
Nền tảng .NET hỗ trợ hướng đối tượng từ dưới lên trên
•
Trình biên dịch hỗ trợ hướng đối tượng
•
Intermediate Language là hướng đối tượng
•
Base Class Library hoàn toàn là hướng đối tượng
•
Các ngônngữlậptrình chấp nhận .NET (.NET-aware languages) cũng là
hướng đối tượng
•
Ngôn ngữlậptrình C# là ngônngữlậptrình hướng đối tượng
•
Cần hiểu hai khái niệm :
•
Lớp
•
Đối tượng
Monday, October 15, 12
Lê Viết Mẫn - lvman@hce.edu.vn
Cơ bản NNLT C#
Lớp & đối tượng
7
•
Lớp giống như một cái khuôn bánh
•
Nó định nghĩa khuôn dạng của các đối tượng
•
Các đối tượng như các cái bánh
•
Chúng là các instances (thực thể/thể hiện) của lớp
Monday, October 15, 12
Lê Viết Mẫn - lvman@hce.edu.vn
•
Một đối tượng là một thực thể trong miền
xác định có một định danh riêng (tên)
•
Một tập những đặc tính (attribute) mô tả
tình trạng của đối tượng
Cơ bản NNLT C#
Lớp & đối tượng
8
Document
name
type
state
nameBorrower
dateBorrow
dateReminder
calculDateReminder
•
Một tập các thao tác (phương thức / hàm - methods) định nghĩa
các hành vi của đối tượng
•
Một đối tượng là một thể hiện (instance) của một lớp
•
Lớp là kiểu dữ liệu trừu tượng, được mô tả bởi những thuộc tính
(đặc tính và phương thức) chung của các đối tượng và cho phép
tạo ra các đối tượng có những thuộc tính đó
Đặc tả UML của một lớp
Monday, October 15, 12
Lê Viết Mẫn - lvman@hce.edu.vn
Cơ bản NNLT C#
Ví dụ
9
Car
mark
color
registering
start
driver
stop
twingo : Car
mark = Renault
color = gray
registering = 995 LKZ 75
Nhóm các dữ liệu và xử lý liên
quan trong một lớp
Object : một thể hiện của lớp
Monday, October 15, 12
Lê Viết Mẫn - lvman@hce.edu.vn
Cơ bản NNLT C#
Lớp & đối tượng trong C#
10
Định nghĩa lớp
Sử dụng từ khoá class
Định nghĩa một kiểu dữ liệu mới
Tạo một đối tượng
của một lớp
Khai báo một biến có kiểu dữ liệu nào đó và ghi dữ
liệu vào biến đó
Sử dụng từ khoá new
Đặc tính
Các biến thành phần (gọi tắt là biến)
Thao tác
Phương thức / hàm
Có hai loại hàm với hai cách triệu gọi khác nhau :
•
Hàm không tĩnh - Gọi từ đối tượng
•
Hàm tĩnh (từ khoá static) - Gọi từ lớp
Bitmap bm = new Bitmap(20, 20);
Bitmap bm = new Bitmap(20, 20);
bm.Save("bitmap.png");
Console.Write("Please enter a number :");
Monday, October 15, 12
[...]... biên dịch (compile-time) Assembly là c u tr c thời gian chạy (run-time) • C thể chứa cc kiểu dữ liệu từ cc namespace kh c nhau file A.cs namespace X { "class A { } } file B.cs file A.exe csc A.cs B.cs chứa X.A và Y.B namespace Y { "class B { } } file C. cs namespace X { "class C { } } Lê Viết Mẫn - lvman@hce.edu.vn Monday, October 15, 12 file C. exe csc C. cs 20 chứa X .C Cbản NNLT C# Assembly đư c tạo... alias cho cc tên namespace dài using WF = System.Windows.Forms; Lê Viết Mẫn - lvman@hce.edu.vn Monday, October 15, 12 15 Cbản NNLT C# Namespace (5/5) • Một tập tin assembly (vd : mscorlib.dll) c thể chứa một lượng bất kỳ cc namespace • C n phải báo cho trình biên dịch về tên c a assembly chứa cc namespace ccc kiểu đư c tham chiếu (đư c sử dụng) • Tất ccc assembly đư c lưu trong GAC (Global... lvman@hce.edu.vn Monday, October 15, 12 18 Cbản NNLT C# C u tr c chương trình C# Solution biên dịch thành exe Project 1 File1.cs namespace A { } File2.cs File3.cs namespace B { } class X { } Lê Viết Mẫn - lvman@hce.edu.vn Monday, October 15, 12 Project 2 File1.cs namespace A { } class Y { } 19 biên dịch thành dll namespace C { } class Z { } Cbản NNLT C# Namespace vs Assembly • • Namespace là c u tr c. .. Base Class Library • Một tập hợp khổng lồ cc đoạn mã lớp đư c giám quản (managed code) mà Microsoft đã viết ra, cho phép bạn làm bất c vi c gì với máy tính mà Windows API hỗ trợ • Bạnc thể sử dụng cc lớp cbản NET này để • • • • Tạo cc thể hiện (object) Truy xuất cc phương th c / hàm thành phần cc lớp cung c p Cung c p, truy xuất cc dữ liệu c a cc thể hiện c a lớp Để nghiên c u về cc lớp cung... Cache) - • Trong Visual Studio, trên ngăn Solution Explorer, nháy phải chuột lên thư m c References, nháy m c Add References C: \Windows\Assembly • Làm vi c này rồi thì mới using đư c Lê Viết Mẫn - lvman@hce.edu.vn Monday, October 15, 12 16 Cbản NNLT C# C ch tạo ra một chương trình C# Lê Viết Mẫn - lvman@hce.edu.vn Monday, October 15, 12 17 Cbản NNLT C# Chương trình C# • • • • • Mỗi Project đư c. .. biên dịch tạo ra ho c một assembly ho c một module • Cc module kh ccó thể đư c thêm vào sử dụng trình assembly linker (AL) sources assembly A.cs exe executable dll library netmodule B.cs modules c manifest không c manifest csc C. netmodule module libraries D.dll chỉ đề giải quyết cc tham chiếu Lê Viết Mẫn - lvman@hce.edu.vn Monday, October 15, 12 21 Cbản NNLT C# Chương trình đầu tiên Program.cs Square.cs... • • namespace đầu : tên c ng ty • Namespace này cung c p phần c t lõi cc kiểu dữ liệu Một chương trình C# ít nhất phải khai báo sử dụng namespace này Vi c tìm hiểu từng kiểu dữ liệu đư c chứa đựng trong mỗi namespace đòi hỏi thời gian Lê Viết Mẫn - lvman@hce.edu.vn Monday, October 15, 12 13 Cbản NNLT C# Namespace (3/5) NET Namespace Ý nghĩa System Chứa cc lớp c t lõi liên quan đến cc kiểu dữ liệu... Square.square(n)); Console.ReadKey(); } } } Lê Viết Mẫn - lvman@hce.edu.vn Monday, October 15, 12 22 Cbản NNLT C# Biên dịch chương trình csc /out:Square.exe Program.cs Square.cs csc /out:Square.exe *.cs • csc.exe cung c p vài tham số dòng lệnh sau : • • • • • /out : chỉ định tên c a Assembly • /reference : tham chiếu cc Assembly dll mà Assembly biên dịch c n sử dụng /target:exe : (m c định) Assembly... Solution c thể chứa nhiều Project Một Project bao gồm một ho c nhiều đơn vị biên dịch (compilation units) • • Mỗi đơn vị là một file mã nguồn riêng biệt (.cs) Program.cs là tên m c định c a đơn vị biên dịch đầu tiên c a project Mỗi Project đư c biên dịch thành một tập tin assembly (.exe ho c dll) Hai đơn vị biên dịch kh c nhau c thể chứa c ng namespace Hai project kh c nhau phải chứa hai namespace kh c. .. Square.square(n));và tên biến sẽ c kiểu Console.ReadKey(); } } } đâu trong chương trình Cc tên biến, tên hàm, tên lớp gọi chung là cc định danh và nên tuân theo qui t c đặt tên : C# phân biệt chữ hoa, chữ thường cho cc định danh Lê Viết Mẫn - lvman@hce.edu.vn Monday, October 15, 12 33 Cbản NNLT C# Chương trình đầu tiên Program.cs using System; namespace Square { class Program { static void Main(string[] . lvman@hce.edu.vn C bản NNLT C# v 1.0 - 10/2012 C bản ngôn ngữ lập trình C# 1 Monday, October 15, 12 Lê Viết Mẫn - lvman@hce.edu.vn C bản NNLT C# chúng ta đã h c 2 1. Lập trình là gì ? 2. C# và. th c / hàm thành phần c c lớp cung c p • Cung c p, truy xuất c c dữ liệu c a c c thể hiện c a lớp • Để nghiên c u về c c lớp cung c p c i gì • Sử dụng Object Browser • MSDN - http://msdn.microsoft.com/en-us/library/gg145045%28v=vs.100%29.aspx • Bên. lvman@hce.edu.vn C bản NNLT C# C u tr c chương trình C# 19 Solution Project 1 Project 2 File1.cs File2.cs File3.cs namespace A { } namespace B { } namespace A { } class X { } class Y { } class