Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 70 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
70
Dung lượng
1,94 MB
Nội dung
THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH LỜI CẢM ƠN Trong thời đại công nghệ thông tin ngày nay, việc ứng dụng Công nghệ thông tin vào sống ngành khoa học ngày trở nên quan trọng Quá trình làm đề tài thực tập chuyên ngành bước vào thực tiễn bước đầu thực hành đúc rút chứng minh cho môn học ghế nhà trường nói chung mơn học chun nghành nói riêng Nó q trình nhận xét đánh giá rút ưu, nhược điểm, để từ tìm phương án tối ưu cho việc học thực tế sau thân Em xin chân thành cảm ơn hướng dẫn thầy giáo, cô giáo Khoa Công nghệ thông tin – Trường Đại học Vinh Em đặc biệt bày tỏ lòng biết ơn thầy giáo ThS.Nguyễn Quang Ninh tạo điều kiện giúp đỡ, hướng dẫn em tận tình để em hồn thành đề tài thực tập chuyên ngành Em chân thành cảm ơn thầy cô sẵn sàng giúp đỡ tạo điều kiện tốt cho em Cảm ơn gia đình, bạn bè quan tâm động viên giúp đỡ để em có ngày hơm Mặc dù có nhiều cố gắng toàn kiến thức để hoàn thành công việc, song thời gian kinh nghiệm thân chưa trau dồi nhiều nên việc trình bày, phân tích, xây dựng chương trình cịn nhiều thiếu sót cần bổ sung Vì em mong nhận ý kiến đóng góp thầy để sản phẩm hồn thiện, ứng dụng vào thực tiễn Sinh viên thực Phạm Ngọc Hiếu SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH Mục Lục LỜI CẢM ƠN 1.GIỚI THIỆU 1.1 Đơn giản 1.2 Hướng đối tượng 1.3 Độc lập phần cứng hệ điều hành 1.4 Mạnh mẽ 1.5 Bảo mật 1.6 Phân tán 1.7 Đa luồng 1.8 Linh động 2.LẬP TRÌNH HƯỚNG ĐỚI TƯỢNG TRONG JAVA 2.1 Trừu tượng hoá (Abstraction) 2.2 Tính kế thừa (Inheritance) .10 2.3 Tính đa hình (Polymorphism) 10 3.ĐỐI TƯỢNG ,LỚP 12 3.1 Khai báo đối tượng 12 3.2 Cách truy xuất thành phần của lớp 13 3.4 Phạm vi truy xuất thành phần của lớp 15 3.5 Phương thức main() .15 3.6 Hàm khởi tạo (Constructor) 16 3.7 Hàm hủy 17 3.8 Từ khoá this 18 3.10 Nạp chồng hàm (Overloaded Methods) 18 3.11 Truyền tham đối 20 3.12 Khai báo kế thừa 22 3.14 Từ khoá super 22 3.15 Sử dụng từ khoá final cấm sự chồng lắp 25 3.16 Sử dụng từ khoá final cấm sự kế thừa 26 4.SỬ DỤNG JAVA DEMO THƯ VIỆN BIỂU THỨC CHÍNH QUY 27 SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH 4.1 Tổng quan 27 4.2 Hỗ trợ ngôn ngữ 27 4.3 Các ký tự đặc biệt Java Regex (Special characters) 28 4.4 Sử dụng String.matches(String) 29 4.5 Sử dụng Pattern Matcher 34 4.6 Nhóm (Group) 37 4.7 Sử dụng Pattern, Matcher, Group *? 39 4.8 Demo chương trình sử dụng biểu thức quy quy định cách đặt tên biến khai báo biến ngôn ngữ lập trình C 40 5.SỬ DỤNG JAVA DEMO CÀI ĐẶT MÃ HÓA DES 43 4.1 Sơ đồ khối 48 4.5 Thuật toán .50 5.6 Lập mã DES 62 5.7 Chương trình DEMO .63 6.SỬ DỤNG JAVA DEMO CÀI ĐẶT THUẬT TỐN TÌM MỌI KHĨA 64 6.1 Một vài khái niệm ban đầu 64 6.2 Thuật toán 65 6.3 Chương trình DEMO .66 7.SỬ DỤNG JAVA DEMO PHẦN MỀM QUẢN LÝ NHÂN SỰ 68 7.1 Mục đích 68 7.2 Các chức chương trình 68 SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH GIỚI THIỆU Java ngơn ngữ lập trình Sun Microsystems giới thiệu vào tháng năm 1995 Từ đó, trở thành cơng cụ lập trình lập trình viên chuyên nghiệp Java xây dựng tảng C C++, sử dụng cú pháp C đặc trưng hướng đối tượng C++ Vào năm 1991, nhóm kỹ sư Sun Microsystems có ý định thiết kế ngơn ngữ lập trình để điều khiển thiết bị điện tử tivi, máy giặt, lị nướng… Mặc dù C C++ có khả làm việc trình biên dịch lại phụ thuộc vào loại CPU Trình biên dịch thường phải tốn nhiều thời gian để xây dựng nên đắt, để loại CPU có trình biên dịch riêng tốn Do nhu cầu thực tế địi hỏi ngơn ngữ chạy nhanh, gọn, hiệu độc lập thiết bị tức chạy nhiều loại CPU khác nhau, môi trường khác “Oak” đời vào năm 1995 đổi tên thành Java Mặc dù mục tiêu ban đầu cho Internet đặc trưng không phụ thuộc thiết bị nên Java trở thành ngơn ngữ lập trình cho Internet Java ngơn ngữ lập trình phát triển từ ngơn ngữ lập trình C/C++ Nó kế thừa, phát huy mạnh ngôn ngữ C/C++ lược bỏ cú pháp phức tạp C/C++ Ngơn ngữ lập trình Java có số đặc trưng tiêu biểu: đơn giản, hướng đối tượng, độc lập phần cứng hệ điều hành, mạnh mẽ, bảo mật, phân tán, đa luồng linh động 1.1 Đơn giản Những người thiết kế mong muốn phát triển ngôn ngữ dễ học quen thuộc với đa số người lập trình Do Java loại bỏ đặc trưng phức tạp C C++ như: Loại bỏ thao tác trỏ, thao tác định nghĩa chồng tốn tử Khơng cho phép đa kế thừa mà sử dụng giao diện Không sử dụng lệnh “goto” file header (.h) Loại bỏ cấu trúc “struct” “union” 1.2 Hướng đối tượng Java ngơn ngữ lập trình hướng đối tượng, chương trình viết Java phải xây dựng đối tượng Nếu C/C++ ta tạo hàm (chương trình khơng gắn với đối tượng nào) Java ta tạo phương thức SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH (chương trình gắn liền với lớp cụ thể) Trong Java không cho phép đối tượng có tính đa kế thừa mà thay giao diện (interface) 1.3 Độc lập phần cứng hệ điều hành Đối với ngơn ngữ lập trình truyền thống C/C++, phương pháp biên dịch thực sau : Hình 1.1: Các biên dịch chương trình hệ thống Với phần cứng khác nhau, có trình biên dịch khác để biên dịch mã nguồn chương trình cho phù hợp với phần cứng Do vậy, chạy phần cứng khác bắt buộc phải biên dịch lại mã nguồn Đối với chương trình viết Java, trình biên dịch Javac biên dịch mã nguồn thành dạng bytecode Sau đó, chạy chương trình phần cứng khác nhau, máy ảo Java dùng trình thơng dịch Java để chuyển mã bytecode thành dạng chạy phần cứng tương ứng Do vậy, thay đổi phần cứng, biên dịch lại mã nguồn Java SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH Hình 1.2: Biên dịch hệ thống java 1.4 Mạnh mẽ Java ngôn ngữ yêu cầu chặt chẽ kiểu liệu Kiểu liệu phải khai báo tường minh Java khơng sử dụng trỏ phép tốn trỏ Java kiểm tra tất truy nhập đến mảng, chuỗi thực thi để đảm bảo truy nhập khơng ngồi giới hạn kích thước Trong mơi trường lập trình truyền thống, lập trình viên phải tự cấp phát nhớ, trước chương trình kết thúc phải tự giải phóng nhớ cấp Vấn đề nảy sinh lập trình viên qn giải phóng nhớ xin cấp trước Trong chương trình Java, lập trình viên khơng phải bận tâm đến việc cấp phát nhớ Q trình cấp phát, giải phóng thực tự động, nhờ dịch vụ thu nhặt đối tượng khơng cịn sử dụng (garbage collection) Cơ chế bẫy lỗi Java giúp đơn giản hóa qúa trình xử lý lỗi hồi phục sau lỗi 1.5 Bảo mật Java cung cấp môi trường quản lý thực thi chương trình với nhiều mức để kiểm sốt tính an tồn: SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH Ở mức thứ nhất, liệu phương thức đóng gói bên lớp Chúng truy xuất thông qua giao diện mà lớp cung cấp Ở mức thứ hai, trình biên dịch kiểm sốt để đảm bảo mã an toàn, tuân theo nguyên tắc Java Mức thứ ba đảm bảo trình thơng dịch; chúng kiểm sốt xem bytecode có đảm bảo quy tắc an tồn trước thực thi khơng Mức thứ tư kiểm soát việc nạp lớp vào nhớ để giám sát việc vi phạm giới hạn truy xuất trước nạp vào hệ thống 1.6 Phân tán Java thiết kế để hỗ trợ ứng dụng chạy mạng lớp mạng (java.net) Hơn nữa, Java hỗ trợ nhiều chạy khác nên chúng sử dụng rộng rãi công cụ phát triển Internet - nơi sử dụng nhiều khác 1.7 Đa luồng Chương trình Java cung cấp giải pháp đa luồng (Multithreading) để thực thi công việc đồng thời Chúng cung cấp giải pháp đồng luồng Đặc tính hỗ trợ đa luồng cho phép xây dựng ứng dụng mạng chạy hiệu 1.8 Linh động Java thiết kế ngôn ngữ động để đáp ứng cho mơi trường mở Các chương trình Java chứa nhiều thơng tin thực thi nhằm kiểm sốt truy nhập đối tượng lúc chạỵ Điều cho phép khả liên kết mã động SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH 2.LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG TRONG JAVA Java ngơn ngữ lập trình hướng đối tượng Nếu bạn chưa dùng ngôn ngữ lập trình hướng đối tượng trước đây, bạn cần phải hiểu khái niệm sau : lập trình hướng đối tượng (Object Oriented Programming) ? đối tượng (Object), lớp (class) gì, mối quan hệ đối tượng lớp, gởi thông điệp (Messages) đến đối tượng ? Mỗi chương trình máy tính gồm có phần : phần mã lệnh phần liệu Một số chương trình đặt trọng tâm phần mã lệnh, số khác đặt trọng tâm phần liệu Từ dẫn đến mơ hình định nên cấu trúc chương trình : trả lời cho câu hỏi “Điều xảy ra”, cho “Cái chịu tác động” Mơ hình gọi mơ hình hướng xử lý, mơ tả chương trình bao gồm chuỗi bước thực (mã lệnh) Nhưng chương trình ngày lớn phức tạp khó khăn để sử dụng mơ hình thứ Vì mơ hình thứ đưa ra, mơ hình hướng đối tượng Chương trình bạn xây dựng dựa vào liệu phần giao diện định nghĩa cho phần liệu Mơ hình mô tả liệu điều khiển truy xuất mã lệnh Ngơn ngữ lập trình hướng đối tượng có khả sau : - Mơ giới thực cách tự nhiên đối tượng mối quan hệ chúng, thuận tiện cho việc thiết kế hệ thống phức tạp - Thừa kế mã có sẵn cách dễ dàng, giúp tiết kiệm công sức nâng cao suất người lập trình, dễ bảo trì, dễ nâng cấp, mở rộng 2.1 Trừu tượng hoá (Abstraction) Con người đơn giản hoá vấn đề phức tạp thông qua trừu tượng hố Ví dụ, người sử dụng máy tính khơng nhìn máy tính cách phức tạp Nhờ trừu tượng hố mà người ta sử dụng máy tính mà không quan tâm đến cấu trúc chi tiết bên máy tính Họ sử dụng chúng thực thể Cách tốt để nắm vững kỹ thuật trừu tượng dùng hệ thống phân cấp Điều cho phép bạn phân lớp thành phần có ý nghĩa hệ thống phức tạp, chia nhỏ chúng thành phần đơn giản quản lý Nhìn bên ngồi máy tính đối tượng, nhìn sâu cấp, máy tính bao gồm số phận : hộp điều khiển, hình, bàn phím, chuột , phận lại bao gồm phận nhỏ hơn, ví dụ hộp điều khiển có SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH bảng mạch chứa CPU, mạch giao tiếp gắn bảng mạch chính, đĩa cứng, ổ đĩa mềm… Nhờ trừu tượng hố mà bạn khơng quan tâm đến chi tiết bảng mạch, mà quan tâm mối quan hệ, giao tiếp phận Một mạch giao tiếp dù có chức ly kỳ nữa, bạn sử dụng khơng khó khăn ấn vừa vặn vào khe cắm bảng mạch Sự phân cấp trừu tượng hệ thống phức tạp áp dụng cho chương trình máy tính Phần liệu từ chương trình hướng xử lý kinh điển trừu tượng hoá thành đối tượng thành phần Dãy xử lý trở thành thông điệp đối tượng Vì đối tượng cần có hoạt động đặc trưng riêng Bạn coi đối tượng thực thể độc lập tiếp nhận yêu cầu từ bên Đây phần cốt lõi lập trình hướng đối tượng.Tất ngơn ngữ lập trình hướng đối tượng có chế cho phép bạn triển khai mơ hình hướng đối tượng Đó tính đóng gói, kế thừa, tính đa hình.2.2 Tính đóng gói (Encapsulation)Đây chế dùng vỏ bọc kết hợp phần liệu thao tác liệu (phần mã lệnh) thành thể thống nhất, tạo nên an toàn, tránh việc sử dụng không thiết kế, bảo vệ cho mã lệnh liệu chống việc truy xuất từ đoạn mã lệnh bên ngồi.Trong Java tính đóng gói thể qua khái niệm lớp (Class) Lớp hạt nhân Java, tạo tảng cho lập trình hướng đối tượng Java Nó định nghĩa liệu hành vi (dữ liệu mã lệnh), gọi thành viên lớp, dùng chung cho đối tượng loại Từ phân tích hệ thống, người ta trừu tượng nên lớp Sau đối tượng tạo theo khn mẫu lớp Mỗi đối tượng thuộc lớp có liệu hành vi định nghĩa cho lớp đó, giống sinh từ khuôn đúc lớp Vì mà lớp khn mẫu đối tượng, đối tượng thể lớp Lớp cấu trúc logic, đối tượng cấu trúc vật lý Dữ liệu định nghĩa lớp gọi biến, mã lệnh gọi phương thức Phương thức định nghĩa cho việc sử dụng liệu Điều có nghĩa hoạt động lớp định nghĩa thông qua phương thức Các đặc trưng lớp gồm có hai phần : thuộc tính (Attribute) hành vi (Behavior) Giả sử bạn phải tạo giao diện với người dùng cần có nút nhấn (Button) Thế trước hết bạn xây dựng lớp Button với thuộc tính nhãn ghi nút, chiều rộng, chiều cao, màu nút, đồng thời quy định hành vi nút nhấn, nghĩa nút nhấn cần phản ứng chọn, phát u cầu gì, có đổi màu hay nhấp nháy chi khơng Với lớp Button vậy, bạn tạo nhanh chóng nút nhấn cụ thể phục vụ cho mục SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page THỰC TẬP CHUYÊN NGÀNH GVHD: ThS.NGUYỄN QUANG NINH đích khác nhauGói kỹ thuật Java, dùng để phân hoạch không gian tên lớp, giao diện thành vùng dễ quản lý hơn, thể tính đóng gói Java 2.2 Tính kế thừa (Inheritance) Tính kế thừa khả xây dựng lớp từ lớp có Tính đóng gói tác động đến tính kế thừa Khi lớp đóng gói số liệu phương thức, lớp kế thừa cấu trúc liệu phương thức lớp mà kế thừa Ngồi bổ sung liệu phương thức riêng Nó quan trọng ứng dụng cho khái niệm phân cấp (mơ hình TopDown) Không sử dụng phân lớp, lớp phải định nghĩa tất liệu phương thức cách rõ ràng Nếu sử dụng kế thừa, lớp cần định nghĩa thêm đặc trưng Ví d : Xe xem lớp xe Pergout, BWM, Dream đối tượng lớp xe Các xe lái đi, dừng lại Từ lớp xe trên, ta xây dựng lớp xe đạp, xe ơtơ Xe ơtơ có thêm máy tự khởi động… 2.3 Tính đa hình (Polymorphism) Khi lớp kế thừa từ lớp tổ tiên thay đổi cách thức làm việc lớp tổ tiên số phương thức (nhưng tên, kiểu trả về, danh sách tham đối phương thức giữ nguyên) Điều gọi viết chồng Như với tên phương thức, chương trình có hành động khác tùy thuộc vào lớp đối tượng gọi phương thức Đó tính đa hình Ví d : với phương thức chạy, xe ơtơ, xe máy tăng ga, cịn xe đạp phải đạp… Tính đa hình cịn thể việc giao diện sử dụng cho hoạt động lớp tổng quát, hay gọi “một giao diện, nhiều phương thức” Có nghĩa thiết kế giao diện tổng quát cho nhóm hành vi liên quan Điều giảm thiểu phức tạp cách cho phép giao diện sử dụng cho hoạt động lớp tổng quát Trình biên dịch xác định hoạt động cụ thể thi hành tùy theo điều kiện Bạn cần nhớ giao diện lớp tổng quát sử dụng Sự kết hợp đắn : đa hình, đóng gói kế thừa tạo nên mơi trường lập trình có khả phát triển tốt nhiều so với môi trường không hỗ trợ hướng đối tượng Một SVTH: Phạm Ngọc Hiếu – MSSV: 135D4802015001 – LỚP: 52K2 Page 10