P. 1
Tong Hop Java

Tong Hop Java

|Views: 49|Likes:
Được xuất bản bởiAn Vinh Lương

More info:

Published by: An Vinh Lương on Mar 20, 2011
Bản quyền:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

03/20/2011

pdf

text

original

Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin Tr ng i H c Sài Gòn

Khoa Công Ngh Thông Tin -- - - - - --

án môn h c:

Seminar Công Ngh Ph n M m 
tài: Ngôn Ng Lp Trình Java

GVHD: ThS. Cao Thái Ph ng Thanh Th c Hi n: L ng An Vinh 3107410206 Hoàng V oàn 3107410152 Hu nh ng Th o Ti n 3107410198

Seminar Công Ngh Phn Mm Tìm Hiu Java

Trang 1

HP.2. 5.2 (Playground) 4 tháng 12. t ch c c ng nh cá nhân khác c ng phát tri n môi tr ng th c thi Java cho nh ng h i u hành khác nh BEA. th c thi kh p n i" ("Write Once. B. c "th hi n. Java c s d ng ch y u trên môi tr ng m ng.3. A. y y y y y y y y y y Các phiên b n Java ã phát hành: JDK 1.Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin I. 2.6 (Abigail) 24 tháng 4. 2000 J2SE 1. IBM. Java c t o ra vào n m 1991 do m t s k s Sun.8 (Chelsea) 8 tháng 4. Run Anywhere" (WORA)). FreeBSD & Windows. Môi tr ng th c thi c a Sun Microsystems hi n h tr Sun Solaris. c "m nh m và an toàn".7 (Brutus) 28 tháng 9. 1998 JDK 1. V sau Java c c h tr trên h u h t các trình duy t nh Internet Explorer (Microsoft). 1999 J2SE 1. 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". Nh ng chi ti t v ngôn ng . Java c t o ra v i tiêu chí "Vi t (code) m t l n.1. Safari (Apple). Firefox (Mozilla).1. do bên ngoài c quan c a ông Gosling có tr ng nhi u lo i cây này). h ng i t ng và quen thu c". Java c phát hành vào n m 1994. m t s công ty.1 (không có) 30 tháng 3.1. 1997 JDK 1. 3.. Linux.4 (Sparkler) 12 tháng 9. c "ki n trúc trung l p và di ng".1.. AIX & z/OS. Nó s Nó s Nó s Nó s Nó s Ph ng châm c a Java Có 5 m c tiêu chính trong vi c xây d ng ngôn ng Java: c " n gi n. Linux. . 1.5 (Pumpkin) 3 tháng 12. m t ph n c a D án Xanh (Green Project). 1999 J2SE 1. 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. 2001 Trang 2 Seminar Công Ngh Phn Mm Tìm Hiu Java . bao g m ông James Gosling.2. h d nh ngôn ng ó thay cho C++.1. máy o và API c a Java c gi b i C ng ng Java (do Oracle qu n lý). Công ty Sun Microsystems ang gi b n quy n và phát tri n Java th ng xuyên.3 (Kestrel) 8 tháng 5. nh ng các tính n ng gi ng Objective C. hai ngôn ng ó ch gi ng tên và lo i cú pháp nh C.1 (Ladybird) 17 tháng 5. 1998 J2SE 1.. c th c thi v i "hi u su t cao". Gi i thi u v Java Java c kh i u b i James Gosling và b n ng nghi p Sun Microsystems n m 1991.2 (Cricket) 8 tháng 7. 4. internet. Mac OS.. Ngoài ra.subby Sau khi Oracle mua l i công ty Sun Microsystems n m 2009-2010. phân lu ng và n ng ng". Trong ó áng nói n nh t là IBM Java Platform h tr Windows. 1998 JDK 1. Ban u ngôn ng này c g i là Oak (có ngh a là cây s i. Không nên l n l n Java v i JavaScript. 1997 JDK 1. 1999 J2SE 1. Ch ng trình ph n m m vi t b ng Java có th ch y trên m i n n t ng (platform) khác nhau thông qua m t môi tr ng th c thi v i i u ki n có môi tr ng th c thi thích h p h tr n n t ng ó.

2002 J2SE 1.0 (Merlin) 13 tháng 2.4. n m 2010 y Seminar Công Ngh Phn Mm Tìm Hiu Java Trang 3 . 2002 J2SE 1. JDK 6. Các b n c p nh t 2 và 3 c a ra vào n m 2007.4.4.0) (Tiger) 29 tháng 9. c công b 11 tháng 12 n m 2006.com/javase/6/ .sun.1 (Hopper) 16 tháng 9.2 (Mantis) 26 tháng 6. b n c p nh t 4 a ra tháng 1 n m 2008.18. 2003 J2SE 5 (1. 2004 Java SE 6 (còn g i là Mustang). thông tin chính t i http://java.Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin y y y y y J2SE 1.5.

2 n 1. 2. giao di n h a. Tuy nhiên. A. Java SE th ng c bi t Edition).2 cho n 1. Java SE Java Platform. Standard Edition (JRE) Môi tr ng th c thi Java hay JRE cung c p các Java API. b sung thêm các công c nh là trình biên d ch (compiler) và các trình g l i (debugger) c n phát tri n applet và các ng d ng. gi ng nh nhi u ngôn ng khác. Khi b n vi t mã.6 thì s 2 ã cb n v i cái tên J2SE(Java 2 Platform: Standard i. l i h a h n ³vi t m t l n.6 theo cách Microsystems) v i tên mã Mustang. B n có th hình dung. b n ph i biên d ch mã ngu n c a mình theo các th vi n dành riêng cho n n t ng h th ng ó. Java 2 Runtime Environment. b n s nh n c k t qu là mã byte (bytecodes). Môi tr ng th c thi Java không có các công c và ti n ích nh là các trình biên d ch hay các trình g l i phát tri n các applet và các ng d ng. c s d ng ch y các ch ng trình Java. trình biên d ch ki m tra mã l nh c a b n và i chi u v i các quy t c cú pháp c a ngôn ng . "2" ban u v n c dùng ch n nh ng thay i l n trong phiên b n 1. B i vì gi a các n n t ng h th ng khác nhau có nhi u i m khác nhau nên có th khi n cho mã l nh c a b n thi hành khác nhau trên nh ng n n t ng khác nhau.6 thì "2" b lo i b . nh ng n phiên b n 1. Standard Edition) c s d ng t phiên b n 1. m ng. ch y m i n i´ s tr thành ³vi t m t l n. máy o Java (Java Virtual Machine hay JVM) và các thành ph n c n thi t khác ch y các applet và ng d ng vi t b ng ngôn ng l p trình Java. cùng v i m t t p h p các th vi n (ho c "các gói") c n thi t cho phép s d ng các t p tin h th ng. ch y trên các n n h th ng khác nhau. Trên th c t .  J2SE g m 2 b ph n chính là: 1. sau ó b n biên d ch nó. b n sinh ra m t t p .5. Nguyên t c ho t ng c a ngôn ng Java Khi b n vi t mã l nh b ng ngôn ng Java. T "SE" c s d ng phân bi t v i các n n t ng khác là Java EE và Java ME. Khi b n biên d ch mã Java.Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin II. JVM c và thông d ch t p .class. Khi b n biên d ch t p này. máy o Java (JVM) s thông d ch các mã byte này lúc ch y ch ng trình. ki m th m i n i´. Java 2 Software Development Kit. Standard Edition ho c Java SE là m t n n t ng c dùng r ng rãi l p trình b ng ngôn ng Java. Standard Edition (SDK) Java 2 SDK là m t t p m c a JRE.5. Phiên b n c bi t n t i th i i m hi n t i là Java SE 6 (hay Java SE 1. và ch a m i th n m trong JRE. ây là n n t ng Java c s d ng tri n khai các ng d ng portable s d ng chung. T phiên b n Java 1. ch a các mã byte. Nh ng n n t ng Java b sung thêm m t b c khác n a ngoài các b c trên.class này lúc ch y và nó ho t ng nh th nào là tùy thu c vào n n t ng h th ng mà b n ang ch y. t tên c a Sun Seminar Công Ngh Phn Mm Tìm Hiu Java Trang 4 . trình biên d ch c a Java sinh ra m t t p . Tên J2SE (Java 2 Platform. n phiên b n 1.2 so v i các phiên b n tr c. Java SE bao g m m t máy o. Sau ó. và c chính ch ng trình ó.java. b n vi t mã ngu n.

b công c này c phát hành mi n phí g m có trình biên d ch. Công c và môi tr A. linh ng trong vi c phát tri n ng d ng ch y trên i n tho i di ng (mobile) và các thi t b nhúng (embedded devices) ± mobile phones. Java ME Java Platform. Cobol. và h tr c ng d ng có k t n i m ng l n ng d ng offline. C++. trình giúp s a l i (debugger. JDK là b phát tri n ph n m m thông d ng nh t cho Java. t ng thích nhi u n n t ng. C#. n th i i m hi n nay. XML n u ng i dùng cài t thêm các plug-in. Micro Edition (Java ME) framework và n m ph n u c a C u hình thi t b b h n ch K t n i (Connected Limited Device Configuration .Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin B. Vi c này ã c th c hi n ph n l n ngày 8 tháng 5 n m 2007[1] và mã ngu n c óng góp cho OpenJDK. Nó bao g m các thành ph n chu n c nh ngh a b i Java Community Process (JCP). C. trình duy t web. Java ME g m giao di n ng i dùng linh ng. MIDP là m t ph n c a n n t ng Java. m t t p h p các giao di n l p trình c p th p. c phát tri n ban u b i IBM và hi n nay b i t ch c Eclipse (http://www. K t khi ngôn ng Java ra i. Python. trình ch y applet và tài li u nghiên c u).  MIDP Mobile Information Device Profile (MIDP) là m t c t k thu t c công b cho vi c s d ng Java trên các thi t b nhúng nh i n tho i di ng và PDA. MIDP ã c phát tri n theo Java Community Process. Công ngh Java ME c s tham gia và c i ti n liên t c t o ra các chu n t JCP. JDK tr thành ph n m m t do. Ngày 17 tháng 11 n m 2006.CLDC). JDK ng phát tri n Java Java Development Kit (JDK . T ng quan v Eclipse Eclipse là m t môi tr ng phát tri n tích h p (Integrated Development Environment ± IDE) cho Java. Micro Edition (Java ME) là 1 môi tr ng m nh. Eclipse không gói g n trong vi c cung c p môi tr ng phát tri n tích h p cho Java mà còn cho các ngôn ng khác nh JavaScript. dùng vi t nh ng applet Java hay nh ng ng d ng Java . Java ME c thi t k cung c p tính linh ng gi a các n n t ng. PDAs.eclipse. TV set-top boxes. Ngoài vi c h tr các ngôn ng l p trình. h qu n tr c s d li u« Seminar Công Ngh Phn Mm Tìm Hiu Java Trang 5 . b o m t m nh. Java ME Platform là 1 d án m cho vi c xây d ng ng d ng trên i n tho i di ng. và máy in. B.B công c cho ng i phát tri n ng d ng b ng ngôn ng l p trình Java) là m t t p h p nh ng công c ph n m m c phát tri n b i Sun Microsystems dành cho các nhà phát tri n ph n m m. ng d ng m ng nh Telnet. HTML.org). III. ng d ng d a trên Java ME mang tính kh chuy n trên nhi u thi t b . các plug-in còn cho phép Eclipse làm vi c c v i ngôn ng s p ch (typesetting language) nh LaTEX. trình thông d ch. Các thi t b MIDP u tiên c tung ra vào tháng T n m 2001. giao th c m ng c xây d ng s n. PHP. Eclipse 1. hãng Sun tuyên b JDK s c phát hành d i gi y phép GNU General Public License (GPL).

M i Project là m t th m c con trong th m c Workspace. Workspace ng th i ch u trách nhi m thông báo nh ng công c c n thi t cho vi c thay i tài nguyên.Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin 2. tránh th t thoát tài nguyên ng i dùng.M i Plug-in u có 1 t p tin Manifest li t kê nh ng k t n i mà plug-in c n. C u trúc c a Eclipse: a) The Platform runtime : Công vi c chính c a Platform runtime là phát hi n xem plug-in nào ang có trong th m c plug-in c a Eclipse. Workspace l u tr l ch s nh ng s thay i tài nguyên. b n v n có th s d ng AWT hay SWING c a Java thông qua vi c cài t các Plug-ins. Eclipse không hoàn toàn b t bu c ph i s d ng SWT hay Jface l p trình giao di n. y y y c) The Workbench : Workbench là giao di n h a ng i dùng c a Eclipse.Plug-in ch ct i vào Eclipse m i khi th c s c n thi t gi m l ng tài nguyên yêu c u và th i gian kh i t o. Seminar Công Ngh Phn Mm Tìm Hiu Java Trang 6 . g m có Standard Widget Toolkit (SWT) và JFace. b) The workspace : Workspace ch u trách nhi m qu n lý tài nguyên ng i dùng c t ch c d i d ng Project.

c:\javapro Trang 7 y Seminar Công Ngh Phn Mm Tìm Hiu Java . Cácpackage quy chi u theo ng d n n t p tin trong h th ng t p c a b n. Package Là m t nhóm các class.mypackage thì ph i t o c u trúc th m c là \vn\edu\hau1\mypackage Java tìm c n i t cây th m c gói thì bi n môi tr ng classpath ph i xác nh th m c ch a cây th m c gói.Math cho bi t l p Math n m trong gói lang. Cú pháp ngôn ng l p trình Java A.Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin d) Trang b h th ng qu n tr Team support : qu n lý d án c a ng i dùng : Concurrent Versions System (CVS) e) Help : Cung c p h th ng tài li u m r ng.edu. Các gói cùng gói cha. gói lang n m trong gói java. M i i t ng Java u n m trong m t package. Java s t nó vào trong gói m c nh.lang. Cób n lý do c n óng gói các l p: y y y y Quy y D tìm các l p: Các l p có ch c n ng t Tránh sung t tên. Víd : Tên mi n c a H Sài Gòn là sgu. interface. B o v các thành viên c a l p. Tên c a các gói dùng ký pháp d u ch m (. Phân tán ph n m m thu n ti n. Víd : java. N u b n không nói rõ ràng nó thu c gói nào. c t tên gói: ng t nhau c t trong cùng m t gói d tìm. IV.vn thì t tên gói là vn. M t package ch n gi n là m t t p các i t ng.hau1. N u mu n óng gói các l p a lên Internet cho m i ng i s d ng thì ph i ch n m t tên duy nh t. các gói khác ã c biên d ch thành Java bytecode.) d ch ng d n t p tin này thành m t th mà n n t ng Java hi u c. Ví d : n u cây th m c gói t trong th m c c:\javapro thì classpath = . t t c (th ng là th ) liên quan v i nhau theo m t cách nào ó.tengoi Theo quy c t tên gói dùng ki u lowercase (vi t th ng). Ví d : v i tên gói là vn. các l p cùng gói không c trùng tên nhau. .edu. y y y Trong các gói có th l i ch a các gói khác. T ch c các gói theo ki u này s m b o các tên gói không b trùng nhau.edu.sgu. Th m c ch a các gói: y Java yêu c u c u trúc th m c ch a gói ph i t ng ng v i tên gói. có th là nh d ng HTML hay XML. ng i ta th ng l y o ng c c a tên mi n Internet làm ti n t c a tên gói.

import PackagCha. /* Comment */ package PackageCha[.PackageCon. M t l p có th th c c a l p ó.PackageCon]. ct ng t o ra B. T o package Khai báo package trong code c a class. và do v y k th a (inherit) m i tr ng và ph ng L p c k th a g i là l p cha (superclass.PackageCon. [import OtherPackageName .class c a code này s c t vào th m c này. t t c các l p c p.] class ClassName { .ClassName..ClassName. y y K th a c d n xu t (derived) t l p khác.. Khai báo package ph i là dòng u tiên c a code java. 1. parent class) ho c l p c s (base class).*.. child class) ho c l p d n xu t (derived class) ho c l p m r ng (extended class).. Dùng t khóa package Cú pháp: package PackageCha[.. L p th k g i là l p con (subclass.. u c d n xu t t Object. 2. } Khi biên d ch thành công: o N u ch a có th m c PackageName thì th m c này s o File.PackageCon].*.Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin D u . import PackageName. Quan h k th a t o thành cây hay c u trúc phân Trong Java. xác nh th m c hi n t i luôn trong classpath. Seminar Công Ngh Phn Mm Tìm Hiu Java Trang 8 . import PackageCha. S d ng Package Dùng ch th import v i m t trong các cú pháp sau: import PackageName.

} public class Tên_L p_Con extends Tên_L p_Cha { ««««««««««« } C.M t l p th c thi interface ph i ho c cài t t t c các ph ng th c(có trong interface) ho c khai báo là l p tr u t ng. Các bi n trong Interface thì ph i là public.Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin Cú pháp th a k trong Java: public class Tên_L p_Cha { «««««««««««. M t l p có th implements nhi u interface. ngh a là các hàm này không h có thân (body). Hàm trong interface không th là final. Interface ch a các hành vi chu n (standard behavior) c th c hi n b i b t kì l p nào trong h th ng phân c p l p. Dù không khai báo t khoá abstract. Interface Interface là 1 l p bao g m bi n h ng và các hàm c khai báo tr c nh ng không c nh ngh a. Không c khai báo private hay protected i v i các bi n và các hàm trong Interface vì các hàm này s c vi t l i (overriden) trong l p th c thi nó.. nh ng m i hàm trong 1 interface u c coi là abstract (tr u t ng). y y y y y y Seminar Công Ngh Phn Mm Tìm Hiu Java Trang 9 . static hay final. Interface không th c thi b t c m t ph ng th c nào nh ng l i c u trúc thi t k trên b t c l p nào s d ng nó. 1. Ngh a là các hàm trong interface có th c th c hi n b i các l p không có liên h gì n nó. Chú ý khi dùng Interface: M t l p thi hành các hàm trong interface thông qua t khoá implements. Interface c dùng nh m t "ki u" ch ch a nh ngh a h ng và ph ng th c tr u t ng.

Khai báo interface Khai báo interface b ng 1 file.. 3. } Ch n modifier là public m in i u dùng c.. M t l p có th th c thi nhi u interface (vì trong java ch cho cho a th a k ). Set Th a k t interface Collection. { <Data riêng> <th c thi c a các method riêng> <th c thi các method c a interface1> <th c thi các method c a interface2> <th c thi các method c a các interface khác> } n th a k nên cách này dung ph c v V.. interface2. N u không có modifier th ch các class/interface cùng gói/ cùng th m c m i truy c p Modifier trong interface nên là public Giao di n d dùng. Cú pháp: [modifier]interface InterfaceName { [ modifier] <final data> [ modifier] DataTypeMethod (args). Th c thi giao di n (implement interface) c th c thi thông qua các l p.java.Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin 2. c. M t l p có code c th hóa các hành vi c a m t interface thì g i là implementation.class. là t p h p các ph n t không trùng nhau (bao g m c ph n t null). Cú pháp xây d ng m t l p có th c thi interface: [modifier] class TênextendsL pChaimplements Interface1. biên d ch thành file. Java collections framework A. Seminar Công Ngh Phn Mm Tìm Hiu Java Trang 10 .

Deque<E>. 3. B. Không nh Set.Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin 1. Serializable T p h p các ph n t c s p x p theo th t (các ph n t khi v trí theo th t s p x p). Serializable T c truy xu t c c nhanh. Cloneable. Cloneable. Cloneable. RandomAccess. List Là t p h p các ph n t theo th t (do ng i dùng s p x p). 2. Serializable Cung c p các truy xu t theo v trí không i theo th i gian. LinkedHashSet có t c truy xu t nhanh g n b ng HasSet. TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>. extends HashSet<E> LinkedHashSet<E> a vào TreeSet s t ng c a úng implements Set<E>. Nó không ph i c p phát m t i t ng Node cho m i ph n t trong List. LinkedList<E> extends AbstractSequentialList<E> implements List<E>. 2. t c nhanh. Ng i dùng có th truy xu t các ph n t thông qua v trí c a nó và có th tìm ki m các ph n t trong ó. Serializable Seminar Công Ngh Phn Mm Tìm Hiu Java Trang 11 . và nó có th t n d ng l i th c a System. Serializable Là implement trung gian gi a HasSet và TreeSet. Cloneable. 1. gi ng nh là m t b ng b m v i m t danh sách liên k t ch y bên trong nó. trong List cho phép các ph n t trùng l p. ArrayList<E> extends AbstractList<E> implements List<E>. Ng i s d ng interface này có th ki m soát chính xác các ph n t thông qua v trí c a mà ph n t ó c thêm vào.arraycopy khi nó ph i di chuy n nhi u ph n t cùng m t lúc. Cloneable. HashSet<E> extends AbstractSet<E> implements Set<E>.

D.V> extends AbstractMap<K. Serializable TreeMap dùng ánh x mà trong ó các key c s p x p theo th t . Tuy nhiên thì LinkedList l i t n khá nhi u th i gian truy xu t so v i ArrayList. Queue c truy xu t theo nguyên t c ³vào tr c.V> extends AbstractMap<K. 3. HashMap<K.V> extends HashMap<K. Trong Map không ch a các key trùng l p và m i key ch ánh x cho duy nh t m t giá tr t ng ng. Cloneable. Cloneable. ra tr c´. C.Trng i Hc Sài Gòn Khoa Công Ngh Thông Tin N u b n mu n thêm m t ph n t vào u List hay duy t qua các ph n t c a List xóa m t ph n t d a theo n t dung c a ph n t ó thì nên s d ng LinkedList. LinkedList là m t th c thi c a T p h p các ph n t interface Queue.V> Là s k t h p gi a TreeMap và LinkedHashMap. 2.V> implements Map<K.V>. 1.V> implements NavigableMap<K. Map Là m t i t ng dùng ánh x các Key thành giá tr t ng ng. TreeMap<K. các key c ng khá nhanh. c s p x p theo th t và t c truy xu t Seminar Công Ngh Phn Mm Tìm Hiu Java Trang 12 . LinkedHashMap<K.V> implements Map<K.V>. Serializable Dùng ánh x mà t c truy xu t các key và value c c kì nhanh.

You're Reading a Free Preview

Tải về
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->