Xem mẫu

Bài giảng Ngôn ngữ lập trình ứng dụng – Ngành Truyền thông đa phương tiện Chương 3: Lập trình hướng đối tượng trong C# 3.1 Xây dựng lớp – Đối tượng 3.1.1 Định nghĩa lớp Trong thế giới thực, bạn thường thấy nhiều đối tượng riêng lẻ thuộc cùng một loại. Có thể có hàng nghìn chiếc xe đạp cùng tồn tại, tất cả chúng đều giống nhau về cách sản xuất và mẫu mã. Mỗi chiếc xe đạp đã được tạo ra từ một tập thiết kế chung, vì thế chúng giống nhau về thành phần cấu tạo. Trong thuật ngữ hướng đối tượng, chúng ta nói rằng chiếc xe đạp là một thể hiện của một lớp các đối tượng có tên gọi là xe đạp. Một lớp là một bản thiết kế mà từ đó các đối tượng cụ thể được tạo ra. Trong C#, mọi chuyện đều xảy ra trong một lớp. Như các ví dụ mà chúng ta đã tìm hiểu trước, các hàm đều được đưa vào trong một lớp, kể cả hàm đầu vào của chương trình (hàm Main()): public classTester { public static int Main() { //.... } } Để định nghĩa một kiểu dữ liệu mới hay một lớp đầu tiên phải khai báo rồi sau đó mới định nghĩa các thuộc tính và phương thức của kiểu dữ liệu đó. Khai báo một lớp bằng cách sử dụng từ khoá class. Cú pháp đầy đủ của khai báo một lớp như sau: [Mức độ truy cập] class <Định danh lớp> [: Lớp cơ sở] { [Nội dung lớp có thể bao gồm một hoặc nhiều thuộc tính và phương thức] [Mức độ truy cập] <Định danh thuộc tính>; [Mức độ truy cập] <Định danh phương thức>() { [Nội dung phương thức] } } Trong đó: 46 Bộ môn Truyền thông đa phương tiện – Trường Đại học Công nghệ thông tin và Truyền thông Bài giảng Ngôn ngữ lập trình ứng dụng – Ngành Truyền thông đa phương tiện Mức độ truy cập: Thông thường, mức độ truy cập (access-modifiers) của một lớp là public. Ngoài ra các thành phần của lớp cũng có mức độ truy cập riêng cho biết loại phương thức nào được phép truy cập đến nó, hay nói cách khác nó mô tả phạm vi mà thành phần đó được nhìn thấy. Thuộc tính public private protected internal Giới hạn truy cập Không hạn chế. Những thành viên được đánh dấu public có thể được dùng bởi bất kì các phương thức của lớp bao gồm những lớp khác. Thành viên trong một lớp A được đánh dấu là private thì chỉ được truy cập bởi các phương thức của lớp A. Thành viên trong lớp A được đánh dấu là protected thì chỉ được các phương thức bên trong lớp A và những phương thức dẫn xuất từ lớp A truy cập. Thành viên trong lớp A được đánh dấu là internal thì được truy cập bởi những phương thức của bất cứ lớp nào trong cùng khối hợp ngữ với A. protected internal Thành viên trong lớp A được đánh dấu là protected internal được truy cập bởi các phương thức của lớp A, các phương thức của lớp dẫn xuất của A, và bất cứ lớp nào trong cùng khối hợp ngữ của A. Định danh: Định danh lớp chính là tên của lớp do người xây dựng chương trình tạo ra. Các định danh cần phải được đặt tên theo đúng quy tắc (Chỉ có thể chứa kí tự số, chữ và “_”, phân biệt chữ hoa, chữ thường và không được bắt đầu bằng số). Lớp cơ sở: Lớp cơ sở là lớp mà đối tượng sẽ kế thừa để phát triển ta sẽ bàn sau. Thuộc tính (trường dữ liệu): là biến dữ liệu của lớp đối tượng. Ví dụ: public class nguoi { public int tuoi;//Khai báo thuộc tính tuổi cho lớp nguoi với kiểu int } Phương thức (Methods): là thành phần xử lý của lớp đối tượng. Khi khai báo và định nghĩa 1 phương thức cần xác định những thành phần sau đây: 47 Bộ môn Truyền thông đa phương tiện – Trường Đại học Công nghệ thông tin và Truyền thông Bài giảng Ngôn ngữ lập trình ứng dụng – Ngành Truyền thông đa phương tiện - Kiểu trả về: một phương thức có thể trả về một kiểu dữ liệu có sẵn hoặc do người dùng định nghĩa hoặc không trả về gì cả (void). - Tên phương thức: một định danh tuân thủ nguyên tắc đặt tên. - Danh sách tham số: một phương thức có thể có tham số truyền vào hoặc không oTruyền tham số theo kiểu tham trị (mặc định): giá trị của các biến trước khi được truyền vào phương thức và sau khi ra khỏi phương thức không thay đổi. Ví dụ: //Khai báo phương thức int ttong (int a, int b) { a=a+5; b=b+1; return a+b; } //Gọi hàm truyền tham số int so1=5, so2=10, tong; tong=ttong(so1,so2); Quan sát ví dụ trên ta thấy ban đầu so1 có giá trị là 5, so2 có giá trị là 10 khi được truyền vào trong phương thức ta thấy so1 sẽ được cộng thêm 5 và so2 được cộng thêm 1. Nhưng sau khi gọi hàm xong giá trị của so1 vẫn là 5 và so2 vẫn là 10. oTruyền tham số theo kiểu tham chiếu với từ khóa ref và out : là kiểu truyền tham số vào phương thức mà trong phương thức có thay đổi giá trị của biến thì sau khi ra khỏi phương thức giá trị của biến sẽ thay đổi. Điều nay tỏ ra rất hữu ích khi ta muốn một phương thích trả về nhiều hơn một giá trị. Ví dụ: //Khai báo phương thức int ttong (ref int a, ref int b) { a=a+5; b=b+1; return a+b; } //Gọi hàm truyền tham số int so1=5, so2=10, tong; tong=ttong(so1,so2); 48 Bộ môn Truyền thông đa phương tiện – Trường Đại học Công nghệ thông tin và Truyền thông Bài giảng Ngôn ngữ lập trình ứng dụng – Ngành Truyền thông đa phương tiện Kết quả sau khi ra khỏi phương thức ttong so1 sẽ có giá trị bằng 10, và so2 có giá trị là 11. Từ khóa ref và out đều có thể được sử dụng trong trường hợp này, sự khác nhau cơ bản là nếu dùng out thì không cần khởi tạo các biến trước khi truyền vào phương thức. oTruyền tham số kiểu mảng với từ khóa params : điều này rất hữu ích khi ta muốn tạo ra một phương thức với số lượng tham số là một dãy số, với số lượng không có định, tùy thuộc vào lúc gọi phương thức. Ví dụ: //Khai báo phương thức public void DisplayVals( params int[] intVals) foreach (int i inintVals) { Console.WriteLine(“DisplayVals: {0}”, i); } //Gọi phương thức DisplayVals(1,2,6,5,4,7); DisplayVals(2,2,1,3,4,3,5,6,6,8,9); int[] mang = new int[5]{2,4,9,7,8}; DisplayVals(mang); - Phần thực thi của phương thức: nội dung phương thức tùy vào mục đích sử dụng của phương thức. Ví dụ. public class nguoi { kiểu int public void hello()// Phương thức không có tham số, không trả về gì cả { Console.WriteLine(“Xin chao cac ban”); } public int tinhTuoi(int nam_sinh)// Phương thức có tham số và trả về { int tuoi=2014-nam_sinh; return tuoi;//Với phương thức có giá trị trả về cần có câu lệnh return để xác định xem phương thức sẽ trả về cái gì. } } 3.1.2 Tạo đối tượng 49 Bộ môn Truyền thông đa phương tiện – Trường Đại học Công nghệ thông tin và Truyền thông Bài giảng Ngôn ngữ lập trình ứng dụng – Ngành Truyền thông đa phương tiện Các đối tượng là điểm cốt lõi để hiểu về công nghệ hướng đối tượng. Bây giờ hãy nhìn xung quanh và bạn sẽ thấy được rất nhiều ví dụ về đối tượng của thế giới thực: con chó, cái bàn, ti vi, xe đạp. Đối tượng trong thế giới thực có chung hai đặc điểm: Tất cả đều có trạng thái và hành vi. Chó có trạng thái (tên, màu sắc, loại, tình trạng đói hay no) và hành vi (sủa, tha đồ vật đến, vẫy đuôi). Xe đạp cũng có trạng thái (bánh răng, nhịp bàn đạp hiện tại, tốc độ hiện tại) và hành vi (thay đổi bánh răng, thay đổi nhịp bàn đạp, sử dụng phanh). Việc xác định trạng thái và hành vi của các đối tượng trong thế giới thực là một cách tuyệt vời để bắt đầu nghĩ đến các khái niệm của lập trình hướng đối tượng. Bây giờ ta hãy dành ra một vài phút để quan sát các đối tượng của thế giới thực xung quanh bạn. Đối với mỗi đối tượng mà bạn nhìn thấy, hãy tự đặt ra cho mình hai câu hỏi: “Đối tượng này có thể ở trong những trạng thái nào?” và “Đối tượng này có thể thưc hiện những hành vi nào?” Hãy chắc chắn rằng bạn đã ghi lại những quan sát của mình. Khi làm thế, bạn sẽ nhận thấy rằng các đối tượng trong thế giới thực có sự khác nhau về độ phức tạp; chiếc đèn bàn có thể chỉ có 2 trạng thái (đang bật và đang tắt) và hai hành vi (bật và tắt), nhưng chiếc radio có thể có thêm các trạng thái khác (đang bật, đang tắt, âm lượng hiện tại, kênh hiện tại) và hành vi (bật, tắt, tăng âm lượng, giảm âm lượng, tìm kiếm, dò kênh và điều chỉnh). Bạn cũng sẽ nhận thấy rằng một số đối tượng này có thể chứa các đối tượng khác. Những quan sát về thế giới thực này đều được chuyển vào trong thế giới của lập trình hướng đối tượng. Một đối tượng phần mềm. Về mặt khái niệm thì các đối tượng phần mềm cũng tương tự như các đối tượng trong thế giới thực: Nó cũng bao gồm các trạng thái và hành vi liên quan. Một đối tượng lưu trữ trạng thái của nó trong các trường (có thể được gọi là biến trong một số ngôn ngữ lập trình) và thể hiện các hành vi của mình ra bên ngoài thông qua các phương thức (có thể được gọi là hàm ở trong một số ngôn ngữ lập trình). Các phương thức thao tác trên các trạng thái bên trong của một đối tượng và được dùng như là cơ 50 Bộ môn Truyền thông đa phương tiện – Trường Đại học Công nghệ thông tin và Truyền thông ... - tailieumienphi.vn
nguon tai.lieu . vn