BÀI THU HOẠCH MÔN HỌC PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC Đề 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 Giảng viên hướng dẫn:GS.TSKH Hoàn
Trang 1BÀI THU HOẠCH MÔN HỌC
PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC
Đề 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
Giảng viên hướng dẫn:GS.TSKH Hoàng Kiếm
Học viên thực hiện:Nguyễn Thanh Hoàng
Khóa:K22
MSHV:1211023
TP.HCM,12/2012
Trang 2Nguyễn Thanh Hoàng-1211023 Page 2
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ư ̣ phò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 ̉ i “thiếu” hoă ̣c “thừa” 7
17 Nguyên tắc chuyển sang chiều kha ́ c 7
18 Nguyên tắc sư ̉ du ̣ng các dao đô ̣ng cơ ho ̣c 8
19 Nguyên tắc ta ́ c đô ̣ng theo chu kỳ 8
20 Nguyên tắc liên tu ̣c tác đô ̣ng 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
Trang 3Nguyễ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
Trang 4
Nguyễn Thanh Hoàng-1211023 Page 4
LỜI NÓI ĐẦU
ó thể nói rằng Java là một ngôn ngữ lập trình mạnh đang được sử dụng rất rộng rãi hiện nay trên toàn thế giới Trên thực tế, Java được biết đến không chỉ là một ngôn ngữ lập trình mà còn là một platform – một môi trường và công nghệ phát triển – riêng biệt Khi làm việc với Java, người lập trình được
sở hữu một thư viện lớn, có tính mở với một lượng mã nguồn tái sử dụng
khổng lồ luôn có trên internet Ngoài ra, các chương trình viết bằng Java có môi trường thực thi riêng với các tính năng bảo mật, khả năng triển khai trên
nhiều hệ điều hành khác nhau
ội dung bài tiểu luận: Ứng dụng kiến thức các nguyên tắc nguyên cứu khoa học đã học để giới thiệu,phân tích sự phát triển ngôn ngữ Java
uối cùng,xin cảm ơn GS.TSKH Hoàng Kiếm đã nhiệt tình truyền đạt kiến thức cho em trong quá trình học môn phương pháp nguyên cứu khoa học
C
N
C
Trang 5Nguyễn Thanh Hoàng-1211023 Page 5
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ỏ:
a) Chia đối tượng thành các phần độc lập
b) Làm đối tượng trở nên tháo lắp được
c) Tăng mức độ phân nhỏ đối tượng
Trang 6Nguyễn Thanh Hoàng-1211023 Page 6
7 Nguyên tắc “chứa trong”:
a) 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
b) Một đối tượng chuyển động xuyên suốt bên trong đối tượng khác
9 Nguyên tắc gây ứng suất sơ bộ:
Gây ứng suất trước với đối tượng để chống lại ứng suất không cho phép hoặc không mong muốn khi đối tượng làm việc (hoặc gây ứng suất trước để khi làm việc sẽ dùng ứng suất ngược lại )
10 Nguyên tắc thực hiện sơ bộ:
a) 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
b) 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
11 Nguyên tắc dư ̣ phòng:
Bù đắp độ tin cậy không lớn của đối tượng bằng cách chuẩn bị trước các phương tiê ̣n báo đô ̣ng, ứng cứu, an toàn
12 Nguyên tắc đẳng thế:
Thay đổi điều kiê ̣n làm viê ̣c để kh ông phải nâng lên hay ha ̣ xuống các đối tươ ̣ng
Trang 7Nguyễn Thanh Hoàng-1211023 Page 7
13 Nguyên tắc đa ̉ o ngược:
a) Thay vì hành đô ̣ng như yêu cầu bài toán , hành động ngược lại (ví dụ , không làm nóng mà làm la ̣nh đối tượng)
b) Làm phần chuyển động của đối tượng (hay môi trườ ng bên ngoài ) thành đứng yên và ngược la ̣i, phần đứng yên thành chuyển đô ̣ng
14 Nguyên tắc cầu (tròn) hoá:
a) Chuyển những phần thẳng của đối tươ ̣ng thành cong , mă ̣t phẳng thành
mă ̣t cầu, kết cấu hình hô ̣p thành kết cấu hình cầu
b) Sử du ̣ng các con lăn, viên bi, vòng xoắn
c) Chuyển sang chuyển đ ộng quay, sử dụng lực ly tâm
15 Nguyên tắc linh đô ̣ng:
a) Cần 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 ̣n làm viê ̣c
b) Phân chia đối tượng thành từng phần, có khả năng dịch chuyển với nhau
16 Nguyên tắc gia ̉ i “thiếu” hoặc “thừa”:
Nếu như khó nhâ ̣n được 100% hiê ̣u quả cần thiết , nên nhâ ̣n ít hơn hoă ̣c nhiều hơn “mô ̣t chút” Lúc đó bài toán có thể trở nên đơn giản hơn và dễ giải hơn
17 Nguyên tắc chuyển sang chiều kha ́ c:
a) Những khó khăn do chuyển đô ̣ng (hay sắp xếp ) đối tượng theo đường (một chiều ) sẽ được khắc phục nếu cho đối tượng khả năng di chuy ển trên mă ̣t phẳng (hai chiều ) Tương tự, những bài toán liên quan đến chuyển đô ̣ng (hay sắp xếp ) các đối tượng trên mặt phẳng sẽ được đơn giản hoá khi chuyển sang không gian (ba chiều)
b) Chuyển các đối tươ ̣ng có kết cấu mô ̣t tầng thành nhiều tầng
c) Đặt đối tượng nằm nghiêng
Trang 8Nguyễn Thanh Hoàng-1211023 Page 8
d) Sử du ̣ng mă ̣t sau của diê ̣n tích cho trước
e) Sử du ̣ng các luồng ánh sáng tới diê ̣n tích bên ca ̣nh hoă ̣c tới mă ̣t sau của diê ̣n tích cho trước
18 Nguyên tắc sư ̉ dụng các dao động cơ học:
a) Làm đối tượng dao động Nếu đã có dao đô ̣ng , tăng tầng số dao đô ̣ng ( đến tầng số siêu âm)
b) Sử du ̣ng tầng số cô ̣ng hưởng
c) Thay vì dùng các bô ̣ rung cơ ho ̣c, dùng các bộ rung áp điện
d) Sử du ̣ng siêu âm kết hơ ̣p với trường điê ̣n từ
19 Nguyên tắc ta ́ c động theo chu kỳ:
a) Chuyển tác đô ̣ng liên tu ̣c thành tác đô ̣ng theo chu kỳ (xung)
b) Nếu đã có tác đô ̣ng theo chu kỳ, hãy thay đổi chu kỳ
c) Sử du ̣ng các khoảng thời gian giữa các xung để thực hiện tác động khác
20 Nguyên tắc liên tu ̣c tác động có ích:
a) Thực hiê ̣n công viê ̣c mô ̣t cách liên tu ̣c (tất cả các phần của đối tượng cần luôn luôn làm viê ̣c ở chế đô ̣ đủ tải)
b) Khắc phục vâ ̣n hành không tải và trung gian
c) Chuyển chuyển động ti ̣nh tiến qua la ̣i thành chuyển đô ̣ng qua
21 Nguyên tắc “vượt nhanh”:
a Vượt qua các giai đoạn có hại hoặc nguy hiểm với vận tốc lớn
b Vượt nhanh để có được hiệu ứng cần thiết
22 Nguyên tắc biến hại thành lợi:
a Sử dụng những tác nhân có hại (thí dụ tác động có hại của môi trường) để thu được hiệu ứng có lợi
Trang 9Nguyễn Thanh Hoàng-1211023 Page 9
b Khắc phục tác nhân có hại bằng cách kết hợp nó với tác nhân có hại khác
c Tăng cường tác nhân có hại đến mức nó không còn có hại nữa
23 Nguyên tắc quan hệ phản hồi:
a Thiết lập quan hệ phản hồi
b Nếu đã có quan hệ phản hồi, hãy thay đổi nó
24 Nguyên tắc sử dụng trung gian:
Sử dụng đối tượng trung gian, chuyển tiếp
25 Nguyên tắc tự phục vụ:
a đố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
b Sử dụng phế liệu, chát thải, năng lượng dư
26 Nguyên tắc sao chép (copy):
a Thay vì sử dụng những cái không được phép, phức tạp, đắt tiền, không tiện lợi hoặc dễ vỡ, sử dụng bản sao
b 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
c 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
27 Nguyên tắc “rẻ” thay cho “đắt”:
Thay thế đối tượng đắt tiền bằng bộ các đối tượng rẻ có chất lượng kém hơn (thí dụ như về tuổi thọ)
28 Thay thế sơ đồ cơ học:
a Thay thế sơ đồ cơ học bằng điện, quang, nhiệt, âm hoặc mùi vị
Trang 10Nguyễn Thanh Hoàng-1211023 Page 10
b Sử dụng điện trường, từ trường và điện từ trường trong tương tác với đối tượng
c Chuyển các trường đứng yên sang chuyển động, các trường cố định sang thay đổi theo thời gian, các trường đồng nhất sang có cấu trúc nhất định
a Sử dụng các vỏ dẻo và màng mỏng thay cho các kết cấu khối
b Cách ly đối tượng với môi trường bên ngoài bằng các vỏ dẻo và màng mỏng
31 Sử dụng các vật liệu nhiều lỗ:
a Làm đối tượng có nhiều lỗ hoặc sử dụng thêm những chi tiết có nhiều lỗ (miếng đệm, tấm phủ…)
b Nếu đối tượng đã có nhiều lỗ, sơ bộ tẩm nó bằng chất nào đó
32 Nguyên tắc thay đổi màu sắc:
a Thay đổi màu sắc của đối tượng hay môi trường bên ngoài
b Thay đổi độ trong suốt của của đối tượng hay môi trường bên ngoài
c Để có thể quan sát được những đối tượng hoặc những quá trình, sử dụng các chất phụ gia màu, hùynh quang
d Nếu các chất phụ gia đó đã được sử dụng, dùng các nguyên tử đánh dấu
e Sử dụng các hình vẽ, ký hiệu thích hợp
Trang 11Nguyễn Thanh Hoàng-1211023 Page 11
33 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
34 Nguyên tắc phân hủy hoặc tái sinh các phần:
a Phần đối tượng đã hoàn thành nhiệm vụ hoặc trở nên không cần thiết phải
tự phân hủy (hoà tan, bay hơi ) hoặc phải biến dạng
b Các phần mất mát của đối tượng phải được phục hồi trực tiếp trong quá trình làm việc
35 Thay đổi các thông số hoá lý của đối tượng:
a Thay đổi trạng thái đối tượng
b Thay đổi nồng độ hay độ đậm đặc
c Thay đổi độ dẻo
d Thay đổi nhiệt độ, thể tích
36 Sử dụng chuyển pha:
Sử dụng các hiện tượng nảy sinh trong quá trình chuyển pha như: thay đổi thể tích, toả hay hấp thu nhiệt lượng
37 Sử dụng sự nở nhiệt:
a Sử dụng sự nở (hay co) nhiệt của các vật liệu
b Nếu đã dùng sự nở nhiệt, sử dụng với vật liệu có các hệ số nở nhiệt khác nhau
38 Sử dụng các chất oxy hoá mạnh:
a Thay không khí thường bằng không khí giàu oxy
b Thay không khí giàu oxy bằng chính oxy
c Dùng các bức xạ ion hoá tác động lên không khí hoặc oxy
Trang 12Nguyễn Thanh Hoàng-1211023 Page 12
d Thay oxy giàu ozon (hoặc oxy bị ion hoá) bằng chính ozon
39 Thay đổi độ trơ:
a Thay môi trường thông thường bằng môi trường trung hoà
b Đưa thêm vào đối tượng các phần , các chất , phụ gia trung hoà
c Thực hiện quá trình trong chân không
40 Sử dụng các vật liệu hợp thành (composite):
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 (composite) Hay nói chung sử dụng các vật liệu mới
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
Java là một ngôn ngữ lập trình do công ty Sun Microsystems phát triển vào đầu thập kỷ 1990 Java được khởi đầu bởi James Gosling và bạn đồng nghiệp là Patrick Naughton, Christ Warth, Ed, và Mike Sheridan vào năm 1991 tại Sun Microsystems, Inc Ngôn ngữ này đầu tiên được gọi là "Oak" (có nghĩa là cây sồi; do bên ngoài cơ quan của ông Gosling có trồng nhiều loại cây này) nhưng sau đổi tên thành Java vào năm 1995 Trong khoảng thời gian từ 1992 đến bản Java phát hành miễn phí đầu tiên năm 1995, rất nhiều người đã đóng góp ý kiến và phát triển ngôn ngữ này Hiện này thì công ty Sun Microsystems đang giữ bản quyền và phát triển Java thường xuyên.
Khi thực hiện một dự án nghiên cứu của Sun các nhà khoa học phát hiện rằng ngôn ngữ C++ không phù hợp và không đủ khả năng để đáp ứng nhu cầu của mình.Điểm nổi bật của ngôn ngữ Java so với các ngôn ngữ khác là "Write Once,Run AnyWhere" Một chương trình viết bằng ngôn ngữ lập trình Java
sẽ được biên dịch ra mã của máy ảo java (mã java bytecode)
Những chi tiết về ngôn ngữ, máy ảo và API của Java được giữ bởi Cộng đồng Java (do Oracle quản lý) Java được phát hành vào năm 1994, rồi nó trở nên nổi tiếng khi Netscape tuyên bố tại hội thảo SunWorld năm 1995 là trình duyệt Navigator của họ sẽ hỗ trợ Java Về sau Java được được hỗ trợ trên hầu hết các trình duyệt như Internet Explorer(Microsoft), Firefox(Mozilla),
Safari(Apple)…
Trang 13Nguyễn Thanh Hoàng-1211023 Page 13
Java được sử dụng chủ yếu trên môi trường mạng, internet Sau khi Oracle mua lại công ty của Sun Microsystem năm 2009-2010, Oracle đã mô tả họ là
"người quản lý công nghệ Java với cam kết không ngừng để bồi dưỡng một cộng đồng tham gia và minh bạch
II CÁC API HỖ TRỢ TRONG JAVA
1 Chuỗi(String),StringBuffer và biểu thức chính qui(Regular Expression)
Là dãy ký tự được đặt giữa dấu nháy kép
Là kiểu được sử dụng nhiều nhất trong lập trình
o Dùng trong việc so sánh,kiểm tra chuỗi
o Tìm vị trí chuỗi con,nối chuỗi,cắt chuỗi
o Dùng biểu thức chính qui để kiểm tra,so khớp chuỗi trong việc kiểm tra việc nhập email,số điện thoại,địa chỉ trang web…
String regex = “5\\d-[A-Z]\\d-\\d{3}.{2}” ;
Địa chỉ trang web:
String regex = “http://www\\.(\\w+\\.)\\.+\\w+” ;
Trang 14Nguyễn Thanh Hoàng-1211023 Page 14
Nguyên tắc vạn năng: Đối tượng thực hiện một số chức năng khác nhau,
do đó không cần sự tham gia của các đối tượng khác
o Trong việc kiểm tra biểu thức chính qui(Regular Expression) không cần phải viết mã javascript như để kiểm tra chuỗi nhập
Nguyên tắc tách khỏi.Dùng để tách chuỗi từ 1 chuỗi
Ví dụ:hàm String substring(int beginIndex,int endIndex).Dùng lấy ra 1
chuỗi từ chuỗi hiện hành
2 Kiểu dữ liệu ngày tháng(Date),Các hàm toán học(Math)và mảng(Array)
Date lấy và xử lý thông tin thời gian (năm, tháng, ngày, giờ, phút, giây…).Hàm SimpleDateFormat giúp chuyển đổi giữa Date và String
Trang 15Nguyễ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ượng 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)){