Tải bản đầy đủ (.ppt) (47 trang)

Chuong 1 Ngon ngu lap trinh Java

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (404.79 KB, 47 trang )

<span class='text_page_counter'>(1)</span>Chương 1 Ngôn ngữ lập trình Java. Nguyễn Dư Nghĩa Khoa : Công nghệ thông tin 1.

<span class='text_page_counter'>(2)</span> Nội dung chính • Giới thiệu về NNLT hướng đối tượng Java • Bảng chữ cái và định danh • Kiểu dữ liệu nguyên thủy • Chương trình Java • Biên dịch và thực hiện chương trình • Tham số từ đối dòng lệnh •Cấu trúc điều khiển • Mảng. 2.

<span class='text_page_counter'>(3)</span> 1. Giới thiệu • Vài nét về lịch sử: • Cuối 1990, James Gosling (Cty Sun Microsystem) xây dựng và đặt tên Oak. • Sau đó Oak đổi tên Java. • Năm 1993 hỗ trợ Web/Internet. • Năm 1995 Sun Microsystem công bố chính thức Java. 3.

<span class='text_page_counter'>(4)</span> 1. Giới thiệu (tiếp) • Đặc trưng của NNLT Java: “Java là ngôn ngữ đơn giản, hướng đối tượng, phân tán, thông dịch lẫn biên dịch, mạnh mẽ, bảo mật, cấu trúc độc lập, khả chuyển, hiệu quả cao và linh động” (Sun Microsystem). 4.

<span class='text_page_counter'>(5)</span> 1. Giới thiệu (tiếp) • Đơn giản: • Xây dựng từ C và C++, bỏ đi những phức tạp của C. • Bộ biên dịch có kích thước nhỏ (bản 1.4 chỉ 6MB). • Hướng đối tượng: • Chương trình Java viết hoàn toàn HĐT. • Mọi khai báo đều trong một lớp. 5.

<span class='text_page_counter'>(6)</span> 1. Giới thiệu (tiếp) • Phân tán (distributed): • Hỗ trợ các ứng dụng phân tán qua lập trình mạng. • Một chương trình Java có thể kết hợp từ nhiều chương trình khác nhau trên Internet. • Thông dịch (Interpreter) và biên dịch (compiler): • Một chương trình Java được biên dịch (sang mã bytecode) sau đó thông dịch để thực thi. 6.

<span class='text_page_counter'>(7)</span> 1. Giới thiệu (tiếp) • Mạnh mẽ: • Java có hệ thống thư viện lớn. • Ràng buộc người lập trình chặt chẽ. • Bảo mật (security): • Các bước kiểm tra trước khi thực hiện chương trình rất chặt chẽ. • Java không dùng biến con trỏ nên không truy xuất trực tiếp bộ nhớ. 7.

<span class='text_page_counter'>(8)</span> 1. Giới thiệu (tiếp) • Kiến trúc trung tính (Neutral architecture): Chương trình java được dịch sang bytecode có thể thực hiện trên mọi hệ thống máy tính khác nhau: Macintosh, Intel, Sun, Alpha,... và trên nhiều hệ điều hành khác nhau: Windows, Unix, Sun Solaris, Macintosh,… Chương trình thông dịch trên mỗi hệ thống tạo thành máy ảo java (JVM). 8.

<span class='text_page_counter'>(9)</span> 1. Giới thiệu (tiếp) • Khả chuyển: • Khẩu hiệu của Java “Write Once, Run Anywhere” nhờ máy ảo Java tương thích môi trường.. 9.

<span class='text_page_counter'>(10)</span> 1. Giới thiệu (tiếp) • Hiệu quả cao (High-performance): • Tính hiệu quả chung so với C và C++. • Tốc độ chương trình Java chậm. • Đa tuyến (Multi-Thread): • Cho phép lập trình tạo ra nhiều tiến trình đồng thời. • Linh động (flexible): • Trong khi chạy có thể tự liên kết với các lớp mới ở máy chủ ở xa trên Internet.. 10.

<span class='text_page_counter'>(11)</span> 1. Giới thiệu (tiếp) • Bộ công cụ JDK (Java Development Kit) • Bộ công cụ phát triển trên môi trường Java bao gồm: • Chương trình dịch: javac.exe • Trình thông dịch: java.exe • Tạo tài liệu: javadoc.exe • Thực thi applet: appletviewer.exe • Các thư viện •…. 11.

<span class='text_page_counter'>(12)</span> 1. Giới thiệu (tiếp) • Các ứng dụng Java: • Ứng dụng Console: thực hiện từ DOS. • Ứng dụng desktop giao diện đồ họa. • Java Applet. • Lập trình mạng. • Lập trình ứng dụng Web: servlet, jsp. • Lập trình CSDL: JDBC. • JavaBean. • Lập trình phân tán. • Lập trình mobile.. 12.

<span class='text_page_counter'>(13)</span> Cơ bản về Ngôn ngữ lập trình Java. 13.

<span class='text_page_counter'>(14)</span> 2. Bảng chữ cái và đị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: +, -, … • Định danh (Identifier): • Bắt đầu bằng chữ cái hoặc _ hoặc $ • Có thể dùng chữ cái, chữ số, dấu _ trong định danh. • Phân biệt chữ hoa và chữ thường 14.

<span class='text_page_counter'>(15)</span> 3. Các kiểu dữ liệu nguyên thủy {1} • 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: +, -, *, /, %, ++, -15.

<span class='text_page_counter'>(16)</span> 3. Các kiểu dữ liệu nguyên thủy • 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. 16.

<span class='text_page_counter'>(17)</span> 3. Các kiểu dữ liệu …(tiếp) • Logic: boolean • Giá trị: true, false. • Các phép toán: !, &&, ||. 17.

<span class='text_page_counter'>(18)</span> 3. Các kiểu dữ liệu … (tiếp) • 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: +,-,*,/,%,++,-• Các hằng: NaN (không phải số), Infinity (vô cùng). 18.

<span class='text_page_counter'>(19)</span> 3. Các kiểu dữ liệu … (tiếp) • Khai báo biến: • Kiểu dữ liệu <ds biến>; Ví dụ: int x, y; • Phép gán: • biến = <biểu thức>; • 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: +=, -=, *=, /=, %=. 19.

<span class='text_page_counter'>(20)</span> 3. Các kiểu dữ liệu …(tiếp) • 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)<biểu thức> • Ví dụ: int x = (int) 123.45; //x=123. 20.

<span class='text_page_counter'>(21)</span> Thứ tự ưu tiên các phép toán • [] ,., (params), expr++, expr-• ++expr, --expr, +expr, -expr, ! • */% • +• <, >, <=, >= • ==, != • && • || • ?: • =, +=, -=, *=, /=, %=. 21.

<span class='text_page_counter'>(22)</span> 4. Chương trình Java • 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: { } 22.

<span class='text_page_counter'>(23)</span> 4. Chương trình Java (tiếp) • Cấu trúc 1 chương trình Java đơn giản: import <gói thư viện>; class <TênLớp> { public static void main(String args[]) { }. Các lệnh. } • Các lệnh trong hàm main sẽ được thực hiện khi thực thi chương trình.. 23.

<span class='text_page_counter'>(24)</span> 4. Chương trình Java (tiếp) • Ví dụ: chương trình in lên màn hình dòng chữ “Chao Java”. class Chao{ public static void main(String args[]) { System.out.println("Chao Java."); } }. 24.

<span class='text_page_counter'>(25)</span> 4. Chương trình Java (tiếp) • Lưu chương trình: Chao.java (trùng tên lớp). • Biên dịch chương trình từ DOS: • javac Chao.java => Chao.class • Thông dịch: Java Chao. 25.

<span class='text_page_counter'>(26)</span> Biên dịch và thông dịch chương trình Java. 26.

<span class='text_page_counter'>(27)</span> 4. Chương trình Java (tiếp) • Tham số từ dòng lệnh: • Khi thực hiện chương trình từ dòng lệnh có thể truyền tham số vào chương trình. • Các tham số được đưa vào mảng các xâu của hàm main(String args[]). • Truyền tham số từ dòng lệnh: • Java <TênLớp> <ds đối số> • Ví dụ: chương trình in lên màn hình dòng “Chao <Tên>” với <Tên> đưa vào từ tham số.. 27.

<span class='text_page_counter'>(28)</span> Chương trình Chao2.java class Chao2 { public static void main(String args[]) { System.out.print("Chao " + args[0]); } } 28.

<span class='text_page_counter'>(29)</span> Thực hiện chương trình. 29.

<span class='text_page_counter'>(30)</span> 5. 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 <điều kiện> đúng thì thực hiện <Công việc 1>, ngược lại thực hiện <Công việc 2> (nếu có). 30.

<span class='text_page_counter'>(31)</span> 5. Cấu trúc điều khiển (tiếp) • Lựa chọn: switch (<biểu thức>) { case gt1: CV1; case gt2: CV2; … case gtn: CVn; default: CVn+1; } • Nếu giá trị <biểu thức> 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; 31.

<span class='text_page_counter'>(32)</span> Ví dụ • Chương trình đọc số từ 0..9 thành chữ. Số đưa vào từ dòng lệnh. 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 ; } } } 32.

<span class='text_page_counter'>(33)</span> 5. Cấu trúc điều khiển (tiếp) • Lặp for: for (<lệnh 1>;<điều kiện>;<lệnh 2>) <Công việc lặp>; • Thực hiện <lệnh 1> • Nếu <điều kiện> đúng thì thực hiện <Công việc lặp> • Thực hiện <lệnh 2> • Quay lại kiểm tra <điều kiện> • Lặp đến khi <điều kiện> sai.. 33.

<span class='text_page_counter'>(34)</span> 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 34.

<span class='text_page_counter'>(35)</span> 5. Cấu trúc điều khiển (tiếp) • Lặp while: while(<điều kiện>) <Công việc lặp>; Thực hiện <Công việc lặp> khi <điều kiện> còn đúng. • do .. while: do{ <Công việc lặp>; } while (<điều kiện>); 35.

<span class='text_page_counter'>(36)</span> 5. Cấu trúc điều khiển (tiếp) • 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.. 36.

<span class='text_page_counter'>(37)</span> 6. 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];. 37.

<span class='text_page_counter'>(38)</span> 6. Mảng (tiếp) • 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;… • Số phần tử của mảng: m.length 38.

<span class='text_page_counter'>(39)</span> 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); 39.

<span class='text_page_counter'>(40)</span> Ví dụ 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 ngau nhien:"); for(i=0;i<100;i++) System.out.print(a[i]+ " "); } } 40.

<span class='text_page_counter'>(41)</span> 6. Mảng (tiếp) • 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] 41.

<span class='text_page_counter'>(42)</span> Ví dụ • Chương trình sinh ngẫu nhiên mảng 2 chiều. Tính tổng các số ở dòng lẻ trong mảng.. 42.

<span class='text_page_counter'>(43)</span> 7. Nhập dữ liệu từ bàn phím import java.io.*; class Input { public static int InputInt() { String str=null; DataInputStream stream = new DataInputStream(System.in); try{str = stream.readLine(); } catch(IOException e){} return Integer.valueOf(str).intValue(); } 44.

<span class='text_page_counter'>(44)</span> Nhập số thực public static float InputFloat() { String str=null; DataInputStream stream = new DataInputStream(System.in); try{ str = stream.readLine(); } catch(IOException e){} return Float.valueOf(str).floatValue(); } 45.

<span class='text_page_counter'>(45)</span> Nhập ký tự public static float InputChar() { String str=null; DataInputStream stream = new DataInputStream(System.in); try{ str = stream.readLine(); } catch(IOException e){} return str.charAt(0); } 46.

<span class='text_page_counter'>(46)</span> Ví dụ • Nhập độ dài bán kính hình tròn, tính chu vi và diện tích. class HinhTron{ public static void main(String args[]) { int r; double dt, cv; System.out.print(“Nhap ban kinh ”); r = Input.InputInt(); dt = r * r * Math.PI; cv = 2*r* Math.PI; System.out.println(“Dien tich: ”+dt+“chu vi:”+cv); } } 47.

<span class='text_page_counter'>(47)</span> Bài thực hành số 1 1. Chương trình tính n! với n là tham số đưa vào từ dòng lệnh. 2. Chương trình sinh mảng ngẫu nhiên các số nguyên. Liệt kê các số nguyên tố có trong mảng. 3. Chương trình sinh mảng ngẫu nhiên các số nguyên. Liệt kê các số Fibonaci có trong mảng. 48.

<span class='text_page_counter'>(48)</span>

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×