µÚ Èý Õ Java³Ì Ðò Éè ¼Æ »ù´¡

3.1 Java±à ³Ì ¸Å ¿ö

ÏÖ ÔÚ Äã ¿É ÒÔ ¸´ ϰ Ò» ÏÂJavaÓï ÑÔ µÄ ±³ ¾° ²Ä ÁÏ£¬ Ëü µÄ »ù ±¾ ½á ¹¹ ÏóC/C++£¬ µ« ÈÎ ºÎ ÓÃ Ãæ Ïò ¹ý ³Ì Óï ÑÔ ±à д ¹ý ³Ì Ðò µÄ ÈË ¶¼ ¿É ÒÔ ÁË ½âJavaÓï ÑÔ µÄ ´ó ²¿ ·Ö ½á ¹¹.

3.1.1 ³Ì Ðò ½á ¹¹

JavaÓï ÑÔ µÄ Ô´ ³Ì Ðò ´ú Âë ÓÉ Ò» ¸ö »ò ¶à ¸ö ±à Òë µ¥ Ôª(compilation unit)×é ³É£¬ ÿ ¸ö ±à Òë µ¥ Ôª Ö» ÄÜ °ü º¬ Ï ÁÐ ÄÚ ÈÝ(¿Õ ¸ñ ºÍ ×¢ ÊÍ ³ý Íâ)£º * Ò» ¸ö ³Ì Ðò °ü Óï ¾ä(package statement ) * Èë ¿Ú Óï ¾ä(import statements) * Àà µÄ Éù Ã÷(class declarations) * ½ç Ãæ Éù Ã÷(interface declarations) ÿ ¸öJavaµÄ ±à Òë µ¥ Ôª ¿É °ü º¬ ¶à ¸ö Àà »ò ½ç Ãæ£¬ µ« ÊÇ Ã¿ ¸ö ±à Òë µ¥ Ôª ×î ¶à Ö» ÄÜ ÓÐ Ò» ¸ö Àà »ò Õß ½ç Ãæ ÊÇ ¹« ¹² µÄ¡£ Java µÄ Ô´ ³Ì Ðò ´ú Âë ±» ±à Òë Ö® ºó£¬ ±ã ²ú Éú ÁËJava×Ö ½Ú ´ú Âë¡£JavaµÄ ×Ö ½Ú ´ú Âë ÓÉ Ò» Щ ²» ÒÀ Àµ ÓÚ »ú Æ÷ µÄ Ö¸ Áî ×é ³É£¬ Õâ Щ Ö¸ Áî ÄÜ ±»JavaµÄ ÔË ÐРϵ ͳ(runtime system)ÓРЧ µØ ½â ÊÍ¡£JavaµÄ ÔË ÐРϵ ͳ ¹¤ ×÷ Æð À´ Èç ͬ Ò» ̨ Ðé Äâ »ú¡£ ÔÚ µ± ǰ µÄJavaʵ ÏÖ ÖУ¬ ÿ ¸ö ±à Òë µ¥ Ôª ¾Í ÊÇ Ò» ¸ö ÒÔ.javaΪ ºó ׺ µÄ ÎÄ ¼þ¡£ ÿ ¸ö ±à Òë µ¥ Ôª ÓÐ Èô ¸É ¸ö À࣬ ±à Òë ºó£¬ Ã¿ ¸ö Àà Éú ³É Ò» ¸ö.classÎÄ ¼þ¡£.classÎÄ ¼þ ÊÇJavaÐé Äâ »ú ÄÜ ¹» ʶ ±ð µÄ ´ú Âë¡£

3.1.2 ×¢ ÊÍ

Èý ÖÖ Àà ÐÍ Èç ÏÂ: //×¢ ÊÍ Ò» ÐÐ /*Ò» ÐÐ »ò ¶à ÐÐ ×¢ ÊÍ*/ /**ÎÄ µµ ×¢ ÊÍ**/

ÎÄ µµ ×¢ ÊÍ Ò» °ã ·Å ÔÚ Ò» ¸ö ±ä Á¿ »ò º¯ Êý ¶¨ Òå Ö® ǰ,Ö¸ ʾ ÔÚ ÈÎ ºÎ ×Ô ¶¯ Éú ³É ÎÄ µµ ϵ ͳ ÖÐ µ÷ Èë¡£ Õâ Щ ×¢ ÊÍ ¶¼ ÊÇ Éù Ã÷ Ìõ Ä¿ µÄ Ãè Êö.¡£

3.1.3 ±ê ʶ ·û

±ä Á¿£¬ º¯ Êý£¬ Àà ºÍ ¶Ô Ïó µÄ Ãû ³Æ ¶¼ ÊÇ ±ê ʶ ·û£¬ ³Ì Ðò Ô± Ðè Òª ±ê ʶ ºÍ ʹ Óà µÄ ¶« Î÷ ¶¼ Ðè Òª ±ê ʶ ·û¡£ ÔÚJavaÓï ÑÔ Àï,±ê ʶ ·û ÒÔ ×Ö ·û »ò_,$¿ª Í·,ºó Ãæ ¿É ÒÔ °ü º¬ Êý ×Ö£¬ ±ê ʶ ·û ÊÇ ´ó С д ÓÐ Çø ±ð µÄ,û ÓÐ ³¤ ¶È ÏÞ ÖÆ¡£

ÓРЧ µÄ ±ê ʶ ·û myname ict_network Hello _sys_path $bill

Àý ×Ó£º int a_number; char _onechar; float $bill;

¹Ø ¼ü ´Ê abstract continue for new switch

boolean default goto null synchronized

break do if package this

byte double implements private threadsafe

byvalue else import protected throw

case extends instanceof public transient

catch false int return true

char final interface short try

class finally long static void

const float native super while

Æä Ëü ±£ Áô ´Ê ÒÔ Ï µ¥ ´Ê ±» ±£ Áô ʹ Ó㺠cast future generic inner

operator outer rest var

3.1.4 Êý ¾Ý Àà ÐÍ

Javaʹ Óà Îå ÖÖ »ù ±¾ Àà ÐÍ:integer(Õû Êý),floating(¸¡µã Êý),point(Ö¸ Õë),Boolean(²¼ ¶û ±ä Á¿),Character or String(×Ö ·û »ò ×Ö ·û ´®)¡£ integer Õû Êý Ï ±ß ¸ø ³ö µÄ Êý ¾Ý ±í ʾ ¶¼ ÊÇ Õû Êý µÄ Àý ×Ó£º 4 £¬ 15 £¬ 089 £¬ 0xAD00

Õû Êý ³¤ ¶È Êý ¾Ý Àà ÐÍ ±í ʾ

8 bits byte

16 bits short

32 bits int

64 bits long

floating ¸¡µã Êý Ï ±ß ¸ø ³ö µÄ Êý ¾Ý ±í ʾ ¶¼ ÊǸ¡µã Êý µÄ Àý ×Ó£º 6.37 £¬ 3.7E15 £¬ 3e8

¸¡µã Êý ³¤ ¶È Êý ¾Ý Àà ÐÍ ±í ʾ

32 bits float

64 bits double

Boolean ²¼ ¶û ±ä Á¿ Ï ±ß ÊÇ ²¼ ¶û ±ä Á¿ µÄ Á½ ÖÖ ¿É ÄÜ È¡ Öµ£º true false

Character ×Ö ·û Ï ±ß ¸ø ³ö µÄ ¶¼ ÊÇ ×Ö ·û µÄ Àý ×Ó£º a \t (tab) \u????(unicode)

String ×Ö ·û ´® Ï ±ß ¸ø ³ö µÄ ¶¼ ÊÇ ×Ö ·û ´® µÄ Àý ×Ó£º "This is a string literal" "ÖÐ ¹ú ¿Æ ѧ Ôº ¼Æ Ëã Ëù"

Êý ×é Äã ¿É ÒÔ ¶¨ Òå ÈÎ Òâ Àà ÐÍ µÄ Êý ×é. char s[]; Õâ ÊÇ ×Ö ·û ÐÍ Êý ×飻 int [] array; Õâ ÊÇ Õû ÐÍ Êý ×飻 Äã »¹ ¿É ÒÔ ¶¨ Òå Êý ×é µÄ Êý ×é. int block[][]=new int [2][3]; Êý ×é ±ß ½ç ÔÚ ÔË ÐРʱ ±» ¼ì ²â,±Ü Ãâ ¶Ñ Õ» Òç ³ö ºÍ ÄÚ ´æ ±À À£.

ÔÚJavaÀï,Êý ×é ʵ ¼Ê ÉÏ ÊÇ Ò» ¸ö ¶Ô Ïó,Êý ×é ÓÐ Ò» ¸ö ³É Ô± ±ä Á¿£ºlength¡£ Äã ¿É ÒÔ Óà Õâ ¸ö ³É Ô± º¯ Êý À´ ²é ¿´ ÈÎ Òâ Êý ×é µÄ ³¤ ¶È. int a[][] = new int [10][3] a.length /* 10 */ a[0].length /* 3 */

´´ ½¨ Êý ×é ÔÚJavaÀï ´´ ½¨ Êý ×é,Äã ¿É Ê¹ Óà Á½ ÖÖ »ù ±¾ ·½ ·¨ Ö® Ò»¡£ ´´ ½¨ Ò» ¸ö ¿Õ Êý ×飺 int list[]=new int[50]; »ò Äã ¿É ÒÔ Óà ³õ ʼ Êý Öµ Ìî ³ä Êý ×é. String names[] = { "Chenji","Yuan","Chun","Yang" }; Ïà µ± ÓÚ ÏÂ Ãæ ¹¦ ÄÜ: String names[]; names = new String[4]; names[0]=new String("Chenji"); names[1]=new String("Yuan"); names[2]=new String("Chun"); names[3]=new String("Yang");

ÔÚ ±à Òë ʱ Äã ²» ÄÜ Ïó Ï Àý ÄÇ Ñù ´´ ½¨ ¾² ̬ Êý ×é¡£ int name[50];//½« ²ú Éú Ò» ¸ö ±à Òë ´í Îó

Äã Ò² ²» ÄÜ ÓÃnew²Ù ×÷ È¥ Ìî ³ä Ò» ¸ö û ¶¨ Òå ´ó С µÄ Êý ×é¡£ int name[]; for (int i=0;i<9;i++) { name[i] = i; }

3.1.5 ±í ´ï ʽ

JavaÓï ÑÔ µÄ ±í ´ï ʽ ºÍCÓï ÑÔ ·Ç ³£ Àà ËÆ¡£

ÔË Ëã ·û ÔË Ëã ·û(operator)ÓÅ ÏÈ ¼¶ ´Ó ¸ß µ½ µ× ÅÅ ÁÐ Èç Ï£º . [ ] () ++ -- ! ¡« instanceof * / % + - << >> >>> < > <= >\ == ! = & ^ && || ? : = op = ,

Õû Êý ÔË Ëã ·û ÔÚ Õû Êý ÔË Ëã ʱ£¬ Èç ¹û ²Ù ×÷ Êý ÊÇlongÀà ÐÍ£¬ Ôò ÔË Ëã ½á ¹û ÊÇlongÀà ÐÍ£¬ ·ñ Ôò ΪintÀà ÐÍ£¬ ¾ø ²» »á ÊÇbyte£¬short»òcharÐÍ¡£ Õâ Ñù£¬ Èç ¹û ±ä Á¿i±» Éù Ã÷ Ϊshort»òbyte£¬i+1µÄ ½á ¹û »á ÊÇint¡£ Èç ¹û ½á ¹û ³¬ ¹ý ¸Ã Àà ÐÍ µÄ È¡ Öµ ·¶ Χ£¬ Ôò °´ ¸Ã Àà ÐÍ µÄ ×î ´ó Öµ È¡ Ä£¡£ µ¥ Ä¿ Õû Êý ÔË Ëã ·û ÊÇ£º

ÔË Ëã ·û ²Ù ×÷ - µ¥ Ä¿ ·Ç ¡« λ ²¹ Âë ++ ¼Ó1 -- ¼õ1

++ÔË Ëã ·û Óà ÓÚ ±í ʾ Ö± ½Ó ¼Ó1²Ù ×÷¡£ Ôö Á¿ ²Ù ×÷ Ò² ¿É ÒÔ Óà ¼Ó ÔË Ëã ·û ºÍ ¸³ Öµ ²Ù ×÷ ¼ä ½Ó Íê ³É¡£++ lvalue £¨×ó Öµ£© ±í ʾlvalue+=1, ++lvalue Ò² ±í ʾlvalue =lvalue +1 (Ö» Òªlvalueû ÓÐ ¸± ×÷ ÓÃ)¡£--ÔË Ëã ·û Óà ÓÚ ±í ʾ ¼õ1²Ù ×÷¡£++ºÍ--ÔË Ëã ·û ¼È ¿É ÒÔ ×÷ Ϊ ǰ ׺ ÔË Ëã ·û£¬ Ò² ¿É ÒÔ ×ö Ϊ ºó ׺ ÔË Ëã ·û¡£ Ë« Ä¿ Õû Êý ÔË Ëã ·û ÊÇ£º

ÔË Ëã ·û ²Ù ×÷** + ¼Ó - ¼õ * ³Ë / ³ý % È¡ Ä£ & λ Óë £ü λ »ò ^ λ Òì »ò << ×ó ÒÆ >> ÓÒ ÒÆ(´ø ·û ºÅ) >>> Ìí Áã ÓÒ ÒÆ

Õû Êý ³ý ·¨ °´ Áã Éá Èë¡£ ³ý ·¨ ºÍ È¡ Ä£ ×ñ ÊØ ÒÔ Ï µÈ ʽ£º ( a/b ) * b + ( a%b ) == a Õû Êý Ëã Êõ ÔË Ëã µÄ Òì ³£ ÊÇ ÓÉ ÓÚ ³ý Áã »ò °´ Áã È¡ Ä£ Ôì ³É µÄ¡£ Ëü ½« Òý ·¢ Ò» ¸ö Ëã Êõ Òì ³£¡£ Ï Òç ²ú Éú Á㣬 ÉÏ Òç µ¼ Ö Խ ½ç¡£ Àý È磺 ¼Ó1³¬ ¹ý Õû Êý ×î ´ó Öµ£¬ È¡ Ä£ ºó£¬ ±ä ³É ×î С Öµ¡£ Ò» ¸öop=¸³ Öµ ÔË Ëã ·û£¬ ºÍ ÉÏ ±í ÖÐ µÄ ¸÷ Ë« Ä¿ Õû Êý ÔË Ëã ·û Áª Ó㬠¹¹ ³É Ò» ¸ö ±í ´ï ʽ¡£ Õû Êý ¹Ø ϵ ÔË Ëã ·û<£¬ >£¬<=£¬>=£¬==ºÍ!=²ú ÉúbooleanÀà ÐÍ µÄ Êý ¾Ý¡£

²¼ ¶û ÔË Ëã ·û ²¼ ¶û(boolean)±ä Á¿ »ò ±í ´ï ʽ µÄ ×é ºÏ ÔË Ëã ¿É ÒÔ ²ú Éú РµÄbooleanÖµ¡£ µ¥ Ä¿ ÔË Ëã ·û!ÊÇ ²¼ ¶û ·Ç¡£ Ë« Ä¿ ÔË Ëã ·û £¦£¬ £ü ºÍ^ÊÇ Âß ¼­AND£¬ORºÍXORÔË Ëã ·û£¬ Ëü ÃÇ Ç¿ ÖÆ Á½ ¸ö ²Ù ×÷ Êý Çó ²¼ ¶û Öµ¡£ Ϊ ±Ü Ãâ ÓÒ ²à ²Ù ×÷ Êý Èß Óà Çó Öµ£¬ Óà »§ ¿É ÒÔ Ê¹ Óà ¶Ì · Çó Öµ ÔË Ëã ·û £¦ £¦ ºÍ £ü £ü¡£ Óà »§ ¿É ÒÔ Ê¹ ÓÃ==ºÍ!=£¬ ¸³ Öµ ÔË Ëã ·û Ò² ¿É ÒÔ Óà &=¡¢|=¡¢^=¡£ Èý Ôª Ìõ ¼þ ²Ù ×÷ ·û? : ºÍCÓï ÑÔ ÖÐ µÄ Ò» Ñù¡£

¸¡µã ÔË Ëã ·û ¸¡µã ÔË Ëã ·û ¿É ÒÔ Ê¹ Óà ³£ ¹æ ÔË Ëã ·û µÄ ×é ºÏ£º Èç µ¥ Ä¿ ÔË Ëã ·û++¡¢--£¬ Ë« Ä¿ ÔË Ëã ·û+¡¢-¡¢* ºÍ/£¬ ÒÔ ¼° ¸³ Öµ ÔË Ëã ·û+=£¬-=£¬*=£¬ ºÍ/=¡£ ´Ë Í⣬ »¹ ÓÐ È¡ Ä£ ÔË Ë㣺 %ºÍ%=Ò² ¿É ÒÔ ×÷ Óà ÓÚ¸¡µã Êý£¬ Àý È磺 a%bºÍa-((int) (a/b)*b)µÄ Óï Òå Ïà ͬ¡£ Õâ ±í ʾa%bµÄ ½á ¹û ÊÇ ³ý Íê ºó Ê£ Ï µÄ¸¡µã Êý ²¿ ·Ö¡£ Ö» ÓÐ µ¥ ¾« ¶È ²Ù ×÷ Êý µÄ¸¡µã ±í ´ï ʽ °´ ÕÕ µ¥ ¾« ¶È ÔË Ëã Çó Öµ£¬ ²ú Éú µ¥ ¾« ¶È ½á ¹û¡£ Èç ¹û¸¡µã ±í ´ï ʽ ÖÐ º¬ ÓÐ Ò» ¸ö »ò Ò» ¸ö ÒÔ ÉÏ µÄ Ë« ¾« ¶È ²Ù ×÷ Êý£¬ Ôò °´ Ë« ¾« ¶È ÔË Ë㣬 ½á ¹û ÊÇ Ë« ¾« ¶È¸¡µã Êý¡£

Êý ×é ÔË Ëã ·û Êý ×é ÔË Ëã ·û ÐΠʽ Èç Ï£º <expression> [ <expression>] ¿É ¸ø ³ö Êý ×é ÖРij ¸ö Ôª ËØ µÄ Öµ¡£ ºÏ ·¨ µÄ È¡ Öµ ·¶ Χ ÊÇ ´Ó0µ½ Êý ×é µÄ ³¤ ¶È ¼õ1¡£ È¡ Öµ ·¶ Χ µÄ ¼ì ²é Ö» ÔÚ ÔË ÐРʱ ¿Ì ʵ Ê©¡£

´® ÔË Ëã ·û ´® ÒÔString¶Ô Ïó ʵ ÏÖ¡£ ÔË Ëã ·û"+"Íê ³É ²¢ ´® ²Ù ×÷£¬ Èç ¹û ±Ø Òª Ôò ×Ô ¶¯ °Ñ ²Ù ×÷ Êý ת »» ΪStringÐÍ¡£ Èç ¹û ²Ù ×÷ Êý ÊÇ Ò» ¸ö ¶Ô Ïó£¬ Ëü ¿É ¶¨ Òå Ò» ¸ö ·½ ·¨toString ( ) ·µ »Ø ¸Ã ¶Ô Ïó µÄString·½ ʽ£¬ Àý Èç float a = 1.0 print (¡°The value of a is¡±+ a +¡°\n¡±); +ÔË Ëã ·û Óà µ½ ´® ÉÏ µÄ Àý ×Ó String s=¡°a=¡±+ a; +=ÔË Ëã ·û Ò² ¿É ÒÔ Óà ÓÚString¡£ ×¢ Ò⣬ ×ó ±ß(Ï Àý ÖÐ µÄs1)½ö Çó Öµ Ò» ´Î¡£ s1+=a; //s1=s1+a //Èôa·ÇStringÐÍ£¬ ×Ô ¶¯ ת »» ΪStringÐÍ¡£

¶Ô Ïó ÔË Ëã ·û Ë« Ä¿ ÔË Ëã ·ûinstanceof ²â ÊÔ Ä³ ¸ö ¶Ô Ïó ÊÇ ·ñ ÊÇ Ö¸ ¶¨ Àà »ò Æä ×Ó Àà µÄ Êµ Àý¡£ Àý È磺 if (myObject instanceof MyClass) { MyClass anothermyObject=( MyClass) myObject; ¡­ } ÊÇ ÅÐ ¶¨myObjectÊÇ ·ñ ÊÇMyClassµÄ ʵ Àý »ò ÊÇ Æä ×Ó Àà µÄ Êµ Àý¡£

Ç¿ ÖÆ ºÍ ת »» JavaÓï ÑÔ ºÍ ½â ÊÍ Æ÷ ÏÞ ÖÆ ʹ Óà ǿ ÖÆ ºÍ ת »»£¬ ÒÔ ·À Ö¹ ³ö ´í µ¼ Ö ϵ ͳ ±À À£¡£ Õû Êý ºÍ¸¡µã Êý Ö® ¼ä ¿É ÒÔ À´ »Ø Ç¿ ÖÆ ת »»£¬ µ« Õû Êý ²» ÄÜ Ç¿ ÖÆ ת »» ³É Êý ×é »ò ¶Ô Ïó¡£ ¶Ô Ïó ²» ÄÜ ±» Ç¿ ÖÆ Ϊ »ù ±¾ Àà ÐÍ¡£

3.1.6 JavaÁ÷ ¿Ø ÖÆ

ÏÂ Ãæ ¼¸ ¸ö ¿Ø ÖÆ ½á ¹¹ ÊÇ ´ÓCÓï ÑÔ ½è ¼ø µÄ¡£

·Ö Ö§ ½á ¹¹

if/else·Ö Ö§ ½á ¹¹

if (Boolean) { statemanets; } else { statements; }

switch·Ö Ö§ ½á ¹¹

switch(expr1) { case expr2: statements; break; case expr3: statements; break; default: statements; break; }

Ñ­ »· ½á ¹¹ forÑ­ »· ½á ¹¹

for (init expr1;test expr2;increment expr3) { statements; }

WhileÑ­ »· ½á ¹¹

While(Boolean) { statements; }

DoÑ­ »· ½á ¹¹

do { statements; } while (Boolean);

Ò» °ã ˳ Ðò ¿Ø ÖÆ

break [label] continue [label] reutrn expr; label:statement;

forÑ­ »· Àý ×Ó ÏÂ Ãæ ÊÇ Ò» ¸ö ³Ì Ðò Àý ×Ó£¬ »­ ¼¸ Ìõ Ïߣ¬ ·Ö ±ð Óà ºì,ÂÌ,À¶ ÑÕ É«£¬ Õâ ¶Î ³Ì Ðò ¿É ÄÜ ÊÇJavaº¯ Êý µÄ Ò» ²¿ ·Ö£º

int count; for (count=1;count<=12;count++) { switch (count % 3) } case 0: setColor(Color.red); break; case 1: setColor(Color.blue); break; case 2: setColor(Color.green); break; } g.drawLine(10,count*10,80,count*10); }

3.2 Java±ä Á¿ ºÍ º¯ Êý µÄ ʵ Àý

JavaµÄ Àà °ü º¬ ±ä Á¿ ºÍ º¯ Êý¡£ Êý ¾Ý ±ä Á¿ ¿É ÒÔ ÊÇ Ò» Щ Ô­ ʼ µÄ Àà ÐÍ,Èçint,charµÈ¡£ ³É Ô± º¯ Êý ÊÇ Ò» Щ ¿É Ö´ ÐÐ µÄ ¹ý ³Ì¡£ Àý Èç,ÏÂ Ãæ ³Ì Ðò À public class ClassOne { int i; public ClassOne() { i=10; }

public void Add_i(int j) { i=i+j; } }

ClassOne°ü º¬ Ò» ¸ö ±ä Á¿iºÍ Á½ ¸ö ³É Ô± º¯ Êý,ClassOne(int first)ºÍAdd_i(int j)¡£

³É Ô± º¯ Êý ³É Ô± º¯ Êý ÊÇ Ò» Щ ¿É ±» Æä Ëü Àà »ò ×Ô ¼º Àà µ÷ Óà µÄ ´¦ Àí ×Ó ³Ì Ðò¡£ Ò» ¸ö ÌØ Êâ µÄ ³É Ô± º¯ Êý ½Ð ¹¹ Ôì º¯ Êý, Õâ ¸ö º¯ Êý Ãû ³Æ Ò» °ã Óë ±¾ Àà Ãû ³Ì Ïà ͬ¡£ Ëü û ÓÐ ·µ »Ø Öµ¡£

¹¹ Ôì º¯ Êý ºÍ ³É Ô± º¯ Êý µ± Äã ÔÚJavaÀï ¶¨ Òå Ò» ¸ö Àà ʱ,Äã ¿É ¶¨ Òå Ò» ¸ö »ò ¶à ¸ö ¿É Ñ¡ µÄ ¹¹ Ôì º¯ Êý,µ± ´´ ½¨ ±¾ Àà µÄ Ò» ¸ö ¶Ô Ïó ʱ Óà ij Ò» ¸ö ¹¹ Ôì º¯ Êý À´ ³õ ʼ »¯ ±¾ ¶Ô Ïó¡£ Óà ǰ Ãæ µÄ ³Ì Ðò Àý ×Ó À´ ˵ Ã÷,µ±ClassOneÀà ´´ ½¨ Ò» ¸ö Рʵ Àý ʱ, Ëù ÓÐ ³É Ô± º¯ Êý ºÍ ±ä Á¿ ±» ´´ ½¨(´´ ½¨ ʵ Àý)¡£ ¹¹ Ôì º¯ Êý ±» µ÷ ÓᣠClassOne mc: mc = new ClassOne();

¹Ø ¼ü ´ÊnewÓà À´ ´´ ½¨ Ò» ¸ö Àà µÄ Êµ Àý,Ò» ¸ö Àà ÓÃnew³õ ʼ »¯ Ö® ǰ ²¢ ²» Õ¼ Óà ÄÚ ´æ,Ëü Ö» ÊÇ Ò» ¸ö Àà ÐÍ ¶¨ Òå, µ±mc¶Ô Ïó ³õ ʼ »¯ ºó,mc¶Ô Ïó Àï µÄi±ä Á¿ µÈ ÓÚ10¡£ Äã ¿É ÒÔ Í¨ ¹ý ¶Ô Ïó Ãû À´ Òý Óà ±ä Á¿i¡£(ÓРʱ ³Æ Ö® Ϊ ʵ Àý ±ä Á¿) mc.i++;//mcʵ Àý ±ä Á¿ ¼Ó1 Òò ΪmcÓÐClassOneÀà µÄ Ëù ÓÐ ±ä Á¿ ºÍ ³É Ô± º¯ Êý£¬ ÎÒ ÃÇ ¿É ÒÔ Ê¹ Óà ͬ Ñù µÄ Óï ·¨ À´ µ÷ Óà ³É Ô± º¯ Êý Add_i£º Add_i(10); ÏÖ ÔÚmc.i±ä Á¿ µÈ ÓÚ21.

½á Êø º¯ Êý Java²¢ ²» Ö§ ³Ö Îö ¹¹ º¯ Êý(C++Àï µÄ ¶¨ Òå),Òò Ϊjava±¾ Éí Ìá ¹© ¶Ô Ïó ÎÞ Óà ʱ ×Ô ¶¯ Çå ³ý µÄ ¹¦ ÄÜ,ͬ ʱ Ëü Ò² Ìá ¹© ÁË Ò» ¸ö ×Ô ¶¯ À­ »ø Ïä µÄ ³É Ô± º¯ Êý£¬ ÔÚ Çå ³ý ¶Ô Ïó ʱ ±» µ÷ Ó㺠Protected void finalize() { close(); }

3.3 ¶Ô Ïó ÓРЧ ·¶ Χ ºÍ ·Ï Îï ×Ô ¶¯ »Ø ÊÕ

¶Ô Ïó ÓÐ Ò» ¶¨ µÄ Éú Ãü ÆÚ ²¢ ÔÚ Ëü µÄ Éú Ãü ÆÚ ¼ä ʹ Óà ×Ê Ô´,µ± Ò» ¸ö ¶Ô Ïó ²» ÔÙ ±» ʹ Óà ʱ,Ëü Ó¦ ÊÍ ·Å ÄÚ ´æ, ±Ü Ãâ ÄÚ ´æ Òç ³ö¡£ ÔÚJavaÀï,ÊÕ ¼¯ ºÍ ÊÍ ·Å ÄÚ ´æ ÊÇ Ò» ¸ö ½Ð ×Ô ¶¯ ·Ï Æ· »Ø ÊÕ Õ¾ µÄ Ïß ³Ì µÄ Ôð ÈΡ£ Õâ ¸ö Ïß ³Ì ¼à ÊÓ ¶Ô Ïó ÓРЧ ·¶ Χ ²¢ ¸ø Ò» ¸ö ×ß ³ö ÓРЧ ·¶ Χ µÄ ¶Ô Ïó ×÷ ÉÏ ±ê ʶ¡£

Àý È磺 String s;//û ÓÐ ·Ö Åä ÄÚ ´æ s = new String("oldstring");//·Ö Åä ÄÚ ´æ s ="newstring";//ÖØ Р·Ö Åä ÄÚ ´æ(´´ ½¨ Р¶Ô Ïó)

ÎÒ ÃÇ ½« ÔÚ ÒÔ ºó ·Ã ÎÊStringÀà ʱ ½« ¸ü ¼Ó Ã÷ °× Ëü µÄ ¹¤ ×÷ ¹ý ³Ì,µ« Ëü µÄ ¿ì ËÙ ¹¤ ×÷ ¹ý ³Ì ÊÇ Õâ Ñù µÄ£º 1.´´ ½¨ Ò» ¸ö РµÄStringÀà ¶Ô Ïó ²¢ Ìî ³ä ÒÔ"oldstring" 2.´´ ½¨ Áí Ò» ¸öString¶Ô Ïó ²¢ Ìî ³ä ÒÔ"newstring" ×¢ Òâ ÎÒ ÃÇ ´´ ½¨ ÁË Á½ ¸ö ¶Ô Ïó¡£ Stirng ¶Ô Ïó "oldstring" Stirng ¶Ô Ïó "newstring"

ÔÚ µÚ Èý Ìõ Óï ¾ä Àï,µÚ Ò» ¸ö °ü À¨"oldstring"µÄ ½Ð ×ösµÄ ¶Ô Ïó ÒÑ ×ß ³ö ÁË ÓРЧ ·¶ Χ,û ÓÐ ÈÎ ºÎ ·½ ·¨ ¿É ÒÔ ÔÙ ·Ã ÎÊ Ëû,ÎÒ ÃÇ ÏÖ ÔÚ ÓÐ Ò» ¸ö РµÄ ¶Ô Ïó Ò² ½Ðs,°ü º¬"newstring"¡£ ÔÚ Ï һ ¸ö ·Ï Æ· »Ø ÊÕ Ïß ³Ì,ǰ Ò» ¸ö ¶Ô Ïó ½« ±» ±ê ʶ ²¢ Çå ³ý¡£

3.4 ×Ó Àà

×Ó Àà ÊÇ Àû Óà ´æ ÔÚ µÄ ¶Ô Ïó ´´ ½¨ Ò» ¸ö Р¶Ô Ïó µÄ »ú ÖÆ,±È Èç,Èç ¹û Äã ÓÐ Ò» ¸öHorseÀà,Äã ¿É ÒÔ ´´ ½¨ Ò» ¸ö Zebra×Ó Àà,ZebraÊÇHorseµÄ Ò» ÖÖ¡£

class Zebra extends Horse { int number_OF_stripes: }

¹Ø ¼ü ´ÊextendsÀ´ ¶¨ Òå ¶Ô Ïó ÓÐ µÄ ×Ó Àà.ZebraÊÇHorseµÄ ×Ó Àà¡£HorseÀà Àï µÄ Ëù ÓÐ ÌØ Õ÷ ¶¼ ½« ¿½ ±´ µ½ ZebraÀà Àï,¶øZebraÀà Àï ¿É ÒÔ ¶¨ Òå ×Ô ¼º µÄ ³É Ô± º¯ Êý ºÍ ʵ Àý ±ä Á¿¡£Zebra³Æ ΪHorseµÄ ÅÉ Éú Àà »ò ¼Ì ³Ð¡£ Áí Íâ,Äã Ò² Ðí »¹ Ïë ¸² ¸Ç »ù Àà µÄ ³É Ô± º¯ Êý¡£ ÓÃClassOne˵ Ã÷,ÏÂ Ãæ ÊÇ Ò» ¸ö ÅÉ Éú Àà ¸² ¸ÇAdd_i¹¦ ÄÜ µÄ Àý ×Ó.

import ClassOne; public class NewClass extends ClassOne { public void Add_i(int j) { i=i+(j/2); } }

µ±NewClassÀà µÄ Êµ Àý ´´ ½¨ ʱ,±ä Á¿i³õ ʼ »¯ Öµ Ϊ10,µ« µ÷ ÓÃAdd_i²ú Éú ²» ͬ µÄ ½á ¹û¡£ NewClass mnc; mnc=new NewClass(); mnc.Add_i(10);

·Ã ÎÊ ¿Ø ÖÆ JavaÀï µ± Äã ´´ ½¨ Ò» ¸ö РÀà ʱ,Äã ¿É ÒÔ ±ê Ã÷ ±ä Á¿ ºÍ ³É Ô± º¯ Êý µÄ ·Ã ÎÊ ²ã ´Î¡£

public public void AnyOneCanAccess(){} publicʵ Àý ±ä Á¿ ºÍ ³É Ô± º¯ Êý ¿É ÒÔ ÈÎ Òâ Æä Ëü Àà µ÷ Óá£

protected protected void OnlySubClasses(){} protectedʵ Àý ±ä Á¿ ºÍ ³É Ô± º¯ Êý Ö» ÄÜ ±» Æä ×Ó Àà µ÷ ÓÃ.

private private String CreditCardNumber; privateʵ Àý ±ä Á¿ ºÍ ³É Ô± º¯ Êý Ö» ÄÜ ÔÚ ±¾ Àà Àï µ÷ ÓÃ.

friendly void MyPackageMethod(){} ȱ Ê¡ µÄ,Èç ¹û û ÓÐ ¶¨ Òå ÈÎ ºÎ ·À »ð ¿Ø ÖÆ,ʵ Àý ±ä Á¿ »ò º¯ Êý ȱ Ê¡ ¶¨ Òå ³Éfriendly,Òâ ζ ×Å ¿É ÒÔ ±» ±¾ °ü Àï µÄ ÈÎ Òâ ¶Ô Ïó ·À ÎÊ,µ« Æä Ëü °ü Àï µÄ ¶Ô Ïó ²» ¿É ·À ÎÊ¡£

¾² ̬ ³É Ô± º¯ Êý ºÍ ±ä Á¿ ÓРЩ ʱ ºò,Äã ´´ ½¨ Ò» ¸ö Àà,Ï£ Íû Õâ ¸ö Àà µÄ Ëù ÓРʵ Àý ¶¼ ¹« Óà һ ¸ö ±ä Á¿¡£ Ò² ¾Í ÊÇ Ëµ,Ëù ÓÐ Õâ ¸ö Àà µÄ ¶Ô Ïó ¶¼ Ö» ÓРʵ Àý ±ä Á¿ µÄ ͬ Ò» ¸ö ¿½ ±´¡£ Õâ ÖÖ ·½ ·¨ µÄ ¹Ø ¼ü ´Ê ÊÇstatic£¬ Àý È磺

class Block { static int number=50; }

Ëù ÓÐ ´ÓBlockÀà ´´ ½¨ µÄ ¶Ô Ïó µÄnumber±ä Á¿ Öµ ¶¼ ÊÇ Ïà ͬ µÄ¡£ ÎÞ ÈÎ ÔÚ ÄÄ ¸ö ¶Ô Ïó Àï ¸Ä ±ä ÁËnumberµÄ Öµ, Ëù ÓÐ ¶Ô Ïó µÄnumber¶¼ ¸ú ×Å ¸Ä ±ä¡£ ͬ Ñù µÄ,Äã ¿É ÒÔ ¶¨ Òåstatic³É Ô± º¯ Êý,µ« Õâ ¸ö ³É Ô± º¯ Êý ²» ÄÜ ·Ã ÎÊ ·Çstaticº¯ Êý ºÍ ±ä Á¿¡£

class Block { static int number = 50; int localvalue; static void add_local(){ localvalue++;//û ÓÐ ÔË ÐÐ } static void add_static() { number++;//ÔË ÐÐ } }

3.5 thisºÍsuper

·Ã ÎÊ Ò» ¸ö Àà µÄ Êµ Àý ±ä Á¿ ʱ,this¹Ø ¼ü ´Ê ÊÇ Ö¸ Ïò Õâ ¸ö Àà ±¾ Éí µÄ Ö¸ Õë,ÔÚ Ç° ÃæClassOneÀý ×Ó ÖÐ,ÎÒ ÃÇ ¿É ÒÔ Ôö ¼Ó ¹¹ Ôì º¯ Êý Èç Ï£º

public class ClassOne { int i; public ClassOne() { i = 10; }

public ClassOne (int value) this.i = value; }

public void Add_i(int j) { i = i + j; } }

Õâ Àï,thisÖ¸ ÏòClassOneÀà µÄ Ö¸ Õë¡£ Èç ¹û ÔÚ Ò» ¸ö ×Ó Àà Àï ¸² ¸Ç ÁË ¸¸ Àà µÄ Ä³ ¸ö ³É Ô± º¯ Êý,µ« ÓÖ Ïë µ÷ Óà ¸¸ Àà µÄ ³É Ô± º¯ Êý,Äã ¿É ÒÔ ÓÃsuper ¹Ø ¼ü ´Ê Ö¸ Ïò ¸¸ Àà µÄ ³É Ô± º¯ Êý¡£

import ClassOne; public class NewClass extends ClassOne { public void Add_i (int j) { i = i+(j/2); super.Add_i (j); } }

ÏÂ Ãæ ³Ì Ðò Àï,i±ä Á¿ ±» ¹¹ Ôì º¯ Êý Éè ³É10,È» ºó15£¬ ×î ºó ±» ¸¸ Àà(ClassOne)Éè ³É25¡£

NewClass mnc; mnc = new NewClass(); mnc.Add_i(10);

3.6 Àà µÄ Àà ÐÍ

ÖÁ ½ñ Ϊ Ö¹,ÎÒ Óà ÔÚ Àà ǰ Ãæ Ö» Óà ÁË Ò» ¸öpublic¹Ø ¼ü ´Ê,Æä ʵ Ëü ÓÐ ÏÂ Ãæ4ÖÖ Ñ¡ Ôñ£º

abstract Ò» ¸öabstractÀà ±Ø Ðë ÖÁ ÉÙ ÓÐ Ò» ¸ö Ðé Äâ º¯ Êý,Ò» ¸öabstractÀà ²» ÄÜ Ö± ½Ó ´´ ½¨ ¶Ô Ïó,±Ø Ðë ¼Ì ³Ð ×Ó Àà ºó ²Å ÄÜ¡£

final Ò» ¸öfinalÀà Éù Ã÷ ÁË ×Ó Àà Á´ µÄ ½á β,ÓÃfinalÉù Ã÷ µÄ Àà ²» ÄÜ ÔÙ ÅÉ Éú ×Ó Àà¡£

public publicÀà ÄÜ ±» Æä Ëü µÄ Àà ·Ã ÎÊ¡£ ÔÚ Æä Ëü °ü Àï,Èç ¹û Ïë ʹ Óà Õâ ¸ö Àà ±Ø Ðë ÏÈimport,·ñ Ôò Ëü Ö» ÄÜ ÔÚ Ëü ¶¨ Òå µÄpackageÀï ʹ Óá£

synchronicable Õâ ¸ö Àà ±ê ʶ ±í ʾ Ëù ÓРЩ Àà µÄ ³É Ô± º¯ Êý ¶¼ ÊÇ Í¬ ²½ µÄ¡£

3.7 ³é Ïó Àà

Ãæ Ïò ¶Ô Ïó µÄ Ò» ¸ö ×î ´ó ÓÅ µã ¾Í ÊÇ ÄÜ ¹» ¶¨ Òå Ôõ Ñù ʹ Óà Õâ ¸ö Àà ¶ø ²» ±Ø Õæ Õý ¶¨ Òå ºÃ ³É Ô± º¯ Êý¡£ Èç ¹û ³Ì Ðò ÓÉ ²» ͬ µÄ Óà »§ ʵ ÏÖ Ê± ÊÇ ºÜ ÓÐ Óà µÄ£¬ Õâ ²» Ðè Óà »§ ʹ Óà Ïà ͬ µÄ ³É Ô± º¯ Êý Ãû¡£

ÔÚjavaÀïGraphicsÀà Àï Ò» ¸öabstractÀà µÄ Àý ×Ó Èç Ï£º public abstract class Graphics { public abstract void drawLine(int x1,int y1,int x2, int y2); public abstract void drawOval(int x,int y,int width, int height); public abstract void drawRect(int x,int y,int width, int height); ... }

ÔÚGraphicsÀà Àï Éù Ã÷ ÁË ¼¸ ¸ö ³É Ô± º¯ Êý,µ« ³É Ô± º¯ Êý µÄ ʵ ¼Ê ´ú Âë ÊÇ ÔÚ Áí Íâ Ò» Щ µØ ·½ ʵ ÏÖ µÄ¡£

public class MyClass extends Graphics { public void drawLine (int x1,int y1,int x2,int y2) { <»­ Ïß ³Ì Ðò ´ú Âë> } }

µ± Ò» ¸ö Àà °ü º¬ Ò» ¸öabstract³É Ô± º¯ Êý,Õâ ¸ö Àà ±Ø Ðë ¶¨ Òå ΪabstractÀà¡£ È» ¶ø ²¢ ²» ÊÇabstractÀà µÄ Ëù ÓÐ µÄ ³É Ô± º¯ Êý ¶¼ ÊÇabstractµÄ¡£AbstractÀà ²» ÄÜ ÓР˽ ÓÐ ³É Ô± º¯ Êý(Ëü ÃÇ ²» ÄÜ ±» ʵ ÏÖ),Ò² ²» ÄÜ ÓÐ ¾² ̬ ³É Ô± º¯ Êý¡£

3.8 ½Ó ¿Ú

µ± Äã È· ¶¨ ¶à ¸ö Àà µÄ ²Ù ×÷ ·½ ʽ ¶¼ ºÜ Ïà Ïó ʱ£¬abstract³É Ô± º¯ Êý ÊÇ ºÜ ÓÐ Óà µÄ¡£ µ« Èç ¹û Äã Ðè Òª ʹ Óà Õâ Щabstract³É Ô± º¯ Êý£¬ ±Ø Ðë ´´ ½¨ Ò» ¸ö РÀ࣬ Õâ Ñù ÓРʱ ºÜ ·± Ëö¡£ ½Ó ¿Ú Ìá ¹© ÁË Ò» ÖÖ ³é Ïó ³É Ô± º¯ Êý µÄ ÓÐ Àû ·½ ·¨¡£ Ò» ¸ö ½Ó ¿Ú °ü º¬ ÁË ÔÚ Áí Ò» ¸ö µØ ·½ ʵ ÏÖ µÄ ³É Ô± º¯ Êý µÄ ÊÕ ¼¯¡£ ³É Ô± º¯ Êý ÔÚ ½Ó ¿Ú Àï ¶¨ Òå ΪpublicºÍ abstract¡£ ½Ó ¿Ú Àï µÄ Êµ Àý ±ä Á¿ ÊÇpublic,staticºÍfinal¡£ ½Ó ¿Ú ºÍ ³é Ïó µÄ Ö÷ Òª Çø ±ð ÊÇ Ò» ¸ö ½Ó ¿Ú Ìá ¹© ÁË ·â ×° ³É Ô± º¯ Êý Э Òé µÄ ·½ ·¨ ¶ø ²» ±Ø Ç¿ ÆÈ Óà »§ ¼Ì ³Ð Àà¡£

Àý ×Ó£º public interface AudiClip { //Start playing the clip. void play(); //Play the clip in a loop. void loop(); //Stop playing the clip void stop(); }

Ïë ʹ ÓÃAudio Clip½Ó ¿Ú µÄ Àà ʹ ÓÃimplenents¹Ø ¼ü ´Ê À´ Ìá ¹© ³É Ô± º¯ Êý µÄ ³Ì Ðò ´ú Âë¡£ class MyClass implements AudioClip { void play(){ <ʵ ÏÖ ´ú Âë> } void loop <ʵ ÏÖ ´ú Âë> } void stop <ʵ ÏÖ ´ú Âë> } }

ÓÅ µã Ò» ¸ö ½Ó ¿Ú Àà ¿É ÒÔ ±» ÈÎ Òâ ¶à µÄ Àà ʵ ÏÖ£¬ ÿ ¸ö Àà ¿É ÒÔ ¹² Ïí ³Ì Ðò ½Ó ¿Ú ¶ø ²» ±Ø ¹Ø ÐÄ Æä Ëü Àà ÊÇ Ôõ Ñù ʵ ÏÖ µÄ¡£ class MyOtherClass implements AudioClip { void stop(){ <ʵ ÏÖ ´ú Âë> } ... }

ÄÚ ²¿ ³É Ô± º¯ Êý Java»¹ Ìá ¹© ÁË µ÷ ÓÃCºÍC++º¯ Êý µÄ ·½ ·¨¡£ ÓÃnative¹Ø ¼ü ´Ê À´ ¶¨ ÒåCºÍC++µÄ º¯ Êý¡£

public class Date { int now; public Date() { now = time (); } private native int time ();

static { System.loadLibrary("time"); } }

Ò» µ©Java´ú Âë д ºÃ ºó,¾Í Ðè Òª ÒÔ Ï ²½ Öè Ö´ ÐУº 1.ÓÃjavahÀ´ ´´ ½¨ Í· ÎÄ ¼þ(.h) 2.ÓÃjavahÀ´ ´´ ½¨stubÎÄ ¼þ 3.ÓÃCºÍC++дnative³É Ô± º¯ Êý µÄ ´ú Âë 4.±à ÒëstubÎÄ ¼þ ºÍ.CÎÄ ¼þ ³É Ò» ¸ö ¶¯ ̬ ¿É ¼Ó ÔØ ¿â 5.ÓÃjavaÔË ÐÐjava³Ì Ðò »òappletviewerÔË ÐÐapplet

×¢ Ò⣺Native³É Ô± º¯ Êý ³¬ ³ö ÁË Àà µÄ ·¶ Χ¡£

3.9 °ü(Packages)

°ü(Package)ÓÉ Ò» ×é Àà(class)ºÍ ½ç Ãæ(interface)×é ³É¡£ Ëü ÊÇ ¹Ü Àí ´ó ÐÍ Ãû ×Ö ¿Õ ¼ä£¬ ±Ü Ãâ Ãû ×Ö ³å Í» µÄ ¹¤ ¾ß¡£ ÿ Ò» ¸ö Àà ºÍ ½ç Ãæ µÄ Ãû ×Ö ¶¼ °ü º¬ ÔÚ Ä³ ¸ö °ü ÖС£ °´ ÕÕ Ò» °ã µÄ ϰ ¹ß£¬ Ëü µÄ Ãû ×Ö ÊÇ ÓÉ¡°.¡± ºÅ ·Ö ¸ô µÄ µ¥ ´Ê ¹¹ ³É£¬ µÚ Ò» ¸ö µ¥ ´Ê ͨ ³£ ÊÇ ¿ª ·¢ Õâ ¸ö °ü µÄ ×é Ö¯ µÄ Ãû ³Æ¡£

¶¨ Òå Ò» ¸ö ±à Òë µ¥ Ôª µÄ °ü ±à Òë µ¥ Ôª µÄ °ü ÓÉpackageÓï ¾ä ¶¨ Òå¡£ Èç ¹û ʹ ÓÃpackageÓï ¾ä£¬ ±à Òë µ¥ Ôª µÄ µÚ Ò» ÐÐ ±Ø Ðë ÎÞ ¿Õ ¸ñ£¬ Ò² ÎÞ ×¢ ÊÍ¡£ Æä ¸ñ ʽ Èç Ï£º package packageName; Èô ±à Òë µ¥ Ôª ÎÞpackageÓï ¾ä£¬ Ôò ¸Ã µ¥ Ôª ±» Öà ÓÚ Ò» ¸ö ȱ Ê¡ µÄ ÎÞ Ãû µÄ °ü ÖС£

ʹ Óà Æä Ëü °ü ÖÐ µÄ Àà ºÍ ½ç Ãæ ÔÚJavaÓï ÑÔ Àï Ìá ¹© Ò» ¸ö °ü ¿É ÒÔ Ê¹ Óà Áí Ò» ¸ö °ü ÖÐ Àà ºÍ ½ç Ãæ µÄ ¶¨ Òå ºÍ Êµ ÏÖ µÄ »ú ÖÆ¡£ ÓÃimport¹Ø ¼ü ´Ê À´ ±ê Ã÷ À´ ×Ô Æä Ëü °ü ÖÐ µÄ Àà¡£ Ò» ¸ö ±à Òë µ¥ Ôª ¿É ÒÔ ×Ô ¶¯ °Ñ Ö¸ ¶¨ µÄ Àà ºÍ ½ç Ãæ Êä Èë µ½ Ëü ×Ô ¼º µÄ °ü ÖС£ ÔÚ Ò» ¸ö °ü ÖÐ µÄ ´ú Âë ¿É ÒÔ ÓÐ Á½ ÖÖ ·½ ʽ À´ ¶¨ Òå À´ ×Ô Æä Ëü °ü ÖÐ µÄ Àà ºÍ ½ç Ãæ£º * ÔÚ Ã¿ ¸ö Òý Óà µÄ Àà ºÍ ½ç Ãæ ǰ Ãæ ¸ø ³ö Ëü ÃÇ Ëù ÔÚ µÄ °ü µÄ Ãû ×Ö; //ǰ ׺ °ü Ãû ·¨ acme. project.FooBar obj=new acme. project. FooBar( ); * ʹ ÓÃimportÓï ¾ä£¬ Òý Èë Ò» ¸ö Àà »ò Ò» ¸ö ½ç Ãæ£¬ »ò °ü º¬ Ëü ÃÇ µÄ °ü¡£ Òý Èë µÄ Àà ºÍ ½ç Ãæ µÄ Ãû ×Ö ÔÚ µ± ǰ µÄ Ãû ×Ö ¿Õ ¼ä ¿É ÓᣠÒý Èë Ò» ¸ö °ü ʱ£¬ Ôò ¸Ã °ü Ëù ÓÐ µÄ ¹« ÓÐ Àà ºÍ ½ç Ãæ ¾ù ¿É ÓᣠÆä ÐΠʽ Èç Ï£º // ´Ó acme.project Òý Èë Ëù ÓÐ Àà import acme.project.*; Õâ ¸ö Óï ¾ä ±í ʾacme.projectÖÐ Ëù ÓÐ µÄ ¹« ÓÐ Àà ±» Òý Èë µ± ǰ °ü¡£ ÒÔ Ï Óï ¾ä ´Óacme. project°ü ÖÐ ½ø Èë Ò» ¸ö ÀàEmployec_List¡£ //´Ó acme. project¶ø Òý Èë Employee_List import acme.project.Employee_list; Employee_List obj = new Employee_List( ); ÔÚ Ê¹ Óà һ ¸ö Íâ ²¿ Àà »ò ½ç Ãæ ʱ£¬ ±Ø Ðë Òª Éù Ã÷ ¸Ã Àà »ò ½ç Ãæ Ëù ÔÚ µÄ °ü£¬ ·ñ Ôò »á ²ú Éú ±à Òë ´í Îó¡£

import(Òý ÓÃ) Àà °ü(class package)ÓÃimport¹Ø ¼ü ´Ê µ÷ Èë,Ö¸ ¶¨packageÃû ×Ö Èç · ¾¶ ºÍ Àà Ãû,ÓÃ*Æ¥ Åä ·û ¿É ÒÔ µ÷ Èë ¶à ÓÚ Ò» ¸ö Àà Ãû¡£

import java.Date; import java.awt.*;

Èç ¹ûjavaÔ´ ÎÄ ¼þ ²» °ü º¬package,Ëü ·Å ÔÚ È± Ê¡ µÄ ÎÞ Ãûpackage¡£ Õâ Óë Ô´ ÎÄ ¼þ ͬ Ä¿ ¼£¬ Àà ¿É ÒÔ Õâ Ñù Òý Èë: import MyClass¡£

Javaϵ ͳ °ü£º JavaÓï ÑÔ Ìá ¹© ÁË Ò» ¸ö °ü º¬ ´° ¿Ú ¹¤ ¾ß Ï䣬 ʵ Óà ³Ì Ðò£¬ Ò» °ãI/O,¹¤ ¾ß ºÍ Íø Âç ¹¦ ÄÜ µÄ °ü¡£

java.applet Õâ ¸ö °ü °ü º¬ Á¿ ÁË Ò» Щ Éè ¼ÆappletµÄ Àà,Óà һ ¸ö ÀàAppletºÍ Èý ¸ö ½Ó ¿Ú. AppletContext;AppletStub;ºÍAudioClip.

java.awt Áí Ò» ¸ö ´° ¿Ú ¹¤ ¾ß Ïä °ü.awt,°ü º¬ ÁË Ò» Щ ²ú Éú ×° ÊÎ Îï ºÍGUI³É Ô± µÄ Àà¡£ Õâ ¸öpackage°ü À¨£ºButton,Checkbox,Choice,Component,Graphics,Menu,Pane1,TextAreaºÍ TextField¡£

java.io I/O package°ü º¬ ÎÄ ¼þ Êä Èë/Êä ³ö À࣬FileInput StreamºÍFile OutputStream.

java.lang Õâ ¸ö °ü °ü º¬JavaÓï ÑÔ Àà,°ü º¬:¶Ô Ïó,Ïß ³Ì,Òì ³£ ³ö ¿Ú,ϵ ͳ,Õû Êý,Ô­ µã,Êý ѧ,×Ö ·û µÈ¡£

java.net Õâ ¸ö Àà Ö§ ³ÖTCP/IPÍø Âç Э Ò飬 ²¢ °ü º¬SocketÀà,URLºÍURLÏà Áª ϵ µÄ Àà¡£

java.util Õâ ¸ö Àà °ü º¬ Ò» Щ ³Ì Ðò µÄ ͬ ²½ Àà,Ëü °ü º¬Date,DictionaryÀà µÈ¡£

3.10 Òì ³£

µ± ÔÚJava³Ì Ðò ÖÐ ·¢ Éú Ò» ¸ö ´í Îó ʱ£¬ Àý È磺 Ò» ¸ö ±ä Ôª µÄ Öµ ·Ç ·¨£¬ ´ú Âë »á ·¢ ÏÖ Õâ ¸ö ´í Îó£¬ ²¢ Òý ·¢ Ò» ¸ö Òì ³£(exception)¡£ ÔÚ È± Ê¡ µÄ Çé ¿ö Ï£¬ Òì ³£ »á Êä ³ö Ò» ¸ö ´í Îó Ïû Ï¢£¬ È» ºó ÖÐ Ö¹ Ïß ³Ì µÄ Ö´ ÐС£ µ« ÊÇ£¬ ³Ì Ðò ×Ô ¼º ¿É ÒÔ ¶¨ Òå Òì ³£ ´¦ Àí ¶Î(exception handler)À´ ½Ø »ñ(catch)Òì ³££¬ ²¢ ´Ó ´í Îó ÖÐ »Ö ¸´¡£ ÓÐ Ò» Щ Òì ³£ ÊÇ ÓÉJava½â ÊÍ Æ÷ ÔÚ ÔË ÐРʱ ¿Ì Òý ·¢ µÄ¡£ ʵ ¼Ê ÉÏ£¬ ÈÎ ºÎ Àà ¶¼ ¿É ÒÔ ¶¨ Òå Êô ÓÚ ×Ô ¼º µÄ Òì ³££¬ ²¢ ʹ ÓÃthrowÓï ¾ä Òý ·¢ Ëü ÃÇ¡£ Ò» ¸öthrow£¨Òý ·¢£© Óï ¾ä ÊÇ ÓÉthrow¹Ø ¼ü ×Ö ºÍ Ò» ¸ö ¶Ô Ïó ¹¹ ³É¡£ °´ ³£ ¹æ£¬ ¸Ã ¶Ô Ïó Ó¦ ¸Ã ÊÇException Àà µÄ Êµ Àý »ò Æä ×Ó Àà µÄ Êµ Àý¡£throwÓï ¾ä »á Òý Æð Ö´ ÐРת Ïò Ïà Ó¦ µÄ Òì ³£ ´¦ Àí ¶Î¡£ µ± Ò» ¸öthrowÓï ¾ä Ö´ ÐРʱ£¬ Ëü ÏÂ Ãæ µÄ Ëù ÓÐ ´ú Âë ²» ÔÙ Ö´ ÐÐ ÁË£¬ Ëü Ëù ÔÚ µÄ ·½ ·¨ Ò² ²» ÔÙ ·µ »Ø Öµ¡£ ÏÂ Ãæ µÄ Àý ×Ó ½« ÑÝ Ê¾ Èç ºÎ ´´ ½¨ Ò» ¸öExceptionµÄ ×Ó À࣬ È» ºó Òý ·¢ Ò» ¸ö Òì ³£¡£ class MyException extends Exception { } class MyClass { void oops() { if ( /* ²» ³ö ÏÖ ´í Îó */) { ¡­ } else { /* ³ö ´í */

} else { /* ³ö ´í */ throw new MyException( ); } } } Ϊ ÁË ¶¨ Òå Ò» ¸ö Òì ³£ ´¦ Àí ¶Î£¬ ³Ì Ðò ±Ø Ðë ÓÃtryÓï ¾ä °Ñ ¿É ÄÜ ²ú Éú Òì ³£ µÄ ´ú Âë ³É ×é¡£ ÔÚtryÓï ¾ä ºó Ãæ ¸ú ÉÏ Ò» ¸ö »ò ¶à ¸öcatch(½Ø »ñ£© Óï ¾ä£¬ ÿ ¸ö Òì ³£ ¶Ô Ó¦ Ò» ¸öcatchÓï ¾ä¡£ ÿ ¸öcatchÓï ¾ä ÖÐ °ü º¬ ×Å Òì ³£ ´¦ Àí ¶Î¡£ Àý È磺 try { p.a=10; } catch ( NullPointerException e) { println(¡°p was null¡±); } catch ( Exception e) { println (¡°other errors occured¡±); } catch ( Object obj) { println(¡°Who threw that object?¡±); } catchÓï ¾ä ºÍ Ò» ¸ö ·½ ·¨ ¶¨ Òå Àà ËÆ£¬ Ö» ²» ¹ý ¸Ã ·½ ·¨ Ö» ÓÐ Ò» ¸ö ²Î Êý£¬ ÇÒ ÎÞ ·µ »Ø Àà ÐÍ¡£ ²Î Êý ¿É ÒÔ ÊÇ Ò» ¸ö Àà »ò Ò» ¸ö ½ç Ãæ¡£ µ± Ò» ¸ö Òì ³£ ·¢ Éú ʱ£¬ Ƕ Ì× µÄtry/catchÓï ¾ä »á Ѱ ÕÒ ³ö Óë ¸Ã Òì ³£ Àà Ïà Æ¥ Åä µÄ ²Î Êý¡£ Èç ¹û Ò» ¸ö ²Î Êý ºÍ Ö¸ ¶¨ Òì ³£ Æ¥ Åä Ôò£º * ¸Ã ²Î Êý ºÍ Ö¸ ¶¨ µÄ Òì ³£ ÊÇ Í¬ Ò» ¸ö À࣬ »ò * ¸Ã ²Î Êý ÊÇ Ö¸ ¶¨ Òì ³£ µÄ ×Ó À࣬ »ò * Èç ¹û ²Î Êý ÊÇ Ò» ¸ö ½ç Ãæ£¬ Ö¸ ¶¨ Òì ³£ Àà ʵ ÏÖ ÁË Õâ ¸ö ½ç Ãæ¡£ µÚ Ò» ¸ö ²Î Êý ºÍ Òì ³£ Æ¥ Åä µÄtry/catchÓï ¾ä£¬ Ôò Óë Æä Æ¥ Åä µÄcatchÓï ¾ä Ö´ ÐС£ ÔÚcatchÓï ¾ä Ö´ ÐÐ Íê ºó£¬ ³Ì Ðò µÄ Ö´ ÐÐ ±» »Ö ¸´¡£ µ« ÒÑ ²» ¿É ÄÜ »Ö ¸´ µ½ Òì ³£ ·¢ Éú ´¦ ÔÙ ´Î Ö´ ÐС£ Àý È磺 print ( "now"); try { print ("is"); throw new MyException( ); print ("a"); } catch (MyException e) { print ("the "); } print ("time\n"); ´ò Ó¡ Ϊ¡°now is the time¡±¡£ Õý Èç Õâ ¸ö Àý ×Ó Ëù ʾ£¬ Òì ³£ Ó¦ ¸Ã Ö÷ Òª Óà ÓÚ ´í Îó ´¦ Àí£¬ Èô Óà ÓÚ Æä Ëü ·½ Ãæ »á ʹ ´ú Âë »Þ É¬ ÄÑ ¶®¡£ Òì ³£ ´¦ Àí ¶Î ÊÇ ¿É ÒÔ Ç¶ Ì× µÄ£¬ ÔÊ Ðí Òì ³£ ´¦ Àí ¿É ÒÔ ·¢ Éú ÔÚ ¶à ¸ö µØ ·½¡£ Ƕ Ì× Òì ³£ ´¦ Àí ͨ ³£ Óà ÓÚ µ± µÚ Ò» ¸ö ´¦ Àí ³Ì Ðò ÎÞ ·¨ Íê È« ´Ó ´í Îó ÖÐ »Ö ¸´ ¹ý À´ µÄ ʱ ºò£¬ ¶ø ²» µÃ ²» Ö´ ÐÐ Ò» Щ Çå ³ý ´ú Âë¡£ Ϊ ÁË °Ñ Òì ³£ ´¦ Àí ¿Ø ÖÆ ´« µÝ ¸ø ¸ü ¸ß ²ã µÄ ´¦ Àí ¶Î£¬ ¿É ÒÔ ÔÙ Ò» ´Î ¶Ô ½Ø »ñ ¶Ô Ïó ʵ Ê©throw²Ù ×÷¡£ ×¢ Òª ÔÙ ´Î ʵ Ê©throwÒì ³£ µÄ ·½ ·¨£¬throwÓï ¾ä Ö´ ÐÐ Íê ºó£¬ »á ÖÕ Ö¹ Ö´ ÐС£ try { f. open ( ); } catch(Exception e) { f. close( ); throw e; }

¶¨ ¾Ö Óï ¾ä finally£¨¶¨ ¾Ö£© Óï ¾ä ÊÇ Óà ÓÚ ±£ Ö¤ ÎÞ ÂÛ ÔÚ Òì ³£ ÊÇ ·ñ ·¢ Éú µÄ Çé ¿ö Ï£¬ ij Щ ´ú Âë ±» Ö´ ÐС£ Ï Àý ˵ Ã÷finallyÓï ¾ä µÄ Óà ·¨£º try { //×ö ij Щ ¶¯ ×÷£» £ý finally { //´Ë ºó Çå ³ý£» } ºÍ ÒÔ Ï ´ú Âë Àà ËÆ try { //×ö ij Щ ¶¯ ×÷ } catch (Object e) { //´Ë ºó Çå ³ý£» throw e; }

} //´Ë ºó Çå ³ý£» ¼´ ʹtry¿é ÖÐ °ü º¬return£¬break£¬continue£¬throwÓï ¾ä£¬finallyÓï ¾ä Ò² »á ±» Ö´ ÐС£ Àý È磺 ÏÂ Ãæ µÄ ´ú Âë¡°finally¡± ×Ü ÊÇ ±» Êä ³ö£¬ ¶ø¡°aftertry¡± ½ö ÔÚa!=10ʱ ±» Êä ³ö¡£ try { if (a==10) { return ; } } finally { print ("finally\n"); £ý print ("after try \n");

ÔË ÐРʱ ¿Ì Òì ³£ ±¾ ½Ú ÁÐ ³ö µÄ Çå µ¥ ÊÇJava½â ÊÍ Æ÷ Òý ·¢ µÄ ¸÷ ÖÖ Òì ³£¡£ µ± ÔË ÐРʱ ¿Ì ·¢ ÏÖ ¸÷ ÖÖ ´í Îó£¬ ÓÉ ½â ÊÍ Æ÷ Òý ·¢ Òì ³£¡£

ArithmeticException Èç ¹û ³Ì Ðò ÊÔ Í¼ ³ý0£¬ »ò ÓÃ0È¡ Ä££¬ »á ²ú ÉúArithmeticException£¨Ëã Êõ Òì ³££©£¬ Æä Ëü Ëã Êõ ²Ù ×÷ ²» »á ²ú Éú Òì ³£¡£ ÓÐ ¹ØJavaÈç ºÎ ´¦ Àí Æä Ëü Ëã Êõ ´í Îó µÄ ЊϢ£¬ ¼û¡° Õû Êý ÔË Ëã ·û¡± ºÍ¡°¸¡µã ÔË Ëã ·û¡± Á½ ½Ú¡£ Àý È磺 ÏÂ Ãæ µÄ ´ú Âë ½« »á Òý ·¢ArithmeticExceptionÒì ³££º class Arith { public static void main (String args [ ] ) { int j = 0; j = j/j; } }

NullPointerException µ± ³Ì Ðò ÊÔ Í¼ ·Ã ÎÊ Ò» ¸ö ¿Õ ¶Ô Ïó ÖÐ µÄ ±ä Á¿ »ò ·½ ·¨£¬ »ò Ò» ¸ö ¿Õ Êý ×é ÖÐ µÄ Ôª ËØ ʱ Ôò Òý ·¢ NullPointerException£¨¿Õ Ö¸ Õë Òì ³££©¡£ Àý È磬 ·Ã ÎÊ ³¤ ¶È Ϊ0µÄ Êý ×éa[0]¡£ ÓÐ ÒÔ Ï Àà Éù Ã÷£¬ ÔË ÐРʱ »á Òý ·¢NullPointerExceptionÒì ³££º class Null { public static void main(String args [ ]) { String o = null; int a [ ] = null; o.length( ); a[0] = 0; } } ÓРȤ µÄ ÊÇ£¬ Èç ¹û ÎÒ ÃÇ Òý ·¢ Ò» ¸ö ¿Õ ¶Ô Ïó£¬ Ò² »á ²ú Ò»NullPointerExceptionÒì ³£¡£

IncompatibleClassChangeException µ± Ò» ¸ö Àà µÄ ¶¨ Òå ±» ¸Ä ±ä£¬ ¶ø Òý Óà ¸Ã Àà µÄ Æä Ëü Àà û ÓÐ ±» ÖØ Р±à Òë ʱ£¬ »á ²ú Éú Õâ Ò» Òì ³£¡£ ÓÐ ËÄ ÖÖ Àà ¸ü ¸Ä »á µ¼ Ö ÔË ÐРʱ ¿Ì Òý ·¢IncompatibleClassChangExceptionÒì ³£¡£ * Ò» ¸ö Àà ÖÐ µÄ ±ä Á¿ Éù Ã÷ ÓÉstatic±ä ³É ·Çstatic£¬ ¶ø Æä Ëü ·Ã ÎÊ ¸Ã Àà Õâ Ò» ±ä Á¿ µÄ Àà û ÓÐ ±» ÖØ Р±à Òë¡£ * Ò» ¸ö Àà ÖÐ µÄ ±ä Á¿ Éù Ã÷ ÓÉ ·Çstatic±ä ³Éstatic£¬ ¶ø Æä Ëü ·Ã ÎÊ ¸Ã Àà Õâ Ò» ±ä Á¿ µÄ Àà û ÓÐ ±» ÖØ Р±à Òë¡£ * Àà ÖÐ Éù Ã÷ µÄ ij ¸ö Óò ±» ɾ ³ý£¬ ¶ø Æä Ëü ·Ã ÎÊ ¸Ã Óò µÄ Àà û ÓÐ ±» ÖØ Р±à Òë¡£ * Àà ÖÐ Éù Ã÷ µÄ ij ¸ö ·½ ·¨ ±» ɾ ³ý£¬ ¶ø Æä Ëü ·Ã ÎÊ ¸Ã ·½ ·¨ µÄ Àà û ÓÐ ±» ÖØ Р±à Òë¡£

ClassCastException Èç ¹û ÊÔ Í¼ °Ñ ¶Ô ÏóoÇ¿ ÖÆ ³ÉClass C£¬ ¶øo¼È ²» ÊÇClass CµÄ ʵ Àý£¬ Ò² ²» ÊÇClass C×Ó Àà µÄ Êµ Àý£¬ Õâ ʱ ±ã »á ²ú ÉúClassCastException¡£ class ClassCast { public static void main (String args [ ] ) { Object o = new Object( ); String s = (string) o; s.length( ); } }

}

NagativeArraySizeException Èç ¹û Ò» ¸ö Êý ×é µÄ ³¤ ¶È ÊÇ ¸º Êý£¬ Ôò »á Òý ·¢NagativeArraySizeException£¨Êý ×é ¸º Ï ±ê£© Òì ³£¡£ Àý Èç ÏÂ Ãæ Àà ¶¨ Òå µÄ ´ú Âë ÔÚ ÔË ÐРʱ Òý ·¢ Õâ Ò» Òì ³££º class NegArray { public static void main(String args [ ]) { int a [ ] = new int [-1]; a[0] = 0; } }

OutOfMemoryException µ± ϵ ͳ ÎÞ ·¨ ÔÙ Ïò Ó¦ Óà ³Ì Ðò Ìá ¹© ÄÚ ´æ ʱ£¬ »á Òý ·¢OutOfMemoryException£¨ÄÚ ´æ Òç ³ö£© Òì ³£¡£ Õâ ÖÖ Òì ³£ Ö» ÄÜ ³ö ÏÖ ÔÚ ´´ ½¨ Р¶Ô Ïó µÄ ʱ ºò£¬ ¼´new±» µ÷ Óà µÄ ʱ ºò¡£ Àý È磬 ÏÂ Ãæ Ò» ¶Î ´ú Âë ÔÚ ÔË ÐРʱ ¿Ì »á Òý ·¢OutOfMemoryExceptionÒì ³££º class Link { int a [ ] = new int [1000000]; Link l; } Class OutOfMem { public static void main(String args [ ]) {

public static void main(String args [ ]) { Link root = new link( ); Link cur = root; while (true) { cur.l = new Link( ); cur = cur.l; } } }

NoClassDefFoundException Èç ¹û Ò» ¸ö Àà ±» Òý Ó㬠µ« ÔÚ ÔË ÐРʱ ¿Ì£¬ ϵ ͳ û ÓÐ ÕÒ µ½ ±» Òý Óà µÄ À࣬ Õâ ʱ »á Òý ·¢ NoClassDefFoundException£¨Î´ ÕÒ µ½ Àà ¶¨ Ò壩 Òì ³£¡£ Àý È磬NoClassÀà µÄ Éù Ã÷ Èç Ï£º class NoClass { public static void main(String args [ ]) { C c = new C ( ); } } µ±NoClassÔË ÐРʱ£¬ Èç ¹û ½â ÊÍ Æ÷ ÕÒ ²» µ½CÀ࣬ Ôò »á ²ú ÉúNoClassDefFoundException¡£ ×¢ Ò⣬ ÔÚNoClass±» ±à Òë ʱCÀà Ò» ¶¨ Òª ´æ ÔÚ¡£

IncompatibleType Exception Èç ¹û ÊÔ Í¼ Ϊ Ò» ½ç Ãæ ×÷ ʵ Àý£¬ Ôò »á Òý ·¢IncompatibleTypeException£¨Àà ÐÍ ²» ¼æ ÈÝ£© Òì ³£¡£ Àý È磬 ÏÂ Ãæ µÄ ´ú Âë »á Òý ·¢ Ò» ¸öIncompatibleTypeException¡£ Interface I { } class IncompType { public static void main(String args [ ]) { I r = (I) new ("I"); } }

ArrayIndexOutOfBoundsException ÊÔ Í¼ ·Ã ÎÊ Êý ×é ÖÐ µÄ Ò» ¸ö ·Ç ·¨ Ôª ËØ ʱ£¬ »á Òý ·¢ArrayIndexOutOfBoundsException£¨Êý ×é Ë÷ Òý Ô½ ½ç£© Òì ³£¡£ Àý È磺 Class ArrayOut { public static void main(String args [ ]) { int a [ ]=new int[0]; a[0]=0; } }

public static void main(String args [ ]) { int a [ ]=new int[0]; a[0]=0; } } UnsatisfiedLinkException Èç ¹û Ò» ¸ö ·½ ·¨ ±» Éù Ã÷ Ϊ ±¾ »ú£¬ µ« ¸Ã ·½ ·¨ ÔÚ ÔË ÐРʱ ¿Ì È´ ²» ÄÜ Á¬ ½Ó µ½ Ò» ¸ö Àý ³Ì Ìå ÉÏ È¥ ʱ£¬ »á ²ú Éú UnsatisfiedLinkException£¨ÎÞ ·¨ Á¬ ½Ó£© Òì ³£¡£ Àý È磺 Class NoLink { static native void foo( ); public static void main(String args [ ]) { foo( ); } }

InternalException InternalException£¨ÄÚ ²¿£© Òì ³£ ÊÇ ²» ÄÜ ±» Òý ·¢ µÄ¡£ Ö» ÓÐ ÔÚ ÔË ÐРʧ °Ü ×÷ Ò» Ö ÐÔ ¼ì ²é ʱ£¬ ²Å »á Òý ·¢ Õâ ¸ö Òì ³£¡£

±¾ Õ С ½á

1. JavaÓï ÑÔ µÄ »ù ±¾ ½á ¹¹ ÏóC/C++¡£ 2. JavaÓï ÑÔ µÄ Ô´ ³Ì Ðò ´ú Âë ÓÉ Ò» ¸ö »ò ¶à ¸ö ±à Òë µ¥ Ôª(compilation unit)×é ³É¡£