Đề tài Các nguyên tắc sáng tạo khoa học và ứng dụng trong ngôn ngữ lập trình Java
Mục lục
LỜI NÓI ĐẦU . 4
PHẦN 1:GIỚI THIỆU CÁC NGUYÊN TẮC SÁNG TẠO TRONG
KHOA HỌC:
1. Nguyên tắc phân nhỏ . 5
2. Nguyên tắc tách khỏi . 5
3. Nguyên tắc phẩm chất cục bộ . 5
4. Nguyên tắc phản đối xứng . 5
5. Nguyên tắc kết hợp . 5
6. Nguyên tắc vạn năng . 5
7. Nguyên tắc “chứa trong” . 6
8. Nguyên tắc phản trọng lƣợng . 6
9. Nguyên tắc gây ứng suất sơ bộ . 6
10. Nguyên tắc thực hiện sơ bộ . 6
11. Nguyên tă ́ c dƣ ̣ pho
̀
ng . 6
12. Nguyên tă ́ c đă ̉ ng thê ́ . 6
13. Nguyên tă ́ c đa
̉
o ngƣơ ̣ c . 7
14. Nguyên tă ́ c câ ̀ u (tròn) hoá . 7
15. Nguyên tă ́ c linh đô ̣ ng . 7
16. Nguyên tă ́ c gia
20. Nguyên tắc liên tục ch . 8
21. Nguyên tắc “vƣợt nhanh” . 8
22. Nguyên tắc biến hại thành lợi . 9
23. Nguyên tắc quan hệ phản hồi . 9
24. Nguyên tắc sử dụng trung gian . 9
25. Nguyên tắc tự phục vụ . 9
26. Nguyên tắc sao chép (copy) . 9
Ứng dụng các nguyên tắc nguyên cứu khoa học trong
Java
Nguyễn Thanh Hoàng-1211023 Page 3
27. Nguyên tắc “rẻ” thay cho “đắt” . 10
28. Thay thế sơ đồ cơ học . 10
29. Sử dụng các kết cấu khí và lỏng . 10
30. Sử dụng vỏ dẻo và màng mỏng . 10
31. Sử dụng các vật liệu nhiều lỗ . 10
32. Nguyên tắc thay đổi màu sắc . 10
33. Nguyên tắc đồng nhất . 11
34. Nguyên tắc phân hủy hoặc tái sinh các phần . 11
35. Thay đổi các thông số hoá lý của đối tƣợng . 11
36. Sử dụng chuyển pha . 11
37. Sử dụng sự nở nhiệt . 11
38. Sử dụng các chất oxy hoá mạnh. 12
39. Thay đổi độ trơ . 12
40. Sử dụng các vật liệu hợp thành (composite) . 12
PHẦN 2:ỨNG DỤNG CÁC NGUYÊN TẮC SÁNG TẠO KHOA HỌC
VÀO NGÔN NGỮ LẬP TRÌNH JAVA
I. LỊCH SỬ PHÁT TRIỂN JAVA . 12
II. CÁC API HỖ TRỢ TRONG JAVA . 13
1. Chuỗi(String),StringBuffer và biểu thức chính qui . 13
2. Kiểu dữ liệu ngày tháng(Date),Các hàm toán học(Math) Lớp bao kiểu
nguyên thủy(Wrapers) và mảng(Array). . 14
3. Kiểu mảng động(Collection). . 15
4. IO & Exception . 17
5. Lập trình hƣớng đối tƣợng OOP(object-oriented programming) . 19
III. KẾT LUẬN . 21
giữa Date và String Ứng dụng các nguyên tắc nguyên cứu khoa học trong Java Nguyễn Thanh Hoàng-1211023 Page 15 Các hàm toán học được cấp bởi lớp Math. Tất cả các phương thức của Math được định nghĩa static.Hàm hiện ích giúp cho việc xử lý lũy thừa,căn bậc 2,làm tròn,lượng giác… Array là mảng tĩnh. Việc truy xuất đến các phần tử của mảng dựa vào chỉ số mảng… Ứng dụng nguyên tắc nguyên cứu khoa học trong xử lý Date,Math,Array Nguyên tắc linh động: Phân chia đối tươṇg thành từng phần, có khả năng thực hiện trong nhiều trường hợp khác nhau: Ví dụ: d.setDate(35); // thay đổi ngày d.setMonth(17); // thay đổi tháng int year = d.getYear() + 1900; // lấy năm int day = d.getDay(); // lấy thứ long time = d.getTime(); // lấy thời gian từ 1/1/1970 if(d.after(d2)){ System.out.printf(“%s sau %s”, d, d2); } Nguyên tắc chứa trong:Lớp Math chứa hàm double sqrt(double d) để tính căn bậc 2 của d. Nguyên tắc hợp thành: Chuyển từ các vật liệu đồng nhất sang sử dụng những vật liệu hợp thành Ví dụ:Mảng chứa 10 phần tử kiểu integer hợp thành mảng các số nguyên có số phần tử là 10,có chiều dài và chỉ số phần tử. 3. Kiểu mảng động(Collection) Tập hợp (Collection) là cấu trúc dữ liệu được sử dụng để nắm giữ các phần tử,có thể xem Collection như là một mảng động. Có thể thêm, xóa, cập nhật các phần tử. Các phép toán tập hợp như hợp, giao, trừ…cũng được hỗ trợ. Tập hợp được chia làm 2 loại:List(ArrayList,Vector,Stack,Queue…) và Set(HashSet,TreeSet…) Ứng dụng các nguyên tắc nguyên cứu khoa học trong Java Nguyễn Thanh Hoàng-1211023 Page 16 Ứng dụng nguyên tắc nguyên cứu khoa học trong xử lý tập hợp(Collection). Nguyên tắc chứa trong: Một đối tượng được đặt bên trong đối tượng khác và bản thân nó lại chứa đối tượng thứ ba. Ví dụ:Trong Collection gồm 2 loại List và Set.Tuy nhiên Trong List còn chứa ArrayList,Vector,Stack,Queue… Trong Set Còn chứa HashSet,TreeSet… Nguyên tắc đồng nhất: Những đối tượng, tương tác với đối tượng cho trước, phải được làm từ cùng một vật liệu (hoặc từ vật liệu gần về các tính chất) với vật liệu chế tạo đối tượng cho trước. Ví dụ:Khi khai báo 1 tập hợp Khi khai báo 1 đối tượng a là 1 List bằng cách gọi hàm dựng của Vector như sau:List a = new Vector().khai báo trên là hợp lệ vì thuộc cùng kiểu List. Khi khai báo 1 đối tượng a là 1 List bằng cách gọi hàm dựng của Vector như sau: List a = new HashSet();.khai báo trên là hợp lệ vì kiểu List thuộc List và HasSet thuộc Set. Nguyên tắc chuyển sang chiều khác: Những khó khăn do chuyển đôṇg (hay sắp xếp) đối tươṇg theo đường (môṭ chiều) sẽ được khắc phục nếu cho đối tươṇg khả năng di chuyển trên măṭ phẳng (hai chiều). Tương tư,̣ những bài toán liên quan đến chuyển đôṇg (hay sắp xếp) các đối tượng Ứng dụng các nguyên tắc nguyên cứu khoa học trong Java Nguyễn Thanh Hoàng-1211023 Page 17 trên măṭ phẳng se ̃đươc̣ đơn giản hoá khi chuyển sang không gian (ba chiều) Ví dụ:Set là tập hợp không cho phép trùng lặp phần tử(mỗi phần tử chỉ xuất hiện duy nhất một lần).Do vậy muốn sử dụng tập hợp có các phần tử xuất hiện nhiều lần ta sử dụng List. 4. IO & Exception. IO:Dùng với nhiều mục đích khác nhau Đọc/ghi file nhị phân. Đọc/ghi mảng nhị phân. Download tài nguyên trên mạng. Quản lý hệ thống file và thư mục. IO :phân cấp thành 2 luồng vào(input) và luồng ra(output) Phân cấp luồng vào như sau : Phân cấp luồng ra như sau : Ứng dụng các nguyên tắc nguyên cứu khoa học trong Java Nguyễn Thanh Hoàng-1211023 Page 18 Ứng dụng nguyên tắc nguyên cứu khoa học trong xử lý IO. Nguyên lý chứa trong: Một đối tượng được đặt bên trong đối tượng khác và bản thân nó lại chứa đối tượng thứ ba. Ví dụ:DataOutputStream kế thừa từ FilterOutputStream,mà FilterOutputStream lại được kế thừa từ OutputStream Nguyên tắc linh động: thay đổi các đặt trưng của đối tượng hay môi trường bên ngoài sao cho chúng tối ưu trong từng giai đoaṇ làm viêc̣ . Ví dụ: Khi cần đọc/ghi định kiểu,sử dụng:DataInputStream (InputStream) và DataOutputStream(OutputStream). Khi cần đọc/ghi đối tượng,sử dụng:ObjectInputStream (InputStream) và ObjectOutputStream(OutputStream). Khi cần đọc/ghi có đệm,sử dụng:BufferedInputStream (InputStream) và BufferedOutputStream(OutputStream) Nguyên tắc tự phục vụ: đối tượng phải tự phục vụ bằng cách thực hiện các thao tác phụ trợ, sửa chữa.Sử dụng phế liệu, chát thải, năng lượng dư. Ứng dụng các nguyên tắc nguyên cứu khoa học trong Java Nguyễn Thanh Hoàng-1211023 Page 19 Ví dụ:Trong chương trình Java, lập trình viên không còn phải quan tâm quá nhiều đến việc giải phóng bộ nhớ, chương trình Garbage Collector của Java sẽ thực hiện việc này một cách tự động. Cứ sau một khoảng thời gian nhất định, Garbage Collector sẽ xem xét những vùng nhớ không còn dùng đến để giải phóng. 5. Lập trình hướng đối tượng OOP(object-oriented programming). Trong những năm gần đây, lập trình hướng đối tượng đã trở nên gần gũi nhờ sự ra đời liên tiếp của các ngôn ngữ lập trình hướng đối tượng. Sức mạnh của phương pháp lập trình hướng đối tượng thể hiện ở chỗ khả năng mô hình hoá hệ thống dựa trên các đối tượng thực tế, khả năng đóng gói và bảo vệ an toàn dữ liệu, khả năng sử dụng lại mã nguồn để tiết kiệm chi phí và tài nguyên; đặc biệt là khả năng chia sẽ mã nguồn trong cộng đồng lập trình viên chuyên nghiệp. Những điểm mạnh này hứa hẹn sẽ thúc đẩy phát triển một môi trường lập trình tiên tiến cùng với nền công nghiệp lắp ráp phần mềm với các thư viện thành phần có sẵn. Không còn nguy cơ dữ liệu bị thay đổi tự do trong chương trình. Vì dữ liệu đã được đóng gói vào các đối tượng. Nếu muốn truy nhập vào dữ liệu phải thông qua các phương thức cho phép của đối tượng. Khi thay đổi cấu trúc dữ liệu của một đối tượng, không cần thay đổi các đổi mã nguồn của các đối tượng khác, mà chỉ cần thay đổi một số hàm thành phần của đối tượng bị thay đổi. Điều này hạn chế sự ảnh hưởng xấu của việc thay đổi dữ liệu đến các đối tượng khác trong chương trình. Có thể sử dụng lại mã nguồn, tiết kiệm tài nguyên. Vì nguyên tắc kế thừa cho phép các lớp kế thừa sử dụng các phương thức được kế thừa từ lớp khác như những phương thức của chính nó, mà không cần thiết phải định nghĩa lại. Phù hợp với các dự án phần mềm lớn, phức tạp. Các thành phần đặc trưng cơ bản lập trình hướng đối tượng. Lớp(Class): được sử dụng để mô tả các thực thể. Đối tượng(Object): là một sự thể hiện của thực thể.Dùng toán tử new kết hợp với phương thức khởi dựng để tạo đối tượng. Ví dụ:NhanVien nv=new NhanVien(“Hoang”,27). Sử dụng các bổ đề truy xuất(private,public,protected) . Sử dụng các đặc trưng kế thừa,viết đè,trừu tượng,giao tiếp thông qua các từ khóa:inheritance,overriding,abstract class,interface. Ngoài ra còn có các từ khóa final(dùng để định nghĩa hằng),static(dùng để định nghĩa biến và phương thức tĩnh)… Ứng dụng các nguyên tắc nguyên cứu khoa học trong Java Nguyễn Thanh Hoàng-1211023 Page 20 Ứng dụng nguyên tắc nguyên cứu khoa học trong OOP. Nguyên tắc linh động: thay đổi các đăṭ trưng của đối tươṇg hay môi trường bên ngoài sao cho chúng tối ưu trong từng giai đoạn làm việc Ví dụ: Không còn nguy cơ dữ liệu bị thay đổi tự do trong chương trình.Thông qua các từ khóa private,protected,public người viết mã có thể cho người khác kế thừa hay sử dụng biến hay hàm mình khai báo hay không. Nguyên tắc sao chép: o Thay vì sử dụng những cái không được pháp,phức tạp,đắc tiền,không tiện lợi hoặc dễ vỡ,sử dụng bản sao o Thay thế đối tượng hoặc hệ các đối tượng bằng bản sao quang học (ảnh, hình vẽ) với các tỷ lệ cần thiết. o Nếu không thể sử dụng bản sao quang học ở vùng biểu kiến (vùng ánh sáng nhìn thấy được bằng mắt thường), chuyển sang sử dụng các bản sao hồng ngoại hoặc tử ngoại. Ví dụ:Trong lập trình truyền thống không có khái niệm trùng hàm hay viết đè.Nhưng trong lập trình hướng đối tượng thì có khái niệm viết đè. Overriding là kỹ thuật cho phép chúng ta viết lại phương thức đã viết trong lớp cha để thay đổi nội dung xử lý của phương thức phù hợp với thực tại của chương trình. Nguyên tắc đồng nhất: Những đối tượng, tương tác với đối tượng cho trước, phải được làm từ cùng một vật liệu (hoặc từ vật liệu gần về các tính chất) với vật liệu chế tạo đối tượng cho trước Ví dụ: Phương thức đè (của lớp con) và phương thức bị đè (của lớp cha) phải cùng cú pháp ở phần , và. Nguyên tắc thực hiện sơ bộ: Ứng dụng các nguyên tắc nguyên cứu khoa học trong Java Nguyễn Thanh Hoàng-1211023 Page 21 o Thực hiện trước sự thay đổi cần có, hoàn toàn hoặc từng phần, đối với đối tượng. o Cần sắp xếp đối tượng trước, sao cho chúng có thể hoạt động từ vị trí thuận lợi nhất, không mất thời gian dịch chuyển. Ví dụ: Interface được xem như mẫu thiết kế mà lớp thi hành theo nó phải tuân thủ. Có 2 mục đích chính - Thiết kế chức năng (phương thức) để các lớp theo đó mà cài đặt mã nguồn. Ví dụ như Collection, List, Set, Runnable… - Đánh dấu để phân loại lớp. Ví dụ như Serializable, Remote III. KẾT LUẬN. Java là ngôn ngữ có tính khả chuyển cao có thể chạy trên mọi môi trường (Window,Linux…) nhờ máy ảo trung gian. Hiện tại Java là mã nguồn mở(các tool là miễn phí),người dùng không tốn phí để trả cho việc sử dụng chúng. Các API hỗ trợ khá nhiều giúp cho người lập trình giảm chi phí,giảm thời gian,đỡ viết code nhiều hơn. Java dùng để viết Web 1 cách dễ dàng thông qua mô hình MVC(Model- Control-View) sử dụng struts 2x framwork . Java ngày càng khẳng định chỗ đứng vững vảng so với 1 số ngôn ngữ lập trình.Bằng chứng là java có hỗ trợ các thẻ thông dụng(thẻ lựa chọn , thẻ lặp ,thẻ form…)giúp công việc của người lập trình giảm thiểu rõ rệt. Hướng phát triển tới của Java có thể là mobile.
File đính kèm:
- Đề tài Các nguyên tắc sáng tạo khoa học và ứng dụng trong ngôn ngữ lập trình Java.pdf