Bài giảng Lập trình hướng đối tượng (OOP) - Chương 1: Làm quen với Java - Bài 2- Văn Thị Thiên Trang

Bài 2: Một số thành phần cơ bản trong Java „ Một số qui định „ Bảng chữ cái và Định danh „ Từ khóa „ Kiểu dữ liệu „ Thứ tự ưu tiên các phép toán „ Biến „ Lớp Math „ Nhập xuất dữ liệu „ Cấu trúc điều khiển „ Mảng „ Bài tập trắc nghiệm và thực hành

pdf14 trang | Chia sẻ: candy98 | Lượt xem: 448 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Bài giảng Lập trình hướng đối tượng (OOP) - Chương 1: Làm quen với Java - Bài 2- Văn Thị Thiên Trang, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
1Chương 1: LÀM QUEN VỚI JAVA Bài 2: Một số thành phần cơ bản trong Java Mục đích & Yêu cầu „ Biết cách định nghĩa 1 tên trong java „ Biết các từ khóa của java. „ Hiểu các kiểu dữ liệu cơ bản của java. „ Nhận biết được cú pháp java gần hoàn toàn giống C. „ Giải thích được cơ chế điều khiển chương trình „ Biết các đặc tính về mảng với java „ Sử dụng được các hàm nhập xuất dữ liệu cơ bản. Nội dung „ Một số qui định „ Bảng chữ cái và Định danh „ Từ khóa „ Kiểu dữ liệu „ Thứ tự ưu tiên các phép toán „ Biến „ Lớp Math „ Nhập xuất dữ liệu „ Cấu trúc điều khiển „ Mảng „ Bài tập trắc nghiệm và thực hành 1. Một số qui định „ Chú thích: • Trên 1 dòng: //Chú thích • Nhiều dòng: /* Các dòng chú thích */ „ Lệnh đơn: kết thúc bằng ; „ Khối lệnh: { }. Các khối lệnh có thể lồng nhau. 21. Một số qui định „ Ví dụ: 1. Một số qui định „ Khai báo lớp l Si hVi „ Biến Si hc ass n en „ Giao diện interface Nguoi „ Phương thức diHoc([tham số]) ngay n „ Hằng NAM NU 2. Bảng chữ cái & Định danh „ Bảng chữ cái: • Các chữ cái: A, B, .., Z, a, , z. • Các chữ số: 0, 1, , 9. • Các ký tự khác: +, -, 2. Bảng chữ cái và Định danh „ Định danh ế• Là tên của một bi n, lớp, hoặc phương thức. • Bắt đầu bằng kí tự hoặc dấu gạch dưới _ hoặc dấu đôla $. • Trong định danh, có thể dùng chữ cái, chữ số, dấu _. • Không hạn chế chiều dài. „ Ví dụ: • SoNguyen • _phanSo • $tongtien „ Chú ý: không viết tắt. Không đặt tên trùng với từ khóa. 33. Từ khóa 3. Từ khóa „ Cho các kiểu dữ liệu cơ bản : byte, short, int, long, float, double, char, boolean „ Phát biểu lặp: do, while, for, break, continue „ Phát biểu rẽ nhánh: if, else, switch, case, default, break „ Đặc tả đặc tính một method: private, public, protected, final, static, abstract, synchronized, volatile, strictfp 3. Từ khóa „ Hằng (literal): true, false, null „ Từ khóa liên quan đến method: return, void „ Từ khoá liên quan đến package: package, import „ Từ khóa cho việc quản lý lỗi: try, catch. finally, throw throws, „ Từ khóa liên quan đến đối tượng: new, extends, implements, class, instanceof, this, super 4. Kiểu dữ liệu „ Số nguyên: ểKi u Kích thước Phạm vi byte 1 byte -128->127 short 2 bytes -32768->32767 int 4 bytes -2 147 483 648 -> long 8 bytes -9 223 372 036 854 775 808, , , , , , „ Các phép toán: +, -, *, /, %, ++, -- 44. Kiểu dữ liệu „ Ký tự: • char • 2bytes (dùng bảng mã unicode) „ Hằng ký tự: đặt giữa ‘’ „ Các ký tự đặc biệt: • \b xóa lùi • \t tab • \n xuống dòng \”“• • \’ ‘ • \\ \ • \uxxxx ký tự unicode „ Ví dụ: ‘a’, ‘\n’, ‘\\’, ‘\’’ 4. Kiểu dữ liệu „ Logic: • boolean • Giá trị: true, false. „ Các phép toán: ! && ||• , , „ Ví dụ: 3> 5 có giá trị false 4. Kiểu dữ liệu „ Số thực: Kiểu Kích thước Phạm vi float 4 bytes 1.40129846432481707e-45 3.40282346638528860e+38 double 8 bytes 4.94065645841246544e-324 1.79769313486231570e=308 „ Các phép toán: • +,-,*,/,++,-- 5. Thứ tự ưu tiên các phép toán 56. Biến „ Khai báo biến: • Kiểu dữ liệu ; • Ví dụ: int x, y; „ Phép gán: • biến = ; • Kết quả phép gán trả về giá trị biểu thức. • Được phép gán: a = b = c; „ Các phép gán mở rộng: • +=, -=, *=, /=, %= 6. Biến 6. Biến „ Phạm vi giá trị của biến ố ế„ có phạm vi trong kh i khai báo bi n đó. „ ví dụ: 6. Biến 66. Biến „ Chương trình này có lỗi không? vì sao? 6. Biến „ Lỗi không tìm thấy khai báo biến j 6. Biến „ Giá trị khởi tạo ban đầu của biến 6. Biến Chương trình này chạy có lỗi không? Vì sao? 76. Biến Chương trình có lỗi. Biến i, b chưa thiết lập. Î Để cho chặt chẽ, Java buộc người lập trình phải thiết lập giá trị trước khi sử dụng. 6. Biến „ Chuyển đổi kiểu dữ liệu: • Hằng xác định kiểu dữ liệu: „ 1.2 double „ 1.2f float „ 123l long • Chuyển đổi kiểu tự động: „ byte->short->int->long->float->double. • Ép kiểu: „ (kiểu) „ Ví dụ: int x = (int) 123.45; //x=123 7. Lớp Math „ Thuộc gói lang, chứa các hàm toán học: • import java lang *;. . „ Một số hàm toán học abs(TrịSố) : lấy trị tuyệt đối Nếu trị số kiểu byte, short thì kết qủa là kiểu int int n= -5, m ; m = Math.abs(n); // m=5 Î Để ý cách dùng hàm toán: Math TênHàm(thamSố). „ Hàm ceil(x)Æ Số tròn sát trên <=x (trần) Math.ceil(8.02)Æ 9.0 Math.ceil(-1.3)Æ -1.0 Math.ceil(100)Æ 100.0 7. Lớp Math „ Hàm floor(x) Æ Số tròn chận dưới (sàn) Math.ceil( -5.63 )Æ -6.0 Math.ceil(100) Æ 100.0 „ Hàm max(x,y) Æ Trị lớn trong 2 số „ Hàm min(x,y) „ Hàm random() Æ trả về 1 số ngẫu nhiên từ 0.0 đến 1.0 „ Hàm round (sốthực) Math.round(34.5) Æ 35 „ sqrt(x)Æ trả lại căn bân 2 của x 88. Nhập xuất dữ liệu „ Nhập xuất dữ liệu là tác vụ mức hệ thống „ Gói java.io chứa các lớp cho việc xuất nhập. • import java.io.*; „ Java cung cấp class System mô tả hệ thống System out là đối tượng xuất mặc định (màn hình)„ . „ System.in là đối tượng nhập mặc định ( bàn phím) 8. Nhập xuất dữ liệu „ Xuất dữ liệu ra màn hình: • con trỏ không xuống dòng System.out.print(Dữ liệu xuất); • con trỏ xuống dòng System.out.println(Dữ liệu xuất); Dữ liệu xuất có thể là : ký tự, số, chuỗi, „ VD: System.out.println(“Gia tri cua bien a la:” + a); 8. Nhập xuất dữ liệu „ Minh họa 8. Nhập xuất dữ liệu „ Nhập vào dạng số nguyên hoặc mảng byte ể ễ ủ ỗbi u di n giá trị c a chu i nhập vào. „ Nhập một ký tự System.in.read();Æ trả lại giá trị mã accii „ Nhập nhiều ký tự System.in.read(byte[],int,int); „ Mỗi phần tử mảng biểu diễn nhị phân của một ký tự nhập vào 98. Nhập xuất dữ liệu „ Æ System.in.read: Chỉ nhập được dạng kí tự 8. Nhập xuất dữ liệu 8. Nhập xuất dữ liệu „ Import java.util.*; „ Nhập xét: Nhập dữ liệu từ bàn phím khá phức tạp Mong muốn nhập dữ liệu kiểu byte, int, String, ... Lớp Scanner cho phép ta nhập theo kiểu này. Khai báo: Scanner x = new Scanner(System.in); Đọc dữ liệu int i; i = x.nextInt(); byte b; b = x.nextByte(); String c; c = x.nextLine(); 8. Nhập xuất dữ liệu „ Ví dụ: Chương trình nhập vào: • Tên bạn • Tuổi • Năm sinh • Điểm trung bình năm 1 ấXu t các thông tin này ra màn hình 10 8. Nhập xuất dữ liệu „ Nhập xuất sử dụng hộp thoại „ Lớp: javax.swing.JOptionPane 8. Nhập xuất dữ liệu „ Kết quả 9. Cấu trúc điều khiển „ Rẽ nhánh: if (điều kiện) Công việc 1; [else Công việc 2;] ế ề• N u đúng thì thực hiện <Công việc 1>, ngược lại thực hiện (nếu có). 9. Cấu trúc điều khiển Lưu ý: Sai! if( i == j ) if ( j == k ) System.out.print( “i == k”); Đúng! if( i == j) ){{ if ( j == k ) System.out.print( “i == k”); else System.out.print( “i != j”); }]} else System.out.print( “i != j”); 11 9. Cấu trúc điều khiển „ Lựa chọn: switch () { case gt1: CV1; case gt2: CV2; case gtn: CVn; d f lt CV 1e au : n+ ; } • Nếu giá trị trùng với giá trị (gt) nào thì thực hiện các công việc (CV) từ đó đến hết khối. • Để dừng khi thực hiện 1 CV thì dùng lệnh break; 9. Cấu trúc điều khiển „ Ví dụ: Chương trình đọc số từ 0..9 thành chữ. Số được nhập vào từ bàn phím. class DocSo { public static void main(String args[]) { byte so = Byte.parseByte(args[0]); switch (so) { case 0: System.out.println(“Khong”);break; case 9: System.out.println(“Chin”);break } } } 9. Cấu trúc điều khiển „ Lặp for: ềfor (;;) ; 1. Thực hiện 2. Nếu đúng thì thực hiện <Công việc lặp> 3. Thực hiện 4. Quay lại kiểm tra 5. Lặp bước 2 đến khi sai. 9. Cấu trúc điều khiển „ Ví dụ: Chương trình tính tổng các số đưa vào từ tham số. class TinhTong { public static void main(String args[]) { int tong=0,i; for(int i=0; i<args.length; i++) tong+=Integer.parseInt(args[i]); System.out.println(“Tong = ”+tong); } } Thực hiện: java TinhTong 1 3 4 5 2 12 9. Cấu trúc điều khiển „ Lặp while: while() ; • Thực hiện khi còn đúng. „ do .. while: do { ; } while (); 9. Cấu trúc điều khiển „ Lệnh break: • Ra khỏi 1 cấu trúc chuyển đến lệnh ngay sau cấu trúc đó. „ Lệnh continue: • Quay lại đầu vòng lặp. „ Đặt biệt continue label; //nhảy tới label 10. Mảng „ Khai báo biến mảng: • KiểuDữLiệu tênBiếnMảng[]; • KiểuDữLiệu[] tênBiếnMảng; • Ví dụ: int m[]; • Hoặc int[] m; ấ„ C p phát ô nhớ cho mảng: • tênBiếnMảng = new KiểuDữLiệu[sốPT]; • Ví dụ: m = new int[10]; 10. Mảng „ Khai báo và khởi tạo: • KiểuDữLiệu tênBiếnMảng[]={ds các gt}; • Ví dụ: int m[]={1,2,3,4}; „ Thao tác với biến mảng: • Thao tác từng phần tử: tênBiếnMảng[i] • Chỉ số bắt đầu từ 0. • Ví dụ: m[0]=1; m[1]=10; 13 10. Mảng „ Ví dụ: Sinh ngẫu nhiên mảng số nguyên. Sắp xếp in lên màn hình, . class SapXep { public static void main(String args[]) { int a[] = new int[100],i,j; for(i=0;i<100;i++) a[i]=(int)(Math.random()*100); 10. Mảng for(i=0;i<99;i++) for(j=i+1;j<100;j++) if(a[i]>a[j]) { int tg=a[i]; a[i]=a[j]; a[j]=tg; } System.out.println("Mang ngauhi ")n en: ; for(i=0;i<100;i++) System.out.print(a[i]+ " "); } } 10. Mảng „ Mảng 2 chiều: • Là mảng của mảng 1 chiều. • Khai báo: „ Kiểu biến[][]; „ Cấp phát ô nhớ: biến=new kiểu[m][n]; „ Khởi tạo: int m[][]={{1,2,3},{4,5,6}}; • Thao tác: „ biến[i][j] 11. Bài tập thực hành 1. Chương trình giải phương trình bậc hai ax2 + bx + c =0 ể ế ể2. Nhập vào đi m, cho bi t đi m này thuộc loại gì? ví dụ: 6 : loại trung bình 3. Chương trình tính n! với n là tham số đưa vào từ dòng lệnh. 4 Viết chương trình nhập vào một số n xuất ra màn hình. , các số nguyên tố trong khoảng [0,n]. Với n nhập vào từ bàn phím 5. Viết chương trình tính tổng sau: s = 12+32+.. +(2n+1)2 14 11. Bài tập thực hành 7. Nhập m,n nguyên (0<m,n<20). In lên màn hình tam giác cân có chiều cao m, và hình chữ nhật có chiều rộng là n. * ************** * * * * * * * *n * * * * * * * * * * * ************** m 11. Bài tập thực hành 8. Tìm ước số chung lớn nhất (USCLN). ấ9. Nhập vào một dãy b t kỳ: • in dãy đảo ngược dãy đó, ví dụ: dãy 1 5 3 8, in ra 8 3 5 1 • Sắp xếp dãy tăng dần, in dãy • Sắp xếp giảm dần, in dãy 10. Nhập vào một ma trận Am,n • Tìm số nhỏ nhất và số lớn nhất trong ma trận • Tính tổng của tất cả các phần tử trong ma trận • Đểm trong ma trận có bao nhiêu số dương, 0, số âm