Lập trình hướng đối tượng OOP bai02

58 298 4
Lập trình hướng đối tượng   OOP bai02

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bộ mơn Cơng nghệ phần mềm VIỆN CƠNG NGHỆ THƠNG TIN TRUYỀN THÔNG TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Bài 02 Cú pháp Java/C++ Cao Tuấn Dũng dungct@soict.hut.edu.vn Mục tiêu học • Nêu quy ước đặt tên chương trình Java/C++ • Tạo định điều kiện, cấu trúc lặp rẽ nhánh hợp lệ • Mô tả kiểu liệu Java cách sử dụng • Các tốn tử • Sử dụng câu lệnh • Giải thích phạm vi biến • Khai báo, khởi tạo biến mảng Java Nội dung Định danh Các kiểu liệu Toán tử Cấu trúc điều khiển Mảng Nội dung Định danh Các kiểu liệu Toán tử Cấu trúc điều khiển Mảng Định danh • Định danh: ▫ Xâu ký tự thể tên biến, phương thức, lớp nhãn • Quy định với định danh: ▫ Các ký tự chữ số, chữ cái, '$' ‘_’ ▫ Tên không phép:  Bắt đầu chữ số  Trùng với từ khóa ▫ Phân biệt chữ hoa chữ thường  Yourname, yourname, YourName yourName định danh khác Định danh (2) • Quy ước với định danh (naming convention): ▫ Bắt đầu chữ ▫ Gói (package): tất sử dụng chữ thường  theexample ▫ Lớp (Class): viết hoa chữ từ ghép lại  TheExample ▫ Phương thức/thuộc tính (method/field): Bắt đầu chữ thường, viết hoa chữ từ lại  theExample ▫ Hằng (constants): Tất viết hoa  THE_EXAMPLE Định danh (3) • Literals null true false • Từ khóa (keyword) abstract assert boolean break byte case catch char class continue default double else extends final finally float for if implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while • Từ dành riêng (reserved for future use) byvalue cast const future generic goto inner operator outer rest var volatile Nội dung Định danh Các kiểu liệu Toán tử Cấu trúc điều khiển Mảng Các kiểu liệu • Trong Java kiểu liệu chia thành hai loại: ▫ Kiểu liệu nguyên thủy (primitive)     Số nguyên (integer) Số thực (float) Ký tự (char) Giá trị logic (boolean) ▫ Kiểu liệu tham chiếu (reference)  Mảng (array)  Đối tượng (object) 10 2.1 Kiểu liệu nguyên thủy • Mọi biến phải khai báo kiểu liệu ▫ Các kiểu liệu chứa giá trị đơn ▫ Kích thước định dạng phải phù hợp với kiểu • Java phân loại thành kiểu liệu nguyên thủy 46 4.6 Phạm vi biến • Phạm vi biến vùng chương trình mà biến tham chiếu đến ▫ Các biến khai báo phương thức truy cập phương thức ▫ Các biến khai báo vịng lặp khối lệnh truy cập vịng lặp khối lệnh Phạm vi hoạt động biến • Phạm vi hoạt động (scope) biến cho phép xác định nguyên lý tạo biến, sử dụng biến giải phóng biến • C++ cho phép định nghĩa biến điểm chương trình (on the fly) ▫ Phân loại: biến toàn cục (global), biến cục bộ, biến static • Java: từ khóa static cho phạm vi tồn cục Tốn tử phạm vi :: (C++) • Giúp phân biệt biến cục biến toàn cục #include int counter = 50; // global variable int main() { for (register int counter = 1; // this refers to the counter < 10; // local variable counter++){ printf("%d\n", ::counter // global variable / // divided by counter); // local variable } return 0; } tên • Trong Java khơng tồn khái niệm tốn tử phạm vi 49 Nội dung Định danh Các kiểu liệu Toán tử Cấu trúc điều khiển Mảng 50 variableName Mảng (array) reference • Tập hợp hữu hạn phần tử kiểu • Phải khai báo trước sử dụng Array or Object • Khai báo: ▫ Cú pháp:  kieu_dlieu[] ten_mang = new kieu_dlieu[KT_MANG];  kieu_dlieu ten_mang[] = new kieu_dlieu[KT_MANG]; ▫ Ví dụ:  char c[] = new char[12]; 51 5.1 Khai báo khởi tạo mảng • Khai báo, khởi tạo giá trị ban đầu: ▫ Cú pháp:  kieu_dl[] ten_mang = {ds_gia_tri_cac_ptu}; ▫ Ví dụ:  int[] number = {10, 9, 8, 7, 6}; • Nếu khơng khởi tạo  nhận giá trị mặc định tùy thuộc vào kiểu liệu • Ln phần tử có số 52 Ví dụ - mảng Tên mảng (tất thành phần mảng có tên, c) c.length: cho biết độ dài mảng c Chỉ số (truy nhập đến thành phần mảng thông qua số) c[ ] -45 c[ ] c[ ] c[ ] 72 c[ ] 1543 c[ ] -89 c[ ] c[ ] 62 c[ ] -3 c[ ] c[ 10 ] 6453 c[ 11 ] 78 53 5.1 Khai báo khởi tạo mảng (2) • Ví dụ: int MAX = 5; boolean bit[] = new boolean[MAX]; float[] value = new float[2*3]; int[] number = {10, 9, 8, 7, 6}; System.out.println(bit[0]); // prints “false” System.out.println(value[3]); // prints “0.0” System.out.println(number[1]); // prints “9” 55 5.2 Mảng nhiều chiều • Bảng với dịng cột ▫ Thường sử dụng mảng hai chiều ▫ Ví dụ khai báo mảng hai chiều b[2][2] ▫ int b[][] = { { 1, }, { 3, } };  khởi tạo cho b[0][0] b[0][1]  khởi tạo cho b[1][0] b[1][1] ▫ int b[3][4]; 56 5.2 Mảng nhiều chiều (2) Row Row Row Column Column Column b[ ][ ] b[ ][ ] b[ ][ ] b[ ][ ] b[ ][ ] b[ ][ ] b[ ][ ] b[ ][ ] b[ ][ ] b[ ][ ] b[ ][ ] b[ ][ ] Chỉ số cột Chỉ số hàng Tên mảng Column C++: Cấp phát nhớ động • Tốn tử cấp phát nhớ động new Có hai cách sử dụng new: ▫ Cấp phát nhớ cho biến new type; giá trị trả là: trỏ đến vị trí tương ứng cấp phát thành công NULL trường hợp trái lại ▫ Cấp phát mảng động phần tử new type[n] giá trị trả là: Con trỏ đến đầu vùng nhớ đủ để chứa n phần tử thuộc kiểu type NULL khơng cịn đủ nhớ để cấp phát C++: thu hồi nhớ động • Tốn tử giải phóng vùng nhớ động (heap) delete delete con_trỏ; delete [] con_trỏ; • Trả lại vùng nhớ trỏ con_trỏ • Sau lệnh delete giá trị con_trỏ khơng xác định C++: new delete Ví dụ: Với khai báo int *adr; lệnh adr=new int; cấp phát vùng nhớ cần thiết cho giá trị kiểu int gán địa cho adr lệnh: delete adr; giải phóng vùng nhớ trỏ adr; Lệnh char *adc= new char[100]; cấp phát vùng nhớ đủ để chứa 100 ký tự đặt địa đầu vùng nhớ vào biến adc Lệnh delete adc; giải phóng vùng nhớ Rị rỉ nhớ • Vấn đề: trỏ đến vùng nhớ cấp phát Khi đó, vùng nhớ bịmất dấu, trả lại cho heap int* ptr = new int; *ptr = 8; int* ptr2 = new int; *ptr2 = -5; ptr = ptr2; ptr -5 ptr2 ptr -5 ptr2 Con trỏ lạc • Khi delete ptr2, ta cần ý khơng xố vùng nhớ mà trỏ ptr khác trỏ tới int* ptr = new int; *ptr = 8; int* ptr2 = new int; *ptr2 = -5; ptr = ptr2; delete ptr2; // ptr is left dangling ptr2 = NULL; ptr -5 ptr2 ptr NULL ptr2 ... (float) Ký tự (char) Giá trị logic (boolean) ▫ Kiểu liệu tham chiếu (reference)  Mảng (array)  Đối tượng (object) 10 2.1 Kiểu liệu nguyên thủy • Mọi biến phải khai báo kiểu liệu ▫ Các kiểu liệu...2 Mục tiêu học • Nêu quy ước đặt tên chương trình Java/C++ • Tạo định điều kiện, cấu trúc lặp rẽ nhánh hợp lệ • Mơ tả kiểu liệu Java cách sử... System.out.println (num+ “la so chan”); else System.out.println (num + “la so le”); } } C++: Giải phương trình bậc #include int main(){ float a, b; cout

Ngày đăng: 12/01/2016, 21:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan