2. Hợp đồng lao động
CHƯƠNG III: MỘT SỐ KIẾN THỨC CƠ BẢN VỀ THỰC HIỆN ĐỀ TÀI 3.1Ngôn ngữ lập trình
3.1Ngôn ngữ lập trình
3.1.1.Giới thiệu tổng quan về ngôn ngữ lập trình hướng đối tượng
3.1.1.1Lập trình hướng đối tượng là gì?
Lập trình hướng đối tượng là phương pháp lập trình thay vì tập trung vào việc phân tích và thực hiện các chức năng (thủ tục) của chương trình thì chúng ta tiến hành tìm hiểu, phân tích các thực thể, các đối tượng tham gia vào chương trình. Từ đó chúng thực hiện xây dựng các đặc trưng, các hành vi của các đối tượng. Và chương trình chẳng qua là mô phỏng các tương tác giữa các đối tượng đó mà thôi.
Phương pháp lập trình hướng đối tượng tạo ra nhiều cái ưu điểm ưu việt hơn so với phương pháp lập trình thủ tục. Một trong những ưu điểm lớn nhất của phương pháp lập trình hướng đối tượng là khả năng sử dụng lại code (reuse code).
3.1.1.2 Các khái niệm thiết yếu trong lập trình hướng đối tượng
- Đối tượng (object): là những sự vật, sự việc, hiện tượng xảy ra trong thế giới thực mà con người có thể nhìn thấy, sờ thấy, cảm nhận thấy.
- Lớp (class): là một mẫu (template) hoặc là một plan (kế hoạch) cho việc xây dựng các đối tượng. Lớp là một sự trừu tượng hóa của các đối tượng có chung đặc trưng và hành vi.
3.1.1.3Các đặc tính
- Một đối tượng là một thể hiện cụ thể của một lớp.
- Đặc trưng (characteristic): là những tính chất của các đối tượng.
- Hành vi (behavior):là những hành động của đối tượng.
- Kế thừa (inheritance): là một cơ chế cho phép các đối tượng có thể kế thừa tất cả những đặc trưng và hành vi của các đối tượng khác.
- Tính đóng gói (encapsulation): là khả năng một đối tượng có thể che dấu tất cả các đặc trưng cũng như các hành vi của họ bên trong 1 lớp.
- Tính đa hình (polymorphism): là khả năng một hành vi của một đối tượng có thể được thực hiện dưới nhiều hình thức khác nhau.
- Tính trừu tượng (abstraction): là khả năng cho phép thực hiện trừu tượng hóa tất cả các đối tượng trong thế giới thực với những hành vi và đặc trưng chung vào trong lập trình và cho phép tạo ra các lớp mà có thể được kế thừa.
3.1.1.2Giới thiệu tổng quan về C#
C# là một ngôn ngữ lập trình ứng dụng, ngôn ngữ biên dịch, ngôn ngữ đa năng được phát triển bởi hãng Microsoft, là một phần khởi đầu cho kế hoạch .NET. Microsoft phát triển C# dựa trên C, C++ và Java. C# được miêu tả là ngôn ngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java…
Ngôn ngữ lập trình C# được đánh giá là dễ học và kết hợp được nhiều ưu điểm của các ngôn ngữ lập trình hướng đối tượng Java và C++. Do đó ngôn ngữ C# đựơc sử dụng rộng rãi nhất. C# có thể được viết với bất kỳ trình soạn thảo văn bản nào như Notepad của Windows, và sau đó biên dịch với trình biên dịch dòng lệnh của C#, csc.exe luôn đi kèm với.Net framework. Do đó mà ngày nay, C# được rất nhiều các coder trên thế giới ưu chuộng và tìm hiều.
C# là một ngôn ngữ đơn giản, với khoảng 80 từ khoá và hơn mười kiểu dữ liệu dựng sẵn, nhưng C# có tính diễn đạt cao. C# hỗ trợ lập trình có cấu trúc, hướng đối tượng, hướng thành phần (component oriented).
Ngôn ngữ C# được phát triển bởi đội ngũ kỹ sư của Microsoft, trong đó người dẫn đầu là Anders Hejlsberg và Scott Wiltamuth. Cả hai người này điều là những người nổi tiếng, trong đó Anders Hejlsberg được biết đến là tác giả của Turbo Pascal, một ngôn ngữ lập trình PC phổ biến. Và ông đứng đầu nhóm thiết kế Borland Delphi, một trong những thành công đầu tiên của việc xây dựng môi trường phát triển tích hợp (IDE) cho lập trình client/server.
Trọng tâm của ngôn ngữ hướng đối tượng là lớp. Lớp định nghĩa kiểu dữ liệu mới, cho phép mở rộng ngôn ngữ theo hướng cần giải quyết. C# có những từ khoá dành cho việc khai báo lớp, phương thức, thuộc tính (property) mới. C# hỗ trợ đầy đủ khái niệm trụ cột trong lập trình hướng đối tượng: đóng gói, thừa kế, đa hình.
C# hỗ trợ khái niệm giao diện, interfaces (tương tự Java). Một lớp chỉ có thể kế thừa duy nhất một lớp cha nhưng có thế cài đặt nhiều giao diện.
C# có kiểu cấu trúc, struct (không giống C++). Cấu trúc là kiểu hạng nhẹ và bị giới hạn.Cấu trúc không thể thừa kế lớp hay được kế thừa nhưng có thể cài đặt giao diện.
C# cung cấp những đặc trưng lập trình hướng thành phần như property, sự kiện và dẫn hướng khai báo (được gọi là attribute). Lập trình hướng component được hỗ trợ bởi CLR thông qua siêu dữ liệu (metadata). Siêu dữ liệu mô tả các lớp bao gồm các phương thức và thuộc tính, các thông tin bảo mật ….
Assembly là một tập hợp các tập tin mà theo cách nhìn của lập trình viên là các thư viện liên kết động (DLL) hay tập tin thực thi (EXE). Trong .NET một assembly là một đon vị của việc tái sử dụng, xác định phiên bản, bảo mật, và phân phối. CLR cung cấp một số các lớp để thao tác với assembly.
C# cũng cho truy cập trực tiếp bộ nhớ dùng con trỏ kiểu C++, nhưng vùng mã đó được xem như không an toàn. CLR sẽ không thực thi việc thu dọn rác tự động các đối tượng được tham chiếu bởi con trỏ cho đến khi lập trình viên tự giải phóng.
Một số khái niệm trong C sharp Kiểu dữ liệu và định danh
Trong C#, người ta phân chia kiểu dữ liệu ra thành 2 nhóm:
- Kiểu dữ liệu được xây dựng sẵn (buit-in data type): byte, sbyte, short, ushort, int, uint, long, ulong, float, double, decimal, char, string, bool, object.
- Kiểu dữ liệu được định nghĩa bởi người dùng (user-defined data type). Việc có các kiểu dữ liệu do người dùng tự định nghĩa giúp cho các ứng dụng trở lên mạnh mẽ, làm cho hệ thống dễ được mở rộng.
Ngoài ra, C# còn phân chia kiểu dữ liệu theo cách khác:
- Kiểu dữ liệu tham trị (value types):Một biến (variable) khi được khai báo với kiểu dữ liệu tham trị thì vùng nhớ của nó sẽ chứa giá trị của dữ liệu. Danh sách kiểu dữ liệu tham trị: bool, byte, char, decimal, double, enum, float, int, long, sbyte, short, struct, uint, ulong.
- Kiểu dữ liệu tham chiếu (reference types):Khác với kiểu dữ liệu tham trị, kiểu dữ liệu tham chiếu chỉ lưu trữ địa chỉ tham chiếu tới vùng nhớ chứa giá trị thật sự. Danh sách kiểu dữ liệu tham chiếu: class, delegate, interface, object, string, dynamic.
Định danh (danh biểu): là tên dùng để đặt cho biến, hằng, kiểu, lớp, phương thức… theo quy tắc:
- Bắt đầu là 1 ký tự từ A-Z.
- Theo sau là các ký tự, hoặc ký số (0-9) hay dấu gạch dưới.
- Tên có độ dài tối đa là 40.
- Không phân biệt chữ hoa và chữ thường. Biến (Variable)
Biến là một vùng nhớ được đặt tên, được sử dụng để lưu trữ dữ liệu trong chương trình, nó tương tự như bộ nhớ của con người.
Cấu trúc: <kiểu dữ liệu><tên biến>; hoặc <tên biến> = <biểu thức>; Biểu thức
Các phép toán số học (+, -, *, /, Mod, \). Các phép toán quan hệ: And, Not, Or. Các phép toán so sánh: =, >=, <=, <, >,
Ngoài ra, ta có thể sử dụng cặp dấu ngoặc đơn để tăng độ ưu tiên. Lớp
- Khái niệm: là một kiểu dữ liệu bao gồm các thuộc tính và các phương thức được định nghĩa từ trước.
- Cách khai báo lớp:
[bổ từ truy cập] class [tên lớp] {
}
Trong đó:
- [bổ từ truy cập]:chỉ ra phạm vi truy cập của lớp như: public, private.
- [tên lớp]: tuân theo quy tắc định danh Kế thừa (Inheritance)
- Kế thừa là một cơ chế cho phép một lớp có tất cả các đặc trưng và hành vi của một lớp khác.
- Kế thừa là một hình thức cho phép chúng ta sử dụng lại code.
- Kế thừa cho phép chúng ta xây dựng các ứng dụng mà ko phải viết code từ đầu, giúp tiết kiệm thời gian, chi phí bỏ ra để xây dựng các ứng dụng.
- Cú pháp: [bổ từ truy cập] class [tên lớp] : [tên lớp được kế thừa]
- Một số chú ý về kế thừa trong C#. Giao tiếp (interface)
- Giao tiếp là một tập hợp các thuộc tính và các hành vi cần được thực hiện bởi một lớp nào đó.
- Giao tiếp được sử dụng như một khế ước (giao kèo) để đảm bảo rằng một lớp phải thực hiện những hành vi nhất định nào đó.
- Trong C# thì giao tiếp được đánh dấu bởi từ khóa interface.
- Giao tiếp thì các thuộc tính và các hành vi ko được thực hiện (ko có code thực hiện).
- Một lớp trong C# có thể kế thừa nhiều giao tiếp. Xử lý ngoại lệ (Exception Handling)
- Exception (ngoại lệ): là bất kì sự bất thường nào xảy ra ko mong muốn trong ứng dụng.
- Tất cả các ngoại lệ trong C# đều trực tiếp hoặc gián tiếp kế thừa từ một lớp là Exception. Lớp này nằm trong namespace System.
- Lớp Exception có các thuộc tính sau:
• Message: Lưu trữ thông điệp chỉ ra nguyên nhân của ngoại lệ.
• Source: chỉ ra tên của ứng dụng hoặc tên của đối tượng gây ra ngoại lệ.
• StackTrace: cung cấp thông tin chi tiết về ngoại lệ trên Stack vào thời điểm mà nó được quẳng ra.
• InnerException: trả về thể hiện của ngoại lệ gây ra ngoại lệ hiện tại.
- Cú pháp tổng quát để bắt ngoại lệ: try
{
[đoạn lệnh mà có khả năng xảy ra ngoại lệ]; }
catch ([kiểu ngoại lệ] [tên đối tượng ngoại lệ]) {
[đoạn lệnh để xử lý ngoại lệ]; }
finally {
[đoạn lệnh được thực hiện cả trong 2 trường hợp xảy ra hoặc ko xảy ra ngoại lệ];
- Một try có thể có nhiều catch.
- Một ngoại lệ có thể được quăng ra bởi từ khóa throw.
- Để tạo ra một ngoại lệ thì chúng ta phải tạo ra một lớp kế thừa từ lớp Exception.
KẾT LUẬN
Sau một thời gian nghiên cứu và bắt tay vào thực hiện, với mong, được sự quan tâm và hướng dẫn tận tình của cô. Em đã bước đầu hoàn thành đề tài: “”.
Kết quả đạt được:
Vì thời gian triển khai có hạn, và việc tìm hiểu công nghệ mới còn gặp nhiều khó khăn Em rất mong nhận được sự đóng góp ý kiến và hướng dẫn của Thầy Cô để đồ án thêm hoàn thiện.
Em xin chân thành cảm ơn!
Hướng phát triển: