Danh mục

Giáo trình truy cập các thành phần trong mảng đa chiều có kích thước khác nhau p4

Số trang: 40      Loại file: pdf      Dung lượng: 1.88 MB      Lượt xem: 10      Lượt tải: 0    
Xem trước 4 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Đoạn chương trình trên hoạt động tốt, tuy nhiên cho đến khi có một ai đó thay đổi giá trị của biến thành viên này. Như ta thấy, biến thành Year trên đã được thay đổi đến 2003. Điều này thực sự không như mong muốn của chúng ta. Chúng ta muốn đánh dấu các thuộc tính tĩnh này không được thay đổi. Nhưng khai báo hằng cũng không được vì biến tĩnh không được khởi tạo cho đến khi phương thức khởi dựng static được thi hành....
Nội dung trích xuất từ tài liệu:
Giáo trình truy cập các thành phần trong mảng đa chiều có kích thước khác nhau p4 Ngôn Ngữ Lập Trình C# { Console.WriteLine(“This year: {0}”, RightNow.Year.ToString()); RightNow.Year = 2003; Console.WriteLine(“This year: {0}”, RightNow.Year.ToString()); } }----------------------------------------------------------------------------- Kết quả:This year: 2002This year: 2003-----------------------------------------------------------------------------Đoạn chương trình trên hoạt động tốt, tuy nhiên cho đến khi có một ai đó thay đổi giá trị củabiến thành viên này. Như ta thấy, biến thành Year trên đã được thay đổi đến 2003. Điều nàythực sự không như mong muốn của chúng ta.Chúng ta muốn đánh dấu các thuộc tính tĩnh này không được thay đổi. Nhưng khai báo hằngcũng không được vì biến tĩnh không được khởi tạo cho đến khi phương thức khởi dựng staticđược thi hành. Do vậy C# cung cấp thêm từ khóa readonly phục vụ chính xác cho mục đichtrên. Với ví dụ trên ta có cách khai báo lại như sau: public static readonly int Year; public static readonly int Month; public static readonly int Date; public static readonly int Hour; public static readonly int Minute; public static readonly int Second;Khi đó ta phải bỏ lệnh gán biến thành viên Year, vì nếu không sẽ bị báo lỗi: // RightNow.Year = 2003; // errorChương trình sau khi biên dịch và thực hiện như mục đích của chúng ta.Câu hỏi và trả lờiCâu hỏi 1: Có phải chúng ta chỉ nên sử dụng lớp với các dữ liệu thành viên?Trả lời 1: Nói chung là chúng ta không nên sử dụng lớp chỉ với dữ liệu thành viên. Ý nghĩacủa môt lớp hay của lập trình hướng đối tượng là khả năng đóng gói các chức năng và dữliệu vào trong một gói đơn.Câu hỏi 2: Có phải tất cả những dữ liệu thành viên luôn luôn được khai báo là public để bênngoài có thể truy cập chúng? 121 Xây Dựng Lớp - Đối Tượng Ngôn Ngữ Lập Trình C#Trả lời 2: Nói chung là không. Do vấn đề che dấu dữ liệu trong lập trình hướng đối tượng,xu hướng là dữ liệu bên trong chỉ nên dùng cho các phương thức thành viên. Tuy nhiên, nhưchúng ta đã biết khái niệm thuộc tính cho phép các biến thành viên được truy cập từ bênngoài thông qua hình thức như là phương thức.Câu hỏi 3: Có phải có rất nhiều lớp được xây dựng sẵn và tôi có thể tìm chúng ở đâu?Trả lời 3: Microsoft cung cấp rất nhiều các lớp gọi là các lớp cơ sở .NET. Những lớp nàyđược tổ chức bên trong các namespace. Chúng ta có thể tìm tài liệu về các lớp này trong thưviện trực tuyến của Microsoft. Và một số lớp thường sử dụng cũng được trình bày lần lượttrong các ví dụ của giáo trình này.Câu hỏi 4: Sự khác nhau giữa tham số (parameter) và đối mục (argument)?Trả lời 4: Tham số được định nghĩa là những thứ được truyền vào trong một phương thức.Một tham số xuất hiện với định nghĩa của phương thức ở đầu phương thức. Một đối mục làgiá trị được truyền vào phương thức. Chúng ta truyền những đối mục vào phương thức phùhợp với những tham số đã khai báo của phương thức.Câu hỏi 5: Chúng ta có thể tạo phương thức bên ngoài của lớp hay không?Trả lời 5: Mặc dù trong những ngôn ngữ khác, chúng ta có thể tạo các phương thức bênngoài của lớp. Nhưng trong C# thì không, C# là hướng đối tượng, do vậy tất cả các mãnguồn phải được đặt bên trong một lớp.Câu hỏi 6: Có phải những phương thức và lớp trong C# hoạt động tương tự như trong cácngôn ngữ khác như C++ hay Java?Trả lời 6: Trong hầu hết các phần thì chúng tương tự như nhau. Tuy nhiên, mỗi ngôn ngữcũng có những khác biệt riêng. Một ví dụ sự khác nhau là C# không cho phép tham số mặcđịnh bên trong một phương thức. Trong ngôn ngữ C++ thì chúng ta có thể khai báo cáctham số mặc định lúc định nghĩa phương thức và khi gọi phương thức thì có thể không cầntruyền giá trị vào, phương thức sẽ dùng giá trị mặc định. Trong C# thì không được phép. Nóichung là còn nhiều sự khác nhau nữa, nhưng xin dành cho bạn đọc tự tìm hiểu.Câu hỏi 7: Phương thức tĩnh có thể truy cập được thành viên nào và không truy cập đượcthành viên nào trong một lớp?Trả lời 7: Phương thức tĩnh chỉ truy cập được các thành viên tĩnh trong một lớp.Câu hỏi thêmCâu hỏi 1: Sự khác nhau giữa thành viên được khai báo là public và các thành viên khôngđược khai báo là public?Câu hỏi 2: Từ khoá nào được sử dụng trong việc thực thi thuộc tính của lớp?Câu hỏi 3: Những kiểu dữ liệu nào được trả về từ phương thức?Câu hỏi 4: Sự khác nhau giữa truyền biến tham chiếu và truyền biến tham trị vào mộtphương thức?Câu hỏi 5: Làm sao truyền tham chiếu với biến kiểu giá trị vào trong một phương thức? 122 Xây Dựng Lớp - Đối Tượng ...

Tài liệu được xem nhiều: