Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 37 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
37
Dung lượng
370,5 KB
Nội dung
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Bài Các kiểu liệu-Khai báo biến Nội dung - Các kiểu liệu: giá trị , tham chiếu - Khai báo biến : qui tắc, cách đặt tên - Các kiểu liệu Các kiểu liệu • C# cung cấp kiểu thể liệu • Kiểu liệu có sẵn – chuẩn Ví dụ kiểu số ngun : lưu trữ giá trị số nguyên Ngồi thơng tin lưu trữ , biến kiểu khơng có thêm thơng tin khác • Kiểu NSD định nghĩa , thường gọi lớp (class): chứa thơng tin nhiều nhiều thơng tin khác Các kiểu liệu(tt) • Ví dụ : Có thể xây dựng lớp để thể lớp mèo nhà , lớp này, ta có thông tin : tuổi, màu lông Cũng tropng lớp này, ta lại mô tả khả lớp mèo : kêu meo meo, ăn hay ngủ • Các khả lớp thiết kế thi công : gọi phương thức lớp • Kiểu NSD định nghĩa bao gồm lớp giao diện người lập trỉnh xây dựng đóng góp thêm vào thư viện NET Framework Cách lưu trữ truy xuất liệu • Kiểu liệu giá trị : lưu trữ stack, biến chứa giá trị • Kiểu liệu tham chiếu: có phần phần tham chiếu (con trỏ, số hiệu – handle) chứa stack, thân thông tin đối tượng lưu trữ heap (do C# quản lý) Phần tham chiếu chứa địa đối tượng heap • Satck C# quản lý nhằm chứa tất biến tạo chương trình • Biến lưu heap tạo lập trình viên cách sử dụng toán tử “new” Lưu trữ biến stack heap • Biến kiểu nguyên (integer : kiểu giá trị) ,biến kiểu chuổi (string : kiểu tham chiếu), biến ký tự (kiểu giá trị) Sao chép liệu – phép gán • Ngồi khác biệt việc lưu trữ thông tin, kiểu giá trị tham chiếu cịn có khác biệt thao tác “sao chép” • Khi biến kiểu giá trị đưọc gán biến khác : Giá trị lưu trữ chép từ biến sang biến Deep Copy • Cả biến count1 count2 có liệu riêng chúng, trường hợp Vùng liệu biến độc lập Nghĩa gán cho count1 count2 có giá trị • Kiểu chép gọi “deep copy” (sao chép sâu): Giá trị, thông tin biến liệu chép Shallow Copy • Các biến tham chiếu thực lệnh gán theo cách khác • Lưu ý kiêu tham chiếu gồm thành phần : liệu thực sử heap địa tham chiếu đến vùng liệu chứa stack • Khi gán biến tham chiếu cho biến tham chiếu khác : chép địa tham chiếu mà biến tham chiếu đến vùng liệu heap(shallow copy) • Ví dụ Ví dụ lệnh gán Ví dụ lệnh gán Thủ thuật đặt tên biến (tt) • Qui tắc Microsoft đề xuất : không bắt đầu ký tự _, ký tự ký tự thường, ký tự từ dạng chữ hoa cabinPressure restrictedTransactionType bodyTemperature newYorkYankees momentOfInertia aLengthyUnnecessaryLongVariableName • Tránh dùng lại tên biến dù sử dụng tính chất : C# phân biệt ký tự thường/hoa int namSinh , namsinh, NamSinh ; Các kiểu liệu giá trị • • • • • • • • • • • • • • Kiểu bool byte char decimal double float int long sbyte short uint ulong ushort Kích cỡ byte byte bytes 16 bytes bytes bytes bytes bytes byte bytes bytes bytes bytes Mô tả true or false Số nguyên không dấu (0-255) ký tự bảng mã Unicode độ xác đến 28 ký số số thực (chính xác gấp 2) số thực Số nguyên:-2 tỷ đến tỷ (xấp xỉ) Số nguyên có dấu -128 đến 127 -32000 đến 32000 (xấp xỉ) tỳ Số nguyên không dấu Số nguyên từ 64000(xấp xỉ) Từ khoá (Keywords ) • • • • • • • • • • • • abstract as base bool break byte case catch char checked class const continue decimal default delegate double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long namespace new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stack alloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual void while Cú pháp khai báo biến giá trị • Cú pháp khai báo biến: ; • Ví dụ : int count; float bendingMoment; char myInitial; • Lưu ý : kết thức khai báo biến ký tự ; • Các biến địa phương (local variables) biến nằm phương thức (method) phải khai báo trước sử dụng Khởi tạo phép gán • Khi khai báo gán ln giá trị cho biến : thường gọi khởi tạo biến(initialization) int count = 0; double bodyTemperature=99.5; //gọi khởi tạo-initialization string messages = "The elephant was pink"; • Cũng khai báo gán giá trị cho biến phần khác chương trình • int count; //Khai báo double bodyTemperature; string message; count = 5; bodyTemperature = 101.5; //goi phép gán - assignment messages = "My eyes are red"; • Trong C#: Tất biến phải lưu trữ liệu nghĩa chúng phải khởi tạo hay gán trị trước sử dụng • Nếu khơng tn thủ : thơng báo lỗi từ trình dịch public static void Main() { int k; string s; Console.WriteLine(k); Console.WriteLine(s); } Demo2.VD3 • Trong C/C++: Biến sử dụng mà khơng cần gán trước giá trị mà không bị cảnh báo từ trình biên dịch Đây ngun nhân gây lỗi chương trìnhvà điểm yếu ngơn ngữ C/C+ + • Xem thử tình minh họa sau Chuyển kiểu(Conversions) • Biến khởi tạo hay gán bới giá trị kiểu với hay từ giá trị thuộc kiểu khác ‘chuyển đỏi’ sang kiểu • Việc chuyển kiểu ngầm định hay rõ ràng (implicit /explicit) • Chuyển kiểu ngầm định xảy giá trị kiểu chuyển sang kiểu khác mà khơng thơng tin • Ví dụ kiểu short int ta chuyển kiểu ngầm định từ short sang int mà không thông tin • Tương tự kiểu float double • Chuyển kiểu ngầm định từ kiểu có phạm vi biểu diễn rộng sang kiểu phạm vi nhỏ gây lỗi Do phải chuyển kiểu cách rõ ràng (ép kiểu) • Lưu ý : khả thơng tin, trình biên dịch hỗ trợ việc kiểm tra sai sót Ví dụ việc chuyển kiểu • using System; namespace Example2 { class PromotionDemo { static void Main(string[] args) { short s = 5; int i; i = s; //Implicit conversion From short to int System.Console.WriteLine("i is {0}",i); float f = 52.7F; double d; d = f; //Implicit conversion From float to double System.Console.WriteLine("d is {0}",d); f = d; Error: Cannot implicitly convert type 'double' to 'float' f = (float) d; //Explicit Conversion System.Console.WriteLine("f is {0}",f); // i = f; Error: Cannot implicitly convert type 'float' to 'int' Nhận xét kết in !!! i = (int) f; //Explicit Conversion System.Console.WriteLine("i is {0}",i); } } } • Kết in : i is d is 52.7000007629395 f is 52.7 i is 52 Press any key to continue • Nhận xét : Giá trị biến d có điểm khác biệt so với giá trị biến f Lý : f có độ xác thấp nên bit dư d có giá trị ngẫu nhiên • Nhận xét : Biến i mang giá trị 52 Làm quen kiểu string string str="Thu Khao Sat Du Lieu Chuoi Ky Tu"; System.Console.WriteLine("Chuoi ban dau : {0}",str); System.Console.WriteLine("Doi sang dang chu hoa la :"+str.ToUpper()); System.Console.WriteLine("Doi sang dang chu thuong la :"+str.ToLower()); System.Console.WriteLine("Co tat ca la {0} ky tu ",str.Length); //System.Console.WriteLine("abc < aBC = {0}" ,"abc"