Xem mẫu

  1. BỘ LAO ĐỘNG -THƯƠNG BINH VÀ XÃ HỘI TRƯỜNG CAO ĐẲNG NGHỀ KỸ THUẬT CÔNG NGHỆ -----š› & š›----- GIÁO TRÌNH LẬP TRÌNH JAVA CƠ BẢN NGHỀ: CÔNG NGHỆ THÔNG TIN TRÌNH ĐỘ: CAO ĐẲNG Ban hành kèm theo Quyết định số: 245/QĐ-CĐNKTCN ngày 23 tháng 10 năm 2020 của Hiệu trưởng Trường Cao đẳng nghề Kỹ thuật Công nghệ Hà Nội, năm 2021 (Lưu hành nội bộ) 0
  2. TUYÊN BỐ BẢN QUYỀN: Tài liệu này thuộc loại sách giáo trình nên các nguồn thông tin có thể được phép dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo. Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh doanh thiếu lành mạnh sẽ bị nghiêm cấm. MÃ TÀI LIỆU: MĐCNTT 20 1
  3. LỜI GIỚI THIỆU Ngôn ngữ lập trình java ra đời và được các nhà nghiên cứucủa Công ty Sun Microsystem giới thiệu vào năm 1995. Sau khi ra đời không lâu, ngôn ngữ lập trình này đã được sử dụng rộng rãi và phổ biến đối với các lập trình viên chuyên nghiệp cũngnhư các nhà phát triển phần mềm. Gần đây ngôn ngữ lập trình, công nghệ java đã được đưa vào giảng dạy ở các cơ sở đào tạolập trình viên chuyên nghiệp. Một số trường đại học ở Việt Nam dạy môn lập trình java như một chuyên đề tự chọn cho các sinh viên công nghệ thông tin giai đoạn chuyên ngành. Sau một thời gian tìm hiểu, làm việc và được tham gia giảng dạy chuyên đề lập trình java cho lớp cử nhân tin học từ xa qua mạng. Nhóm tác giả chúng tôi quyết định biên soạn cuốn giáo trình này nhằm phục vụ công tác giảng dạy cũng như học tập của sinh viên chuyên ngành công nghệ thông tin. Nội dung giáo trình tập trung vào những kiến thức căn bản nhất của lập trình java giúp người đọc bước đầu tiếp cập dễ dàng với công nghệ mới này, và đây cũng chính là một bước đệm để chúng ta trở thành “java shooter”. Một số vấn đề nâng trong ngôn ngữ lập trình java như: javabean, thiết kết giao diện dùng thư viện JFC(Java Foundation Class), lập trình mạng, lập trình cơ sở dữ liệu bằng java, lập trình ứng dụng web dùng J2EE (Java 2 Enterprise Edition), ... sẽ được nói đến trong các chuyên đề nâng cao. Để có thể đọc hiểu giáo trình này người đọc cần nắm vững các kiến thức về: nhập môn lập trình, lập trình hướng đối tượng. Đây là lần xuất bảnđầu tiên chắc chắn không thể tránh khỏi những sai sót. Nhóm tác giả rất mong nhận được những ý kiến đóng góp của quý thầy cô, các đồng nghiệp và bạn đọc để có.thể hoàn thiện hơn giáo trình này phục vụ cho việc học tập của sinh viên. Xin chân thành cảm ơn! Hà Nội, ngày 23 tháng 04 năm 2021 Tham gia biên soạn 1. Chủ biên Nguyễn Thị Thủy. 2. Tập thể Giảng viên Khoa CNTT Mọi thông tin đóng góp chia sẻ xin gửi về hòm thư nguyenthuyanc@gmail.com, hoặc liên hệ số điện thoại 0362234187 2
  4. MỤC LỤC Bài 1: TỔNG QUAN VỀ JAVA VÀ CÁC CÔNG NGHỆ TRONG JAVA .................. 9 1.Lịch sử ra đời của Java .......................................................................................... 9 2. Một số tính của Java ............................................................................................. 9 3.Môi trường lập trình Java ...................................................................................... 9 4.Công nghệ Java ................................................................................................... 10 5. Các cấu trúc lập trình căn bản trong Java ............................................................ 11 5.1. Một chương trình Java cơ bản. ..................................................................... 11 5.2. Các kiểu dữ liệu cơ bản ................................................................................ 12 5.3. Các toán tử ................................................................................................... 14 5.4. Các cấu trúc điều khiển ................................................................................ 14 5.5. Nhập dữ liệu từ bàn phím ............................................................................. 16 5.6. Công cụ soạn thảo ........................................................................................ 18 5.7. Chỉ dẫn thực hành ........................................................................................ 19 BÀI TẬP ................................................................................................................... 19 Bài 2: LỚP HƯỚNG ĐỐI TƯỢNG TRONG JAVA .................................................. 20 1. Lớp ..................................................................................................................... 20 1.1. Lập trình hướng đối tượng-OOP ................................................................... 20 1.2. Lớp Time ..................................................................................................... 20 1.3. Lớp TimeTest ............................................................................................... 22 1.4. Chạy TimeTest ............................................................................................. 22 2. Hướng đối tượng trong JAVA ............................................................................ 23 2.1. Phạm vi truy cập........................................................................................... 23 2.2. Từ khoá this ................................................................................................. 23 2.3. Nạp chồng hàm khởi tạo ............................................................................... 23 3
  5. 2.4. Một số từ khoá ............................................................................................. 24 2.5. Kế thừa (Inheritance) .................................................................................... 25 2.6. Cây kế thừa .................................................................................................. 25 2.7. Ví dụ về kế thừa trong Java .......................................................................... 25 2.8. Từ khoá super............................................................................................... 26 2.9. Đa hình (Polymorphism) .............................................................................. 26 2.10.Lớp trừu tượng (abstract) ............................................................................. 27 2.11. Lớp trừu tượng ........................................................................................... 27 2.12. Giao tiếp (interface).................................................................................... 28 2.13. Gói (package) ............................................................................................. 29 BÀI TẬP ................................................................................................................... 30 Bài 3: Applet ............................................................................................................. 32 1. Khái niệm Java Applet........................................................................................ 32 2. Cấu trúc của một Applet ..................................................................................... 32 2.1 Sự khác nhau giũa Application và Applet ...................................................... 34 2.2 Những giới hạn bảo mật trên applet ............................................................... 36 3. Chu trình sống của một Applet ........................................................................... 37 4 Truyền tham số cho Applet .................................................................................. 38 5. Lớp Graphics ...................................................................................................... 39 5.1 Vẽ các chuỗi, các ký tự và các byte ............................................................... 40 5.2 Vẽ đường thẳng (Line) và Oval ..................................................................... 42 5.3 Vẽ hình chữ nhật (Rectangle) và hình chữ nhật bo góc (Rounded Rectangle) 43 5.4 Vẽ hình chữ nhật 3D và vẽ hình cung (Arc).................................................. 44 5.5 Vẽ hình PolyLine .......................................................................................... 44 5.6 Vẽ và tô đa giác (Polygon) ............................................................................ 46 4
  6. 6. Điều khiển màu và font....................................................................................... 47 6.1. Điều khiển màu ............................................................................................ 47 6.2 Điều khiển Font ............................................................................................. 49 6.3 Lớp FontMetrics ............................................................................................ 50 6.4. Chọn mode để vẽ .......................................................................................... 54 Bài 4: LẬP TRÌNH GIAO DIỆN ............................................................................... 56 1. Cơ chế lập trình đồ hoạ giao diện........................................................................ 56 2.Thư viện AWT và Swing ..................................................................................... 65 3.Container và Component ..................................................................................... 66 3.Container và Component ..................................................................................... 73 3.1. Container...................................................................................................... 73 3.2. Component ................................................................................................... 76 3. Textfield ............................................................................................................. 78 4. TextArea ............................................................................................................ 79 5. CheckBox ........................................................................................................... 80 6. CheckBoxGroup ................................................................................................. 81 7. Choice ................................................................................................................ 83 8. List ..................................................................................................................... 85 4.Quản lý Layout .................................................................................................... 86 4.1. Giới thiệu về LayoutManager Interface............................................................ 87 4.2. Giới thiệu về LayoutManager2 Interface.......................................................... 87 5.Lập trình GUI cơ bản ........................................................................................... 89 6.Lập trình GUI nâng cao ....................................................................................... 89 6.1. Các thành phần được giới thiệu .................................................................... 89 6.2. Vùng văn bản (TextArea). ............................................................................ 89 5
  7. 6.3. Khung vẽ (Canvas) ....................................................................................... 91 6.4. Thanh trượt (Scroll bar) ................................................................................ 92 6.5. Thanh trượt (Scroll bar) ................................................................................ 93 6.6. Khung cuộn (ScrollPane) .............................................................................. 93 6.7. Bố cục nâng cao ........................................................................................... 94 6.8. Khung chứa Frame ....................................................................................... 94 6.9. Cài đặt listener.............................................................................................. 96 9.10. Khung chứa Frame ..................................................................................... 96 BÀI TẬP ................................................................................................................. 109 TÀI LIỆU THAM KHẢO........................................................................................ 110 6
  8. GIÁO TRÌNH MÔN HỌC Tên mô đun: Lập trình java cơ bản Mã mô đun: MĐCNTT 20 Vị trí, tính chất, ý nghĩa và vai trò của mô đun : - Vị trí: Mô đun cơ sở lập trình JAVA căn bản thuộc nhóm các môn học chuyên ngành được bố trí giảng dạy sau khi đã học xong các môn học, mô đun cơ sở ngành như: Cơ sở dữ liệu, Ngôn ngữ lập trình C/C++, Lập trình hướng đối tượng, Cấu trúc dữ liệu và giải thuật. - Tính chất: Mô đun Cơ sở lập trình Java căn bản cung cấp các kiến thức cơ bản về các kỹ thuật lập trình nâng cao với ngôn ngữ Java. Giúp sinh viên làm quen với kỹ thuật lập trình giao diện và lập trình mạng; lập trình dịch vụ web với Java. Cung cấp cho sinh viên các kỹ năng làm chủ các kỹ thuật lập trình ứng dụng trên Java.Sinh viên sử dụng được các thư viện của Java để lập trình ứng dụng trong thực tế. Mục tiêu của mô đun: - Về kiến thức + Trình bày được các vấn đề cơ bản trong ngôn ngữ lập trình java như: kiểu dữ liệu, biến, khai báo thư viên, hàm, mảng, lớp đối tượng và các vấn đề cơ bản với lập trình hướng đối tượng. + Nêu và làm rõ thế mạnh từng lĩnh vực trong công nghệ java + Trình bày được các vấn đê cơ bản liên quan đến lập trịnh applet trong java như : các đối tượng giao diện cơ bản, Container, Component… + Trình bày được các khái niệm về thuộc tính, phương thức, phạm vi truy cập của thuộc tính và phương thức của lớp và các đặc điểm của hướng đối tượng trong java. + Trình bày được nguyên lý và các đối tương sử dụng lập trình mạng trong java + Trình bày được khái niệm và chu kỳ sống của Applet - Về kỹ năng + Xây dựng được các ứng dụng cơ bản với ngôn ngữ lập trình Java + Vân dụng kỹ thuật lập trình hướng đối tượng trọng java, lập trình mạng, lập trình giao diện để xây dựng các module ứng dụng đơn giản như: gửi nhận tin online, offlinen trực tiếp giữa hai máy tính hoặc qua server. + Tạo và truyền được tham số cho Applet + Thiết kế và xây dựng được giao diện chương trình trong thực tế bằng Java. + Xây dựng được ứng dụng Client/Server - Về năng lực tự chủ và trách nhiệm + Tích cực ứng dụng lập trình trực quan cho các ứng dụng trong thực tế. + Khả năng tìm tài liệu, đọc hiểu tài liệu + Khả năng làm việc nhóm 7
  9. Nội dung của mô đun Thời gian Số Tên các bài trong mô đun Tổng Lý Thực Kiểm TT số thuyết hành tra* Bài 1: Tổng quan về Java và các công nghệ trong Java 1.Lịch sử ra đời của Java 1 2.Một số đặc tính của Java 10 3 7 3.Môi trường lập trình Java 4.Công nghệ Java 5.Các cấu trúc lập trình căn bản trong Java Bài 2: Lớp và hướng đối tượng trong JAVA 2 18 3 15 1.Lớp 2.Hướng đối tượng trong Java Bài 3: Applet 1.Khái niệm 2.Cấu trúc của một Applet 3 3.Chu trình sống của một Applet 12 4 8 1 4.Truyền tham số cho Applet 5.Lớp Graphics 6.Điều khiển màu va font Bài 4: Lập trình giao diện 19 5 13 1 1.Cơ chế lập trình đồ hoạ giao diện trong JAVA 2.Thư viện AWT và Swing 4 3.Container và Component 4.Quản lý Layout 5.Lập trình GUI cơ bản 6.Lập trình GUI nâng cao Thi kết thúc mô đun 1 1 Cộng 60 15 42 3 8
  10. Bài 1: TỔNG QUAN VỀ JAVA VÀ CÁC CÔNG NGHỆ TRONG JAVA Mã bài: MĐCNTT 20.1 Mục tiêu - Trình bày được các khái niệm liên quan đến Java và các công nghệ của Java. - Trình bày được các thư viện hỗ trợ cho từng nhóm ứng dụng trong Java. - Nêu được cấu trúc của một chương trình java cơ bản. - Thiết lập được giao diện lập trình java. - Hiểu cách thức xây dựng ứng dụng với giao diện và vào ra file. - Phân biệt các kỹ thuật lập trình và thư viện hỗ trợ của Java. Nội dung chính: 1.Lịch sử ra đời của Java Lịch sử phát triển của Java Ra đời tại Sun Microsystems bởi James Gosling 1991: Version đầu tiên với tên “Oak” (cây sồi) 1995: Tên chính thức là Java Mục đích của Java Dùng để phát triển ứng dụng cho các thiết bị điện tử “thông minh” Tạo các trang web có nội dung động (web applet) Hiện nay, Java được sử dụng để phát triển nhiều loại ứng dụng khác nhau: cơ sở dữ liệu, mạng, Internet, viễn thông... 2. Một số tính của Java • Đơn giản • Hướng đối tượng • Đa nhiệm • An toàn • Garbage Collection • Máy ảo (biên dịch và thông dịch) • Khả chuyển (Portability) • Phân tán 3.Môi trường lập trình Java Java Platform Java Virtual Machine (Java VM) Java Application Programming Interface (Java API) 9
  11. Mã nguồn myProgram.java Java API Java VM Java Platform Hardware-Platform Java Development Kit – JDK • Bộ công cụ phát triển Java (jdk) gồm trình biên dịch, thông dịch, trợ giúp, soạn tài liệu… và các thư viện chuẩn • Ngoài ra còn một số thư viện khác như JSP, JavaMail, Java TAPI… • 1995: Version JDK 1.0 • 1998: Version JDK 1.2 (Java 2nd Platform) • 2004: Version JDK 1.5 4.Công nghệ Java Hai loại ứng dụng Java • Application: Ứng dụng độc lập • Applet: Ứng dụng chạy trên Web Thư viện lớp Java • Bộ JDK bao gồm rất nhiều lớp chuẩn đã được xây dựng sẵn. • Lập trình viên thường sử dụng các lớp chuẩn để phát triển ứng dụng. Các bước phát triển 10
  12. 5. Các cấu trúc lập trình căn bản trong Java 5.1. Một chương trình Java cơ bản. - Biên dịch chương trình • Vào chế độ Console của Windows • Gõ câu lệnh javac Hello.java • Nếu không có thông báo lỗi, file Hello.class sẽ được tạo ra - Thực thi chương trình • Gõ câu lệnh java Hello (không cần .class) 11
  13. Thay đổi cách hiển thị public class Hello { public static void main(String args[]) { System.out.print( “Chao\tmung\nban\nden\tvoi\nlap trinh Java\n" ); } } public class Hello { public static void main(String args[]) { System.out.print( “Chao\tmung\nban\nden\tvoi\nlap trinh Chao Java\n" ); mung ban } den } voi lap trinh Java 5.2. Các kiểu dữ liệu cơ bản - Java có hai kiểu dữ liệu • Dữ liệu gốc chuẩn: Là các kiểu dữ liệu đã được định nghĩa trong ngôn ngữ như số nguyên, số thực, ký tự, logic • Dữ liệu dẫn xuất: Do người dùng tự định nghĩa như mảng, lớp, giao tiếp - Ví dụ khai báo biến • int x; • Person ps; a. Kiểu số nguyên Kiểu Kích thước Khoảng giá trị byte 8 bits -256…255 short 16 bits -32768…32767 12
  14. int 32 bits -231…231 – 1 long 64 bits -264…264 – 1 b. Kiểu số thực Kiểu Kích thước Khoảng giá trị float 32 bits -3.4e38…3.4e38 double 64 bits -1.7e308…1.7e308 c. Kiểu boolean: Nhận giá trị true hoặc false d. Kiểu char: Kiểu ký tự theo chuẩn Unicode • Một số hằng ký tự Hằng Ý nghĩa \uxxxx Ký tự Unicode \t Tab ngang \n Xuống hàng \r Dấu enter \’ Nháy đơn e. Kiểu mảng • Khai báo: int[] iarray; hoặc int iarray[]; • Cấp phát: iarray = new int[100]; • Khởi tạo: int[] iarray = {1, 2, 3, 5, 6}; char[] carray = {‘a’, ‘b’, ‘c’}; Chú ý: Luôn khởi tạo hoặc cấp phát mảng trước khi sử dụng • Một số khai báo không hợp lệ: int[5] iarray; int iarray[5]; Kiểu mảng • Truy cập mảng iarray[3] = 0; 13
  15. carray[1] = ‘z’; Chú ý: Chỉ số của mảng được tính từ 0 • Lấy số phần tử mảng: iarray.length Quy tắc đặt tên biến • Bắt đầu bằng một chữ cái, một dấu gạch dưới (_) hoặc một dấu dollard ($) • Không có khoảng trắng giữa tên • Sau ký tự đầu có thể dùng ký tự, số, dấu dollard, dấu gạch dưới • Không trùng với các từ khoá • Ví dụ: a_1234_d, 1awas, _asdc, a sas, $erd, %ats… • Chú ý: Java phân biệt chữ hoa chữ thường 5.3. Các toán tử Bảng toán tử = > < ! ~ ?: == = != && || ++ -- + - * / & | ^ % > >>> += -= *= /= &= |= ^= %= = >>>= 5.4. Các cấu trúc điều khiển a. Lệnh if/else import java.util.Date; public class TestIf { public static void main( String args[ ] ) { Date today = new Date(); if( today.getDay() == 0 ) System.out.println(“Hom nay la chu nhat\n”); 14
  16. else System.out.println(“Hom nay khong la chu nhat\n" ); } } b. Lệnh switch import javax.swing.JOptionPane; public class TestSwitch { public static void main(String[] args) { char c; String str=JOptionPane.showInputDialog(null,"Nhap vao ky tu?"); c = str.charAt(0); switch(c) { case 'a': case 'e': case 'i': case 'o': case 'u': System.out.println("Ky tu nay la nguyen am"); break; default: System.out.println("Ky tu nay la phu am"); } System.exit(0); // kết thúc chương trình } } c. Vòng lặp for // Chương trình tính tổng các số lẻ từ 1 đến 100 public class TestFor { public static void main(String[] args) { int tong = 0; for(int i=1; i
  17. System.out.println(tong); } } d. Vòng lặp while while () ; // Tính tổng các số lẻ từ 1 đến 100 int tong = 0, i = 1; while (i
  18. BufferedReader inStream = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Nhap mot so nguyen:"); String siNumber = inStream.readLine(); int iNumber = Integer.parseInt(siNumber); System.out.print("Nhap mot so thuc:"); String sfNumber = inStream.readLine(); float fNumber = Float.parseFloat(sfNumber); System.out.println("So nguyen:“ + iNumber); System.out.println("So thuc:“ + fNumber); } } Ví dụ: Xây dựng đối tượng Circle • Cách 1: Sử dụng một file Circle.java duy nhất public class Circle { private int radius; public Circle(int r) { radius = r; } public double getArea() { return Math.PI*radius*radius; } public double getCircum() { return 2*Math.PI*radius; } public static void main(String[] args) { Circle c = new Circle(5); System.out.println("Area = " + c.getArea()); System.out.println("Circumference = " + c.getCircum()); } } Ví dụ về đối tượng Circle Cách 2: Sử dụng một file với 2 lớp riêng biệt public class TestCircle { 17
  19. public static void main(String[] args) { Circle c = new Circle(5); System.out.println("Area = " + c.getArea()); System.out.println("Circumference = " + c.getCircum()); } } class Circle { ... } Ví dụ về đối tượng Circle Cách 3: Sử dụng hai file riêng biệt // file TestCircle.java public class TestCircle { public static void main(String[] args) { ... } } // file Circle.java class Circle { ... } 5.6. Công cụ soạn thảo Notepad Jbuilder Eclipse EditPlus JCreator … 18
  20. 5.7. Chỉ dẫn thực hành Đặt biến môi trường PATH: Trong Windows: Nháy phải trên My Computer, chọn Properties, chọn Advanced, chọn Enviroment Variables, chọn biến PATH và edit, thêm vào đường dẫn tới thư mục bin của bộ JDK. Trong chế độ Console: Gõ lệnh set Path=%Path%;đường dẫn tới bin Nên tham khảo java/docs khi làm việc BÀI TẬP 1. Viết chương trình tính tiền điện thoại: — Tiền thuê bao hàng tháng là 27000 đ. — Từ phút gọi thứ nhất đến phút thứ 200 giá cước là 120 đ/phút. — Từ phút gọi thứ 201 đến phút thứ 400 giá cước là 80 đ/phút. — Từ phút gọi 401 đến phút cuối giá cước là 40 đ/phút. 2. Viết chương trình giải phương trình bậc hai ax2 + bx + c = 0 với a,b,c nhập từ bàn phím. 3. Viết chương trình nhập vào một dãy các số nguyên khác 0, kết thúc nhập khi gặp số 0. Sau đó tính trung bình cộng của dãy số đó. Tìm số lớn nhất, số nhỏ nhất của dãy số. 4. Viết chương trình tính tổng E = 1 + 1/1 + 1/2 + 1/3 +… + 1/n với n nhập vào từ bàn phím 5. Mở rộng lớp Circle : thêm dữ liệu toạ độ tâm hình tròn và phương thức kiểm tra một điểm cho trước có nằm trong hình tròn hay không. 6. Viết chương trình nhập vào một hình tròn, sau đó phát sinh 100 điểm ngẫu nhiên và cho biết có bao nhiêu điểm nằm trong hình tròn vừa nhập. 19
nguon tai.lieu . vn