java farsi

337

Upload: ali-azarnia

Post on 21-Nov-2014

958 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Java farsi
Page 2: Java farsi

ه�ا���

JAVA

�� ����١٣٨�

دا����� ��

Page 3: Java farsi

����%س داود"��د!: ا���د راه� �)'�ر &���

:*)د"ور�%*�ن

�-1 ح�/+ ا���.-,+

��) د���د2)

�,3 �%ی5 را42

1زاد� 2�5�8

� � را5-9

Page 4: Java farsi

5 %:

Java و���� � Ed ، Chris World ،Patrick Haughton ،James Gosling Mike

Shridon Frank ا0/ار -,+* ١٩٩١ در �%ل, ;%5 ١٨ 4%ی� ری78 -6 5 و 34 از sun در 1

�/ط (OakایB ز%ن در ا6Eا .اول�A B@?� +%ر7 <ن ای>%د -6 7%IJ; � (6- L; 56�;%A .

M%ر ١٩٩١در �B 4%ی�8 ١٩٩٦ %0@A ن از%A ,��T0%م داد5 و � R/رت L;/OP ?� اول�� ایB ز

�U6 ارا- .

6A56 ا�I- از ج%وا L;%A %MI0 �+ LA%@+ ,W+ا7 ا,% ایB ) ال�EX در ای,ان ( L6ایEو ی% در 6Z خ��L ا

6Aن +%ر +,د5 ا% .ز

6ون ، ]M\ [%^,�_ ، *?� L6 ، خ��I+ Lاج,ا7 خ�� ، �`X- L@ی/A �;%A, %ج%وا ;E,ادف ا�*

ولL <ی% وا^J% ایB�Id B ا�* ؟ ... b +%ر, و را

�`X- L@ی/A �;%A,: %IfOg; 6IO0زوه%7 ^6ر% ا�* ولbi\ L ی`L از 6Rه% iA%ط Java ی`L از

. ^6رت <ن

6I+ Lه%7 :اج,ا7 خ�� �;%A, %� دل�[ i0,یnative compile%X در ;i%ی@� �EXدر�* ا�*، ال

E�I;ي ا%Mن و ;6ل% . L ^/ي <ن ولn0 L%وت <ن 6Idان ;m@/س �A@*�%خE%ر ایB ز

��2 ;��� (-< : % %I->%A ا و,o ی@%ن روال/A �;%A, Object Oriented -%ی6 ,ا7

Programming6-% �A/rIای .

=>� +,-&: *@�A �A/rIای tR6. ا-% .-%ی6 ,ا7 ا\,اد راu�v *Z در�*

�IDE ,EzاwI; ,o/ر :�%ون را�? '�ر�) ،6-% وج/د IDEاز اEzrA%ن د�* ,اي ایB ز%ن

، Eclipse، NetBeans ه%7 <ن ;%IDE 6IAد %0 % ,+%\L ا�* +LO در ;/رد <ن �im0} +. دارد

JBuilder ،IntelliJ ، Sun studio ، Web sphere ، Text pad و ... ,o6 و ا- %I->

�%خE%ر راb +%ر,7 در . * ا�*، +� Z,ف +%;Lg�_ t ا�wI;GUI/ر از راb +%ر, �%خ*

Java*ا� L`�\ا,o 7%ره%Eخ%� Bاز ^/7 0,ی .

"Javaد/,�6." \,دا EM, از ا;,وز خ/اه6 ,wA � B+,4 ر ده%ن%J- ی� Bی6 ای%- . Lه%rA Lول

*@�A ر%J- 6ان ه] ی�Id ��Oج Bد +� ای/� رو6A 0`%;[ <ن، o/ی%7 ایu�g; B خ/اه6 . Bای Lول

XA/د5 �`� ^@O* اwP] <ن، 5Java ,��T0 ا�*؟ از ��T0, در زی,I% و �%خE%ر XM/ده% از +>% <;6

?%�A ه7% %E+ درJava ،ور ز;%ن,; �/د5، Sun 7ا �A%?%E+ � را ,اJava 7 خ��L از 0/ا

Page 5: Java farsi

;%��T0 6IA, در ;6ل o,ا\�`L ی% ��T0, ;6ل روی6اده% و %زA/ی@L . �%زo%ر7 ���T0 ,Ez, داد

هB�I�O ا�%\� +,دن وی�d 6IA%; LOM; 7%M�o%پ +,دن +� در وی,ایMz%7 اول�� ^@MEO%یL از <ن و

��* ه%7 زی%د در A@?� ه�EAPlatform 7%>� ای��T0 B,ات، . XA/د%^ % 6�n; ر%�@ L@ی/A �;%A,

/د 76J.

� 6P *�Pم وج/د ;,اج� +%;[ \%ر�6P ،Lم وج/د اA@%ن هE; 7%?�� و ا�E%دان خX,5 در

� o *�P,ان O0%م -6ن ، 6AازL\%+ 5 ای,ان � ا B�I�Oهserver 56م وج/د 4,وژP %ه%7 <ن و ی

%-OJ; ،6I/1+� اo, ه ( در ای,ان enterpriseه7% L4,وژ5 ه%ی B�Id [ Lه%7 خ%رج *+,- �

6A/- L; 5ره%7 ) ��,د%Eن و �%خ%, <ن -6ی] �XI; %0 ج%;� \%ر�L را در ;/رد �4%د5 �%ز7 ایB ز

.<-I%یL داzA>/ی%ن ;L�6IM +%;��/0, ارا�U ده�]<ن ,ا7

5%; BOM١٣٨٥

[^ 5%rzAدا

Page 6: Java farsi

=�(�2

��ان ...................................................... ...........................5�AB

٢ ........................................................................0%ری?�� ج%وا

�;%A, u�A .........................................................................١٢

٢٣................................ ...........................اA/اع داد5 ه% ، ;��TE,ه%

٥٩.............................................................................. r�OP,ه%

Lل,EI+ رات%XP ...................................................................... ٨�

% +tس ه% Lی%I->.... .............................................................١٣٦

١٧١ . .........................................................Inheritance وراث* ،

@�E ه% و راb ه% ..................................................................٢٠٧

�٢٣ ............ ........;,آu ، �4%د5 �%زي اA/اع �%خOE%ن داد5 ه% اA/اع داد5

�w\%Z *٢٨ ............................................ ..........................;6ی,ی�

5� ٢٩٠........................................................................ ا;`%A%ت وی

*�/�4 ................................................................................. ٣١٨

�%I; .............................................................................. ٣٣١

Page 7: Java farsi

5C>ت�ریJava

G>� وی� ای���.:

%ل ز��ن و '�ر�)ده�! "ن

java%د ای>

Applet ه% وApplication %ه

*�I;ا

]OZ *��%^)portability(

%ی* +6 )Byte Code ( 58<J;Java

Javaا;�I* در

LE�I;1ی� ه%7 اJava

Javaز%ن و +%;�%ی�,

%ی* +6ه% Lر�, +EI,ل و

Verifier

%ر+t+ 56IIس )class loader(

L�J از ;6mودی* ه%7 ا�4* ه%

% ;6ل ز%ن و آ%ر,د ه%ي <ن <-z�; %I/ی6 ]�\ Bدر ای.

Page 8: Java farsi

5C>ت�ریJava

+� ی� ز%ن ش ی� o,ا /د، ج�/دار ز%ن ++t�; cد7، ز%ن ٩٠ و اوای[ ده� ٨٠در اواخ, ده�

/ی@%ن %1خ,5 ز%ن ;/ردtP^� و در وا^� � L; ,wA ر��6 +� ,A �;%A. ه7% ,A �;%A/ی3 ي -6

6Aرا7 خ/د را 6�4ا +,د5 ا%+.

c ++ ن%/د +� �J* ا�nE%د5 از ^6رت ز LA%,ا7 ای>%د c ز *@A0/ا L; ،71 خ/د% Lو +%ر<ی

. ��g و��LJ از ,A%;� ه% � +%ر رود

,A%;� ه% *\,z�4 �P% world wideل Lv ;6ت 6Id �%. -6 ول�E-¡o 6IA%; L، ا\8ای  i0%�%ه%

web 6Aد,+ *\,z�4 7د5 ا,E@o ر/v � *A,EIو ای . �;%A,L دیr, در tiAا �P% �J^وا Bای

6- L@ی/A.

javaایI�د

/د +� 0/اA%یL ای>%د A,م ا\8اره%یPlatform L ی� ز%ن ;@iE[ از javaه6ف اول�� از ای>%د ،

ی`,وی/ه% و +EI,ل +56II ه7% L ��] را دا-�E?; �E£ ال`E,و6IA%; L`�A ;% [ی,ا7 ا�nE%د5 در و�%

6-%� IP/ان +EI,ل, ا�nE%دcpu 6II+ L; 5در وا^� و�%ی�L +� از . L0و%nE; 7%ه . B56 ایOP ]`z;

6IA%; Lن ه%ی%/د +� ز++Cو C 6Aای>%د -56 ا �?z; در ی� و���� Lه%ی �;%A,,ا7 ای>%د .

;@8�Eم v,اLZ +%;�%ی[ +,د، ولL ایB +%ر A ,cpu/ع را , رو7 ه L;++C 0/ان ,A%;� ه7%

,ا7 <ن C++ ی� +%;�%ی�, CPU6-% L; ,, و ز;%ن �Iه8ی L�OP 8�A ,ا�* و ای>%د +%;�%ی� .

,ایB ی� راZ 5[ �%د5 0, و +] ه8ی�I 0, ;/رد �A%ز ا�*%I . ،]`z; Bا7 ر\� ای,Gosling و

] را -,وع +,د6A +� 0/اA%یOZ Platform L[ و ;@iE[ از �0] +%ر7 او، +%ر , رو7 ی� ز%ن ^%

, رو7 ه, A/ع �+ 6-% �E-ای>%د +76 را دا cpu6-%[ اج,ا %^ £�E?; 7ه%7 +%ر b�m; و در .

� ای>%د %Eی%MA ،]�0 Bر ای%+ �<�EA java 6�;%<A[ . اZ ،ن%L; 34 0/ان no* ه6ف اول�� ایB ز

� LrA%خ £�E?; ]ا�0%ل و�%ی ]`z;د/ ,rدل�[ . ی`6ی Bای � 6�;%<Aا *@`- �ولL ایB ه6ف

��3 ایB ز%ن دو%ر5 و . +� ه�¥ +%رخ%�A �%ز56A و�%ی[ خ%LrA ;%ی[ � ا�nE%د5 از ایv B,ح XA/د

6I+ ر%+ L�, رو7 �0/ی8ی/ن ه7% +% �+ 6- LZا,v ه6ف Bای %� 6P *�Pم . 8�A ه6ف Bای

� 56Aه%7 �%ز �A%ز +%رخ%�A س%@Z6ا�;%<Aا *@`- .

Page 9: Java farsi

IP/ان world wide web و % \,ا�o, -6ن ١٩٩٤را ;L 0/ان از �%ل �i\/; java* ه7%

� ایB دل�[ +� . ی� ز%ن ای56 <ل ,ا7 وب ا�*E; Java/ج� -Sun 6 هrI%;�`� . +,د Java

%^ L�;%P [E@�� ,ه %��* اج,ا 0/اA%یL ای>%د ,A%;� ه%یL را دا-* +� , رو7 ه, ��@LOE و

% ��@P [E%;[ ه�Z £�E?; 7%/ر دارWeb6Aدا-6IE و در £�E?; ان,در وا^� ای8�A . B +%ر

LZا,v [�0 7ا, �E`A Java 7%ل,ه,EI+ �0] در ای>%د ی� +6 در Bای �+ L�`z; �+ 6- ر%`->

% <ن رو,و ا�*، هO%ن ;L�`z ا�* +� در ای>%د +6 ,ا7 ای8�A *A,EI وج/د د £�E?; ]ارد و�%ی

0/ج� خ/د را از و�%ی[ Javaاز ایv 34 B,اZ%ن . و از هB�O راL; ]Z 5 0/ان <ن را Z 8�A[ +,د

6Aف آ,د/gJ; *A,EIی@¨ ای/A �;%A, � ¨©�Aو,E©ال .Java د5 از �%ل,E@o ر/v � ١٩٩٦ �Uارا

6- �Eخ%I- 6�n; ن%� دل�[ ª��X0 ه%7 �4,ا;/ن . -6 و از هO%ن ا6Eا � IP/ان ی� ز �A ن> (!) �`�

/د B�I�Iره%7 ای%Eن +� دارا7 �%خ%� JavaولL <ی% %ی�i\/; 6* ه7% . � دل�[ �A%ز � ز %MI0 را

*@�A B�Id %IfOg; ؟*@Aوب دا �J�/0 ]دل� . �J�/0 56 و +��76 درOP LziA 6 وبId ,هJava

Lدا-* ولJavaد7 و در و,,ا7 0/ل�6 ,A%;� ه%7 +%ر {\/; LA%�%ی[ ال`E,وL`�A را %ی6 ز

� -O%ر <ورد 8�A . ،د/XA وب ,oا *no 0/ان L; �^در واJava L6 ول�n; L@ی/A �;%A, ی� ز%ن

�Eخ%I-%A 6وA%; L; L^% L`�Aو,E`ا7 و�%ی[ ال, .

Java ت خ/د را از%�R/خ� ,Ez� Cو ++ C*ا� �E\,o . �+ 6IE@Aدا L; ن%v,اZ%ن ایB ز

%�P 0/ج� ,A �;%A/ی@%ن �E\,z�4 و % o ��- *� ++ c,ایL و خ%cRا�nE%د5 از -`[ د�E/ر7

�,<0C C++/د/- L; . ،7,ه%­ �%z0 Bای ,L�J از خ/اص ایB دو ز%ن را +� tPJavaو5

%�P ^6ر6IO0 -6ن <ن دو -8�A 56 ا�nE%د5 +,د5 ا�*.

B�� X- *�P%ه* ه7% Javaو ++ C *ا� B`O; JavaLEA,EIای �?@A را ++ C0 [�I+ ر/�

%Java. ولL ایB �0/ر ا-XE%5 ا�* Lی%M0و%n0 C++در�* ا�* +� . داردJava ث, از¯E; C++

,اW; 7%ل . داc ++*@AولXA L%ی6 <ن را ی� A@?� دیr, از . ا�*Java % ه�¥ �A/o �%زo%ر7

C++6اردA . 3ی/A �;%A,% ++ cولL اO- ,o% ی� �A%r�%-�6، خ/د را Java+ LOA س%@Z6 ا�I

� X- *�P%ه* ه%7 ­%ه,7 ایB دو( ( B�I�Oهjava 7ا, B8یrان ی� ج%ی/IP � C++ ¨Zا,v

,اي Z[ ی©@,ي ;t©zت خ%ص و 56zA .Java ا�* C++ ,rت دیt`z; 7,@`ی ]Z اي, 8�A

. ه, دو ایB ز%ن ه%، �%ل ه%�* +� در +I%ر ه] ا�nE%دv .6A/- L; 5,اLZ -56 ا�*

� v/ر +�L ز%ن ه7% 6I� دو دل�[ L; �J�/0 ی% L@ی/A �;%A, :

. ا�* ,ا7 �%زo%ر7 % ��T0,ات /ج/د <;56-١

Page 10: Java farsi

٢- L@ی/A �;%A, ,Iدن ه,+ �E\,z�4 7ا, )Art of Programming.(

,A%;� هiE@; 7%[ از �ی� دل�[ ) �%زo%ر7 % ��T0,ات /ج/د <;56( در ای�APlatform *A,EI%ز

*\,z�4 56 درOPJava/@m; د/- L; ب . B�I�OهJava د +� در روش/- L; L0ا,��T0 ];%-

� _%ی* خ/د ر��56 ا�*W;Java%ل -� o,ایL در ن� IP/ا: ,A �;%A/ی@L ای>%د -56 ا�* .

Applet ه� وApplication�ه

%,A%;� ه%7 ای>%د -56 Java 6IE@ع ه/A دو , :Applet7د,,A%;� . ه% و ,A%;� ه%7 +%ر

, رو7 ی� +%;��/0, و P [E@�� ,wA *m0%;[ <ن اج,ا ;L ه%7 +%ر �+ 6IE@ه Lه%ی �;%A,,د7،

6A/- . b�/0 56- د7 ای>%د,,A%;� ه%7 +%رJava ن%,A%;� ه%7 ای>%د -b�/0 56 �%ی, ز 6IA%; ،

6IA%; %هCو C++6IE@56 . هOP وت%n0Java*ن ه% در ای>%د ا�4* ه% ا�%% دیr, ز . �;%A,ا�4*

. 7 ا�* +� ,ا7 ار�%ل از v,ی} ایA,EI* و اج,ا , رو7 ;,ورo, وب ;�8%ن ای>%د ;L -/دا

*A,EI6 �%ی, \%ی[ ه% در ایIA%; *�43 ه% و(ی� ا`P ،7,�0/ی ،L0/R 7%ی[ ه%\(...

downloadد/- L; د +� . -56 و اج,ا,O-, �A/rI0/ان ای L; ی[ ه% را%\ Bای %ولn0 L%وت ا�4*

;%A,/دن ا�4* ه%، . � ه/-6IO ا�* و bi\ �A ی� P`3 ی% �0/ی, �%د5ا�4* ی� uج%ل �Oه %

,oاSun �E-6 داIE@A0/ا LOA 7,rد دی, OA¨ 0/اA@* دو ;56OP ]`z را در <6I+ ]Z %MA ه�¥ +%ر

6I-% .6Aد//دن ;t`zت 56OP در v,اLZ ا�4* ه% ]OZ ] . ا;�I* و ^%

=-� :ا

%� �;%A, .د5 را از ای�I+ L; u�A *A,EI]، در وا^� % ی� ری@� رو,و ه@�E]ه, ز;%ن +� ی�

,اE@�� 7] ای>%د ;6I+ L ؟ ^X[ از 7,gخ �;%A, Bی% ای>Java u�A � +%ر,ان O0%ی[ زی%د7

6Aداد LOA ن%zA از <ن L-%A ات,gخ *�P � *A,EIه% از ای �;%A, . 7%M6 وی,و�IA%; L0ا,gخ

A0/ا L; �+ 7,0/��;%+ £�E?;6A/- [E@�� در L0ا,gخ u6 ;/جI . ت%Ptvا �+ Lه%ی �;%A,و ی%

6A, L; *^,� � %; [E@�� 7را از رو LR/ارزش و خ� % . /@Oه ,o از ی� ;,ور ,oا Lول

%Java6�I+ L; 5د%nEن ا�4* ه%7 . ا�%I�Ovا % 6�A0/ا L;Java *A,EIرا از ای download د5 و,+

6�I+ اج,ا .Java را *�I;ا Bای Lاج,ای b�m; � و ��Java uاز v,ی} ;6mود +,دن ا�4* ه%

Page 11: Java farsi

6I+ L; ای>%د ،[E@�� ,r7 دی%MEO@^ � L�,Eا7 د�,,اW; 7%ل ی� ا�4* . اج%ز5 از ی� ا�4*

] ;�8%ن را 6AاردE@�� 7د5 از \%ی[ ه%7 رو%nEاج%ز5 ا� . *�R%خ BایJava از L`0/ان ی L; را

*@Aن دا> *XW; ط%iA Bی,EOM; .

)portability(,-= ح�; ���

£�E?; 7%ه ];%P [E@�� % £�E?; 7%6 +%;��/0,ه�Aدا L; �+ ر/v ن%Oه )WinX،Mac Os

،UNIX ،Solaris6 +� ...) وAه%7 خ%ص <ن ه% وج/د دار ];%P [E@�� % Lه%ی [E@�� LEZ %و ی

6A/- ]�E; 8�A *A,EIای � 6IA0/ا L; .� Bای L;%O0 7رو ,?/اه6 �+ �;%A,�@E] ه% اج,ا ی�

,ا7 ای>%د ا;�I* در ,Java �;%AراL�Z 5 +� . -/د، �A%ز;6I ی� +6 ^%[ OZ[ و ^%[ اج,ا ا�*

6I`�; ]Z 8�A را ]`z; Bه%7 خ/د ای>%د +,د5 ا�*، ای.

\[I� Byte Code ((��ی= '% Java

b +%;�%ی�, در وا^� خ,وجL ای>%د -56 0/�. ا�*Z 6��+Java[ دو ;IP ]`z/ان -56 %ی* +6

Java اج,ا ]%ی* +6 ا�*) executable( ، ی� +6 ^% �`� *@�A . رات/Eی* +6 ی`@,7 د�%

�I�M -56 ا�* +� E@�� b�/0] در Z%ل اج,ا7 Java) 7ز%<; B�-%;Java %ی Java Virtual

Machine (*اج,ا ا� ]%^ .JVM6ی> L; ب%@Z �,ا7 %ی* +6 ,@n; 34 ;% در وا^� . ی�

,A%;� را b�/0 +%;�%ی�, ا6Eا Java ]ی�, را +� ی� \%ی%�;%+ Bای Lی[ +,د5 و ��3 خ,وج%�;%+

%ی* +6 .)class ( b�/0 ،*ا�JVM[�I+ L; ی�, . اج,ا%�;%+ L6، خ,وج�Aدا L; �+ ر/v ن%Oه

در وا^� ا+W, ز%ن ه%7 ا;,وز7، از +%;�%ی�, � MI0%یL ا�nE%د6II+ L; 5 و . ی� +6 ^%[ اج,ا ا�*

Aد,O-,EM, +%;�%ی�,ه% L0/ان +%ر<ی L; و دل�[ <ن را ,@n; د5 از . � از%nEا� LولJVM �P%

56OP دو ه6ف �� ایB دل�[ +� % ای>%د %ی* +L; ، 6 0/ان . د�* ی%\*L;Java -/د +� E/ان

� و���� %�Aاز د �giA ,و در ه LOE@�� ,رو7 ه ,,A%;� +6 -56 را JVMاج,ا +,د .%MI0 ز%�A

u�A �JVM[خ/د داری ];%P [E@�� 7رو , . �`A> وج/د % �+ 6�I+ 0/ج� �E`A Bای � %ngل

� ی� ��@P [E%;[ دیr, \,ق ;6I+ L، ولL ه�O <ن ه% ی� JVMج�U8%ت ];%P [E@�� از ی�

6II+ L; ی* +6 ی`@%ن را ای>%د% . �;%A,� +E@�� L�m; 6] +%;�%ی[Javaاo, 1زم /د +� %;

Page 12: Java farsi

%ی@* ,ا7 L; �;%A,� ایcpu *A,EI-/د، ی� �+ L0و%nE; 7%ه ];%P [E@�� و £�E?; 7%ه

*@�A Lدر P/ض ;L 0/ان % اج,ا�E; . 7[ ه@6IE، ج6ا�A%o +%;�%ی[ ;L -6 +� ایB راZ 5[ خ/

/دن د�* ی%\* ]OZ ]%ی* +6 ی`@%ن در ��@E] هnE; 7%%وت، � ی� راZ 5[ خ/ب ,ا7 ^% .

L; B�I�Oا�*ه L@�%ر خ/ 6Z 8 در�A *�I;د +� ا,+ %P0/ان اد . �;%A,، Javaزی,ا اج,ا7 ه,

� JVMزی, wA, و +EI,ل %I; ت و%Ptvا � �;%A, ا�* و ;L 0/ا6A ج�/7 د�L�,E _�, ;>%ز

.��@E] را �r,د

,اB�-%; 7 ;>%ز7) %ی* +Java) 6+6 ای>%د -b�/0 56 +%;�%ی�, B�-%; 6+ 0/ان ی� L; را

Java*@Aر . دا%J- {im0 �P%%ی* +6 "Write Once ,run any where "6- . £gل �

JVM ,و +%;�%ی� Java �;%A, [�A0/ا L; Java ,ی�%�;%+ b�/0 و �E-/A LOE@�� ,رو7 ه , را

Java[�I+ ]ن . <ن را +%;�%ی> Lی* +6(و خ,وج% ( b�/0 و LOE@�� ,رو7 ه , اج,ا JVMرا

[�I+ .

� Java-= در ا

%71 <ن ا�*Javaی`L از ;EOM,یB د1ی�L +� ز%ن *�I;ش 6�4ا +,د، ا,E@o *A,EIدر ای . �

[�I+ 5%rA 5%o66 دیId از [�A0/ا L; *�I;ل� ا/i; . %; LR/ت و ا�,ار خ�%Ptvا µnZ رد/; Bاول�

6-% L;.%ی �d,E\6 دIA%; LR/د خ�%Iی% ا� %; L`�Aو,E`ر 4@* ال/XP �O�+ 6IA%; %; 7%ددا-* ه

%; ،6I+ 7ور> �Oج �A%�,T; ,�_ ]د1ی � LEZ ت را%Ptvا B6ون اج%ز5 ;% ای �;%A,اo, ی�

[�I+ د%OEPخ/د ا [E@�� *�I;ا � [�A0/ا LOA . وف,J; 7%ه �;%A, � [�A0/ا L; ,r5 دی%o6از دی

� ه] ری?BE ا6IA%; (tv وی,وس ه% و +,م ه%( خ,اب +%ر7 % �+ [�I+ 5ا-%ر ،[E@�� 7ت 4%ی� ا%P

6II+ L; L0t`z; ر%dو خ/اه�] دا-* . ;% را د �E-وی,وس ه% �,و +%ر دا Bای % %; L;%O0 %IfOg;

�;%A,� mA/7 ی� وی,وس وارد ��@E] -/د �LJ در 6�4ا +,دن ;@�, ورود <ن دا-�E و ی% ,oو ا

[�I+ L; ن اج%ز5 ورود داد5 ;@6ود> �� v/ر A% هB`O; B�I�O ا�* . ا7 را +� �;%A,ی�

%�P خ,اL در \%ی[ هE@�� 7%] ;% -/د �Eو . خ/ا� �;%A,� <ن %; 6J � �wmل Bاز ای %IfOg;

ذ+, ای8�A �E`A B 1زم ا�* +� ه, 6idر ;% از ی� ��@E] . -,+* �%ز56A <ن اOEP%د A?/اه�] +,د

[�I`A *ی%Pرا ر LE�I;ل ا/Rخ/د ;% ا ��A%Id [�I+ 5د%nEا� BfOg;د/. ��@E] ;% ا;A B?/اه6

� ه, \%ی[ اج,ایL +� در ایA,EI* ر��56 <ن را اج,ا ;6II+ L و ی% A%;� ه7% �+ LAا,+%ر

Page 13: Java farsi

�+ 6Iی%zo L; خ/د [E@�� �,اnA 7/ذ L6 راهII+ L; ز%ال`E,وL`�A دارا7 �4/�* اج,ایL را

.ه�¥ ��@E] ا;LOA LE�I 0/ا6A ج�/7 <ن را �r,د

+�-� Java[ی5 ه�! ا

LE�I;ا [E@��Java *56 ا�- ]�`z0 *O@^ ر%Md از :

%-6 و +%;�%ی�, <ن Java �+ 6I+ L; B�O�0ز%ن -١ BfOg; �+ *56 ا�- LZا,v 7ا �A/o �

.+76 +� ای>%د ;6I+ L، ^/اLI�A ا;LE�I <ن را زی, o LOA %4¡ارد

٢- �+ 6IE@ل ه,EI+ رت و%wA *m0 6A/- L; اج,ا �+ Lی* +6 ه%ی%^/اB�A ا;LE�I را زی, %4

L ای>%د -56 t^ %ی�,7 خ,اب ی%�;%+ b�/0 �+ را Lی* +6 ه%ی%rA¡ار6A ه6ف ایB 1ی� ایB ا�* +�

.ا6A را wA 6; 8�A, ^,ار ده6

%ر +t+ 56IIس ه% -٣ )class loader ( L�,E6ودی* ه% د�m; �,�t+ �+ 6I+ L; Lس ه%

6I-% �E-6اA .

٤- JAPI (Java Application Programming Interface ( 6A0/ا L; �+ *�I;ص ا/�?;

� ا;LE�I دارد +� از �� . ه% در ��@E] را �r,دappletج�/7 خ,اب +%ر7 LrE@ایB 1ی� <خ,

.1ی� دیL; B�O�0 ,r -/د

Javaز��ن و '� ^�ی,)

� cز%ن L�,Eل د�,EI+ 7ا, L0%A%`;6 <ن +� دارا7 اIA%; Lن ه%ی%ا-�%ء ه@6IE، هB�I�O و ز

� ا-�%ء L�,Eدن د�,+ ]Jا7 ج, Lی%M-از ا-�%ء(دارا7 رو LEO@^ %روش ه% ) ی B6 +� ایIE@ه

% ا�nE%د5 از ا-%رo 5, ه% اA>%م ;L -/د 1/OJ; .[] داریM; LE�I;[ ا`z; ن ه% دو% : در ایB ز

١-6I+ ظ/nm; از خ%رج L�,E6 خ/د را از د�A0/ا LOA Lf�- ¥ه� .

%-B`O; �+ 6 ا�* ا;�I* را Bugی� ز%ن دارا7 ا-%رo 5,هL; ،7/^ 7% 0/ا6A دارا7 -٢ Lه%ی

� خg, ا6Aازد .Java ل +,دن/m; ی3 و/A �;%A,,دا-EI+ BE,ل ا-%رo 5,ه% از % ایz; B`[ را

�,v,ف ;JVM6I+ L<ن . L6، ولAا-�%ء وج/د دار � L�,Eا7 د�,هI/ز ه] ایB ا-%رo 5, ه%

,ا7 <رای� ه% . /د5 و +EI,ل ;wA *m0 tJVM6A/- L%رت +%; �+ L0%A%`;ا B�I�Oدر هJava

Page 14: Java farsi

�`� <MA% را +%;t آEI,ل +,د5 و ;6mود5 +%ر ،6I+ L; ,0 رای� ه% را <�%ن> %داری]، MI0 �A% +%ر

6II+ L; *X^و ;,ا Lر�, . <MA% را

�)ل و �)ر�+ ��ی= '%ه� �'

را ��T0, داد5 و <ن را ,ا6R%i; 7 خ/د Java £��`0 6I+ [�wI0%;�%ی�, اo, ی� \,د خ,ا`%ر +

�dJava (Java Runtime@*؟ ^X[ از اج,ا7 ه, %ی* +E@�� ،6] در Z%ل اج,ا7

Environment (6IE@ه LE�I;ا B�Aا�%س ^/ا ,. +%;MA> t% را ,ر�L +,د5 و ;L; BfOg -/د +�

]W; 76 -%;[ ;/اردA0/ا L; Lر�, Bد5 _�, ای%nE6ودی* ه%، ا�m; � L�,Eه%، د�,o 5ا-%ر ,��T0

% \%ی[ ه% +%ر ;6II+ L(;>%ز از ا-�%ء �+ LU%�-ا ]W;( ,�_ 7%ن ه%;/oر> %، \,اخ/ا6E; LA ه%

6-% �Ez4 ر -6ن%%ی* +6ه% در . وا^LJ ی% ;i%دی, _�, ;>%ز ی% �, Lر�, ]OPJRE و���� � ،

Verifierد/- L; م%<Aا .

Verifier

%ی* +6ه% ,ا7 ایI`� ;/ارد ا;LE�I را b�/0 ،6II`A »iA ی� ^@O* از JRE م%A � Verifier

6A/- L; Lر�,,ر�L -56 و L;%O0 ;,اZ[ اج,ایL <ن ;/رد . *O@^ Bای b�/0 %ی* +6ه%

6-%,ایB ا. ,ر�L ^,ار ;6A,�o L 0% اA/اع 4%را;E,ه% و <رo/;%ن ه% و EA%ی¼ <MA% در�* %I Bی

L; ی* +6ه%7 �%ل] را% �^@O* را %یXMrA 6%ن ورود7 %ی* +6ه% داMI0 �+ *@A% اج%ز5 ورود

,^,ار +56II ا;�I* در Verifier. ده6 L�Rا *O@^ Java 5%XE-در �4%د5 �%ز7 <ن ا ,oا�* و ا

,A%;� را � خL; ,g ا6Aازد *�I;د، ا/- . [�E@ه BfOg; %; �+ L;دا%;JVM*+,- خ/د را از

Sun[�I+ ن%I�Ovن ا> *�I;ا � [�A0/ا L; ،[دری%\* +,د5 ای . u�A م%rIا�* ه ,EM Bای,%I

Java ان/IP �,�L +,د5 و ;BfOg -/ی] @A �E,م ا\8ار7 +� t;%+ ،Virtual Machine

%-�m; ،[�I+ L; u�ASun6/ل -,+* . ،6II+ L; ر/XP *O@^ Bی* +6ه% از ای% �+ L;%rIه

[�A0/ا L; 6، ازI+ LOA ر%%ی* +6، % 6A/�OP ,��T0ه�Ez4 7% <ن را �, Bای �+ [�-% BfOg;

� v/ر _�, ��mR داد5 ه% را ،6I+ L; 5د%nEا� LEدر� � LEzo,4%را;E,ه%، <رo/;%ن ه% و EA%ی¼

6I+ LOA ]6یX0 ) از tW;int,o 5ا-%ر � ( L�,Eرت _�, ;>%ز د�/R �و � \��6ه%7 ا-�%ء ;%،

Page 15: Java farsi

A6. 6اردI+ ی* +6 <ن را اج,ا%6ون rA,اLA از ،6J � �wmل B6 از ایA0/ا L; %; ,@n; Bای,%I .

�%� '1س � )class loader(��ر'

%ر+t+ 56Iس، LP/A دیr, از XMrA%ن ا;LE�I ;% ا�* . [E@�� ی* +6 در% ;load Lو^LE ی� \%ی[

: -/د، از �� ;6mودB`O; 5 ا�* وارد -/د

١-;%+ L�m; ,0/��

;o L¡ردL�m; �`X- firewall +� از -٢

٣-*A,EIای

[�-% �E-8 دا�A 7,rوت دی%nE; 7%ه,�@; [�A0/ا L; %; �+ 6�I+ 0/ج� . �;%A,زی,ا � IP/ان ی�

�Uن ارا> � 7,Ez; د%OEPا uج� %A/ی3، ایB اج%ز5 را داری] +� %ر+56II خ/د را v,اLZ +,د5 و

[�I+ . ان/IP �%ر+56II . ی% ;,ورo, خ/د J0,ی£ +JRE[�I+%ر,، ;@�,ه%7 دیr,7 را ,ا7 ی%

� ی� +tس +� از ;@�, BfOg;%A 0, وارد -56 %-6، اج%زLOA 5 ده6 +� خ/د را � IP/ان 5%rه��

6I+ B8یrج%ی BfOg; ,�@; از L�t+ . 7ل داد5 ه%7 \%ی[ ه%7 ورود%W; ان/IP � / Lخ,وج

� IP/ان %MI0 ،[E@��6Aی£ -56 ا,J0 L�m; 7%س هt+ . L; L�m; ,0/��;%+ ,�@; از %MI0 Bای,%I

6A/- 6 واردIAوارد -/د، اج%ز5 +%ر . 0/ا L�m; ,0/��;%+ از ;@�,7 _�, از �+ L�t+ ¥ه� Bای,%I

� ;6Eه7% . % \%ی[ هE@�� 7%] را 6Aارد %MI0 ،6ود5 خ%صm; س ه%7 ی�t+ ن> , tPpublicو5

6m; 7%س هt+6Aدار L�,Eد� ,r6ود5 ا7 _�, از +%;��/0, . ود5 دیm; از �+ Lس ه%یt+ 34

%ر ;LOA LEZ ،6A/- L 0/ا6E; 6IAه%7 \%ی[ ه%7 ورود7 L�m;/6II�XهB�I�O . خ,وجE@�� L] را

%رo¡ارL; 7 -/د، در ی� @Applet �Eه, �`X- 7از رو �+ )Package ( L; ار,^ �A%oج6ا

66یLIJ; B +� ا�4* . +�,دA/- L; *w\%m; 8�A ,rاز ی`6ی LEZ %ه .

�\b+ از �%ودی= ه�! اپ,= ه�

,خtف دی6m; ,rودی* ه%7 ا�4* +� . ا�4* � ه, <درس دل?/اهL در �w\%Z د�6A L�,Eارد-١

ا�* و b�/0Java b�/0 ;,ورo, اOP%ل ;6A/- L، ای6m; Bودی* ی`L از خ/اص ز%ن

verifierد/- L; Lر�, .

Page 16: Java farsi

, رو7 <ن اج,ا ;6A/- L د�L�,E ا�4* ه-٢ �+ L�m; ]E@�� 7%ی[ ه%\ � LEل%Z ¥در ه� %

6A6ارA .6I@ی/Iی% LEZ ه�¥ . <LOA %MA 0/ا6IA ه�¥ \%ی�L از ��@E] را ?/ا6IA ی% , رو7 <ن

6A,�r6IOMn +� <ی% \%ی�L وج/د دارد ی% خ�, ی% 0%ری½ . اL0%Ptv در ;/رد \%ی[ 6IA0/ا LOA Bای,%I

.,ی��T0 B,ات <ن را 6IOMn<خ

?%�A هL�m; 7% را %رo¡ار6II+ 7 ی% \,اخ/ا6E; LAهL�m; 7% را J0,ی£ -٣%E+ 6IA0/ا LOA %ا�4* ه

6II+ .

� �A/o ا7 ا�nE%د6II+ 5 +� اPtv%ت در system.getProperty ا�4* ه% اج%ز6A 5ار6A +� از -٤

6IA%; 6II+ *\%او دری [E�� %ی ,;B`O ا�* از ایhome directory . B ی% username;/رد +%ر

�?@A 6ن�OM\ 7ا, %MI0 6II+ 5د%nE6 ا�E;Java5د%nEل ا�%Z در .

٥-6A6ارA را [E@�� 7ا, . ا�4* ه% اج%زJ0 5,ی£ ;z?�%ت

6J، ا�4* اج%ز5 ای>%د ی% ��T0, ه�¥ ١¾١ Java از -٦ � Thread %ی Thread group را +� ج8ء

Thread Group6ارد خ/د <نA ،6-%XA *�4ا .

، Class Loader ،Security Manager ا�4* ه% اج%زJ0 5,ی£ ه�¥ +6ام از اA/اع -٧

ContentHandlerFactory ،SocketImplFactory %ی

URLStreamHandlerFactory6II+ 5د%nEج/د ا�* ا�/; �+ Lی%MA> ی6 از% . را 6Aار6A و

٨- *m0 ط%X06 ی� ارA0/ا L; %MI0 *�4از رو7 <ن ا �+ LOE@�� % �`X-download 56 ای>%د-

6I+ .

� 4/رL0 4%ی�B 0, از -٩ 6A0/ا LOA *�4١٠٢٤6 اI+ ش/o .

اo, ا�4* ?/اه6 � ی� 4/رت o/ش +L; %MI0 ،6I 0/ا6A ارLv%X0 از ��@LOE +� از <ن -١٠

download6-% 56- .

Page 17: Java farsi

5 ��(� cd�

G>� وی� ای���.:

A�;%A, u�

,A%;� �%د5 و <;%د5 آ,دن <ن ,اي اج,ا Àی BE-/A

¨�Rا �;%A, mA/5 آ%;�%ی[

¨�Rاج,اي \%ی[ ا )Virtual Java Machine(

¨�R5 اج,اي \%ی[ ا/mA

)Grammatical Error( خo 7%g,ا;,

)Bug( ا-`%ل

)m��/0 )Command%ت

%T�4 %gم خ

�%ی, +%;�%ی�,ه%

� هO,ا5 * CD*56 ا�- �O�O� 6آ �A/OA 6Id و �v/ . ، A,م ا\8ار ;,

Page 18: Java farsi

5 ��(� cd�

آ� ÇwI; �Ç/ر ا�nEÇ%دj2sdk-1_3_1_01-win 5جM* اج,اي ,A%;� ه%ي ج%وا @A �E,م ا\8ازي

, روي ��@P [E%;[ وی6Iوز ;¨ %-6 را ;%6IA �%ی, A,م ا\8ار ه% [�Iآ ¨; u�A 5در ;@�, دل?/ا.

%ی@* ;@�, -%خ� اي آ� \%ی[ ه%ي ¨; �;%A, u�A م%O06 از اJjava و javac 6-% ¨; %MA> در

.Xv} روال زی, �wI0] -/د

,روي – ١ My Computer را�* آ,د5 و Àآ�� Properties6�Iب ;¨ آ%?EAرا ا .

٢- u0 � Advanced روي , . آ��À آEnvironment Variables6�I ر\�E و

٣ –  ? . را اEA?%ب آNew6�I دآSystem Variables �O در I4>,5 \/ق در

Page 19: Java farsi

%ی@* ;@�,ي آ� \%ی[ هÇ%ي – ٤ ¨; ��Z,; Bدر ای java و javac [�ÇIآ £Çی,J0 6Ç-% ¨Ç; در <ن .

�Ç%ن -Ç/د . ;¨ %-bin6IایB \%ی[ ه% در -%خ� ,Çزی ]©- {Xv ];%ر آ/v �%ی6 ,�@; . %ÇA اي,Çم

6�Iب آ%?EAرا ا ¨;%A ,6 ه�A8 ;¨ 0/ا�A.

6J از ok ، آ,دن Variableل�@* ا�%\� ;¨ -/د � . آI4ok6�I>,5 ه% را . \/ق

� اO0%م ر��6 �;%A, u�A ��Z,; Bدر ای.

,I-> �;%A% ;¨ -/ی] Àاج,اي ی ¨rA/rd % .Z%ل

/ط � A@?� اي ا�* آ� ;% <ن ^X[ از <ن ;¨ %ی@* � ای�E©A B 0/ج� دا-* آ� m��/0%ت زی, ;,

OÇ- ��A%Id% از ;b�Çm جÇ%واي دیÇr,ي ا�nEÇ%دÇ; 5¨ آÇJg^ ، 6Ç�I% روش uÇ�A و . را u�A آ,د5 ای]

Ç/د 6Çوت خ/اه%nE; �;%A, b�m; ت%A%©;و ا �;%A,لÇ¡ا ، اÇPtv%ت �EÇz, را در ;@6IEÇات . اج,اي

.آ%;�%ی�, خ/د ;z%هOA 56%ی�6

5 ��د� و " �د� آ)��(� fی �� دن "ن �)اي ا/)ا��ش

6�Iآ ¨v زی, را ,�@; �;%A, Àاي <;%د5 �%زي ی,.

Start > Programs > Accessories > Notepad

�;%A,notepad 6�Iز آ%��A> {Xv <;/خ�E ای6 و , ا�%س ,A%;� ه%ي �ÇA/OA اي آ��Ç�/0 �Ç . را

.دادی] ، ,A%;� اي را I/ی@�6

,A%;� اي �%د5 را %; ��Z,; Bب آ,د5 ای] در ای%?EAا:

class Example {

public static void main ( String args [] ){

Page 20: Java farsi

System.out.println("This is First Program with JAVA Language");

}

}

�I8یo از �;%A, BE-/A 6 ازJFile > Save as 6A/@4 %,A%;� را .java6ی�%OA 5,ذخ� .

�E©A:

١ –- �;%A,%ی6 ه] A%م ا�] %Oclass6-% %O- ) . �;%A, . خ/اه6 /دtW;Example در ایA %<I%م

(

,A%;� را EM, ا�* در هO%ن ;@�, \%ی[ ه%ي – ٢ java و javac ل6ر/\ ¨IJی bin6ی�%OA 5,ذخ� .

٣ – *ÇÇÇÇ;tP دو B�ÇÇÇÇ�ÇÇÇÇ هÇÇÇÇO,ا6A/ÇÇÇÇ@4 5 <ن را در ]ÇÇÇÇم \%ی%ÇÇÇÇA 6ÇÇÇÇ�A0/ا ¨ÇÇÇÇ; " "6�ÇÇÇÇ@ی/I 6ÇÇÇÇIA%; ،

Example.java" " ]ی%\ B34 ای Bزی ،source fileد/z�; �Eخ%I- %; .

,rzد5 از وی,ای%nEا� % %O- ��Z,; B0% ایNotepad ]ی%\ Àی text � �%خ�E ای6 آ� آ6ه%ي ج%وا را

Ç, روي . در <ن ذخ�,5 آÇ,د5 ایRcharacter 6Ç/رت Z,وف ی% 6Ç�A0/ا ¨Ç; را ]Çی%\ BÇت ای%Çی/Em;

Iه56 ی% از <ن 4,ی%z; ر/E�A%;6ده� ,��T0 %ی6 و ی,�r * . %O�iEÇ@; 6ÇA0/ا ¨OA ی�¨ را%\ B�Id ,0/��;%آ

�6X0 . ]OPی[ آ,دbyte codeاج,ا آd ، 6I,اآ� � R/رت %ی* ذخ�,5 -56 ا�* ، ل¡ا %ی6 <ن را

6-%%ی* آb�/0 6 آ%;�%ی�, ج%وا ;¨ � ¨�Rا �;%A, .6X0ی[

Example.java Javac Example.class

¨�Rا �;%A,%ی* آ6 ج%وا آ%;�%ی�, ج%وا

6A/@4 %%ی* آ6 ، \%ی[ � �;%A,%-class6.هO%ن v/ر آ� ;�wZt آ,دی6X0 ]R%Z 6ی[ ¨; .

� R/رت زی, o/ی%ی¨ �Ez,ي خ/اه6 دا-* 1% uل%g;:

Page 21: Java farsi

Java Computation Model

Operating System

JVM (Java virtual machine)

Java Source File Hello.java

java Hello Java Class File Hello.class

(portable byte code)

javac Hello.java

Byte Code

Operating System

JVM

Java Class File Hello.class

(portable byte code)

Java Source File Hello.java

javac Hello.java

C++ Source File hello.cc

gcc hello.cc -o hello.exe

Executable hello.exe

Operating System

vs. Machine Code

Page 22: Java farsi

i,B5 ا ���� آ� ^�ی; �)��

: را اج,ا آCommand Prompt 6�Iاز ;@�, زی,

Start > run > cmd

% ا�nE%د5 از د�E/ر DIR *.java 5ی  داد%OA ¨�J\ ري/Eی[ ه%ي ج%واي ;/ج/د در دای,آ%\ ¨;%O0

. ;�z/د

�E©A:

١ – 6�Iآ ]OP ,رت زی/R �,اي ��T0, درای/ :

: A%م درای/

٢ – 6�Iد5 آ%nEر زی, ا�/Eدرای/ از د� Àري ه%ي ی/Eدای,آ � BE\اي ر, :

Cd ري/Eم دای,آ%A \ري/Eم دای,آ%A \ …

,اي خ,وج از یÀ دای,آE/ري د�E/ر زی, آ%ر,د دارد – ٣ :

cd..

% د�E/را0¨ آ� IP/ان -6 � -%خ� bin6وی,% ا�nE%د5 از د�E/ر.

Javac Exmaple.java

�;%A, 6�Iدن . را آ%;�%ی[ آ,Çz\ 6 ازÇJ ، 6�Ç-% �EÇ-6اA �Ç;%A,در R/ر�0©� ه�ÇA/o ¥�Ç خÇg%ی¨ در

enter 6ی* آ% .�%خz�; �E/د ) class.( ، \%ی[

Example.class\%ی[

�E©A : ,�@; ��A%Idpath 6 ازÇJ 6�Ç-% را در�* وارد A©,د5 و ی% ,A%;� را در�* Ç©A uÇ�A,د5

,�Ç;%A را . یÇT�4 ÀÇ%م خÇ­ %Çg%ه, ;�Çz/د … javacوارد آÇ,دن د�EÇ/ر ,Çrر دی%Ç ÀÇی *Çا� ,ÇEM

6�Iآ u�A.

i,B( ا/)اي 2�ی; ا Virtual Java Machine(

Page 23: Java farsi

را5 دیr, ایB ا�* . جM* اج,اي ,A%;� ه%ي ج%وا ;¨ 0/ان از �?* ا\8ار ;?�/ص ا�nE%د5 آ,د

,اي ایB آÇ%ر ا�nEÇ%دÇ- 5/د 5� ÇA,م ا\8Çار ، %یÇ* آ6Çه%ي در ایÇR BÇ/رت . آ� از A,م ا\8اره%ي وی

,�Ç;%A را اÇ@n; %ZtgÇR, . را خ/ا56A ، \,ا;�B <ن هÇ% را اجÇ,ا ;Ǩ آclass ( 6ÇI.\%ی[ ( ج%وا BÇای

interpreted ت <ن را%��OP و interpretation6I;%A ¨; . �Ç;%A, ¨P/ÇA وا%Çی* آ6ه%ي ج% ,@n;

-,آME%ي �?* ا\8اري P/A¨ ه, یÀ از . اج,ای¨ ا�* آ� در ه, ��@E] آ%;��/0,ي ^%[ اج,ا�*

ÇÇ, روي 6ÇÇ-% �EÇÇ-دا ¨Aا/ÇÇخ [ÇÇآ* ه,ÇÇ- 6ي <نÇÇي 0/ل�%ÇÇه [EÇÇ@�� ت و%ÇÇJg^ %ÇÇ �ÇÇوا آ%ÇÇج ,ÇÇ@n;

6Ç-% �EÇ-وا را دا%Çي ج%Çه �;%A,. ;�m/1ت �?* ا\8اري خ/د u�A ;¨ آ6II 0% 0/اA%ی¨ اج,اي

,rÇÇÇ-ا5 4,داز,ÇÇÇOه �ÇÇÇ ) processor( در ایÇÇÇR BÇÇÇ/رت ;ÇÇÇ@n, جÇÇÇ%وا در هEÇÇÇ@�� ,ÇÇÇ] آÇÇÇ%;��/0,ي

56ÇMP �Çآ%;��/0, � ;%-�B ;>%زي ج%وا 6X0ی[ ;Ço ¨Ç,دد آ�Ç و­��Çn اجÇ,اي ,�Ç;%A هÇ%ي جÇ%وا را

6Aدار.

%Ç;6 اÇ-% ¨OA ه%ي ج%وا �;%A,�%ن دیr, 4,داز-r, آ%;��/0, 6ون ;n@, ج%وا ^%در � اج,اي �

� آÀO <ن ، ایB 0/اA%ی¨ را 6�4ا خ/اه6I آ,د.

[E@�� ,ر آ� ذآ, -6 ه/gA%Oه �Ç;%A, �?* ا\8اري 6ون A,م ا\8ار ;n@, ج%وا ^Ç%در �Ç اجÇ,اي

*@�A ه%ي ج%وا . %Ç;6 اAق دار,\ ,rی©6ی %��@E] ه%ي �?* ا\8اري ا�d ,o از لm%ظ A/ع ^Jg%ت

%Çا\8اره *?Ç� م%ÇO0 6ه% درÇآ *Çی% BÇد ، ای/Ç- ¨Ç; ]6یÇX0 6Çآ *Çی% �Ç,�Ç;%A جÇ%وا Àآ� ی ¨;%rIه

6IE@0,. ی©@%ن ه ]R%Z �^ا�* در وا ¨A%@©ی* آ6 ی%,A%;� ج%وا در O0%م �?* ا\8اره% Àی �Oج

%یÇ* آ6Çه% را از BÇای ¨EZ ، *اج,ا� ]آ� در O0%م ��@MOE%ي �?* ا\8اري 6ون ه�¥ ا-©%ل¨ ^%

]Çاز د1ی ¨Ç©ی BÇد و ای,Çا آ,Çو اج ]ÇiEI; ي �?* ا\8اري ;¨ 0/ان%MOE@�� م%O0 � *A,EIی} ای,v

�* ج%وا�* /Xm; . ,rن دی%� �,�Ç;%A هÇ%ي خÇ/د را در ÇO0%م 6IEÇ@�A ر/ÇX<; ی@%ن ج%وا/A �;%A,

,اي ه, [M; ر%�@��@MOE%ي �?* ا\8اري و ��@E] ه%ي Àd £�E?; ];%P آ6II و ایB یÀ ;8ی*

,A �;%A/یm; 3@/ب ;¨ -/د.

Page 24: Java farsi

i,Bا/)اي 2�ی; ا ����

,اي اج,اي ,A%;� ا�R¨ از د�E/ر javaد/z�; 5د%nEا� .

java Example

6J از اجÇ,اي ایBÇ د�EÇ/ر -BEÇ; %OÇ خÇ/د را ;Çz%هÇ; 56¨ آ6Ç�I و خÇ;,\ bÇ%ن در اخÇ�E%ر -Ç^ %OÇ,ار

:;��r,د

�E©A 6Id:

�E©A١ : ]Çم \%ی%ÇA در ¨ÇEZ ، 6-%%-�6 آ� ج%وا � Z,وف 8رگ و آ/Z Àd@%س ;¨ �E-0/ج� دا

,ایB ا�E-/A ¨; ,o] . ه%%Ijava example6- ¨OA اج,ا �;%A, .A> %;ا B�Çz�; �E-/A/د " " ��

*@�A [M; ن> ¨©d/8رگ و آ .d%پ ;�z/د و

�E©A٢ : JVM 6ÇE; اغ,Ç� � �;%A, ;�Ç,ود ، در وا^Ç_> ]Çm; �Ç%ز ,main 6ÇE; �Ç;%A جM* اج,اي

main6-% ¨; .

�E©A٣ : % 6IE@را0¨ آ� اج,ای¨ ه/Eد;آ��� د�/z�; �?z; %MA> bي خ%MEAدر ا .

�E©Aه% : ٤ �;%A, 6�Iآ ¨J� 6�@ی/IایB ا;, �uXÇ خ/اÇA%ی¨ ,OÇ- �Ç;%A% . را � R/رت د6Aا�A دار

,A%;� را � v/ر خg/ط z4* �, ه] I/ی@�8�A 6 اج,ا ;�z/د. ;�z/د ,oا;% ا.

�E©Aا وارد : ٥,Çو اج ]Çآ%;�%ی �Ç ¨Çت خ��%ÇOآ� B�Ç B�ÇI�Oر و ه/gÇ� B�Ç^,ار دادن خg/ط خ%ل¨

6Iآ ¨OA.

( )Grammatical Error( &3�! *)ا

اB�Z ,o 0%یÏ +6ه%7 ج%وا ا-XE%هR L/رت �o,د <ن را اZtgR% خo 7%g,ا;,6ÇI;%A LÇ; 7 ، در

*;tP ار دادن,^ %ایB ;/ارد +%;�%ی�, % ذ+, -O%رg� 5,7 +� خg%7 د�E/ر7 در <ن ^,ار دارد

^6I+ L; Lی%OIر7 راه/E7 د�%gخ � .در زی, +��O واج6 خO- ، %g% را

Page 25: Java farsi

�0¡+, ا�* +� tÇPو5 Ç, د^�Ç} 0%یÇ+ ÏÇ,دن +6Çه%7 جÇ%وا ، هÇrI%م 0%یÏÇ د�EÇ/رات در ایI>% 1زم

b�Çm; ا در,Çو اج ]Çی%�;%+Command Prompt 8Ç�A ر/EÇدن د�,Ç+ ÏÇ5 0%ی%XEÇ-ن ا/Çd 6Ç�I+ *Ç^د

� ای>%د T�4%م خÇo LÇ; %Çg,دد ,<I; . ر/EÇد� *mÇR ]Ç7 +%;�%ی%Çه%gخ �Ç\6م در رÇ^ B�Çاول Bای,%ÇI

� �,اغ \%ی[ اL�R خ/د ,وی6+%;�%ی[ را ,ر�L +,د5 و �� 3.

)Bug( اشp�ل

8Ç8 جÇ�d ا,Çاج �Ç<�EA LÇدد ول,Ço ا,Çاج %Çg6ون خÇ,A%;� ا7 6ون خg%7 د�E/ر7 +%;�%یÇ[ و ,oا

6Iی/o L; ن ا-`%ل> � 6-%( ��OP %E<�EA%ت ��m�0 ا-`%ل را ر\� ا-`%ل . خ/ا�* ,A �;%A/ی3

Debug ( 6Iی/o.

)Comment( ت�9-��ت

�ÇÇ�/0 6ÇÇده LÇÇ; ��ÇÇ�/0 از <ن LEOÇÇ@^ %ÇÇی �ÇÇ;%A,m . BEÇÇ-/A%ت ج�ÇÇ�O یÇÇ% جLÇÇ0tO ه@�ÇÇ+ 6IEÇÇ درÇÇ%ر5

�ÇÇm�ÇÇ�/0%ت ÇÇ,ا7 +%;�%یÇÇ[ و اجÇÇ,ا +ÇÇ,دن ,�ÇÇ;%A ال8ا;ÇÇ@�A LÇÇ* و ÇÇR,\% جÇÇM* دادن اÇÇPtv%ت

� m��/0%ت �A%ز %-6 اo, جÇ0/+ ��O%5 و یgÇ� �Ç,7 . خ/اo6IA%ن +6 ا�* �+ �;%A,در ه, ج7%

/د 34 از //3 از /د m��/0%ت را 4 7,g� 6Id ,oار ده�6/* و */ و ا,^ .

%ی* +6X0 6ی[ 6A/- LOA: 0/ج� � tRت ا%m��/0 .

پ-t�م &3�

% ;B`O ا�* % خLn�E?; 7%g رو � رو -/یÇEOM; �Ç+ 6,یCommand Prompt Bدر B�Z +%ر

:<ن � -,ح زی, ا�*

١ – 7%Çج �Ç ,oا javac Example.java ، java Example.java در%ÇR ,Ç7 زی%Çg6 خ�Ç@ی/I

.;�z/د

Exception in thread “main” java.long. NoClassDefenitionFoundError :

Hello / java

Page 26: Java farsi

� ج7% – ٢ ,oا javac Example.java ، javac Example د/Ç- LÇ; ,ه%Ç­ L;%T�4 ، 6�@ی/I

.+� mA/5 در�* BE-/A د�E/ر را L; ���/0 ده6

Ç% درج اo, هrI%م – ٣ 6Ç�I`A *Çی%P8رگ را رÇ,ÇZ �Ç;%A,وف +/�Çd و [Çا� BEÇ-/A ^ ,Çدر زی

.Z,ف ;,/O- �v% را ;E/ج� خL; %g �%زد

) �;%A, . ) \,ض -56 ا�*Hello.javaدر A`%ت زی, A%م

�E`A : LÇ; £Ç^/E; �Ç;%A, %gخ Bاول� �در هrI%م خg% ، خb د�E/ر را zA%ن ;L ده6 و % ر��6ن

.-/د

� زی, R%در ;�z/د}ر هrI%م J0,ی£ +tس اول�B اo, د– ٤%z; L;%T�4 6�I+ را \,ا;/ش .

٥ – ,oد; ا/z�; �E-/A L;%T�4 B�Id 6�I+ را \,ا;/ش .

��ی) '� ^�ی,)ه�

+%;�%ی�,ه%7 ج%وا اA/اع ;?Ln�E دارA �+ ، 6A,م ا\8اره%7 زی, داراMg�m; 7%7 وی�والLÇ ه@6IEÇ و

6Z LEO�^ ورژن <ن B01,ی%%-6 ٦-٥ود L; ان از . ه8ار د1ر/Ç0 LÇ; را ,Ç0 Bی�%Ç4 7%MAورژ Lول

.v,ی} ایA,EI* دا�A/د +,د

Page 27: Java farsi

١ – Jbuilder X

,A%م �%خ* -,+* BایBorland6-% L; .

�;%A, b�m; از Lzی%OA

Page 28: Java farsi

٢ – EditPlus

6�Iآ ¨; �wZt; ,رت �0/ی/R � �;%A, :�A/OA اي از اج,اي

Page 29: Java farsi

�t--)ه�ا��اع داد� ه� ،

G>� وی� ای���.:

+EI,ل -6یA 6/ع داد5 ه%7 ج%وا

اA/اع داد5 ه%7 4%ی�

��mR 6ادPا

اA/اع داد5 ه%7 اzP%ر7 % ;I- 8�O%ور

+%را+E,ه%

Lل/ داد5 ه7%

rA%هL د^�} 0, � ل�E,ال ه%

%;��TE,ه

6X0castingی[ و

<رای� ه%

�E`A 6Id در ;/رد ر-�E ه%

� ا�iA%د ه% ، +EI,ل A/ع ، 6X0ی[ A/ع ، �4%د5 �%ز7 �?* ا\8ار7 و اA/اع ]�\ Bای BE; در

هB�I�O ا-%را0¨ � <رای� ه% -56 ا�* آ� در ?  �%خOE%ن داد5 ه% .��OP%ت اول�� ا-%رL; 5 -/د

.5 -56 ا�*m��/0 8�A%0¨ داد

Page 30: Java farsi

�t-)ه�و"رای5 ه � در /�واا��اع داد� ه�،

,ر�¨ �� ;/ردازR%IP,4%ی� ج%وااخ�E%ص ی%\�E ا�* �  ? Bاع داد5 ه% ، : ای/Aه% ا,�TE; و

.A%X�Ez4¨ ;¨ آ6I اA/اع داد5 ه% از ، 8�Aه�O/ن O0%م ز%ن ه%ي ,A%;� �%زي ;6رن ج%وا .<رای� ه%

هO%ن �A/o آ� .<رای� ه% ا�nE%د5 آ6�I ای>%د و ,اي J0,ی£ ;�TE,ه% 0/ا6�AازایA B/ع داد5 ه% ;¨

� ایB ;/رد rA,ش ج%وا ، خ/اه�6 دی6 *X@A ، ف%n- ، 6;>ا�* و آ%ر �E�/�4.

�)ل ش%ی% ��ع داد� ه�ي /�وا� آ

� -6ت در<ن آEI,ل ; ز%A¨ ا�* آ� A/ع داده% آ� ج%وا 1زم ا�* درهB�O ا6Eاي آ%ر�Eno -/د ¨

�I�X] آ� ایA. B%-¨ ;¨ -/د ایB ا;, از ا�mE©%م ج%وا ، ?z¨ ازا;�I* و دروا^� .-/د ÀIای

�d ¨IJآ%ری. ، �©Iای *@?A ,ه ,�TE; دارد ¨P/A ، دارد ¨P/A رت%XP,از ه, و ، ه Àاع داد5 ی/Aا

� د^* J0,ی£ -56 ا6Aه% . �©Iدی,، ، دوم ای%i; م%O0 ���?0 م%rIا ه �dی� و,Rر/v � �dز

.�%زo%ري A/ع داد5 ه% ,ر�¨ ;¨ -/د ، v,ی} ار�%ل 4%را;E,ه% درB�Z \,اخ/ا6E; ¨Aه%

.اA>%م �o ¨OA,د ج%وا اA/اع داد5 ه%ي �%زo%ردر 6X0ی[ خ/دآ%ر ، ,خtف ,خ¨ ازز%ن ه%

�%زo%ري اA/اع داد5 ه% ج�Z *M/ل اI�Ov%ن از 4%را;E,ه% را ج%وا O0%م XP%رت ه% و آ%;�%ی�,

6,ر�¨ ;¨ Iع .آ/A {�Xg0 6مP، %6 داد5 هIE@ه%ی¨ ه%gی@* �4  از4%ی%ن آ%;�%ی[ خ%آ� ;¨

6A/- ��m�0 سt6ن ه, آ-.

ا��اع داد� ه�ي پ�ی5

byte ، short ، int ، long ، char ، float: هA *z/ع داد5 4%ی� درج%وا J0,ی£ -56 ا�*

،double و Boolean

واژ5 درایB آE%ب ا�nE%د5 دو ه, واز داد5 ه%ي �%د�Eno 8�A 5 ;¨ -/د � ایA B/ع داد5 ه%ي 4%ی� ،

:ایA B/ع داد5 ه% را;¨ 0/ان � Md%رo,وOA [�@i0 5/د .-56 ا�*

Page 31: Java farsi

• ��mR 6ادPو5 -%;[ –ا,o Bای int , short , byteو long *;tP ];%6اد آPا�* آ� ا

6I-% .دار ;¨

ا�* آ� OA%یrA%Ç, ا6ÇPاد double و float ایo B,و5 -%;[ -ا6Pاد اzP%ري %;I- 8�O%ور •

6I-% .اzP%ري ;¨

• %ÇÇÇÇه,Eآ%راآ- ];%ÇÇÇÇ- 5و,ÇÇÇÇo BÇÇÇÇای char �ÇÇÇÇP/O<; در %ÇÇÇÇده%OA اع/ÇÇÇÇAا ,rA%ÇÇÇÇی%OA �ÇÇÇÇآ *ÇÇÇÇا�

.ار^%م از^Z ]�X,وف و ؛ آ%راآE,ه%�*

�5 اي Ç,اي ÇOA%ی  ;Çi%دی, boolean [ ایo B,و5 -%; -/ل¨ •Çع وی/ÇA ا�* آ� false/ true

.ا�*

©%ر 6IE@اي آ� ه �A/o � 6�Aرا ;¨ 0/ا �Eno  �4 6 ;/اردÇی,ای�Ç©I <رای�Ç هÇ% یÇ% اÇA/اع آtÇس یÇ% و

4%ی� وا�%س اA/اع داد5 هÇ%ي ، اA/اع داد5 ه%ي �Eno  �4 ، ازایB رو .ه%ي خ%ص خ/د0%ن را @%زی6

.، z0©�[ ;¨ ده6I ی>%د ;¨ آ6�Iدیr,ي راآ� ا

OA% اA/اع داد5 ه%ي 4%ی� ، Ç- �ÇA 6 وIE@6 هZدی, وا%i; ,rA%ی uÇي ;,آ%Çه. Çج �Çd,oا Ç- t;%Çوا آ%

� اA/اع داد5 ه%ي �%د5 اي ه@6IE آ�Ç در .،ا;% اA/اع داد5 ه%ي 4%ی� ایo 6IE@�A �A/o B,ا�*%z; %MA>

A%�Ez, ز 6ÇX0ی[ اÇA/اع .Ç%زده¨ ا�Ç* آÇ%رای¨ و یBÇ ا;Ç,، دل�Ç[ ا . o,ا ی%\* ;¨ -/M 6A%ي _�, -

� .آ%رای¨ را�  ا6Aاز5 آ%ه  ;¨ داد ، ه% -¨ داد5 ه%ي 4%ی�

%0 6A/- ¨; £ی,J0 اي �A/o �%-6I ی6m; Àود5 و اA/اع داد5 ه%ي 4%ی� �E-دا B�J; ¨�%ر ری%E\ر.

ایb�Çm; b اجÇ,ا ��mÇR راÇ, ا�Ç%س -Ç, ا;©Ç%ن Ç��T0, ا6ÇAاز5 ا6ÇPاد ++C و CهÇ%ی¨ Çd/ن ز%ن

6Aاه] ;¨ <ور,\ .

��Ç* اÇiEA%ل ,�Ç;%A هÇ%ي جÇ%وا . ج%وا ای�A �A/o B@* ، ا;%%^ BE-دا �، ;6Çmود5 اÇA/اع � دل�[ �A%ز

� IP/ان ;W%ل ، .ث%* ا�* داد5 ه% intو �z�Oا ه,Çاج b�m; �6ون 0/ج� ،٣٢ *Çا� ¨ÇE� . BÇای

,A%;� ه%ی¨ را ا;,ا;©%ن BE-/A اه] ;¨ �%زد,\%I�iل درآ� ی%iEAا �A/o,6ون ه B�-%; ي%Mری%OJ;

6A/- ¨; خ¨ از .ه% اج,ا,اB��J0 �d,o ا6Aاز5 ا6Pاد B©O; ��mR ا�* ;/جu آ%ه  آ%ر<ی¨ در

��* اiEA%ل �,وري ا�*ا;% اA>%م ایB آ%ر ,اي ر��6ن ;Mg�m% -/د،%^ �.

,ر�¨ ه,یÀ ازاA/اع داد5 ه% ;¨ 4,دازی] � ÀIای.

B ا.%اد{-�

Page 32: Java farsi

O0%م ایlong. BÇ و byte ، short ، int: درز%ن ج%وا Md%ر A/ع 6Pد J0 ��mR,ی£ -56 ا�*

-\bi« ا6Pاد tP,�_ ��mR;* دار ج%وا از . ;i; ¨nI%دی, ;XW* و A/ع داد5 ه% tP;* دار ه@6IE؛

*XW;« 6Iآ ¨OA ¨A%X�Ez4. ري از%�@ *ÇXW; ��mÇR 6ادÇPازا [Çه ،,Çrن ه%ي آ%;��/0,ي دی%وهÇ] ز

6ÇÇIIآ ¨ÇÇ; ¨A%X�EÇÇz4 ¨ÇÇnI;. ,ÇÇ�_ *ÇÇ;tP 6ÇÇ^%\ ��mÇÇR 6ادÇÇPا �ÇÇ6 آÇÇAس آ,د%ÇÇ@Zوا ا%ÇÇن ج%ÇÇZا,v %ÇÇ;ا

6IE@وري ه,�. ، �©Iص ای/�? 6A�0/ر ;¨ آ,د %MA> %06OP *;tP 6^%\ 6ادPم ا/Mn; اي آ�,Ç

Ïd *O� ال�� ¨MEI; *�� ، راB��J0 ;¨ آint6Iآ� tP;* داد5 ه%ي A/ع ، ;z?� -6ن ر\E%ر

,د5 ;¨ -/دآ%ر .

، ��mR 6ادPل ا/v در %ÇMA> ¨\,Ç�; ي%Ç�\ 6ارÇi; و *Ç@�A �Çw\%Z در %Çه,�TE; ر%ÇE\ض ر/ÇP و

6Iآ ¨; �?z; ع را/A ي <ن%M0ر%XP. 5د%nEÇ6از5 اي ا�A6 ازه, اAز;%ن اج,اي ج%وا ;¨ 0/ا b�m;

6Iآ Iی%OA ر%E\ی£ -56 ر,J0 5ع داد/A % u�%IE; %M0ر%XPه% و,�TE; آ� Bای ,درz; ،6. ،*i�iZ,وط

%M-ر%rA 6ا^[ ی©¨ ازZ ،byte و short ,دی%Çi; رت/R � �١ و٨( �ÇE¨ ٣٢ را ÇE� ( ¨Ç; 5,Çذخ�

در �Ez, آ%;��/0,ه%ي ;/رد ا�nE%د5 ا;,وزي " word"آ6I 0% آ%ر<ی¨ ا\8ای  ی%d ،6,ا آ� ا6Aاز5

�* ا�*٣٢، .

;i%دی, اÇA/اع داد5 هÇ%ي ��mÇR 6ودv ، m; 5/ل و هO%ن �A/o آ� در ج6ول ذی[ zA%ن داد5 -56 ا�*

,�TE; *ا�:

;6mودi; 5%دی, v/ل A%م

long �� 9,223,372,036,854,775,807 %0-9,223,372,036,854,775,808

int ٣٢ 2,147,483,647 %0 -2,147,483,648

short ١� 32,767%0 -32,768

byte ٨ 127 %0 -128

,ر�¨ ه,یÀ از<MA% ;¨ 4,داز � ÀIی]ای.

Byte

Page 33: Java farsi

��mR 6ادPع ا/A Bی,E©d/آ ، byte*ا� .byte، ��mR 6دP ¨P/A دار ا�* آ� ٨ *;tP ¨E�

?�Ç/ص هÇrI%م آ%رÇ% ج,یA%Ǩ از داد�TE;byte 5,ه%ي ÇA/ع .ا�*١٢٧ %0 -١٢٨;6mود5 <ن از

Ç%یI,ي خÇ%ص <ÇMA% هB�ÇI�O هÇrI%م آÇ%ر Ç% داد5 هÇ%ي .\%ی[ ;6�n وا^� ;¨ -6A/Ç ه%ي یX- À©� ی% �Çآ

%O�iE@; *ا� B©O; % 6I-%XA ر%oاع داد5 ه%ي 0/آ%ر ج%وا �%ز/A6 �%ی, اA/- ¨; �^6 وا�n; ،.

� IP/ان ;W%ل . J0,ی£ ;¨ -/byte 6AایA B/ع ;�TE,ه% % ا�nE%د5 از آ��O آ��6ي ]Çذی ,gدر� ،

� ,�TE; م%A bو cع/A از byte6A/- ¨; £ی,J0 :

byte b, c ;

Short

short ��mÇR 6دÇP ¨P/A ، ١� *Çدار ا� *Ç;tP ¨ÇE� ;Ǩ ٣٢٧�٧ Ç0% -٣٢٧�٨;6Çmود5 <ن از .

6-%. B1 ای%OEZع داد5 ه% ا/A6Aد5 را در ج%وا دار%nEا� Bی,EOا آ,d ، *ا� �A/o � %MA> £ی,J0 آ�

%ی* B�E@?A آ� %ÇMA> *را� *O� ارزش را دارد Bی,EÇz�ÇA �Ç%م ( ، ¨ÇE;,\big-endian ( BÇای

ÇÇv �ÇÇ/ر \8ای56ÇÇI اي آÇÇ�O%ب ;6A/ÇÇ- ¨ÇÇ �١د5 ه06ÇÇOP %ÇÇ% درآ%;��/0,هÇÇ%ي ÇÇA/ع دا �ÇÇآ ¨ÇÇE�، آÇÇ%ر,د

6Aه%ي .دار,�TE; £ی,J0 ی¨ از%Mل%W; �short 6�I0/ج� آ :

short s;

short t;

" Endianness: " 0/ج� Eی%Ç 6ÇId ي%Çذخ�,5 �%زي داد5 ه ¨rA/rd از ، واژ5 اي ا�* آ� ]Ç�X^

short ، intو long ، 6ÇIآ ¨; £�R/0 را �w\%Z در . ,Çoع ٢ا/ÇA ي%Çاي داد5 ه,Ç *Çی% short

�Eno �©I؟ ای,EOارزش آ %1زم %-6 ، آ6ا;�À درا6Eا ^,ار ;¨ �o,د؛ %ی* % ارزش �Ez, ی% %ی*

Ç% ارزش �EÇz, ذخ�Ç; 5,Ǩ ، ا�*big-endian ;¨ -/د آ%;��/0,ي *Çی%6یIJ; B%�* آ� ا6ÇEا

PowerPC و Çd SPARS/ن آ%;��/0,هÇ%ی¨ .ارزش آEO, ^,ار ;¨ Ç�o,د ��3 %ی* % و -/د

, �,ي ه@6IE و "big-endian " از A/ع ¨IEX; آ%;��/0,ه%يx86]EIع ، ای/A از

"little-endian ."

int

��mÇÇR ي%ÇÇع داد5 ه/ÇÇA Bی,E6اولÇÇE; ،int*ÇÇا� . %ÇÇع داد5 ه/ÇÇA BÇÇد5 و ٣٢ ، ای/ÇÇ�ÇÇ;tP ¨ÇÇE* دار

%MA> 56ودm; ٢ , ١�٧ , �٨٣ , ��٨از- %Ç0 ٢ ,١�٧, �٨٣, ��٧ 6Ç-% ¨Ç;. ع/ÇA ي%Çه,�TE; int

Page 34: Java farsi

,اي آEI,ل �i�Z ه% و ،,rده%ي دی, tPو5 , آ%ر %Ç;/OP 8Ç�A %ان -%خ� <رای� ه/IP � ر%Çآ �Ç

6A/Ç- ¨; 5د,ÇXP %Ç%رÇzE; ¨0©[ از داد5 هÇ%ي ÇA/ع . 5%Ço,هbyte ، shortو intو ��mÇR 6ادÇPا

%-�6آ% و ل�E,ال �, �E-ر دا ، � . ارi0%ء ;¨ ی%int6 آ[ XP%رت �4  ازاA>%م ;X�%m%ت

int ، و Bی,EP/IE; ع داد5 ه%�* و/A Bآ%ر<;06,ی %Çرش ی%OÇ- اي,Çدر �Ez, ;/ا^J¨ آ�Ç ا6ÇPادي

%ی@Ç* از <ن ا�nEÇ%د5 ، ی% �A%ز � ;X�%m%ت ا6ÇPاد ��mÇR داری6Ç و <رای� ه% �A%ز داری6 -%خ� ¨Ç;

6ÇÇی�%OA. ÇÇا� BÇÇ©O;* د5 از%nEÇÇا� �ÇÇ6 آÇÇر� ,ÇÇwA �ÇÇ �ÇÇA/o BÇÇای short%ÇÇی byte ¨ی/ÇÇج �\,ÇÇR uÇÇج/;

�Ç خ/دآÇ%ر Çv �Ç/ر آ� ج%وا <MA% را ه�¥ I�O�0¨ وج/د 6Aارد ا;% ، در\�%ي �w\%Z ;¨ -/د int

6ÇÇ6هA ء%ÇÇi06 .ار�ÇÇ-% �EÇÇ-دا ,v%ÇÇخ �ÇÇ �ÇÇع« آ/ÇÇA 5و »داد *ÇÇرا�%E\56 رÇÇIIآ B�ÇÇ�J0 ، 56ازÇÇAا �ÇÇA) %ÇÇMI0

%ی* ,اي ه,�IP,-%ن از ، %-A byte 6I/ع رای� ه% ه@6IE آ� ��A%Id از< ، ا�IWE%ي ;/ج/د Àی

,اي <رای� ه%ي A/ع و ا�nE%د5 ;¨ -/د short و int از u�0,0 �%ی* � ازاي ه,Ç�IP, � و ٢

).ا�nE%د5 ;¨ -/د

Long

Long ، داد5 ه%ي,rA%ی%OA�� دار ا�* و *;tP ¨E� Ç- ¨; �^6 وا�n; ¨gاي -,ای, intآ�Ç /د

,اي 6-%XA 8رگ� ا6Aاز5 آ%\¨ ،,wA 6ار ;/ردi; 6اريMrA. ع/A 6ود5 داد5 ه%يm;longt;%آ

8رگ *Çع .ا�/Ç�/; BÇای ، long 6IÇ-%8Çرگ 1زم ��mÇR 6ادÇPا �Çآ ¨J^ا/Ç; اي,Ç;6Ç�n ، را

,�Ç;%A ذیE\%Ç@; ]Ǩ آÇA �Ç/ر در ;6Çت روزهÇ%ي ;ÇW; ¨Çv 56Ç- �?Çz%ل ÇIP �Ç/ان . �%خ�E ا�* ،

./اه6 آ,د را ;�X�%m ;¨ آ6Iخ

// compute distance light travels using long variables.

class light {

public static void main(string args[]) {

int lightspeed;

long days;

long seconds;

long distance;

// approximate speed of light in miles per second

lightspeed = 186000;

days = 1000; // specify number of days here

Page 35: Java farsi

seconds = days * 24 * 60 * 60; // convert to seconds

distance = lightspeed * seconds; // compute distance

system.out.print("In " + days);

system.out.print("days light will travel about");

system.out.println(distance + " miles.");

}

}

� -©[ ذی[ خ/اه6 /د �;%A, :خ,وج¨

In 1000 days light will travel about 16070400000000 miles.

,A%;� \/ق را OA¨ 0/ان در ;�TE,ي از A/ع �<�EA وا�� ا�* آ�int6اري آ,دMrA .

ا��اع داد� ه�ي ا.��ري �� �-] ش��ور

%Ǩ ÇXP%را6Ç�n; ¨0 و ;�real %A 8Ç�A 6A/Ç- ¨Ç; 56Çا6ÇPاد ;IÇ- 8Ç�O%ور، ا6Pاد اÇzP%ري %Çاي ارزی,Ç

، Çd ¨0%XÇ�%m; ]ÇR%Z/ن � IP/ان ;ÇW%ل . 8�A �,وري %-6MrA 6اري ^@O* اzP%ري ه@6IE آ�

ا6Pادي ه@6IE آ� 6MrAاریz%ن ;@8�Eم ا�nEÇ%د5 ، آ@�I/س ;d ¨0%W�W/ن ��I/س و ;X�%m%ت ج¡ر و

IÇ- 8Ç�O; %Ç%ور ا�Ç* از ;�TE,ه%ي اzP%ري . A%EÇا� �ÇP/O<;6ارد )IEEE-754 ( و %Çه,r�OP 5داد

دو ÇA/ع ;6ÇEاول¨ double وfloat. ج%وا Ç�4%دÇ� 5%زي -56Ç ا�Ç* ه%ي اzP%ري % ;I- 8�O%ور در

%%-6I د^* �%د5 و ه@6IE آ� OA%ی%rA, ا6Pاد اzP%ري ¨; £P%�;. ل و/v ]Çدر ذی %ÇMA> 56ودÇm;

: zA%ن داد5 -56 ا�*

�* A%م u@Z , i,یi; ¨X%دی,;6mودv0 5/ل

double ٨/١ ٦٤ ×e 308 %0 4/9×e 324−

float ٣٢ 3/4×e 38 %0 1/4×e 45−

.A/ع در ذی[ ,ر�¨ -56 ا6AایB دو

Float

Page 36: Java farsi

float د^* �%د5 ا�* آ� از %,اي ذخ�,Ç� 5%زي ا�nEÇ%دÇ; 5¨ ٣٢ ، OA%ی%i; ,rA%دی, اzP%ري *�

6Iو » د^* �%د5 « .آ *Çا� ,EJی,Ç� %56 هAخ¨ از4,داز,�Ç ا6ÇAازÇ�A 5£ در » £P%Ç�; *Ç^د « �Ç

%-6IÇ ، ا;% و^E¨ آÇi; �Ç%دی, @�Ç%ر 8Ç �%زي �A%ز دارد \�%ي ذخ�,5 ÀÇd/ر آ%�Ç@ %Çی¼ رگ ی%ÇEA ،

6- 6Iدر�* خ/اه%A.

Ç� 1%Ç,ورت و اzP%ري 1زم %-6Ç ز;%6�n; ¨A وا^� ;¨ -/6A آ� ج�TE;float 8,ه%ي A/ع *Ç^د

�E-6اA 6-% .tW; ،floatد1ر و u@Z, . �6�n; *I خ/اه6 /د ,اي OA%ی  ;i%دی, ارزي

,�TE; ی£ دو,J0 ل¨ از%W;floatن%zA ]داد5 -56 ا�* در ذی :

float hightemp, lowtemp;

double

ÇÇ,اي »£P%ÇÇ�; *ÇÇ^6ي ، »دÇÇآ�� �ÇÇOآ� bÇÇ�/0 �ÇÇآdoubleد/ÇÇ- ¨ÇÇ; �?ÇÇz; اي ��، از,ÇÇ *ÇÇ�

در ,خÇǨ از » د^P%ÇÇ�; *ÇÇ£«وا^ÇÇ�J* ا;ÇÇ, <ن ا�ÇÇ* آÇÇ- ¨ÇÇ; . �ÇÇ/د;ÇÇi%دی, ا�nEÇÇ%د5 ذخ�ÇÇ� 5,ÇÇ%زي

�Çآ ¨A56 ه%ي ;6رA4,داز M 1%Ç *P,Ç� %Ç ¨Ç�%ت ری%XÇ�%m; اي,Ç 6ÇA56 اÇ- �ÇI� *Çا� ,EJی,Ç� ، .

و^Ç�A ¨E%ز µÇnZ �Ç د^Ç* . ا�*6i; ، doubleار sqrt() و d()sin،()cos/ن R%Z[ 0/ا� ری%�

%-�X�%m; 6%ت در ;X�%m%ت �E-دازش و و 0©,اري دا,Ç4 م%rIر ی% ه%�Ç@8Çرگ ;6Çی,ی* ا6ÇPاد ،

doubleد/EM,ی8o Bی�I خ/اه6 .

,A%;� آ/0%5 ذی[ از ;�TE,ه%ي double6Iد5 ;¨ آ%nEدای,5 ا� Àی *Z%@; �X�%m; اي, :

// compute the area of a circle.

class Area {

public static void main (string args[]) {

double pi, r, a;

r = 10.8; // radius of circle

pi = 3.1416; // pi, approximately

a = pi * r * r; // compute area

system.out.println("Area of circle is" + a);

}

}

آ�راآ�)ه�

Page 37: Java farsi

,A%;� �%زان ، ا;% . ا�nE%د5 ;¨ -/دcharدر ج%وا ,اي ذخ�,5 �%زي آ%راآE,ه% از C/C++ 6ی%

6I-% :ه/-�%ر

charدر C ، C++ ل <ن/v ا�* آ� ¨m�mR 6دP، ا�* ٨ *� .*@�A �A/o Bدر . ا;% درج%وا ای

;>�ÇP/O آ%راآE,هÇ%ي ، یA/Ǩ آ6Ç .ج%وا از ی/A¨ آ6 ,اي OA%ی  آ%راآE,ه% ا�nE%د5 ;¨ آP 6I/ض

t;%آ Ç��Oال B� ¨ÇJ�Xv ي%ÇMA%ا�Ç* آÇ; �Ǩ 0/اOA 6ÇIA%یÇO0 ,rA%Ç%م آ%راآE,هÇ%ي ;/جÇ/د در ه�ÇO ز

6IÇÇ-% .�ÇÇ^6 درواÇÇآ ¨A/ÇÇي ی%ÇÇه,Eآ%راآ �ÇÇP/O<; ع%ÇÇOEاج]ÇÇ�X^ري از%OÇÇz� ،B�ÇÇ01 ،¨A%ÇÇA/ی ،¨ÇÇ,P

ایB از . �* �A%ز دارد�١� هB�O دل�[ � .-O%ر ;¨ <ی6 � ;>%ري و_�,5، ژاXP ،¨I4,ي، ا�tو،

. ;ÇÇnI¨ وجÇÇ/د 6ÇÇAارد char . ا�ÇÇ*��ÜÜ٣از6ÇÇm; %0,nÇÇRود5 .�ÇÇE¨ ا�ÇÇ* �١، در جÇÇ%واcharرو

^ÇÇ,ار دارد و ;>�ÇÇP/O �ÇÇP/O<; ,nÇÇR %ÇÇ0١٢٧ آ%راآE,هÇÇ%ي ا�6A%EÇÇارد ا�ÇÇ©¨ هÇÇI/ز در;6ÇÇmود5

�EÇÇ@o ¨ÇÇE,ش ی%\�ÇÇE ٨آ%راآE,هÇÇ%ي )ISO-Latin-1 (56ودÇÇm; در %ÇÇ0 ,nÇÇR٢ÜÜار دارد,ÇÇ^ . از

�,0%�, جM%ن v,اA> 56- ¨Z>%ی¨ آ� ج%وا ,اي \,اه] �%خBE ا;©%ن BE-/A ا�4* جM* ا�nE%د5 در

Ç,اي ا�nE%د5 ، �الJ�Xv .EX¨ ا�* آ� از ی/A¨ آ6 ,اي آ%راآE,ه% ا�nE%دOA 5%ی6 ، ا�* 6Çآ ¨A/از ی

¨@��rAن ا/d ¨ی%MA%% ، <لA%O¨ ، ز ¨A%�> �[ ٨ا��%�A%ی¨ ی% \,اA@/ي آ� آ%راآE,ه%یz%ن %^ *�

.ا�* ا;% ای�A/o B ;/ارد، M%ي ^%��* اiEA%ل OP/;¨ وجOA .¨A%M%ی  ه@6IE، ^6ري A%آ%ر<;6 ا�*

,اي آ@u اPtv%ت �Ez, در%ر5 ی/A¨ آ6� : 0/ج� org.unicode.www://http6�Iرج/ع آ .

,A%;� زی, آ%ر,د ;�TE,ه%ي charن ;¨ ده6 را%zA :

// demonstrate char data type.

class chardemo {

public static void main (string args[]) {

char ch1, ch2;

ch1 = 88; // code for x

ch2 =' y';

system. out.print("ch1 and ch2: ");

system. out.println(ch1 + "" + ch2);

}

}

� -©[ زی, ا�* �;%A, Bخ,وج¨ ای :

ch1 and ch2: x y

Page 38: Java farsi

%-�6 آ� ;6iار �E-0٨٨/ج� دا % ÇZ,ف ) وی/A¨ آ6 ( آ� OA%ی%6i; ,rAار ا�© ,­%IE;X *Çا� ،

�ch1 6Ç ، هÇO%ن �ÇA/o آÇ; ��Ç�?0. 6Ç- �ÇEno �Ǩ ی% ©Çي ا�%Çه,Eآ%راآ �ÇP/O<; ،6ار ١٢٧Çi;

�P/O<; را در *@?A 6IIل ;¨ آ%T-آ6 ا ¨A/ه%ي ی,Eم .آ%راآ%O0 ]دل� B�Oه �»¨Oه%ي ^6ی �iZ «

[ ، آ%راآE,ه% � آ%ر ,د5 ای6 آ� در �E-¡o در خ�/ص%^ 8�A ددر ج%وا/ 6Iد5 خ/اه%nEا�.

� �A/o اي % ، ،6Pد char6IE@�A ��mRا�d,o داد5 ه%ي A/ع 6�Aري از ;/ارد ;¨ 0/ا%�@ا;% در

%MA> 6IE@ه ��mR 6دP ¨ی/o 6 آ��Iآ%ر آ . [Çه %ÇایB ا;, � -O% ا;©Ç%ن ;Ǩ دهÇ0 6Ç% دو آÇ%راآE, را

»�Oي را ا\8ای  ) اد_%م( »ج,Eآ%راآ ,�TE; À6ار یi; %6 و ی�Iل . ده�6 آ%W; ان/IP � ، ]Çذی �;%A,

,wA ی6 را در,�r:

// char variables behave like integers.

class charDemo2 {

public staticvoid main (string args[]) {

char ch1;

ch1 =' x';

system. out.println ("ch1 contans " + ch1);

ch1++; // increment ch1

system. out.println("ch1 is now" + ch1);

}

}

� -©[ زی, ا�* �;%A, :خ,وج¨

ch1 contains x

ch1 is now y

1% �;%A,� Xا6Eا ;6iار ، در ch1 6ایB . ا\8ای  داد5 ;¨ -/د ch1، ��3 . 0?��� ;¨ ی%

ی/A¨ آ6 ( در ;>�P/O ا�©¨ XیIJ¨ آ%راآE, 34 از /د؛ ;¨ -ch1 درY;/جu ذخ�,5 -6ن آ%ر

.(

i��� ه�ي �داد

Page 39: Java farsi

MI0% ی©¨ . A%م دارد ,اي ;i%دی, ;igI¨ ا�*boolean، ی©¨ دیr, از اA/اع داد5 ه%ي 4%ی� در ج%وا

ÇO0 ]ÇR%Z%م r�OP,هÇ%ي . را ;Ç0 ¨Ç/ان �Ç ایÇA BÇ/ع ;�TE,هXÇ@A %Ç* داد true ی% 6i;falseار از دو

Oاي ه �g .b < a از ج��O ا�*؛ �Bرا

%یwA ، 6%رت دارfor 6A وifجtOت -,v¨ آ� , XP%رات آEI,ل¨ d/ن boolean6I-% .

,A%;� ذی[ آ%ر,د boolean6ن ;¨ ده%zA را :

// demonstrate Boolean values.

class BoolTest {

public static void main (string args[]) {

boolean b;

b = false;

system. out.println("b is" + b);

b = true;

system. out.println("b is" + b);

// a Boolean value can control the if statement

if (b) system. out.println("This is not executed.");

// outcome of a relational operator is a boolean value

system. out.println("10>9 is" + (10>9));

}

}

� -©[ زی, ا�* �;%A, :خ,وج¨

b is false

b is true

This is executed.

10> 9 is true

,A%;� وج/د دارد Bر5 ای% هO%ن �A/o آ� ;�wZt ;¨ آA ، 6Ç�I?@* ای�E©A �� . �©I ج%لu 0/ج� در

، Àی ¨E^6ار وÇi;boolean bÇ�/0 ()println ، د/Ç- ¨Ç; 5ی  داد%ÇOA true %Çی false ¨Çدر خ,وج

., ;¨ -/د­%ه

�©Iرت دوم ای%XP ل,EIاي آ,/ل¨ � MI0%ی¨ ,�TE; À6ار یi; ،if6Iی* ;¨ آ%nآ . BE-/A ��A%زي

*@�A ,رت زی/R � : XP%رت

if (b == true) …

Page 40: Java farsi

�©Iاي �/م ای �g� هB�O دل�[ ا�* . ، ی6i; Àار /ل¨ ا�* > از ج��O ، ، خ,وج¨ ه, r�OP, را

�Ç,وري ١٠<4٩,ا8EAهÇ%ي ا�Ç%\¨ �4,ا;Ç/ن ، tÇP �Çو5 . ا�true *Ç،10<9 آ� ÇXP ]ÇR%Z%رت

6IE@ه ، ,r�OP ا آ�,d"+" � *X@A"> "*خ/ردار ا�, .از اول/ی* %01,ي

{-�B ال ه�ي(�-�

1%OEZا ��mR 6ادP6 ، اIEÇ@ه %Çه �Ç;%A,یÀÇ ، ه6Çi; ,Çار 6ÇPدي آ%;6E; . ]ÇاولE,یA B/ع داد5 ه% در

� -O%ر ;¨ <ی6 ل�E,ال ��mR .6 �٢ و ٣ ،٢، ١IEÇ@ه ��mÇR ال ه%ي,Eل از ل�%W; 6Id . 6ادÇPم ا%ÇO0

 �4 �Eno ، 6IE@ل ه%Oدی, د��%i; ، ي%IX; 6د درP Àی ,rA%� %MA> از Àه, ی ¨IJ6 ١٠یÇ-% ¨Ç; . دو

,rي دی%IX; 6IE@د5 ه%nEا� ]%^ ��mR ال ه%ي,E8 در ل��A ، ل%Eي(اآ%IX;٨ ( ل%O8اد��rوه) ي%IX;

وجÇ/د nÇR, در �ÏÇd *OÇ ا6ÇPاد . ا6Eاي ا6Pاد اآE%ل ^Ç,ار ;Ç�o ¨Ç,د nR, در در ج%وا ر^] ). �١

*ÇÇ�%IJ; ¨ÇÇ �uXÇÇ 0/ل�6ÇÇ خbÇÇ�/0 %ÇÇg ٠٩;6ÇÇiار ÇÇ­ �ÇÇ%ه, در�ÇÇ* ، ایBÇÇ رو از .د�O�ÇÇ%ل ;ÇÇOJ/ل¨

6ÇÇ- 6ÇÇی�, خ/اه%ÇÇ�;%آ ، �ÇÇا آ,ÇÇdرج از٩%ÇÇدر خ %ÇÇ0 ,nÇÇR 56ودÇÇm;ار دارد ٧,ÇÇ^ ل%ÇÇEي . اآ%ÇÇIX; ÀÇÇی

,اي ا6Pاد ;/رد ا�nE%د5 ,E6اولE;زان%� �;%A, ، % ¨ه%ي "word" ه8rاد��O%ل ا�* آ� � خ/

i* دارد ، �*�� و٣٢ ،�١، ٨;tW ،٨;�,ب %g;.

;6mود5 ار^%م ه8rاد��O%ل از nR, 0% . در ا6Eاي <0x*�%MA، وج/د ;z?�� ا6Pاد ه8rاد��O%ل

١Ü*ا� Bای,%I ، A%0 F) %یa %0 f ( B8یr١ 0% ١٠ج%یÜ6A/- ¨; .

d/ن A/ع . �E¨ ه@٣٢6IE;6iار 6A/- ¨; ، ��mR آ� در ج%واint%ي ;/جu ای>%د ;6iارل�E,ال ه

;B©O ا�* از خ/د �,��6 آ� B©O; �A/rd ا�* ، ;�TE,ه% � -6ت در ج%وا آEI,ل ;¨ -/د ;6iار

} یÀ ل�E,ال%g0 6مP ي%gوز خ,� �%ی, داد5 ه%ي A/ع ��mR، از ^��mR ]�X را 6ون ،byte

%-6، ه�¥ خg%ی¨ ÇOA  �4¨ . 0?��� داد ، longی% 6�i; ع/A 56ودm; ال در,E6ار ل�i; Àی ¨E^و

Ç,اي . ، ��Ç�?0 داد longل�E,ال ��mR را هÇ0 ¨; �z�O/ان �Ç یÇ�TE; ÀÇ, هB�I�O، یÀ .<ی6 %Ç;ا

,اي آ%;�%ی�, ;z?� آ6�I آ� ;6iار <ن ل�E,ال از A/ع ، %یR 6,اlong%EZ ا�nE%د5 از یÀ ل�E,ال

long*ف . ا�,Z ا�%\� آ,دن%;6iار ل�E,ال اA>%م ;¨ ) �O* را�*(� اMEA%ي )lی% (LایB آ%ر

� IP/ان ;W%ل. -/د ،0X7ffffffffffffff %6ار 9223372036854775807 یi; Bی,Eo8ر ،

. ا�*longل�E,ال A/ع

Page 41: Java farsi

�)ال ه�ي ا.��ري -�

ایB ا6Pاد را ;¨ . % ?  اzP%ري ;¨ %-6Iا6Pاد اzP%ري % ;I- 8�O%ور، OA%ی%rA, ا6Pاد د��O%ل

� R/رت ا�6A%Eارد ی% % OA%د OA ¨O�P%ی  داد 0/ان . 3�Ç� و ]Ç;%6د آÇP ÀÇ6ارد، یA%EÇا� *Çل%Z در

?  اzP%ري و tP;* اzP%ر 8�A ,ی  داد5 ;¨ -/د در <خ%OA .

� IP/ان ;W%ل ، ١�١¾٣ ، ٠¾٢Ü���٧¾٠ ، ٩

، از ;6ÇÇiار در ÇÇOA%د ÇÇO�P¨.ر ÇÇR �ÇÇ/رت ا�6A%EÇÇارد ه@OA6IEÇÇ%یrA%ÇÇ, ا6ÇÇPاد اÇÇzP%ري IÇÇ- 8ÇÇ�O; %ÇÇ%و

ا�Ç* ، ا�nEÇ%دÇ; 5¨ 6P١٠د اzP%ري % ;IÇ- 8Ç�O%ور و6A/Ç@4ي آOA �Ç%یÇ0 ,rA%Ç/اA¨ از ، ا�6A%Eارد

� R/رت 0/ان .-/د E)%یe ( ÇnI; %Çی *Çا� *ÇXW; %Çی �Çد آ/Ç- ¨Ç; 5ی  داد%ÇOA ل%O�Ç6د د�ÇP ÀÇوی.

E23�¾٠٢٢ ،314159-05 2 وe+100A/OA 6Id 6IE@6اد هPا Bاز ای � .

,اي ل�E,ال اzP%ري % ;I- 8�O%ور ا�nE%د5 ;¨» د^* ;�%P£«در ج%وا � v/ر �4  \,ض از

,اي ;z?� آ,دن ل�E,ال ه%ي .-/دfloat ، 6ی% F %یf68ای�n� %MA> ي%MEAا �% ا\8Çودن . را D

ال�ÇEX اÇ<A%م ایBÇ آÇ%ر .�6Ç را Çv �Ç/ر ÇR,ی� ;Çz?� آ8�A double I;¨ 0/ا6Ç�A ل�ÇE,ال هÇ%ي dی%

*Çا� ¨\%Çض در. ا�,Ç\  �ÇÇ4double د �� از/Ç- ¨Ç; 5د%nEÇÇا� *Ç�درÇÇR/ر0¨ آ�Ç در ;ÇÇi%دی, ،

float د٣٢5 از%nEا� *� .;¨ -/د

i��� ال ه�ي(�-�

6IE@ر �%د5 ه%�@/ل¨ وج/د دارد. ل�E,ال ه%ي /ل¨ ¨igI; 6ارi; دو %MI0: true و false .,دی%i;

true و false 6A/Ç- ¨ÇOA ]6یÇX0 6ديÇP  ی%ÇOA �ÇA/o ¥�Çال .� ه,ÇEل�true %Ç ,Ç " ١" در جÇ%وا ,ا

�Afalse %Ç@* و ل�E,ال 8�A "٠" *Ç@�A ,Ç,ا . ]Ç�TE; �Ç,هÇ%ي Ç/ل¨ ^% %ÇMI0 وا%Çدی, در ج%Çi; BÇای

%-6I و ¨; ���?6 0IE@د5 ه%nEا� ] .ی% در XP%رM0%ي /ل¨ هO,ا5 % r�OP,ه%ي /ل¨ ^%

آ�)ي�-�)ال ه�ي آ�را

OÇ- �Ç%ر ;Ǩ <ی6ÇI ، آ%راآE,ه% در ج%وا 6Çآ ¨A/Çه%ي ی,Eآ%راآ �P/O<; 6آ3 ه%يIای . %Çه,Eآ%راآ ،

6ÇX0 ]Çی[ Ç/د5 و �١;i%دی,%^ ��mÇR 6ادÇPا �Ç[ "-"و "+"r�OP %Ç,هÇ%ی¨ Çd/ن �E¨ ه@6IE آ� %^

Page 42: Java farsi

O0%م . -/ده, ل�E,ال آ%راآE,ي در�iA [UtP B[ ^/ل OA%ی  داد5 ;¨ .;¨ %-6I ;6ی,ی* 4,دازش و

]ÇÇÇ%^ ¨©ÇÇÇي ا�%ÇÇÇه,Eآ%راآ %O�iEÇÇÇ@; ان/ÇÇÇ0 ¨ÇÇÇ; را *ÇÇÇرؤی *ÇÇÇ-/A ل/ÇÇÇ^ ]ÇÇÇiA [ÇÇÇUtP B�ÇÇÇ ;tWÇÇÇ ، در

’a’،’z’و’@’ . �Çآ [Çی¨ ه%Çه,Eاي آ%راآ,Ç %O�iEÇ@; 6IEÇ@�A BEÇ-/A ]Ç Ç0 ¨Ç;" escape/ان از ، ^%

sequence"د آ� ا;©%ن وارد آ,دن/OA 5د%nEا�

� ج%ي آ%راآiA *;tP ,E[ ^/ل 0©¨’\ "ي ;/رد �A%ز را \,اه] �%زد؛ ;tWآ%راآE,ه%.\n\’ ج%ي �

,Eج6ی6 آ%راآ ,g� ,rA%ی%OA. رت/R � ,Eآ%راآ À6ار یi; [�iE@; اي وارد آ,دن,;©%8�A;¨ ه]

,اي آ%راآE,ه%ي اآE%ل،از. ه8rاد��O%ل وج/د دارد اآE%ل ی% ’\ ’ 6Ç�Iوارد آ ¨ÇO^6د �� رP 3و��.

ÇÇÇ,اي ه8rاد�O�ÇÇÇ%ل 8ÇÇÇ�A. ا�OA ’a’*ÇÇÇ%یÇÇÇW;’\141’,rA%ÇÇÇ%ل، ÇÇÇIP �ÇÇÇ/ان’\u’، و [ÇÇÇ^ر ر%ÇÇÇMd 3�ÇÇÇ�

� IP/ان ;W%ل .-/د ه8rاد��O%ل وارد ; ،’\u0061’ ف,Z ،’a’ ي%Çه,Eآ%راآ �P/<; درISO-

Latin-1 *ی* ، ا�%\M,�* ایB . ه] یÀ آ%راآE, ژاI4¨ ا�*’ua432\’. ا�*d *@?A٠,ا آ�

.-56 ا�* zA%ن داد5 1آ%راآE,ه% در ج6ول

�5 اي �-�)ال ه�ي رش

6A/- ¨; �?z; ,rي دی%MA%% BE-/A یÀ �,ي- ل�E,ال ه%ي ر-�E اي در ج%وا ه�O/ن �Ez, ز

Enل ج/^ ]iA [UtP B�ÇW; 6Id%ل از ل�ÇE,ال هÇ%ي ر-�EÇ اي در ذیÇzA ]Ç%ن داد56Ç- 5 ، آ%راآE, در

.ا�*

"Hello Word"

" two\nlines"

"\"This is in quotes\""

Ç,اي ل�ÇE,ال هÇ%ي آÇ%راآE,ي "escape sequence " 8اد��O%ل و هr\^,ارداده%ي اآE%ل �Çه%ی¨ آ

[ ا�nE%د5 ا6A ، -56 اJ0 6A,ی£%^ 8�A اي �E-ال ه%ي ر,Eاي ل�,� هO%ن R/رت . �Çآ ¨ÇOM; �ÇE©A

%ی6 در%ر5 6�Iه%ي ج%وا 0/ج� آ �E-ز و ، ر%_> ,g� Àی6 در ی% �E-ر Bن ا�* آ� <ن ا�* آ� ای>

6I .ه�¥ �A/o آ%راآE, ادا;� خb در ایI>% وج/د 6Aارد tف ز%MA%ي دیr,،خ ,. خ�O0% ی%

ÇR �Ç/رت ،++C/Cاز ج��O هO%ن �A/o آ� ;¨ دا6�A،ر-�E ه% در ,خ¨ ز%MA%ي دیr,، : 0/ج�

. Ç@�A �A/o B* ا;% در ج%وا ای . از آ%راآE,ه% �4%د5 �%زي ;¨ -/6A <رای� اي Ç- �Ç^در وا %Çه �EÇ-ر

Page 43: Java farsi

6IE@ن. ه%Oآ� ه �A/o ، 6خ/اه�6 دی Ç- رت/ÇR �Ç، Ç�4%دÇ� 5%زي ;Ǩ آd 6ÇI/ن ج%وا ر-�E ه% را

.ه] ا�nE%د5 از <MA% <�%ن ا�* ;6ی,ی* ر-�E ه% دارد آ� ه] ^6ر6IO0 ه@6IE و ^%��ME%ي زی%دي ,اي

Escape Sequenceآ%راآE,ه%ي

Escape Sequenceح,-

Octal character (ddd) \ddd

Hexadcimal Unicod character (xxxx) \uxxxx

Single quote \’

Double quote \"

Backslash \\

Carriage return \r

New line (also known as line feed) \n

Form feed \f

Tab \t

Backspace \b

�t-)ه�

� و���� 0,آ�X¨ از یÀ. وا6Z 4%ی� ذخ�,5 �%زي در ,A%;� ه%ي ج%وا ه@�TE; ، 6IE,ه% ,�TE; ,ه

��%I- ، 6ارi; ع و/A 6 ) دل?/ا5( اول��A/- ¨; £ی,J0 . 5وtÇP �Ç، ه�TE; �ÇO,هÇ% داراي ;6Çmود5 و

. �Z%ت ه@6IE دور5 Ç[ ا�nEÇ%د6m; 5ود5 ه, ;z; ,�TE?� ;¨ آ6I آ� <ن ;�TE, در MEOÇ@^ �Çd%ی%^

.�Eno  �4 ,R%IP در ذی[ ,ر�¨ -56 ا6A .ا�*

�t-)ه� ش-�� ت\)ی� آ)دن

Page 44: Java farsi

-©[ آ�¨ J0,یÇ£ آÇ,دن ;�TE,هÇ% در ذیÇ[ . ه�TE; �O,ه% را %ی6 در ج%وا J0,ی£ و��3 � آ%ر ,د

:-56 ا�* <ورد5

type identifier [ = value][, identifier [ = value]… ];

type ا/A4¡ی, ج%وا ، ی©¨ از ا%A ع داد5 ه%ي 0>8ی� ، *Çا� bÇA%م ،A. identifier%م یÀ آtس ی% را

,ÇÇ�TE; *ÇÇا� . ,v ان از/ÇÇ0 ¨ÇÇ; را %ÇÇه,�TE; وي و%ÇÇ@0 *ÇÇ;tP ÀÇÇدن ی,ÇÇآ �?ÇÇz; {ÇÇی ÀÇÇ6ار، یÇÇi;

%-6�ÇÇ آÇÇXP ]ÇÇR%Z �ÇÇ%رت ;6ÇÇiارده¨ %ی6ÇÇi; 6ÇÇاري از هÇÇO%ن ÇÇA/ع 6ÇÇi; .�ÇÇارده¨ ÇÇOA/د �EÇÇ-دا,v%خ

6-% ,�TE; اي, 56- �?z;.

6�Iی£ آ,J0 ,wA ع ;/رد/A از ,�TE; Àاز ی  � �©A> اي, ، ,r6یÇ©از ی %Ç;%و���� آ �A%م <MA% را

6�I6 .ج6ا آÇ�Iآ �Çن 0/ج/o%ÇA/o ه%ي,�TE; £ی,J0 ل ذی[ از%W; 6Id � . %ÇMA> از ¨Çخ, �Ç6 آÇ�Iآ *Ç^د

. ه@6IE داراي ;6iار اول��

int a, b, c; // declares three ints, a, b, and c.

int d = 3, e, f = 5; // declares three more ints, initializing

// d and f.

byte z = 22; // initializes z.

double pi = 3.14159 // declares an approximation of pi.

char x = ’x’; // the variable x has the value ’x’.

6�Iب ;¨ آ%?EAه%ی¨ آ� ا ��%I- 6Ç-%�ÇzP/A ,rA%Ç%ن �Ç6 آÇA6ارA ن%z;%A 8ي در�d ، . ن%Ç©;وا ا%Çج

.ه, یÀ ازاA/اع داد5 ه% را � I- �A/o%�� ;¨ ده6 0?���

:%اردهi او�-5 پ�ی�

 �4 *O@^ ي%Mل%W; در �d,oد5 -56 ا�* ، ا%nE6ار اول�� ا�i; ان/IP � %ME ا;% ج%وا ا;©%ن ، از ث%

i;*8 \,اه] آ,د5 ا��A %MA> £ی,J0 در ز;%ن ,XEJ; ي%M0ر%XP و���� � .6ارده¨ 4/ی%ي ;�TE,ه% را

,A%;� آ/0%5 ذی[ 0/ج� آ6�I آ� v/ل و0, یU%Ç^ ��W; À] ال8اوی�Ç را ، � IP/ان ;W%ل � *Çدر د� %Ç

: ��� دی�X�%m; ,r ;¨ آ6I دا-BE دو

// Demonstrate dynamic initialization.

class DynInit {

public static void main(string args[]) {

Page 45: Java farsi

double a = 3.0, b = 4.0;

// c is dynamically initialized

double c = Math.sqrt(a * a + b *b);

system.out.println("Hypotenuse is" + c);

}

}

; �� %<Iدر ای¨�m; ,�TE )a، bوc (*ی£ -56 ا�,J0 .*@?A ,�TE; دو ،aو b ، *� و���� دو ث%

6ÇA6ارده¨ -56 اi; . %Ç;ا ،c د/Ç- ¨Ç; ¨Ç6ار دهÇi; ,Ç0ل و/Çv %Ç %Çر 4/ی/Çv �Ç ) ��Ç�^ د5 از%nEÇا� %Ç

).\�W%_/رث

،ا�nEÇ%د56Ç- 5 ا�Ç* آÇ�P �Ç/ي از آtÇس sqrt() در ,A%;� از ی©¨ دیr, از ;6ÇEه%ي 0/آÇ%ر جÇ%وا

Math 6ÇIآ ¨; �X�%m; ن خ/دش را%;/o6 و ج¡ر <ر-%�ÇE©A آ��6Çي ایBÇ آÇ%ر <ن ا�Ç* آ�Ç در . ;¨

از ، ;6iارده¨ ;¨ 0/ان از ه, �IP,ي آ� در ز;%ن ;6iار ده¨ ;XEJ, ا�* ا�nE%دÇOA 5/د XP%رت

.;�TE,ه% ي دیr, ی% ل�E,ال ه% ، ج6E; ��Oه%

�t-)ه� �%ود� د��-��i و دور� ح-�ت

%O0 ل%Z �، جÇ%وا ا;©Ç%ن ا;J0 . %Ç,ی56Ç- £Ç اmain 6ÇA() ، در ا6Eاي ;6E م ;�TE,ه%ي ^%[ ا�nE%د%05

<_Ç%ز و ’ }’ هO%ن �A/o آ� ;¨ دا�A] ه, �/ك %. ;�TE,ه% را در ه, �/آ¨ \,اه] ;¨ �%زد J0,ی£

�’ } ’¨; [Eك. -/د خ/�ه, %ر آ� �/ك ج6ی6ي ، از ایB رو. ، ;6mود5 اي را B��J0 ;¨ آ6I ه,

6�I6ود5 را <_%ز ;¨ آm; ، ه,. ج6ی6ي ای>%د ;¨ -/د Ç- 6 آ� آ6امIآ ¨; B��J0 56ودm; اي,Ç %Çه

[ رؤی*%^ �;%A, .دور�Z 5%ت <ن -¨ءه% B��J0 8�A ;¨ -/د. ه@6IE �%ی, ?Mz%ي

6IIی£ ;¨ آ,J0 6ود5 ه% راm; از ¨;/OP �Eدو د� ،,rي آ%;��/0,ي دی%MA%@�%ري از ز : ¨;/OP

6A *iار6Aا;. ;�m¨ و%g; اي د^�} ج%وا,o ¨- 6ل; % ¨� خ/ ¨O6ود5 ه%ي ^6یm; Bای ،% . �d,oا

، ا;Ç% ای>%د ;�TE,ه%ی¨ وج/د دارد آ� در MA%ی* � دا-BE ی6m; ÀودI; ¨;/OP 5>, ;¨ -/د ا;©%ن

OP/;%اA>%م ایB آ%ر Ç56 آ�ÇP%^ ÀÇی �ÇA 6 وÇی> ¨Ç; ر%OÇ- �Ç %IWEÇا� Àوا . ی%Çن ج%Çدو ;6Çmود5 ، در ز

�R6ود5 ه%ی¨ ¨اm; ، 6 وA/- ¨; £ی,J0 سtآ Àی b�/0 6 آ�IE@ه Àی b�/0 6ود5 ه%ی¨ آ�m; 8�A

6A/- ¨; £ی,J0 6E; .¨EZ *ا� ¨P/I�; 8 ^6ري�A 8ی%O0 Bس ا;% ، ایt6ود5 آm; ن/d ، B6یId ،

Page 46: Java farsi

� ,�mI; ¨o�\,د دارد آ� � ;6mودJ0 5,یbÇ�/0 56Ç- £Ç ی6ÇE; ÀÇ اÇOP%ل ÇOA¨ خ�/�R%ت و وی

6A/- Bر�6، ای ¨; ,wA � . O0%یiJ; 8/ل

Ç% <آÇ/1د Ç%ز <ن <_Ç%ز ;Ç- ¨Ç/د ، ;6mود5 اي آ� b�/0 ه, ;J0 6E,یÇ- ¨Ç; £Ç/د . 6ÇE; ن> ,Çoا %Ç;ا

%-6 4%را;E,ه%ی¨ �E-6 داA,�o ¨; 6 ^,ارE; 6ود5 <نm; 8 در�A %MA> ، .

� v/ر آ� 6A/- ¨; £ی,J0 56ودm; Àه%ی¨ آ� در ی ,�TE; ، در �Çی¨ آ%MEOÇ@^ اي,ÇخÇ%رج از ،

ÇÇ[ رؤیÇÇ^ ، *ÇÇ,ار دار6ÇÇA <ن ;6ÇÇmود5%^ )¨%�EÇÇ6) د�IEÇÇ@�A . ÀÇÇي را درون ی,ÇÇ�TE; ¨ÇÇE^رو، و BÇÇاز ای

6�Iی£ ;¨ آ,J0 56ودm; ، زی6 و%� ¨; ¨�m; و در وا^� <ن را ¨%�Eد� ]%i; ات <ن را در,Ç��T0 %ی

6�Iآ ¨; *w\%m; در. _�, ;>%ز *i�iZ 56ودm; B�Aاي ، 4%ی� و ، ^/ا,MA%ن �%زي را ا�%س 1زم

6Aاه] ;¨ �%ز,\.

6I-%ÇIP �Ç/ان ;ÇW%ل . ;6mود5 ه% ;B©O ا�* 0/در0/ 6Ç�Iآ ¨Ç; د%Ç<آ¨ را ای/Ç� �Çر آ%Ç ,Çدر ، ه ،

�ÇÇ^6 واÇÇ�Iآ ¨ÇÇ; د%ÇÇ<ی¨ را ای/ÇÇ06 0/درÇÇ6ود5 ج6یÇÇm; . ،¨ÇÇAو,�و^B�ÇÇId ¨ÇÇE اÇÇ; ¨^%ÇÇn0¨ ا\6ÇÇm; ،6ÇÇEود5

A6ود5 دروm; , . ;¨ �o,د را در 6یIJ; B%�* آ� - Bه% ای ÇAو,� ي J0,ی£ -56 در ;6mود5

]OJرال/Eاي د�,Ç/د ، 6ÇIخ/اه *Çرؤی ]Ç%^ ¨ÇA6ود5 دروÇm; دق . ه%ي%ÇR uÇ�g; BÇ3 ایÇ©P ،%Ç;ا

*ÇÇ@�A .¨ÇÇ- 6A/ÇÇ- ¨ÇÇ; £ÇÇی,J0 ¨ÇÇA6ود5 دروÇÇm; در �ÇÇی¨ آ%ÇÇه *ÇÇرؤی ]ÇÇ%^ ¨ÇÇAو,�ÇÇ,اي ;6ÇÇmود5 ،

/د 6Iاه/?A.

,اي درك 0¯ث�, ;6mود5 ه%ي 0/در0/ ,wA ذی[ را در �;%A,�r,ی6، :

// Demonstrate block scope.

class scope {

public static void main(string args[ ]) {

int x; // known to all code within main

x = 10;

if (x == 10) { // start new scope

int y = 20; // known only to this block

// x and y both known here.

system.out.println("x andy: "+ x + "" + y);

x = y * 2;

}

// y = 100; // Error! y not known here

// x is still known here.

system.out.println("x is" + x);

}

Page 47: Java farsi

}

J0,ی£ -56 ا�* main() در ا6Eاي ;6mود�TE; ،x 5, هO%ن �A/o آ� در m��/0%ت ;z?� ا�*

¨ ا�*main()آ[ د�E/رالOJ[ ه%ي درون و ,اي%�Eد� ] J0,یif,�TE;، y £Ç درون �/ك. ^%

�/ك ;�TE,ي J0,ی£ -56 ا�* d/ن. -56 ا�* Bدر ای ، ,�TE; ن> )y( ك خ/دش/�MI0% در هO%ن

[ رؤی* ا�* %^ . B�Oه � ,gÇ� �Çآ *Çدل�[ ا�y=100 Çدر خ �Ç;6ÇXل » ��Ç�/0 « %رج <ن �Ç/ك

Ç% خÇg%ي ز;Ç%ن آ%;�%یÇ[ ;/اج�Ç را» 0/��� « اOA ,o%د . -56 ا�* ،6Çداری, ,gÇ� 6اي <نÇEاز ا

[ رؤی* در �,ون ;6mود5 اش dy,ا آ� ، خ/اه�6 -6 %^)¨%�Eد� ( *Ç@�A . ك/Ç� ;Ç0 ¨Ç/ان if در

�ÇÇ/ك ÇÇd,ا آ�ÇÇ د�EÇÇ/رالOJ[ هÇÇ%ي درون یÀÇÇ ، ا�nEÇÇ%د5 آÇÇ,دx از ) ¨ÇÇIJی ، /ÇÇ06ود5 0/درÇÇm; ( �ÇÇ ،

¨ دار�TE; ، 6A,ه%ي J0,ی£ -56 در ;6mودg�m; 5¨ خ/د%�Eد�.

£Çی,J0 3 ازÇ4 %ÇMI0 %Çه,�TE; %Ç;د، ا,Çآ £Çی,J0 اي �ÇgiA ,Çه% را در ه,�TE; ك ;¨ 0/ان/�در ه,

]Ç/د -6ن ^% 6Iد5 خ/اه%nE6، در<ن . ا�Ç�Iآ £Çی,J0 6ÇE; ÀÇ6اي یÇEاز ایBÇ رو، اÇ�TE; ,Ço,ي را در ا

6E; ]رت در آ/R د/[ رؤی* خ/اه6 %^ . 6Ç�Iآ £Çی,J0 ¨آ/�در ، ا;% ا�TE; ,o,ي را در اMEA%ي

tOP رت/R ی56 <ن%\ ¨¨ A?/اه6 دا-* ، خ/اه6 /د %�Eن د�> � ¨�OJرال/Eا آ� ه�¥ د�,d . �Ç

�4  از J0,ی£ -6ن ^%[ ا�nEÇ%دdcount 5,ا آ� ;�TE, ، ا�* ، XP%رت زی, A%در�* IP/ان ;W%ل

*@�A:

// This fragment is wrong!

count = 100; // oops! cannot use count before it is declared!

int count;

6Ç�Iآ �Ç6 0/جÇی% 8Ç�A �ÇE©A Bای �هÇrI%م ;�TE,هÇ% هÇrI%م ورود 6Çm; �ÇودÇ- 5%ن ای>Ç%د ;6A/Ç- ¨Ç و :

,د6A/- ¨; 5 خ,وج از B�6ی6m; . *Ç�%IJ; Bود5 -%ن 8�A از B6ارش را ایÇi; ي,Ç�TE; ¥�Çه �Çآ

,ای�TE; B,ه%ی¨ آ� درون یJ0 6E; À,ی£ ;¨ -/6A. 34 از خ,وج از;6mود5 اش A?/اه6 دا-*%I

�B \,اخ/اA 6E; ¨A?/اه6I دا-* ، ;6iار-%ن را در ¨A%;ز ]Rا/\ . B�ÇI�Oه ، ÀÇدر ی �Çي آ,Ç�TE;

، ;6iار �/ك J0,ی£ ;¨ -/د

6Çm; �Çود5 اش . درا 34 از خ,وج از �/ك از د�* خ/اه6Ç دا ,Ç�TE; ,Çت ه%Ç�Z 5رو، دور BÇاز ای

�E@ا�TE; ,o,ي در J0 B�Z,ی£ ;6iار ده¨ -/د، در <ن R/رت ه, %ر � هrI%م ورود .ا�* وا

� <ن �/ك /A 6ارده¨ ;¨ -/د ، ازi; .ل%W; ان/IP ��r,ی6 ,wA 6ي را درJ �;%A, ، :

Page 48: Java farsi

// Demonstrate lifetime of a variable.

class LifeTime {

public static void main(string args[]) {

int x;

for (x = 0; x<3; x++) {

int y = -1; // y is initialized each time block is entered

system.out.println("y is :" + y); // this always prints -1

y = 100;

system.out.println("y is now : " + y);

}

}

}

,A%;� در ذی[ zA%ن داد5 -56 ا�* Bخ,وج¨ ای :

y is: -1

y is now: 100

y is: -1

y is now: 100

y is: -1

y is now: 100

6�I�. ;6iار ده¨ ;¨ -Ç/د -١ %for ، ,�TE;yه, %ر � هrI%م ورود � �i�Z ، هO%ن �A/o آ� ;¨

.;6iار ج6ی6 را از د�* ;¨ ده6، ا;% � <ن 0?��� ;¨ ی%١٠٠6<6i; 3�� �©Aار % وج/د

%-6IÇ، ا;Ç0 ¨ÇOA %Ç/ان ;Ç�TE,ي هÇIO%م Ç% ی©Ç¨ از : <خ,ی�E©A B و /Ç06 0/درÇIAك ه% ;¨ 0/ا/� �d,oا

� IP/ان ;W%ل. ;6mود5 �,وJ0 ¨A,ی£ آ,د ;�TE,ه%ي *@�A ,XEJ; ]ذی �;%A, ، :

// This program will not compile

class scopeErr {

public static void main(string args[]) {

int bar = 1;

{ // creates a new scope

int bar = 2 // compile time error – bar already defined!

}

}

}

casting و ت�%ی;

Page 49: Java farsi

6�Ç-% �EÇ-زي دا%Ç� �Ç;%A, �,<0 ,oدر<ن ا ، �ÇÇR/رت ;Ǩ دا6Ç�A آ��Ç�?0 �Ç یÇA ÀÇ/ع ;6Çiار

در <ن ÇR/رت جÇ%وا ، اo, <ن دو A/ع �%زo%ر %-6E; . 6IÇاول ا�* یA À/ع دی�TE; %EX@A ,r,ي از

�ÇIP �Ç/ان ;ÇW%ل . R/رت خ/دآ%ر اA>%م خ/اه6 داد 6X0 ]OPی[ را ÀÇی ��Ç�?0 ن%Ç©;ا �Çz�Oه ،

� ی6i; int ,�TE; Àار long م داد . وج/د دارد%O0 %;6 و اIEÇ@�A ر%oز%Ç� £Ç�E?; ي%Çرو، 5 ه BÇاز ای

B©O; ¨IO� ر/v �double �Ç، ه6ÇX0 ¥�Çی�¨ Ç,اي � ÇIP/ان �A . �ÇA/OA@* ه6X0 �Oیtت byte

*ÇÇ56 ا�ÇÇzA £ÇÇی,J0 .�A%E?XÇÇ-/خ [ÇÇز ه%ÇÇا;©ÇÇ%ن آ@uÇÇ روی�ÇÇ هÇÇ%ي 6ÇÇX0ی[ ÇÇ,اي اÇÇA/اع داد5 هÇÇ%ي ،

ا�nE%د5 آ6�I؛ 6X0ی[ R,ی� �B اA/اع "casting"از ,اي اA>%م ایB آ%ر %یA .6%�%زo%ر وج/د دارد

,ر�¨ 6X0ی[ خ/دآ%ر و . داد5 ه%ي A%�%زo%ر � ÀIایcasting[4,دازی ¨; .

ت�%ی1ت &�دآ�ر /�وا

6Ç%-6IÇ ، و^E¨ یA À/ع داد5 � ;�TE,ي از A/ع دیÇ; ��Ç�?0 ,r¨ ی% %Ç�M; ]Çذی bای,Ç- �Ç�A%Id ،

: خ/دآ%ر اA>%م ;¨ -/د 6X0 ]OPی[

.%زo%ر %-6I<ن دو A/ع � •

• 6-%8رEo, از A/ع ;6Xأ 6�i; ع/A.

6-%8رگ �%زي«، P/A¨ ه,o%5 ایB دو -,ط ,^,ار %� IP/ان . اA>%م ;¨ -/د» 6X0ی[ هO,ا5

,اي 6MrAاري ;i%دی, Aint/ع ، ;W%ل �z�Oه byte *8رگ ا�,ایB ا�nEÇ%د5 � ا6Aاز5 آ%\¨ %I ،

.ت 6Aارد � R/رت R,ی� �,ورcastingاز XP%رت

8رo@%زي « ,اي %، از ج��O ا6Pاد ��mR واÇzP%ري ، اA/اع داد5 ه%ي 6Pدي »6X0یtت هO,ا5

8ÇÇ�O; %ÇÇ 6IEÇÇ@ر ه%oز%ÇÇ� ,r6یÇÇ©ی %ÇÇ boolean یchar %ÇÇ، اÇÇA/اع داد5 هÇÇ%ي 6ÇÇPدي ÇÇ% ا;IÇÇ- .%ÇÇ%ور،

6IE@�A ر%oز%�. B�I�Oه ،charو boolean 6IE@�A ر%oز%� ,rی©6ی % .

byte ، و^E¨ ی6i; Àار ث%* ل�E,ال ��mR در ;�TE,ه%ي A/ع �4  از ای�Eno B -6 هO%ن �A/o آ�

،short %ی long6A/- ¨; 5,م ;¨ ده6 ذخ�%<A6ی[ خ/دآ%ر را اX0 ]OP [ز ه% .، ج%وا

�)اي ا��اع داد� ه�ي ����ز*�رcastingا�I�م

Page 50: Java farsi

6A/- ¨; �^6 وا�n; ت خ/دآ%رt6یX0 �d,oا %O0 تt6یX0 B6 ، ا;% ایAز%Ç� ¨ÇOA ف,Çv,. م �A%زه% را

?/اه�6 ی6i; Àار ;W%ل � IP/ان ,oا ،int ,�TE; Àی �، Ç; �Çd¨ آ6Ç�I؟ ��Ç�?0 ده�byte 6Ç را

ایÇA BÇ/ع . ا�int *Ç آE©d/Ç, از Çd ، byte,ا آ�Ç هÇ, خ/دآÇ%ر اÇ<A%م Ç- ¨ÇOA/د ای6ÇX0 BÇی[ Çv �Ç/ر

Çd ،int �Ç,ا آ6Çi; �Çار /دÇ- ¨Ç; 56Ç�;%A » هÇO,ا5 Ç% آ/Ç� ÀÇd%زي 6ÇX0ی[ « ، 6X0یtت o%ه¨ او^%ت

6�i; د 0% در/- ¨; ,E©d/ی� آ,R ر/v 6-%[ ذخ�,5 %^.

6Çم ده�%<Aر را ا%oز%�%A ع/A دو B�%ی6Ç از ,اي <6X0 �©Aی[ ،casting ]6یÇX0 ¨ÇIJ6، یÇ�Iد5 آ%nEÇا�

:-©[ آ�¨ اA>%م آ%ر � R/رت زی, ا�*. اA/اع داد5 ه% R,ی�

(target-type) value

target-type د/Ç- ]6یÇX0 ن> �Ç 6Çی% ,ÇwA رد/Ç; 6ارÇi; �Çآ *Çع داد5 اي ا�/ÇA 56IIآ �?z; ، . �Ç

int �ÇÇ ازcasting، در ÇÇXP%رت زیÇÇW; ]ÇÇOP ،,ÇÇ%ل ÇÇIP/ان byte د/ÇÇ- ¨ÇÇ; م%ÇÇ<A6ار . اÇÇi; �ÇÇ�A%Id

8رÇÇEo, از ��mÇÇR 56ودÇÇm;byte6ÇÇ-%6ÇÇm; ,ÇÇود5 [�ÇÇ@i0 {ÇÇی,v 6ارش ازÇÇi; ،byte *ÇÇد� �ÇÇ و

.;¨ -/د Àd<وردن %^�i0 56A%O@�] آ/

int a;

byte b;

// …

b = (byte) a;

��mÇR ع/ÇA ÀÇی �Ç، 6ÇX0ی[ �ÇA/o �Ç اي دیÇr, هrI%م 0?��� ی6i; Àار اzP%ري % ;IÇ- 8Ç�O%ور

,ش : اA>%م ;¨ -/د.

6Ç�Aآ� ;¨ دا �A/o ن%O6 هIEÇ@ري ه%ÇzPا *OÇ@^ 6Ç^%\ ��mÇR 6ادÇP6ار . ، اÇi; ÀÇی ¨ÇE^رو، و BÇاز ای

%� . A/ع ��mR 0?��� ;¨ ی%O@^ ،6* اzP%ري از د�* ;¨ رود;I- 8�O%ور � یÀ اzP%ري

� ی��mR ,�TE; À 0?��� ی%6 ٢٣/١;6iار ، اIP ,o/ان ;W%ل ]R%Z 6ارi; ، ،د ١/Ç . خ/اه6

,ش داد5 خ/اه6 -٢٣/٠6 . �EXال ,�TE; 6 آ� در-%8رEo, از <ن ]R%Z ��mR 6دP 56ازAا ,oا ،

� ;6mودA 5/ع ;6�i آ%ه  ;¨ ی%i;6 ، در <ن R/رت ;6�i ذخ�,5 -/د [�@i0 {ی,v 6ارش از.

�,A%;� ذی[ A 6Id/ع 6X0ی[ را zA%ن ;¨ ده6 آ� �A%ز casting6Aدار :

// Demonstrate casts.

class conversion {

public static void main(string args[ ]) {

byte b;

int i = 257;

double d = 323.142;

Page 51: Java farsi

system.out.println("\ nconversion of int to byte.");

b = (byte) i;

system.out.println("i and b" + i +" "+ b);

system.out.println("\ nconversion of double to int.");

i = (int) d;

system.out.println("d and i" + d +" " + i);

system.out.println("\ nconversion of double to byte.");

b = (byte) d;

system.out.println("d and b"+ d + " " +b);

}

}

: خ,وج¨ ,A%;� در زی, zA%ن داد5 -56 ا�*

conversion of int to byte.

i and b 257 1

conversion of double to int.

d and i 323.142 323

conversion of double to byte.

d and b 323.142 67

[�ÇIآ ¨Ç; ¨ر�, در 6Çi; 5,Ç�٢Ü٧ار جÇM* ذخ " casting"و^ÇOP ¨ÇE[ . ایÀI ه, یÀ از 6X0یtت را

,�TE; byteم ;¨ -/د%<Aا �<�EA ، [�@i0 56A%O�^% ،٢Ü٧, ٢Ü�) 56ودm; byte ( در �Çد آ/- ¨;

� یd ÀÇو^E¨ . ، یÀ ا�* ایW; B%ل int د/Ç- ¨Ç; ]6یÇX0 رود و ¨Ç; *Çري <ن از د�%ÇzPا *OÇ@^ ،

� [�@i0 56A%O�^% � . ا�*�٧ آ%ه  ;¨ ی%6 آ� در ایW; B%ل، �٢Ü;6iارش

ارت:�ء &�دآ�ر ا��اع داد� ه� در .��رت��

. در XP%ر6X0 ، : %ÇM0ی[ A/ع داد5 ه% در -,ایb دیr, ه] ;OEm[ ا�tP *Çو5 , ��OP%ت 0?���

,اي درك 6Çی,�r ,wA ل ذی[ را در%W; ،,;ا Bرات . دل�[ ای%ÇXP از ¨Çخ,، د^Ç; *Ç/رد Ç�A%ز در

¨<A%�; 6ارi; Àاي ی,� IP/ان ;W%ل، . 6A/�OPه% 0>%وز ;¨ آo6I%ه¨ او^%ت از ;6mود5 ی©¨ از

6�Iر�¨ آ, : XP%رت زی, را

Page 52: Java farsi

byte a = 40;

byte b = 50;

byte c = 100;

int d = a * b / c;

¨<A%�; ��Oج �<�EAa*b ع/A 6ه%يA/�OP 56ودm; از byte 6ÇIآ ¨Ç; وز%Ç<0 . BÇ6ی,ی* ایÇ; اي,Ç

�ÇÇA/o ]U%ÇÇ@; %ÇÇM0ر%XP ¨%ÇÇارزی B�ÇÇZ وا در%ÇÇ6 ، جÇÇA/�OP ، ع/ÇÇA ه%يbyte %ÇÇی short ر/ÇÇv �ÇÇ را

�6یIJ; B%�* آ� جA%�; ��O>¨. ارi0%ء ;¨ دهint 6خ/دآ%ر Bای a*bد5 از%nEا� % int ¨; م%<Aا

�A د و/-byte . از ¨<A%�; ��Oج �<�EA ،رو B�٠= ٢٠٠٠(ای* Ü٠ ( �Ç©Iوج/د ای % ¨EZaو b

. ، ;XEJ, خ/اه6 /د ه@byte6IEه, دو از A/ع

OP �d,o *6 ا��n; ء خ/دآ%ر%i08 [ ارÇ�A ]Çن آ%;�%ی%Ç;ي ز%Çgوز خ,Ç uÇج/; *Çا� BÇ©O; %Ç;ا ،

z/د .� �A/OA ان/IP د/- ¨; %gوز خ, uه, در�* زی, ;/ج%­ � : ، ;W%ل

byte b = 50;

b = b * 2; // Error! cannot assign an int to a byte!

,ÇÇXEJ; t;%ÇÇآ �ÇÇ<�EA ل%ÇÇW; BÇÇ٢در ای*Üدر ٠ *ÇÇار ا�,ÇÇ^ ,ÇÇ�TE; byte د/ÇÇ- 5,ÇÇن . ذخ�/ÇÇd %ÇÇ;ا

�Ç ارÇi0%ء ;Ǩ ی%int 6ÇIارزی%¨ ÇXP%رت Çv �Ç/ر خ/دآÇ%ر 6A/�OP �Çه% هrI%م 8Ç�A �Ç<�EA ،int

6Ç6Çون ا�nEÇ%د5 از ا�ÇXP �Ç<�EAint *Ç%رت آ�Ç از ÇA/ع از ایBÇ رو . ارi0%ء ;Ǩ ی% ، castingدر

byte *@�A ذخ�,5 �%زي ]* 0?���، ه�O/ن هW; B�O%ل، EZ¨ ا6i; ,oار در د� ایB ا;,. ^%

%ز ه] R%دق ،6-%[ ذخ�,5 %^ 6�i; ,�TE; ا�* در.

6ÇÇه¨ داری%Ço> 8ری,ÇÇ� ��fÇÇ@; uÇÇ^ا/P از �ÇÇآ ¨J^ا/Ç; در ]ÇÇOP 6 ازÇÇی% ،casting 5د%nEÇÇی� ا�,ÇÇR

:;W%ل زی, آ6�I؛ ه�O/ن

byte b = 50;

b = (byte) (b * 2);

. ا�*١٠٠آ� �EA>� <ن ;6iار ;XEJ, و در�*

-� ارت:�ء ا��اع داد� ه���ا�

Page 53: Java farsi

short �ÇÇ هÇÇ% وbyte جÇÇ%وا tÇÇPو5 ÇÇ, ارÇÇi0%ء %ÇÇهint در �ÇÇء دارد آ%ÇÇi0اي ار,ÇÇ، 6ÇÇIdیA%ÇÇ^ B/ن

� -,ح ذیÇ[ ه@XP 6A/- ¨; . 6IEÇ%رات رP%ی* B�Aا/^ Bای: �Ç©Iای *Ç@?A ,دی%Çi; م%ÇO0 ،byteو

short اي آ� �A/o � 6- �Eno � ، int 6ÇIی©Ç¨ از 6ÇA/�OPه% از ÇA/ع ، ا3�Ç� ,Ço . ارÇi0%ء ;Ǩ ی%

long6-% �%-6، در floatاo, ی©¨ از 6A/�OPه% از A/ع . ارi0%ء ;¨ ی%long 6، آ[ XP%رت

�%-double ،6Çی%6 و اo, ی©¨ از 6A/�OPه% از A/ع ارi0%ء ;¨float<ن R/رت آ[ XP%رت

. خ/اه6 /د�EAdouble>� ه]

,A%;� زی, zA%ن ;¨ ده6 آ� �A/rd ه %Ç0 د/Ç- ¨; 5ء داد%i0رت ار%XP دی, ;/ج/د در%i; از Àی ,

% 6-% �E-دا *i%g; 6A/�OP ,rن دی%;/oر>:

class promote {

public static void main(string args[ ]) {

byte b = 42;

char c = ’a’;

short s = 1024;

int i = 50000;

float f = 5.64f;

double d = .1234;

double result = (f * b) + (i / c) - (d * s);

system.out.println((f *b) + " + " + (i / c) +" - " + (d * s));

system.out.println("result = " + result);

}

}

%i0ر�¨ د^�} ار, � ÀIاع داد5 های/A4,دازی] ا ¨; �;%A, : % در ایg� B, از

double result = (f * b) + (i / c) - (d * s);

*@?A ��Oدر جb*f،b � float8�A ��Oج �<�EA 6 �3�Ç در جÇ- ¨; . �Ç�O/د float ارi0%ء ;¨ ی%

c/i ، c� int ع/A � 8�A ��Oج �<�EA 6 و ،3��s*d در ج6X0 . ��Oی[ ;¨ -/دint ارi0%ء ;¨ ی%

�6i; sار double 8Ç�A �Ç�Oع ج/ÇA 6 و ;Ç- ¨Ç/د و Ç%1خ,5 ای�Ç©I ایdouble �Ç� BÇارi0%ء ;¨ ی%

¨<A%�; 6ارi;float ،intو doubleر�¨ ;¨ -/د, . �<�EA float ÀÇو5 یtP � intو float

� MI; double%ي <خ,ی�EA 3��float B>� .خ/اه6 /د double �Ç<�EA ع/ÇA �Ç6 آÇ ارi0%ء ;Ǩ ی%

.¨ XP%رت ا�*MA%ی

Page 54: Java farsi

"رای5 ه�

ه, <رای�، o,وه¨ از ;�TE,ه%ي هIO/ع ا�* آ� ارج%ع � <MA% از v,ی} یA À%م ;Ez,ك R/رت

6ÇJي . ;¨ �o,د 6ÇId %Ç6ي یÇJ ÀÇ0 رت/ÇR �Çدر ج%وا ;¨ 0/ان <رای� ه%ی¨ از اÇA/اع ;?Ç�E£ را

<رای� ه% . ¨ ه@6IEه, یÀ از R%IP, ه, <رای� از v,ی} ای6Iآ3 خ/د-%ن ^%[ د��E%. ای>%د OA/د

6I-%� ه] ;¨ bX0,; ت%Ptv6ي اI,اي o,و5 ¨X�%I; روش.

% : 0/ج� ,oاC/C++6�-% u^ی¨ داری6،;,ا%I-> . ن در%Ç-د,©�OP %Ç�OP©,د <رای� ه% در جÇ%وا

.<ن ز%n0 %MA%وت دارد

"رای5 ه�ي تf �\%ي

6ÇJي « ه,<رای� ÀÇ0 « %Ç�%ع ا ، ا�/ÇIOي ه%Çه,�TE; از ¨EÇ�,M\ *Ç� . د%Ç<اي ای �Çرای> �Ç©A> اي,Ç

\,م آ�¨ J0,ی£ <رای� ه%ي À0 . آ6�I، ا6Eا %ی6 ی�TE; À, <رای� اي از A/ع ;/رد wA, ای>%د OA%ی�6

6Jي � R/رت زی, ا�*:

type var-name[ ];

type 6Iآ ¨; �?z; ع <رای� را/A %<I56 . در ایÇIده ]�©Çz0 ,ÇR%IP ÀÇع داد5 ی©%ی/ÇA ،ع <رای�/A

، A/ع <رای� ;z?� ;¨ آ6I آ� A �d/ع داد5 ه%ی¨ در <رای� از ایB رو. z?� ;¨ آ6I; <رای� را

6Iم . -6 ذخ�,5 خ/اه%A �� IP/ان ;W%ل، <رای� اي month-days ع/ÇA از int £Çی,J0 ,Çدر زی

:;¨ -/د

int month-days[ ];

وا^� هI/ز ه�¥ ;¨ -/د، ا;% در month-daysاJ0 �d,o,ی£ %1 ;/ج�TE; *�XW0 u, <رای� اي

;6iارده¨ ;¨ -/د، OA%ی%null ,rA آ� % month-days، <رای� در i�iZ*. <رای� اي وج/د 6Aارد

6ÇÇون �ÇÇرای> *ÇÇ6ار ا�ÇÇi; . �ÇÇ©A> اي,ÇÇmonth-days ��mÇÇR ,دی%ÇÇi; از ¨ÇÇ©اي \�8ی �ÇÇرای> %ÇÇ را

�month-days?0 ��ÇÇ ای>ÇÇ%د و <ن را ÇÇ� bX0,ÇÇ;new �ÇÇ%زی6، %ی@ÇÇ* <رای�ÇÇ را ÇÇ% ا�nEÇÇ%د5 از

.�w\%Z ا�* �، r�OP, وی�5 اي ,اي new��?0 .ده�6

Page 55: Java farsi

6Jي � R/رت زی, ا�*new \,م آ�¨ À0 اي <رای� ه%ي, :

array-var = new type [size];

type %ع داد5 ه/A 56IIآ �?z; ، size و �Çرای> ,R%IP 6ادJ0 56IIآ �?z; arry-var ,Ç�TE; ،

,اي <A©� از یIJ¨. آ� % <رای� ;,bX0 ;¨ -/د <رای� ا�* ، new 5د%nEÇا� �Çرای> ��Ç�?0 اي,Ç

%یA 6/ع و ،6�I6اد آJ0 6ی�%OA �?z; 6 راA/- 5ی6 0?��� داد%R%IP,ي آ� R%IP . �Ç,ي آ�

� <رای� new ���?0و���� 6I� v/ر خ/دآ%ر % 6i; ,nRارده¨ ;¨ -6A/Ç ;¨ ی% ، . BÇدر ای

. ;,bX0 ;¨ -/د��mRmonth-days و % �IP,ي از ا6Pاد١٢;W%ل یÀ <رای�

month-days = new int[12];

،1%� <رای� اي از 34month-days از اج,اي XP%رت ١٢ *Ç-ا-%ر5 خ/اه6 دا ��mR 6دP .

� 6- 6I6ارده¨ خ/اهi; ,nR % .tPوO0 ،5%م R%IP, <رای�

[�ÇÇIآ ¨Ç; ور,Ç; را �ÇÇEno  �Ç4 uÇل%g; ÀÇIاي : ای �Ç�Z,; 6 دوÇIی>,\ ¨P/ÇÇA �Çرای> ,Çد ه%Ç<ای*ÇÇا� .

�©Iای *@?A ، 6�Iی£ آ,J0 ,wA ي از <رای� ;/رد,�TE; 6ی%%یm; �w\%Z 6[ <رای� را . ،�©Iدوم ای

% ا�nE%د5 از new 6ده� *X@A رای�> ,�TE; � .0?��� ده�6 و<ن را

6ÇIاÇMn; ,Ço/م ��Ç�?0 4/یÇ% . ازایB رو، O0%م <رای� ه% در ج%وا � R/رت 4/ی% 0?��� ;¨ ی%

,ایE%ن %A %I->6�-%XA ان,rA ،*� .6- 6ر�¨ خ/اه, ]��n0 � .ایB ;/�/ع

6Ç�A0/ا ¨Ç; ¨ÇEZرا �34 از 0?��� <رای�، % ;z?� آ,دن ای6IآR%IP 3, در �B آ,و-�،

Àه, ی � 6�-% �E-دا ¨%�Eد� %MA> د . از/Ç- ¨Ç; ز%Ç_> ,nR م <رای� ه% از%O0 36آIان . ای/ÇIP �Ç

. 0?��� ;¨ دهR%IP month-days6, را � دو;�B ٢٨;6iار ;W%ل، XP%رت زی,

month-days[1] = 28;

.;¨ -/د) Md ,�IP%رم (g�٣, زی, ه] �OA uX%ی  ;6iار ذخ�,5 -56 در ای6IآO- 3%ر5

system.out.println(month-days[3]);

6Aد5 -56 ا,,A%;�، <رای� اي ;zE©[ از 6ÇJ0اد . O0%م ;g%ل�Eno  �4 u در ,A%;� زی, � آ%ر Bای

.ه, ;%5 ای>%د ;¨ آ6I ه%يروز

// Demonstrate a one-dimensional array.

class array {

public static void main(string args[ ]) {

int month-days[ ];

month-days = new int[12];

month-days[0] = 31;

month-days[1] =28;

Page 56: Java farsi

month-days[2] = 31;

month-days[3] = 30;

month-days4] = 31;

month-days[5] = 30;

month-days[6] = 31;

month-days[7] = 31;

month-days[8] = 30;

month-days[9] = 31;

month-days[10] = 30;

month-days[11] = 31;

system.out.println("April has" + month-days[3] + " days.");

}

}

6�Iرا اج,ا ;¨ آ �;%A, Bای ¨E^ی  ;¨ ده6 و%OA 6اد روزه%ي ;%5 <وری[ راJ0 ، . �Çآ �ÇA/o ن%ÇOه

6- �Eno ، ]Ç6اد روزه%ي ;%5 <وریJ0 Bای,%I ، ای6Iآ3 <رای� ه%ي ج%وا از nR, <_%ز ;¨ -/د،

mounth-days[3] %ا�*٣٠ی .

� 8�A 0?��� خ/د <رای� % : R/رت زی, وج/د داردا;©%ن 0,آ�J0 u,ی£ ;�TE, <رای�

int month-days[ ] = new int[12];

1% .، رو-¨ ا�* آ� OP/;% در ,A%;� ه%ي Z,\� اي ج%وا خ/اه�6 دی6 روش

\,<ی6I اA>%م ایB آ%ر -X%ه* زی%دي � . <رای� ه% را ;¨ 0/ان هrI%م J0,ی£ آ,دن، ;6iارده¨ OA/د

6Aاع داد5 ه%ي 4%ی� و �% رو/Aاي ا,,اي ایB آ%ر،. د5 دارداA>%م <ن �E-/A دو <آ/1د B�;i%دی,

. آ%;%ه%، ;i%دی, ÇR%IP, <رای�Ç را از ی©6Çیr, ج6Çا ;Ǩ آ6ÇII . ی©6یr, ج6ا ;¨ -/6A -56 و آ%;% از

�ÇÇÇÇv �ÇÇ/ر خ/دآÇÇ%ر �ÇÇاي <رای,ÇÇ �ÇÇي آ,ÇÇR%IP اي,ÇÇ ¨\%ÇÇي آ%ÇÇ�\ %ÇÇ0 د/ÇÇ- ¨ÇÇ; د%ÇÇ<اي ای �ÇÇA/o

6�Iآ ¨; �?z; 6ارده¨ اول��i; وج/د ، �E-د5 از. %-6دا%nEا� � . �Anew*@�A%زي

� IP/ان ;W%ل 6Ç�Iآ �?z; 5%; ,اي ه,، ;ÇW%ل زیÇ, <رای�Ç اي از ، ,اي <6J0 �©Aاد روزه% را

: ��mR ای>%د و % 6J0اد روزه% ;6iارده¨ ;¨ آA 6I/ع ا6Pاد

// An improvied version of the previous program.

class AutoArray {

public static void main(string args[ ]) {

int month-days[ ] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31,

30, 31 };

system.out.println("April has" + month-days[3] + " days.");

Page 57: Java farsi

}

}

6�I1 را اج,ا ;¨ آ% �;%A, ¨E^ل �4  از <ن را خ و%W; ¨ن خ,وج%Oاه�6 دی6، ه/.

ا^6ام � ذخ�,i; 5%دی, در خ%رج از ;6mود5 <رای� 6Ç�I©A و ا � -6ت آEI,ل ;¨ آ6I آ� �0%د\% ج%و

%MA> �%-�6 ی% �E-6اA د آ� . ارج%ع/- ]R%Z ن%I�Ov6 0% اIل ;¨ آ,EIز;%ن اج,اي ج%وا آ [E@��

ÇIP �Ç/ان ;ÇW%ل . <رای� در ;6mود5 <ن ^,ار دارO0 6ÇA%م ای6Iآ3 ه%ي EÇ@�� ، وا%Çاي ج,Çن اج%Ç;ز [

را آEI,ل ;¨ آ6I 0% اI�Ov%ن R%Z[ -/د آ� O0%م 6i;mounth-daysار ه, یÀ از ای6Iآ3 ه%ي

ÇÇR%IP �ÇÇ, خÇÇ%رج از ;6ÇÇmود5 <رایÇÇ^ . �ÇÇ,ار دار١١6ÇÇA <ÇÇMA% در ÇÇ%ز5 @nÇÇR �EÇÇ, و 6ÇÇاه�/? ,ÇÇoا

6�ÇÇ-% �EÇÇ-دا ¨%�EÇÇد� ) �ÇÇل <رای/ÇÇv از ,ÇÇEo8رÇÇ% خÇÇg%ي ز;ÇÇ% )ا6ÇÇPاد ;ÇÇnI¨ یÇÇ% ا6ÇÇPاد ، �ÇÇن ;/اج

.خ/اه�6 -6

6Iد5 ;¨ آ%nE6ي ا�J À0 رای�> Àآ� از ی ,rل دی%W; À6اد . یPاي از ا �P/O<; B�rA%�; �;%A, Bای

:;�X�%m ;¨ آ6I را

// Average an array of values.

class Average {

public static void main(string args[ ]) {

double nums[ ] = {10.1, 11.2, 12.3, 13.4, 14.5 };

double result = 0;

int i;

for(i =0; i < 5; i++)

result = result + nums[i];

system.out.println("Average is" + result / 5);

}

}

"رای5 ه�ي چ�% �\%ي

6Jي در ج%وا، <رای� اي ا 6Id 6 <رای� ه%يIE@6 . ز <رای� ه% هÇId ي%Çه �Çن <رای/�Oرای� ه% ه> Bای

6Jي 6Iر� ¨; ,wA �. ا;%، هO%ن �A/o آ� خ/اه�6 دیÇn0 6ÇId ،6%وت جÇU8¨ وجÇ/د دارد . ;OJ/ل¨

,ÇÇ�TE; �ÇÇ©A> اي,ÇÇ �ÇÇ-دو آ,و B�ÇÇ6ÇÇJي را J0,یÇÇ£ آ6ÇÇ�I، هÇÇ, یÀÇÇ از ای6ÇÇIآ3 هÇÇ% را 6ÇÇId �ÇÇرای>

� IP/ان ;W%ل. I/ی@�6 Àرت زی, ی%XPم ، در%A � . J0,ی£ -56 ا�*twoD<رای� دو 6Jي

Page 58: Java farsi

int twoD[ ] [ ] = new int[4] [5]

;Ç%0,ی3 ;8Ç/ر . X@A* ;¨ دهtwoD 6 را 0?��� داد5 و <ن را ��×XP Ü%رت %1 یÀ <رای�

٣-١ایBÇ <رای�Ç هÇ�O/ن -Ç©[ . �4%دÇ� 5%زي ;Ç- ¨Ç/د int<رای� اي از <رای� ه%ي A/ع � R/رت

.خ/اه6 /د

Ç4 �Ç%ی�OÇ- B%رÇo 5¡اري 1%Ç� را�Ç* و از Ïd رای� را از> Bای ,R%IP از Àزی,، ه, ی �;%A,

: و��3 <ن ;i%دی, را OA%ی  ;¨ دهOA 6/د5

// Demonstrate a two-dimensional array.

class TwoDArray {

public static void main(string args[ ]) {

int twoD[ ] [ ]= new int[4] [5];

int i, j, k = 0;

for(i=0; i < 4; i++)

for(j=0; j < 5; j++) {

twoD[i] [j] = k;

k++;

}

for(i=0; i < 4; i++) {

for(j=0; j < 5; j++)

system.out.print(twoD[i] [j] + " ");

system.out.println( );

}

}

}

� -©[ زی, ا�* �;%A, :خ,وج¨

0 1 2 3 4

5 6 7 8 9

10 11 12 13 14

15 16 17 18 19

6Çده� ¨Ç; ���?0 6يJ 6Id رای�> Àی �6ÇJ اول و^�w\%Z ¨E اي را �Çw\%Z %ÇMI0 *Çا� ¨\%Çآ ،

)Ïd *O� B6) 0,ی�Iآ �?z; 0?��� ده�6. را �A%oر ج6ا/v � 6�Aرا ;¨ 0/ا ,r6ي دیJ . �

6J اول ، در IP/ان ;W%ل �w\%Z ،,رت زی%XPtwoD6� هrI%م J0,ی£ <رای� 0?��� ;¨ ی% .

6J دوم � v/ر �w\%Z 6 .د�E¨ 0?��� ;¨ ی%

Page 59: Java farsi

int twoD[ ] [ ]= new int[4] [ ];

twoD[0] = new int[5];

twoD[1] = new int[5];

twoD[2] = new int[5];

twoD[3] = new int[5];

;z?� آE� 56II/ن ه@6IE ، %ي �O* را�*ای6Iآ3 ه

،Ïd *O� 6آ3 ه%يIای

,g� 56IIآ �?z;

6IE@ه

[3][0] [3][1] [3][2] [3][3] [3][4]

int twoD[] [] = new int[4] [5]; �©Iض ای,\ % :

6J دوم <رای� ه% ه�¥ ;8ی6A ¨Eارد �A%oل 0?��� ج6ا%W; Bدر ای �d,oا <Aر در ، ا;% ا%Çآ Bم ای%

b6 -,ای-% 6I;ا�* �/د B©O; ,rل . دی%ÇW; ان/IP � ¨EÇر د�/Çv �Ç، و^ÇE¨ اÇJ%د <رای�Ç هÇ% را

,اي ه, یÀ از اJ%د A?/اه�6Ç دا-Ç* ، 0?��� ;¨ ده�6 ,�IP 6ادJ0 ن%O0?��� ه �. �A%ز

�Eno Bآ� �4  از ای �A/o ن%O6ي دروا^� <رای� ه -6 هJ 6Id آ� <رای� ه%ي %<A> ی¨ از <رای� ، از%

6IE@ل ه% ه,EIآ *m0 ل ه, <رای�/v ، *�%O- .ل%W; ان/IP �,A%;� زی, یÀÇ <رای�Ç دو 6ÇJي ،

.;@%وي 6IE@�A ای>%د ;¨ آ6I آ� در <ن ا6Aاز5 ه%ي 6J دوم

// Manually allocate differing size second dimensions.

class TwoDAgain {

public static void main(string args[ ]) {

int twoD[ ] [ ]= new int[4] [ ];

twoD[0] = new int[1];

twoD[1] = new int[2];

[0][0] [0][1] [0][2] [0][3] [0][4]

[1][0] [1][1] [1][2] [1][3] [1][4]

[2][0] [2][1] [2][2] [2][3] [2][4]

Page 60: Java farsi

twoD[2] = new int[3];

twoD[3] = new int[4];

int i, j, k = 0;

for(i=0; i < 4; i++)

for(j=0; j <i+1; j++) {

twoD[i] [j] = k;

k++;

}

for(i=0; i < 4; i++) {

for(j=0; j <i+1; j++)

system.out.println( );

}

}

}

: خ,وج¨ ,A%;� در ذی[ zA%ن داد5 -56 ا�*

0

1 2

3 4 5

6 7 8 9

.<رای� اي آ� � و���� ,A%;� ای>%د ;¨ -/د � R/رت -©[ زی, ا�*

[0][0]

[1][0] [1][1]

[2][0] [2][1] [2][2]

[3][0] [3][1] [3][2] [3][3]

6Jي _�, ;OJ/ل 6Id د5 از <رای� ه%ي%nEا� )[wI;%A %ی ( B©O; ي%Çه �Ç;%A,ا�* Ç,اي @�Ç%ري از

6Jي در ,A%;� ه% خtÇف اÇwEA%ر آÇ%ر,ان ;XA u�%I%-6 آ%ر,دي 6Id ا آ� وج/د <رای� ه%ي,d ،

Çv �Ç/ر آ%ر<;6Çي وج/د % ایB . خ/اه6 /د bای,Ç- از ¨Çخ,، <رای�Ç هÇ%ي BÇ©O; [wI;%ÇA ا�Ç* در

6A,�o د5 ^,ار%nEرد ا�/; .�%-�6 آ� ، ا�A ,o%ز � <رای IP/ان ;W%ل �E-دا ¨o8ر� دو 6Jي @�%ر

,خ¨ از 6i; %MA> ,R%IPار %MI0 6I-% �E-دا ) ¨IJد5 ی%nEÇرد ا�/Ç; ش,ÇR%IP م%ÇO0 �Çاي آ �Çرای> ،

6I-%XA ( [wI;%A رت <رای� ه%ي/R 6 ، در <نIر ;¨ <ی%O- � .راZ 5[ آ%;�¨

Page 61: Java farsi

66Jي ه] ;�@, ا�* Id 6ارده¨ <رای� ه%يi; .%آ%ر، آ Bم ای%<Aاي ا, Àدی, اول�� ه, ی%i; *ا� ¨\

در ,�Ç;%A زیÇ, ;%0,ی@Ǩ ای>Ç%د ;Ç- ¨Ç/د آ6Çi; �Çار ه,Ç�IP,، . اJ%د را �B دو <آ/1د I/ی@�6 از

%-6�Ç آtÇP �Çو5 Çi; ,Ç%دی, . �E/ن ا�* ای6Iآ3 ه%ي �g, و R%Z[ �,ب �EÇ-دا �Ç0/ج B�ÇI�Oه

,اي ;6iارده¨ اول�� ا�nE%د5 ، از جtOت جX,ي ل�E,ال 6�A8 ;¨ 0/ا�A6�Iآ .

// Initialize a two-dimensional array.

class Matrix {

public static void main(string args[ ]) {

double m[ ] [ ] = {

{ 0*0, 1*0, 2*0, 3*0 },

{ 0*1, 1*1, 2*1, 3*1 },

{ 0*2, 1*2, 2*2, 3*2 },

{ 0*3, 1*3, 2*3, 3*3 }

};

int i, j;

for(i=0; i < 4; i++) {

for(j=0; j <i+1; j++)

system.out.print(m[i] [j] + " ");

system.out.println( );

}

}

}

,A%;� را اج,ا ; Bای ¨E^6و�Iخ,وج¨ ذی[ را خ/اه�6 دی6 ¨ آ ،:

0.0 0.0 0.0 0.0

0.0 1.0 2.0 3.0

0.0 2.0 4.0 6.0

0.0 3.0 6.0 9.0

6�I�، ه, �g, از <رای� � �A/o اي آ� در \Çi; *�,M%دی, اول�56Ç- �?Çz; �Ç هO%ن v/ر آ� ;¨

.;6iار;¨ �o,د ، ا�*

,ر�¨ W; 6Id%ل دیr, از آ%ر,د <را � ÀIدازی] ای,Ç4 ¨Ç; 6يÇJ 6ÇId ي%Çی� ه . ÀÇی ,Çزی �Ç;%A,در

6Jي <رای� �� Ü×�×ن . ای>%د ;¨ -/د ٣%ÇOدر ه ,Ç�IP ,Çي ه%Ç6آ3 هÇIب ای,Ç� ]R%Z 3��

OA %M%ی  داد5 ;¨ -/د در MA%ی* و �IP, ذخ�,5 ;¨ -/د,� ]R%Z Bای ،.

// Demonstrate a two-dimensional array.

Page 62: Java farsi

class ThreeDMatrix {

public static void main(string args[ ]) {

int threeD[ ] [ ] [ ] = new int[3] [4] [5];

int i, j, k;

for(i=0; i <3; i++)

for(j=0; j <4; j++)

for(k=0; k < 5; k++)

threeD[i] [j] [k] = i * j * k;

for(i=0; i <3; i++) {

for(j=0; j <4; j++) {

for(k=0; k < 5; k++)

system.out.print(threeD[i] [j] [k] + " ");

system.out.println( );

}

}

}

� -©[ زی, خ/اه6 /د �;%A, : خ,وج¨

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

0 1 2 3 4

0 2 4 6 8

0 3 6 9 12

0 0 0 0 0

0 2 4 6 8

0 4 8 12 16

0 6 12 18 24

ن "رای5 ه�روش دی�)ي �)اي ت\)ی� آ)د

: از روش دیr,ي 8�A ;¨ 0/ان ,اي J0,ی£ آ,دن یÀ <رای� ا�nE%د5 آ,د

Page 63: Java farsi

type[ ] var-name;

.، آ,و-� ه% 34 از ;A ��?z/ع <رای� ^,ار ;¨ 6A,�o و A �A%م ;�TE, <رای� در ایB روش

int a1 = new int[3];

int a2 = new int[3];

6IE@دل ه%J; 8�A ]ری£ ذی%J0:

char twod1[ ] [ ] = new char[3] [4];

char[ ] [ ] twod2 = new char[3] [4];

B6یId 8;%نO6 ا�* آ� ه�n; ¨J^اي ;/ا, :;tW. <رای� هIO/ع J0,ی£ ;¨ -/6AایB روش

int[ ] nums, nums2, nums3; // create three arrays

ل Ç%1 هÇ�O/ن ÇXP%رت زیJ0 . %ÇW; �Ç<�EA ,Ç,ی£ ;¨ آXPint 6ÇI%رت �TE; �� 1%, <رای� اي از A/ع

: ا�*

int name[ ], name2[ ], nume3[ ]; // create three arrays

,اي ;z?� آ,دن یÀ <رای� � IP/ان ;6iار R%Z[ از ی6�n; 6E; À ا�* B�I�Oروش ه Bای .

�5 در��ر� رش�5 ه��� %� چ

6�Ç-% 56Ç- �Çج/E; *Çا� BÇ©O; �Çآ �ÇA/o ن%ÇOو ه %Çاع داد5 ه/ÇAا �ÇZ%X; در ، ¨ÇÇX�g; ¥�Çه %Çه �Çرای>

�E-ر5 ر%دل�Ç[ ایuÇ�g; BÇ <ن ا�Ç* آ�Ç جÇ%وا از g; . B�ÇId,ح string 6ÇzAه% ی% داد5 ه%ي A/ع در

OA ¨A%X�Ez4 ¨P/A 6Iل -آ/OJ; ]©- � �A �EXاي ج%وا . ال �E-ا;, <ن ا�* آ� داد5 ه%ي ر *�J^وا

-OÇ%ر ÇOA¨ <ی6ÇI و هÇv B�ÇO/ر، ، ی©¨ از اA/اع داد5 ه%ي 4%ی� و �Ç%د5 string¨; 56�;%A 6A/- �Ç آ�

� 8�A %ه,E6 <رای� اي از آ%راآIی> ¨OA ر%O- .¨- ض/P در �©�%-6I و ارا�U -,ح آ%;�¨ از ¨;

ایA B/ع داد5 ه% % -¨ءه%�* ، ;@8�Eم <-I%ی bX0,; ه%ي ¨o�,خ¨ از وی % .u�0,0 B6ی BÇای ،

Ç,اي % ایB وجÇ/د . /اهo 6,\*ه% ;/رد ,ر�¨ ^,ار خ -¨ ;/�/ع در <ی56I و 34 از ,ر� ،

�E-از ر �A/OA ه%ي �;%A,E/ا6�A در �©A> �Uارا %<Iذی[ در ای �Rt6، -,ح خ�Iد5 آ%nEه%ي �%د5 ا�

.-56 ا�*

Page 64: Java farsi

هB�I�O ;¨ 0/ا6�A <رای� هÇ%ي . ,اي J0,ی£ آ,دن ;�TE,ه%ي ر-�E اي ا�nE%د5 ;¨ -/د stringاز

�E-6 ر�Iی£ آ,J0 اي . اي را �E-ي ر%ME آ� �iA [UtP B[ ^/ل 6A/- ¨; �E-/A را ;Ç0 ¨Ç/ان �Ç ث%

را ;¨ 0/ان � �%ی, ;�TE,هÇ%ي ÇA/ع �TE;string,ه%ي A/ع . 0?��� داد Astring/ع ;�TE,ه%ي

string ع . 0?��� داد/A ءه%ي¨-stringن در%;/oان <ر/IP �� println() را 8�A ;¨ 0/ان

� دو XP%رت زی IP/ان ;W%ل �. آ%ر ,د ،6�I0/ج� آ ,:

string str =" this is a test";

system.out.println(str);

str ع/A از ¨f�- %<Iدر ای string�E-ا�* آ� ر "this is a test" 6� <ن 0?��� ;¨ ی% . BÇای

�E-رت ر%XP و���� �()printlnی  داد5 ;¨ -/د%OA .

�5 اي در��ر� ����5 روه� �)اي �)�� 5 ��زان ��C/C++

�Ç,<0 %%-6�Ç، در <ن ÇR/رت ;Ǩ دا6Ç�A آ�Ç ایBÇ ز%ÇMA% از C/C++ �A%ÇzA اo, از ,A%;� �%زان

دل�[ ایBÇ ا;Ç� ,Ç%د5 . ا;%، در ایI>% ه�¥ ا-%ر5 اي � �A%zA روه% 56zA ا�* . A%X�Ez4¨ ;¨ آ6II روه%

ÇXP �Ç%رت در�Ç* یÇ% ( از �A%zA روه% OA ¨A%X�Ez4¨ آ6I و ا�nE%د5 از <MA% ;>%ز �A@* ج%وا : ا�*

�A%zA 6 0,، ج%وا ازIÇ-% ,Ç��T0 %Çی ¨%�EÇد� ]Ç,Ç� �Ç;%A%زان ^% bÇ�/0 روه%ی¨ آ� ¨ÇOA ¨A%X�EÇz4 ،

6I6 از). آA0/ا ¨OA ه%ي ج%وا ا;©%ن ج%وا �;%A, ��A%zA روه% A%X�Ez4¨ آd ،6I,ا آ� اA>%م ایB آ%ر

b�m; B�%-6�Ç آOA ) �Ç%ی6Iاج,اي ج%وا وآ%;��/0, ;�8%ن اج,ا ;¨ ده%0 6 -©%\¨ �E-دا ,v%خ �

� ه, <در� 6IAروه% ;¨ 0/ا �A%zA *ا� B©O; درس ه%ی¨ آ�> ¨EZ 6I-% �E-ارج%ع دا �w\%Z از

6I-% ). خ%رج از ��@E] ز;%ن اج,اي ج%وا

� v/ر E@o,د5 اي از �A%zA روه% ا�nE%د5 ;¨ آBÇ©O; ،6II ا�Ç�0 B�ÇId *Ç/ر آdC/C++ 6Ç�I/ن

,اي ج%وا � -O%ر ;¨ <ی6 د�* دادن <A آ� از ¨M0/ج ]جÇ%وا �Ç . ا;% ایM . *Ç@�A �A/o B%، ای,اد ^%

v,اZ¨ -56 ا�* آ� 0% و^E¨ در ;6mودb�m; 5 اج,ا 6�A%O،ه���A 5%r%ز �Ç ی�A%ÇzA ÀÇ رو �A/o اي

. و از آ%ر,د <MA% �/دي A?/اه�6 ,د A?/اه�6 دا-*

Page 65: Java farsi

.�,�)ه�

G>� وی� ای���.:

�OPL%@Z 7%ه,r

LE� r�OP,ه7%

LE� LigI; 7%ه,r�OP

r�OP,ه%7 را�g ا7

Lل/ LigI; 7%ه,r�OP

���?0 ,r�OP

r�OP, ؟

,r�OP 6مi0

8EAد 4,ا, +%ر

Page 66: Java farsi

(�,�.

5 زی, i0@�] آ,د �r�OP ,Ez,ه%ي <ن را ;¨ 0/ان � Md%ر o,و. ج%وا r�OP,ه%ي _I¨ زی%دي دارد

: iwI; اي و �g�E¨ ، را ، ¨%@Z . 5 را�Çوی bای,Ç- �Çدارد آ ¨\%Çا� ,Çr�OP 6Id B�I�Oج%وا ه

6II6ی,ی* ;¨ آ;.

�z: 0/ج� E ي%MA%ا;% n0%وM0%ي جU8¨ ه] . آ%ر ;�©r�OP ,C#/C++/C6II,ه% در ج%وا ه�O/ن ز

.وج/د دارد

i��ه�ي ح�(�,�.

� هO%ن R/ر ¨%@Z ه%ي,r�OP 5د,Ç� آÇ%ر ¨%@Z تtOآ%ر ;¨ رود ، در ج � ,X0¨ آ� در ج

6A/- ¨;.

,r�OP �<�EA

+ QR

- STUVW

UYب *

/ Z[\]W

% Z[\]W _`abc[dbe

++ fTاhiا

+= j[kl و QR

=- j[kl و STUVW

*= j[kl ب وUY

/= j[kl و Z[\]W

%= j[kl و _`abc[dbe

-- fهbآ

r�OP 6ه%يA/�OP 6I-%%ی6 از A/ع 6Pدي ¨%@Z ع . ,ه%ي/ÇA ي%Çداد5 ه %Ç<MA% را OA¨ 0/ان هO,ا5

Boolean ع/ÇA ي%Çروي داد5 ه ,Ç� آ%ر ,د ، ا;% ;¨ Ç0/ان char ن/Çd ، د,Ç�Ç آÇ%ر char در

�P/O<;,ج%وا ا�%�% زیint6-% ¨; .

Page 67: Java farsi

.�,�)ه�ي ح���i پ�ی5

¨ 4%ی� %@Z ه%ي,r�OP–�@i0 ،ی}، �,ب,n0 ،�Oاي داد5 –] ج, هO%ن �A/o اي OP[ ;¨ آ6II آ�

�Ç . یÀ \,م یrA%r¨ دارد آ� 6A/�OP %MI0ش را ;Ç; ¨nI¨ آr�OP"- " 6ÇI, . ه%ي 6Pدي اwEA%ر داری6

[�@i0 ,r�OP ¨E^6 آ� و�-% �E-دا ,v%خ (/) ]ÇR%Z ، د/Ç- ¨Ç; 5د,Ç�Ç آÇ%ر ��mÇR ي%Çداد5 ه %

?  اzP%ري خ/اه6 /د 6^%\ [�@i0.

¨ را zA%ن ;¨ ده6,A%;� �%د%@Z ه%ي,r�OP ، ,6اد . 5 زیPا [�@i0 B�,A%;� هn0 B�I�O%وت Bای

.��mR و i0@�] ا6Pاد اzP%ري را zA%ن ;¨ ده6

// Demonstrate the basic arithmetic operators.

class BasicMath {

public static void main(String args[] ){

// arithmetic using integers

System.out.println("Integer Arithmetic");

int a = 1 + 1;

int a = a * 3;

int a = b / 4;

int a = c - a;

int a =- d;

System.out.println("a = " + a);

System.out.println("a = " + b);

System.out.println("a = " + c);

System.out.println("a = " + d);

System.out.println("a = " + e);

// arithmetic using doubles

System.out.println("\nFloating Point Arithmetic");

double da = 1 + 1;

double db = da * 3;

double dc = db / 4;

double dd = dc - a;

double de =- dd;

System.out.println("da = " + da);

System.out.println("db = " + db);

System.out.println("dc = " + dc);

Page 68: Java farsi

System.out.println("dd = " + dd);

System.out.println("de = " + de);

}

}

6J از اج,اي ,A%;� خ,وج¨ � R/رت زی, ا�* :

integer Arithmetic

a=2

b=6

c=1

d=-1

e=1

floating point arithmetic

da=2

db=6

dc=1.5

dd=-0.5

de=0.5

�,�) ���-���%� ت:�-�.

، [�@i0 56A%O�^% ,r�OP%6Aدا,r�;,ایr�OP B, را ;¨ 0/ان ه] ,اي . ، %^�[�@i0 ]OP 56A%O را

� آ%ر ,د ��mR اع داد5 ه%ي/Aاي ا, .ا6Pاد اzP%ري % ;I- 8�O%ور ، و ه]

// Demonstrate the % operator.

class Modulus {

public static void main(String args[] ){

int x = 42;

double y = 42.3;

System.out.println("x mod 10 = " + x % 10);

System.out.println("y mod 10 = " + y % 10);

}

}

Page 69: Java farsi

6-%� -©[ زی, ;¨ �;%A, :خ,وج¨

X mod 10 = 2

Y mod 10 = 2.25

�-d>ه�ي ت(�,�.

nEا� %¨ را % OP[ 0?��� ج%وا r�OP,ه%ي وی�5 اي دارد آ� %@Z ]OP À0/ان ی ¨; %MA> د5 از%

هO%ن �A/o آ� اOEZ%1 ;¨ داXP ، 6�A%رd ¨0/ن ;/ارد زی, در ,A%;� �%زي ;6Eاول6ÇI . 0,آ�OA u/د

:

a = a + 4;

*-/A 8�A ,زی ]©- � :XP%رت %1 را در ج%وا ;¨ 0/ان

a += 4;

,r�OP 1 از% 6Çi;aار : �OP©,د ه, دو XP%رت ی©@Ç%ن ا�Ç* .ا�nE%د5 -56 ا�* "=+" در XP%رت

. وا6Z ا\8ای  ;¨ ده٤6Iرا � ا6Aاز5

,rل ه%ی¨ دی%W;:

a = a % 2;

a %= 2;

6Aي ;/ج/د,Iی% ¨%@Z ه%ي,r�OP م%O0 اي,از ایBÇ رو ، هÇXP ,Ç%رت r�OP . �Ç,ه%ي 0?���

-©[ زی,

var = var op expression;

: آ,د را ;¨ 0/ان � R/رت زی, %زA/ی@¨

var op= expression;

6Aه%ي 0?��� دو \%ی56 دار,r�OP .

.;J%دل خ/د ه@6IE" \,م آ/0%5" در Z>] آ%ر 0%یÏ ^6ري R,\� ج/ی¨ ;¨ -/د ، d,ا آ� – ١

٢ – *Çن ا�%Çzدل%J; 06, ازÇ;>وا ، آ%ر%Çاي ج,Çن اج%Ç;ز [EÇ@�� در %MA> �4%د5 �%زي . BÇای ,v%Çخ �Ç

A, .%;� ه%ي Z,\� اي ج%وا خ/اه�6 دی6د1ی[ ا_�u ایr�OP B,ه% را در

Gو آ�ه Gا2]ای

Page 70: Java farsi

ه�A/rA%O آ� خ/اه�6 دی6Ç، ایr�OP BÇ,هr�OP ، . 6ÇId %Ç,ه%ي ا\8ای  و آ%ه  ه@6IE " --"و "++"

6Aا �Eج¡اب �%خ t;%را آ %MA> 6 آ�A5 دار��m خ/د را % ;,ور د^�} �OP©,د ایBÇ . خ�/�R* وی

[�Iز ;¨ آ%_> ,r�OP دو.

� 6A/�OP خ/د ;¨ ا\8ایr�OP 6, ا\8ای  ، 6Zوا Àد . ی/Ç6 خÇA/�OP 6 ازÇZوا ÀÇ8 یÇ�A  آ%ه ,r�OP

� IP/ان ;W%ل ، XP%رت زی, . ;¨ آ%ه6:

x = x + 1;

:را ;¨ 0/ان % ا�nE%د5 از r�OP, ا\8ای  � R/رت ذی[ %زA/ی@¨ آ,د

x++;

B�I�Oه:

x = x – 1;

x--;

ÇÇR �ÇÇ/ر 6ÇÇIA0/ا ¨ÇÇ; �ÇÇآ *ÇÇMج BÇÇاز ای %ÇÇه,r�OP BÇÇت ایpostfix ) 6ÇÇA/�OP 3 ازÇÇ4 ,ÇÇr�OP ( و

Ç\ �Ç,د ه@6A/�OP ( 6IEÇ 34 از prefix ) ,r�OPهgI�O/ر ,�mI; ، 6I-% . ¥�Ç1 ه%Çدر ;W%لÇM%ي

ا;Ç% ، و^r�OP ¨ÇE,هÇ%ي ا\8Çای  و یÇ% آÇ%ه  . وج/د 6Aاردprefix و n0postfix%و0¨ �B \,م ه%ي

%-6I، در <ن R/رت n0%و ,Eo8ر?z¨ از یÀ ج��O جX,ي Bای B�0¨ جU8¨ ، ول�©B 0%ث�,o¡ار ،

، �4  از <A©� از ;6iار ;��TE, در ج��O جX,ي ا�nE%دprefix 5در \,م . دو \,م وج/د خ/اه6 دا-*

، ;6iار ;Ç��TE, در ج�Ç�O جÇX,ي �Ç آÇ%ر postfixدر \,م . 6A/�OP ا\8ای  ی% آ%ه  ;¨ ی%6 -/د ،

� IP/ان ;W%ل . /د,د5 ;¨ -/د ، و ����T0 6A/�OP 3, داد5 ;¨ -:

x = 42;

y = ++x;

� ٤٣در ایZ B%ل* ;6iار y 6ارi; ���?0 ا\8ای  �4  از ]OP ا آ�,d ،6� A x?��� ;¨ ی%

yم ;¨ -/د%<Aا . ,g� رو Bاز ایy= ++x 6-% : ;J%دل دو XP%رت زی, ;¨

x = x + 1;

y = x;

6-%� R/رت زی, 1% :ا;% و^W; ¨E%ل

x = 42;

y = x++;

,ای6i; Bار 6i; xار %I ،6� ٤٢ �4  از اج,اي r�OP, ا\8ای  0?��� ;¨ ی% y ¨; ���?0

6 ;ÇJ%دل دو ++y=xدر ایgÇ� ، %Ç<I, . ذخ�,5 ;¨ -/دx در ٤٣ال�EX ، در ه, دو Z%ل* ;6iار . ی%

:XP%رت ذی[ ا�*

Page 71: Java farsi

y = x;

x = x + 1;

i� .�,�)ه�ي �-

�E¨ دارد آ� ;¨ 0/ ,r�OP B6یId ج%وا ��mÇR ي%Çاع داد5 ه/Aا % long ، int ، short ، charان

� آ%ر ,د byteو . 6ÇIIآ ¨; ]OP 6 خ/دA/�OP ه%ي *� Àروي ی©%ی , ,r�OP Bای . BÇای *Ç�,M\

6J <ورد5 -56 ا�* �mnR ه% در ج6ول,r�OP.

,r�OP �<�EA

~ nots[e tabuT

& ands[e

| ors[e

^ xors[e

>> ye zV[{zراس

>>> ~bYا UVص be zراس ye zV[{

<< �� ye zV[{

&= andj[kl و s[e

!= orj[kl و s[e

^= xorj[kl و s[e

>>= j[kl و zراس ye zV[{

>>>= ~bYا UVص be j[kl و zراس ye zV[{

<<= j[kl و �� ye zV[{

�* ه%ي ا6Pاد ��mR را ، ¨E�4,دازش و ;6ی,ی* ;¨ آM; ، 6II] ا�* از <A>%ی¨ آ� r�OP,ه%ي

6�Ç-% %IÇ-> ,دی%Çi; روي ,Ç %M-4,داز B�Id B0%ث�, ای %?�Ç/ص ای�Ç©I ، داBEÇ@A ای�Ç©I جÇ%وا . آ�

¨Ç; �Ç^6 واÇ�n; ،6Çده ¨Ç;  ی%ÇOA را ¨ÇnI; 6ادÇPا �ÇA/rd 6 وÇIآ ¨Ç; 5,را ذخ� ��mR ,دی%i; �A/rd

.-/د

� و���� ا6Pاد %یI,ي % Çv/ل ; ��mR 6ادPم ا%O0 6A/Ç- ¨Ç; 5ی  داد%ÇOA ,Ç��TE . ، ل%ÇW; ان/ÇIP �Ç

%-٢6 ، 0/اA¨ از ا�* آ� ارزش ;©%A¨ ه, ر^]A byte ، 00101010/ع ٤٢;6iار ¨; .

Page 72: Java farsi

��mR اع داد5 ه%ي/Aاز ( ا ,�_ �char ( 6IEÇ@دار ه *;tP ��mR 6ادPا ، . *Ç�%IJ; B6یÇ BÇای

6I-% ¨nI; و *XW; ,دی%i; ,rA%ی%OA 6IAم ج%و. آ� ;¨ 0/ا%ÇA �;©ÇO[ " ا از P/A¨ روش ر;o8¡اري

٢ " %Çه *Ç��Ç ( ا�nE%د5 ;¨ آ6I آ� در <ن ا6Pاد ;nI¨ از v,ی} ;J©/س آ,دن ÇO0%م %Çه ÀÇ6ی[ یÇX0

3©J�� OA ، ]R%Z%ی  دادnR (6A/- ¨; 5, و 6Zوا Àل ، . و ��3 ا\8ودن ی%W; ان/IP �-42

٤٢% ;J©/س آ,دن O0%م �* ه% 6ÇPد ) %Çاش ) 00101010ی �Ç<�EA �Çو 11010101، آ ، *Çا�

� <ن OA%ی  دادÇ- ¨Ç; 5/د 6Zوا À3 ا\8ودن ی�� ) ، ¨ÇIJ11010110ی .( ,Çی¨ ه%Çzo8;اي ر,Ç

�%\8ای�6 �<�EA � 6Zوا À6، و ��3 ی�Iس آ/©J; را %ME� .6Pد ;O0 *@?A ، ¨nI%م

i�-� i:3� .�,�)ه�ي

�XP ¨E%ر6ÇI0 از ¨igI; ه%ي,r�OP& ، | ، ^ ن داد5 . ~ و%ÇzA ,Ç6ول زیÇت در ج%Ç��OP BÇای �Ç<�EA

�ÇME%ي ه6ÇA/�OP ,Ç . -56 ا�* ÀÇی©%ی �Ç ¨ÇE�%-6�Ç آr�OP �Ç,هÇ%ي �EÇ-دا ,v%Çخ �Ç ]Çذی �mدر

6A/- ¨; ل%OPا.

~ A A ^ B A & B A | B B A

1 0 0 0 0 0

0 1 0 1 0 1

1 1 0 1 1 0

0 0 1 1 1 1

NOTi�-�

¨A%rی ,r�OPNOT) ~ (©; س آ�/©J; 6 خ/د راA/�OP ه%ي *��A 8�A ¨E%;�56 ;¨ -/د، O0%م ]O

6I6د . ;¨ آP ، ل%W; ان/IP � : آ� ;J%دل %یI,ي <ن � -©[ زی, ا�* ٤٢

00101010

,r�OP ل%OP34 از اNOT 6ی[ ;¨ -/دX0 ,زی ]©- � :

11010101

Page 73: Java farsi

ANDi�-�

6A/�OP ه, دو ��A%IdAND) & ( Ç; ÀÇ8 ی�A ]R%Z ، 6-% Àرت در ی/ÇR BÇای ,Ç�_ د ، در/Ç-

.آ��� Z%1ت nR ]R%Z, ;¨ -/د

00101010 42

& 00001111 15

00001010 10

ORi�-�

,r�OPOR) | ( %6هÇA/�OP ي%Çه *Ç��* ه% را � �A/o اي 0,آ�u ;¨ آ6I آ� ��A%Id ه, یÀÇ از ،

�* 8�A ]R%Z یÀ ;¨ -/د ،6-% Àی:

00101010 42

| 00001111 15

00101111 47

XORi�-�

,r�OPXOR) ^ ( ، 6Ç-% ÀÇ6 یÇA/�OP ÀÇی %i�^د ��A%Id 6 آ�Iآ ¨; uاي 0,آ� �A/o ��* ه% را ،

. در _�, ایR B/رت ، nR �<�EA, ;¨ -/د. �EA>� یÀ -/د

00101010 42

^ 00001111 15

00100101 37

6�Iه% د^* آ *� ,��T0 ¨rA/rd � .، 6-% ,nR 6 دومA/�OP 5%o,6هIآ ¨OA ,��T0 *@?A 6A/�OP .

,اي ,خ¨ از ��OP%ت 4,دازش �* ه% ;6�n وا^� ;¨ -/د ¨o� .ایB وی

i�-� i:3� آ�ر�)د .�,�)ه�ي

Page 74: Java farsi

�E¨ را zA%ن ;¨ ده6 ¨igI; ه%ي,r�OP ,زی �;%A,:

// Demonstrate the bitwise logical operators.

class BitLogic {

public static void main(String args[] ){

String binary[] = {

"0000"/ "0001"/ "0010"/ "0011"/ "0100"/ "0101"/ "0110"/ "0111"/

"1000"/ "1001"/ "1010"/ "1011"/ "1100"/ "1101"/ "1110"/ "1111"

};

int a = 3; // 0 + 2 + 1 or 0011 in binary

int b = 6; // 4 + 2 + 0 or 0110 in binary

int c = a | b;

int d = a & b;

int e = a ^ b;

int f =( ~a & b )|( a & ~b);

int g = ~a & 0x0f;

System.out.println(" a = " + binary[a]);

System.out.println(" b = " + binary[b]);

System.out.println(" a|b = " + binary[c]);

System.out.println(" a&b = " + binary[d]);

System.out.println(" a^b = " + binary[e]);

System.out.println("~a&b|a&~b = " + binary[f]);

System.out.println(" ~a = " + binary[g]);

}

}

a ، b 6IE@ي ه,Iی%,اي دو ر^] B©O; *ل%Z ر%Md ,ه ,rA%ی%OA 6 آ�Aه%ی¨ دار *�: در ایW; B%ل

٠-٠ ، ١-٠ ، ٠-١ ، ١-١ . %rA %� �OP ¨rA/rd©,د d و 5c آ,دن � EA%ی¼ 6�Aو | ;¨ 0/ا & ,Ç

6� A%م دارد ، Z%وي ÇOA%ی  Ç%یI,ي ا6ÇPاد binaryر-�E <رای� اي آ� . روي ه, یÀ از �* ه% دری%

%0 ,nRاز . ا�* ١٥ ÀÇی ,Çي ه,Iی%Çای6Iآ3 ه%ي <رای� در ایW; B%ل � �ÇA/o اي ه@ÇOA %Ç0 6IEÇ%ی 

6Iن ده%zA ی¼ را%EA .ي <رای,Iی%Ç� �ÇA/o اي �Ç%خ56Ç- �E ا�ÇOA %Ç0 *Ç%ی  ر-�EÇ اي ;6Çiار �n در ،

binary[n] 6ار . ذخ�,5 -/دi;–a % )00001111 (0x0f ، AND ,ÇEOآ � ;¨ -/د 6i; %0ارش

E/ان Ç% ا�nEÇ%د5 از <رای�Ç ١٦از 6 %0,�Ç;%A در ذیÇzA ]Ç%ن . ÇOA%ی  داد binary آ%ه  ی% ¨Çخ,وج

:داد5 -56 ا�*

a = 0011

Page 75: Java farsi

b = 0110

a | b = 0111

a & b = 0010

a ^ b = 0101

~ a & b | a & ~ b = 0101

~ a = 1100

ش-A= �5 چ�

Ïd � *n�- د,©�OP)<< ( �Ç 56Ç- �?Çz; ت%ÇJ\6اد دÇJ0 56ازAا �، O0%م �* ه%ي 6A/�OPش را

:-©[ آ�¨ <ن در زی, zA%ن داد5 -56 ا�* . �Ïd *O اiEA%ل ;¨ ده6

Value << num

Num 6ارi; 0¨ ا�* آ�%J\6اد دJ0 56IIآ �?z; value6%ی6 � Ïd اiEA%ل ی% . ، ¨IJم ">>"ی%O0

�* ه%ي ;6iار ;/رد wA, را � ا6Aاز5 num6ل ;¨ ده%iEAا Ïd *O� � �X0,; . ر%Ç ,Çازاي ه �Ç

nÇÇR B�ÇÇ, از �n�ÇÇ- ( OÇÇ*(اÇÇiEA%ل ÀÇÇرود و ی ¨ÇÇ; *ÇÇاز د� ÏÇÇd *OÇÇ� �ÇÇال� ¨ÇÇMEI; *ÇÇ� ، *ÇÇرا� *

6یIJ; B%�* آ� و^r�OP ¨E, . ا�%\� ;¨ -/د Bای"Ïd � *n�- " 6ÇA/�OP ÀÇی �Çint ¨Ç; ل%ÇOPا

6Aو ی©] از د�* ;¨ رو ¨� *�J^/; از *-¡o ه% 34 از *� 6A/�OP ��A%Idlong از A/ع . -/د،

6Aو �/م از د�* ;¨ رو *�- *�J^/; از *-¡o ه% 34 از *�%-6، در <ن R/رت .

� 0/ل�ÇEA 6%ی¼ را -�n* ;¨ ده�short6 و A byte/ع و^i; ¨E%دی, ,<I; خ/دآ%ر ج%وا %i0ار ]OP ،

هO%ن �A/o آ� ;¨ دا6�A ، و^E¨ یÀ ج��O جX,ي ارزی%¨ ;¨ -/د، ;i%دی, A/ع . _�,;wEI,5 ;¨ -/د

byte و short � int6I� tPو�EA 5>� یB�Id À ج��O اي 8�A . ارi0% ;¨ ی%int6ی. ;¨ -/د Bای B

� Ïd در ;i%دی, *n�- �<�EA آ� *�%IJ;byte ، short و int [56 ه- *n�- ه%ي *� ;¨ -/د و

6ÇAرو ¨ÇOA *Ç6 ، از د�ÇAر¡rA [Ç©و ی ¨� *�J^/; از ¨A%;دی, . 0% ز%Çi; ، 5وtÇP �Çbyte و short

� %i0م ار%rI8 ه�A ¨nI;int6A/- ¨; 8رگ�* zE;tP%ن *O� از . *OÇ� ه%ي *� از ایB رو،

6A/- ¨; ,4 Àی % Ïd . ع/ÇA ,دی%Çi; در ÏÇd �Ç *n�Ç- ]ÇOP م%Ç<Aدل�[ ا�* آ� ا B�Oه �byte و

short ع/A �<�EA Ïd *O� ی* ه%ي%6یIJ; B%�* آ� %ی6 int د,�r� IP/ان ;W%ل ، . را A%دی56

6ه�6 ، <ن ;6iار ا6Eا � byteاo, ی6i; Àار A/ع *n�- Ïd *O� � و ��3 ارi0% ;¨ ی%int6 را

6یIJ; B%�* آ� اwI; ,o/ر0%ن n�- . �<�EA* داد5 ;¨ -/د Bای" Ïd � *n�- " 6ارi;byte ،6-%

Page 76: Java farsi

%ی6 �� %ی* ��EA Ïd *O>� را A%دی56 �r,ی6 . �Çآ *Çر ، <ن ا�%Çآ Bم ای%<Aاي ا,<�%EA,یB روش

� " �EA"casting>� را ;>6دا % ا�nE%د5 از byte6�I6ی[ آX0 . ÇW; م در/ÇOMn; Bن داد5 ای%ÇzA ,Çل زی%

:-56 ا�*

// Left shifting a byte value.

class ByteShift {

public static void main(String args[] ){

byte a = 64/ b;

int i;

i = a << 2;

b =( byte( )a << 2);

System.out.println("Original value of a :" + a);

System.out.println("i and b :" + i + " " + b);

}

}

,A%;� در ذی[ zA%ن داد5 -56 ا�* Bاز ای ]R%Z ¨خ,وج:

Orginal value of a: 64

I and b: 256 0

� da/ن ¨,اي ارزی% int �X0,; 6 ، دو� Ïd" ارi0% ;¨ ی% *n�- " 6ارi;٦٤) 0000 0000 (

� ;6iار ,<I;٢٥٦ ) 1 0000 0000 ( اي,i د/Ç- ¨; . 6ارÇi; ، %Ç;اb Ç4 ¨Ç; ,nÇR *n�Ç- 3 از

�* یÀ <ن، 34 از -�n* از د�* ر\�E ا�*. -/د، d/ن %ی* �nR Ïd *O, ;¨ -/د %MI0.

Àان ی/IP �d/ن �EA>� ه, -�Ïd *n، دو ,ا, -6ن ;6iار اول�� ا�*، ,A%;� �%زان از ایB ا;,

%-6�Ç . ا�nE%دÇ; 5¨ آ6ÇII ٢ج%ی8rیB آ%ر<;06, ,اي �,یu در [Çه uÇ6 ;/ا­Çی% %Ç;ا . *Ç� ÀÇی ,Çoا

"Àی " Ïd *O� *� Bخ,ی> *�J^/; �٣١�* (را %Ç6 ) ٦٣ یÇخ/اه ¨ÇnI; 6ار0%نÇi; ،6Çل ده�%ÇiEAا

:ای�E©A B در ,A%;� زی, zA%ن داد5 -56 ا�* . -6

// Left shifting as a quick way to multiply by 2.

class MultByTwo {

public static void main(String args[] ){

int i;

int num = 0xFFFFFFE;

for(i=0; i<4; i++ ){

num = num << 1;

System.out.println(num);

}

Page 77: Java farsi

}

}

� R/رت زی, ا�* �;%A, :خ,وج¨

536870908

1073741816

2147483632

-32

� �X0,; "Ïd ٤;6iار اول�� � د^* اEA?%ب -56 ا�* 0% 34 از *n�- " �هÇO%ن . 6X0ی[ -/د-٣٢

�* �A/o آ� ;¨ Àی ¨E^6 و�I�"Àی " *�J^/; � . اiEA%ل ;¨ ی%6P ، 6د nI; ]R%Z¨ ;¨ -/د٣١

ش-A= �5 را�=

� را�* *n�- ,r�OP)>> ( �Ç 56Ç- �?Çz; ت%ÇJ\6اد دÇJ0 56ازÇAا �Ç، O0%م �ME%ي 6A/�OPش را

:-©[ آ�¨ <ن در زی, zA%ن داد5 -56 ا�* . �O* را�* اiEA%ل ;¨ ده6

value >> num

num �?z; 6ارÇi; 0¨ ا�* آ�%J\6اد دJ0 56IIآ value 6ÇOÇ� �Ç* را�Ç* اÇiEA%ل ی% 6Çی% . ، ¨ÇIJی

� �O* را�* اiEA%ل ;¨ دهO0 num6%م �* ه%ي ;6iار ;/رد wA, را � ا6Aاز5 "<<" �X0,; .

� �O* را�* -�n* ;¨ ده6i; %0 6ار ٢ را ٣٢;W%ل زی, ;6iار �X0,; در ٨ a ذخ�,5 -/د :

int a = 32;

a = a >> 2; // a now contains 8

¨Ç; *Çاز د� %Çه *Ç��* ه%ي ی6i; Àار � خ%رج از ;6mود5 اش -n�Ç* دادÇO0 ،6A/Ç- 5%م <ن ¨E^و

6A6ار . روi; ,ل زی%W; ، tW;٢ را ٣٥ BE\از د�* ر % �<�EA ده6 و در ¨; *n�- *را� � �X0,;

. ذخ�,5 ;¨ -/دa در ٨�* ه%ي �O* را�* ، ;>6دا ;6iار

int a = 35;

a = a >> 2; // a still contains 8

% ا6Pاد %یI,ي ، اn0%^%ت را � و�/ح zA%ن ;¨ ده6 ]OP ن%Oر�¨ ه,:

00100011 35

>> 2

00001000 8

Page 78: Java farsi

, و %^�A 56A%O%دیi0 – 56@�] ;¨ -/د ٢ه, %ر آ� ;6iاري را � را�* -�n* ;¨ ده�6 ، <ن ;6iار

, از ایB وی�o . ا�E-%rA ;¨ -/د ]�@i0 [OP م%<Aاي ا, 6�Aد5 ٢¨ ;¨ 0/ا%nEÇ06, ا�Ç;>آ%ر ]©Ç- �

6�I6. آA/- ¨OA را�* خ%رج *O� ه% از *�%ی6 اI�Ov%ن R%Z[ آ6�I آ� ، �EXال.

*n�Ç- ]ÇOP bÇ�/0 �Çآ %Çه *Ç� Bی,Ç0 ÏÇd *OÇ� ،6ده� ¨; *n�- *را� *O� �و^6i; ¨Eاري را

B�z�4 اي/Em; و���� � ،6Aی%ن -56 ا%OA *6را�A/- ¨; B8یrج%ی *� B0,ی Ïd *O� . BÇای ]ÇOP

"sign extension " *O� � %MA> دادن *n�- م%rIه � ¨nI; 6ادPا *;tP µnZ uX� 56 -56 و�;%A

� IP/ان ;W%ل ، . را�* ;¨ -/د -1<<8 , ا�* آ� %یI,ي ایÇOP B[ در ذیÇzA ]Ç%ن داد5 4- ، ,ا

:-56 ا�*

11111000 -8

>>1

11111100 -4

uج%ل ,o6 آ� ا�A6ا%^¨ ;Çd ،6ÇA%; ¨Ç,ا -١ را � �O* را�* -�n* ده��EA ، 6>� ه�z�O -١ ا�*

6ÇIی>,\ �Çآ"sign extension " B8یrی%Çج ÏÇd *OÇ� در ÀÇي ی%Çه *Ç��Ç- ¨Ç; uXÇ/د Ç0% هÇO/ار5

6A/-.

� هrI%م -�n* دادن ;i%دی, � �OÇ* را�Ç� *Ç,ورت 6ÇAارد �Eno  �4 ،6Iم \,<ی%<Aه¨ او^%ت ا%o .

/IP �. را � ر-�E ه8rاد��O%ل ;J%دل  6X0ی[ ;Ǩ آbyte 6ÇIان ;W%ل ، ,A%;� زی, ی6i; Àار A/ع

{Çی,v از ، *n�Ç- از ]ÇR%Z 6ارi; 6 آ��Iد^* آAND %Ç ;%�Ç- ¨Ç; ÀÇ/د 0x0f �Ç<�EA %Ç0 آÇ,دن

"sign extension " 36آÇIان ای/ÇIP �Ç ]ÇR%Z 6ارÇi; ان از/ÇE ، �Ç<�EA د و در/Ç- �E-%rAدی56 ا%A

.آE,ه%ي ه8rاد��O%ل ا�nE%دOA 5/د<رای� آ%را

// Masking sign extension.

class HexByte {

static public void main(String args[] ){

char hex[] = {

'0', '1', '2', '3', '4', '5', '6', '7',

'8', '9', 'a', 'b', 'c', 'd', 'e', 'f'

};

byte b =( byte )oxf1

System.out.println("b = ox" + hex[(b >> 4 )& oxof] + hex[b & oxof]);

}

}

Page 79: Java farsi

:خ,وج¨ ,A%;� در زی, zA%ن داد5 -56 ا�*

b = 0xf1

= ش-A= �5 را�= �%ون .1

,r�OP ،6�4  دی6ی *O@^ آ� در �A/o ن%Oر <<ه%Çر خ/دآ/Çv �Ç�* ;MEI¨ ال�� �ÏÇd *OÇ را ،

6Iن 4, ;¨ آ> B�z�4 6ارi; % *n�- ر 34 از% ایB آ%ر ;/ج6i; *;tP µnZ uار ;Ç/رد ÇwA, .ه,

ÇIP �Ç/ان ;ÇW%ل ، ا8Ç�d ,Çoي را -Ç; *n�Ǩ ده�6Ç آ�Ç . ا;%، o%ه¨ ایB ا;, 1زم Ç- ¨ÇOA/د . ;¨ -/د

�ÇÇ%-OA"sign extension"6�ÇÇ%یrA%ÇÇ, ی6ÇÇi; ÀÇÇار 6ÇÇPدي BÇÇ©O; ، *ÇÇ@�A ا�ÇÇ�A *ÇÇ%ز �EÇÇ-6اA . BÇÇای

; À�\ا,o �4©@[ و , ¨IEX; ,دی%i; %در ایÇ; �ÇA/o BÇ/ارد ، 6E . %Ç;/OPاول ا�Ç* -,ایb هrI%م آ%ر

�* ;EI¨ ال�� �Ïd *O اiEA%ل ;¨ ده6 �%ی6 یnR À, را .

;6ÇÇiارده¨ -56ÇÇ و -١ a %ÇÇدر ایÇÇW; BÇÇ%ل ، . در ;ÇÇW%ل زیÇÇzA ,ÇÇ%ن داد56ÇÇ- 5 ا�ÇÇ©�OP">>> " *ÇÇ,د

,ایB ، آ[ %I% یÀ 4, ;¨ -/د ٣٢ *�� �O* را�* اiEA%ل ی%\٢٤ای6i; Bار ��3 . �X0,; و �ÇE

٢٤ ]OP 4, -56 و ,nR % Ïd *O� *� sign extensionد/- ¨; �E-%rAدی56 ا%A . u�0,0 B6ی

. ذخ�,z�; 5/دa در ٢٥٥

int a = -1;

a = a >>> 24;

%IÇ-> 6ÇIده ¨Ç; رخ �Ç0¨ آ%Ç^%n0ا %Ç ,EÇz�%1 در ذی[ % ار^%م %یI,ي 0©,ار -56 ا�* %0 ]OP م%<Aا

:-/ی6

111111111 11111111 11111111 11111111 -1 in binary as an int

>>>24

000000000 00000000 00000000 11111111 255 in binary as an int

� ا6Aاز5 اي آ� دو�* داری6�n; 6 وا^Ç- ¨ÇOA �Ç/د <<<�OP©,د u�_دی, ا%Çi; اي,Ç %ÇMI0 �Çاآ,d ،

�IJ; ¨E% خ/اه6 دا-* ٦٤ و ٣٢ . Çدی, آ%Çi; 6 آ��-% �E-دا ,v%خ � �Ç/E©d, در جtÇOت جÇX,ي

�6یIJ; B%�* آ�Ç . ارi0% ;¨ ی%vint 6I/ر خ/دآ%ر Bایsign-extension ]ÇOP 6 وÇده ¨Ç; رخ

� ج%ي ;i%دی, *n�-6ار ١٦ ی% ٨i; در ، ¨E��E¨ اA>%م ;¨ -/د٣٢ . ¨Çخ, *Çا� B©O; ، ¨IJی

Page 80: Java farsi

� را�* 6ون tP;* در ;Çi%د *n�- ]OP 6 آ�I-% �E-ر دا%wEAع ا\,اد ا/ÇA ,یbyte اي �ÇA/o �Ç

*�J^/; *�ا;% ایd ، *@�A �A/o B,اآ� . <_%ز -/د٧اA>%م -/د 6i; %0ارده¨ �* ه% % nR, ، از

,A%;� زی, rA%zA, ایu�g; B ا�* . �n�- ¨E* داد5 ;¨ -/د٣٢در وا^� ی6i; Àار :

// Unsigned shifting a byte value.

class ByteUShift {

static public void main(String args[] ){

char hex[] = {

'0', '1', '2', '3', '4', '5', '6', '7',

'8', '9', 'a', 'b', 'c', 'd', 'e', 'f'

};

byte b =( byte )oxf1

byte c =( byte( )b >> 4);

byte d =( byte( )b >>> 4);

byte e =( byte(( )b & oxff )>> 4);

System.out.println(" b = ox"

+ hex[(b >> 4 )& oxof] + hex[b & oxof]);

System.out.println(" b >> 4 = ox"

+ hex[(c >> 4 )& oxof] + hex[c & oxof]);

System.out.println(" b >>> 4 = ox"

+ hex[(d >> 4 )& oxof] + hex[d & oxof]);

System.out.println("(b & oxof )>> 4 = ox"

+ hex[(e >> 4 )& oxof] + hex[e & oxof]);

}

}

,r�OP �A/rd ن ;¨ ده6 آ�%zA �;%A, Bع <<<خ,وج¨ ای/ÇA ,دی%Çi; %Çbyte �Ç در B�Z آÇ%ر ،

6Çده ¨ÇOA م%<Aه, آ%ري ا%­ . ,Ç��TE; ، %Ç<Iدر ایb ع/ÇA 5ا/Ç?6ار دلÇi; ÀÇی %Ç byte 56Ç- ¨6اردهÇi;

� را�Ç* . ا�* *n�- ]R%Zb ) 56ازÇAا �Ç٣ *Ç� ( Ç<Aا ,v%Çخ �Ç sign%م Ç; ]ÇOP/رد اÇwEA%ر ،

extension در c د/ÇÇ- ¨ÇÇ; 5,ÇÇذخ� ) ¨ÇÇIJ0یxff .( 6ونÇÇ �ÇÇEXال ،*n�ÇÇ- ]ÇÇOP ن%ÇÇOه ]ÇÇR%Z 3�ÇÇ�

� tP0x0f;*، آ� اwEA%ر ;¨ رود ،6-% d6 signا;% در Çd *Çi�iZ/ن ÇOP[ . 0?��� ;¨ ی%

extension %i0م ار%rIه b �Ç int ) *n�Ç- ]ÇOP از  �Ç4 ( ،*Ç0رخ داد5 ا�xff در d ¨Ç; 5,Çذخ�

�56Ç- ÀÇ�%; *Ç، ٨ -6Çن AND %Ç از v,یbyte ,Ç��TE; b {Çدر ج��O <خ, 6Çi; 8Ç�Aار ÇA/ع . -/د

6Çی% �Ç©A> ]ÇR%Z د، و/Çz�; 5داد *n�Ç- *را� � �X0,; ر%Md0x0f 6، درÇ-% c د/Ç- ¨Ç; 5,Çذخ� .

Page 81: Java farsi

,Ç��TE; اي,%-�6 آ� �E-0/ج� داd ,Çr�OP از >>> *Ç� *�JÇو� �Çا آ,Çd ،*Ç56 ا�ÇzA 5د%nEÇا�

P 34 از *;tANDد/- ¨; �?z; آ,دن .

b = 0xf1

b >> 4 – 0xff

b >>> 4 = 0xff

( b & 0xff ) >> 4 = 0x0f

�-d>و ت i� .�,�)ه�ي �-

]ÇÇOP �ÇÇآ *ÇÇي ا�,ÇÇXي ج%ÇÇه,r�OP �%ÇÇz; �ÇÇ6 آÇÇAه¨ دار%ÇÇ0/م آ,ÇÇ\ ي,Iی%ÇÇ ¨ÇÇE�ÇÇO0%م r�OP,هÇÇ%ي

6IIآ ¨; u0,آ� ¨E� ]OP % را � ا6Aازa 5دو XP%رت زی, آ� ;6iار � IP/ان ;W%ل، . 0?��� را

٤ 6A,rدل ی©6ی%J; ،6Iده ¨; *n�- *را� *O� � *� :

a = a >> 4;

a >>= 4;

¨E� ��Oرت زی, ه] آ� ج%XP ر دو/v B�Oهa OR b � a 6A,rدل ی©6ی%J; ،6 : 0?��� ;¨ ی%

a = a | b;

a |= b;

,ÇÇزی �Ç;%A,ÇÇ,اي \����mÇÇR 6Ç ای>Ç%د -56ÇÇ و �ÇÇ\ 3�Ç,م آ/ ٤در ��ÇÇ�?0 و ¨ÇE�r�OP 5%Ç0,هÇÇ%ي

:4,دازش و ;6ی,ی* <MA% ا�nE%د5 ;¨ -/د

class OpBitEquals {

public static void main(String args[] ){

int a = 1;

int b = 2;

int c = 3;

a |= 4;

b >>= 1;

c <<= 1;

a ^= c;

System.out.println("a = " + a );

System.out.println("b = " + b );

System.out.println("c = " + c );

}

}

Page 82: Java farsi

:خ,وج¨ ,A%;� در ذی[ zA%ن داد5 -56 ا�*

a = 3

b = 1

c = 6

.�,�)ه�ي را�53 اي

6ÇIIآ ¨Ç; �?Çz; ,Çr6 دیÇA/�OP ÀÇی �Ç *XÇ@A 6 راÇA/�OP ÀÇی �Çgایr�OP . BÇ,ه%ي را�g اي ، را

6IIآ ¨; B��J0 6ه% راA/�OP u�0,0 ه% 0@%وي و,r�OP .*�,M\ ن%zA ]اي در ذی �g r�OP,ه%ي را

:داد5 -56 ا�*

,r�OP �<�EA

== be zوي اسb\�

!= be zاس ��b�

heر�� از <

آ���u از >

>= be zوي اسb\� bT ر��he

<= be zوي اسb\� bT �uآ��

XP%رت r�OP,ه%ي را�g اي �Ez, در جtOت جX,ي آ� . �EA>� ای��OP B%ت، ی6i; Àار /ل¨ ا�*

if ، 6IIل ;¨ آ,EI6 را آA/z�; 5د, .و هv B�O/ر در �i�Z ه%ي o%A/o/ن � آ%ر

اA/اع ;?�E£ داد5 ه% در ج%وا ، از ج��O ا6Pاد ��mR ، ا6Pاد اzP%ري % ;I- 8�O%ور ، آ%راآE,ه%

� 0/ج�Ç دا-i; . EÇ%ی@ÇOA �Ç/د " =!"یÇ% (==) و ;i%دی, /ل¨ را ;¨ 0/ان % ا�nE%د5 از Ç@0 ,Çr�OP%وي

%-z0 ) 6�Ç©�[ -56 ا�* "=" %-�6 آ� r�OP, 0@%وي در ج%وا از دو �E-دا ,v%خ � : *Ç;tP از

,اي 0?��� ا�nE%د5 ;¨ -/د"=" .( u�0,0 ,rA%zA ه%ي,r�OP %i; %MI0%دی, 6Pدي را ;¨ 0/ان

ن اÇzP%ري یIÇ- 8Ç�O; %Ç%ور و آÇ%راآE,ي را ;Ç0 ¨Ç/ا ی6ÇA/�OP %MI0 ، ¨IJه%ي i; . ، ��mÇR%ی@� OA/د

6A,E©d/آ À�;و آ6ا ,Eo8ر À�;د آ� آ6ا/- �?z; %0 د/OA �@ی%i;.

;XP tW%رت ذی[ . هO%ن �A/o آ� R%Z �<�EA ،6- �Eno[ از r�OP, را�g اي ، ی6i; Àار /ل¨ ا�*

6IE@ه ,XEJ; t;%آ:

int a = 4;

int b = 1;

Page 83: Java farsi

boolean c = a < b;

�<�EA *ل%Z Bدر ایa<b ) آ�false *در ) ا�c5 ;¨ -/د ذخ,�.

%� آ%ر ,<0 ,oاC/C++6�Iزی, د^* آ �E©A � %ngدر . را داری6 ، ل ,Çرت زی%ÇXP اع/AاC/C++

6I6اولE; ر%�@:

int done;

// …

if ( ! done ) … // valid in C/C++

if ( done ) … // but not valid in Java

*-/A ,رت زی/R � :XP%رت %1 را %ی6 در ج%وا

If ( done == 0 ) … // This is Java-style

If ( done != 0 ) …

£ÇÇÇی,J0 �ÇÇÇآ *ÇÇÇن ا�> ,ÇÇÇ;ا BÇÇÇای ]ÇÇدل�true و false ن/ÇÇÇ�Oوا ه%ÇÇÇدر ج C/C++*ÇÇÇ@�A .True در

C/C++ و *ÇÇا� ,nÇÇR £ل%ÇÇ?; 6ارÇÇi; ,ÇÇه ، false,nÇÇR 6ارÇÇi; ,rA%ÇÇzA .True و false وا%ÇÇدر ج

nR ,�_ و ,nR % ¨v%X06 آ� ارIE@6دي هP ,�_ ,دی%i; 6A6ارA , . ,nR %,اي ;i%ی@� ، Bای,%I

6�Iد5 آ%nEاي ا� �g%ی6 از یÀ ی% r�OP 6Id, را ، ,nR ,�_ و.

i��� i:3� .�,�)ه�ي

,اي 6A/�OPه%ي A/ع %MI0 ،6Aن داد5 -56 ا%zA %<Iل¨ آ� در ای/ ¨igI; ه%ي,r�OPBoolean ]%^

6IE@د5 ه%nE6ا . ا�i; ل¨ دو/ ¨igI; ه%ي,r�OP م%O0 ع/A رBoolean %Ç0 6ÇIIآ ¨Ç; uه] 0,آ� % را

. -/د�EABoolean>� ی6i; Àار A/ع

,r�OP �<�EA

& ANDt]���

| ORt]���

^ XORt]���

|| OR_bWل آ�bkWا

&& AND_bWل آ�bkWا

! NOTt]��� tab�T

&= ANDj[kl و

|= ORj[kl و

Page 84: Java farsi

^= XORj[kl و

== be zوي اسb\�

!= ��b�be zاس

?: if-then-elsetTbW yس

¨igI; ¨ل/, روي ;i%دی, /ل¨ ه�O/ن �OP©,د-%ن , روي ) ^ و | ، & ( �OP©,د r�OP,ه%ي

�* ه%ي ی6P Àد ��mR ا�* . ¨igI; د,©�OP "!" 6Iس ;¨ آ/©J; ل¨ را/ *�Jو� :!true ==

false و !false == true . در ج6ول ¨igI; ت%��OP از Àه, ی �<�EA *ن داد5 -56 ا�%zA ,زی :

~ A A ^ B A & B A | B B A

True False False False False False

False True False True False True

True True False True True False

False False True True True True

,A%;� زی, i0,یJ; %X%دل ;W%ل BitLogic ح -56 ا�,g; Bا�* آ� �4  از ای * . �Çوت آ%Çn0 Bای %

6Iآ ¨; ]OP ¨ل/� ج%ي �* ه%ي %یI,ي , روي ;i%دی, :

// Demonstrate the boolean logical operators.

class BoolLogic {

public static void main(String args[] ){

boolean a = true;

boolean b = false;

boolean c = a | b;

boolean d = a & b;

boolean e = a ^ b;

boolean f =( !a & b )|( a & !b);

boolean g = !a;

System.out.println(" a = " + a);

System.out.println(" b = " + b);

System.out.println(" a|b = " + c);

System.out.println(" a&b = " + d);

System.out.println(" a^b = " + e);

System.out.println("!a&b|a&!b = " + f);

System.out.println(" !a = " + g);

}

Page 85: Java farsi

}

�* ه% ، � ;i%دی, A/ع ¨igI; B�Aن ^/ا%Oخ/اه�6 دی6 آ� ه ، �;%A, B34 از اج,اي ایBoolean

6A/- ¨; ل%OP8 ا�A . ¨ل/ÇهO%ن �A/o آ� از خ,وج¨ ذی[ ;z?� ا�* ، OA%ی  ر-�E اي ;Çi%دی,

: ا�* false ی% trueی©¨ از دو ;6iار ل�E,ال ج%وا ،

a = true

b = false

a | b = true

a & b = false

a ^ b = true

a & b | a & ! b = true

! a = false

�i:3 اتd�ل آ�ت�� .�,�)ه�ي

Ç/ل¨ ج%لuÇ دارد آ�Ç در @�Ç%ري از ز%ÇMA%ي آÇ%;��/0,ي دیÇr, وجÇ/د 6ÇAارد ,Çr�OP ج%وا دو . BÇای

,ÇÇr�OP دو �ÇÇی/A%ي ث%MÇÇ-ر%rA ، %ÇÇه,r�OPAND و OR r�OP ون%ÇÇIP *ÇÇm0 6 وIEÇÇ@ل¨ ه/ÇÇ,هÇÇ%ي

¨igI;" 5%0/6 " ا�0%ل آA56 ا- �Eخ%I- . �Ç<�EA ،*Çا� �?Çz;  �4 *O@^ آ� از ج6ول �A/o ن%Oه

,r�OPOR ¨A%;ز true �Çا�* آ A 6ارشÇi; true 6ارÇi; از ,wI\,ÇR ، 6Ç-% B . ، ر/Çv B�ÇOه

,r�OP ]R%ZAND ¨A%;ز false د آ�/- ¨; A 6ارشi; false 6ارÇi; از ,wI\,ÇR ، 6-% B .

,ÇÇ\ ي%ÇÇج �ÇÇ ,ÇÇoي ا%ÇÇم & و |م ه,ÇÇ\ از دو %ÇÇه,r�OP BÇÇرت && و || ای/ÇÇR 6 ، در <نÇÇ�Iد5 آ%nEÇÇا�

�ÇÇ و�B�ÇÇ�J0 ÏÇÇd *OÇÇ� 6ÇÇA/�OP ���ÇÇ آ6ÇÇI ، در <ن %ÇÇMI0 را ¨v,ÇÇ- �ÇÇ�Oج �ÇÇ<�EA 6ÇÇAا/E�ÇÇ�A%Id جÇÇ%وا

¨ A?/اه6Ç آÇ,د %Çرا ارزی *Çرا� *OÇ� 6ÇA/�OP ,rرت دی/R . 6ÇA/�OP �Çآ ¨J^ا/Ç; اي,Ç ,Ç;ا BÇای

�%-false ، 6 ی% O�true* را�* �E@/دن Ïd *O� 6A/�OP وا *Ç6 ا�Ç�n; ر%�Ç@ÇIP �Ç/ان .

6Ç�A0/ا ¨Ç; 5%Ç0/ل آ%Ç�0ا ¨igI; ¨% ا�nE%د5 از ارزی% �A/rd ن ;¨ ده6 آ�%zA ,رت زی%XP ، ل%W;

:�4  از یi0 6A/�OP À@�] اI�Ov%ن R%Z[ آ6�I آ� R%Z[ <ن در�* خ/اه6 /د ی% خ�,

if ( denom != 0 && num / denom > 10 )

" اج,ا-ز;%ن"ا�nE%د5 -56 ا�* ، اOEZ%ل ,وز ا�IWE%ي ) && ( dAND/ن ار \,م ا�0%ل آ/5%0

/دن ,nR ]دل� �denomرود ¨; B�% ا�nE%د5 از rA%رش . از ,g� Bای ,oا & ,r�OPAND

Page 86: Java farsi

¨ ;6Ç- ¨Ç و در �Ç<�EA ، ا�IWEÇ%ي %Çارزی ¨ÇigI; ,Çr�OP ف,Çv دو ,Çه *Ç@ی% ¨Ç; ، 6- ¨; �E-/A

/دن " اج,ا-نز;%" ,nR رت/R درdenom6�4  ;¨ <ی .

5%Ç0/ل آ%Ç�0ي ا%Çم ه,Ç\ 6 ، ازÇر داری%Çو آ ,Ç� ¨ل/Ç {ÇgI; %Ç و ANDخ/ب ا�* در ;/ا^J¨ آ�

OR6اری¡r ¨^% ¨E� %��OP اي, %\,R دي را%OA À0 ي%M-ر%rA 6 ، و�Iد5 آ%nEن . ا�/A%^ Bا;% ، ای

�r,ی6 � IP/ان ;W%ل ، XP%رت زی,. ا�IWE% ه] دارد ,wA را در :

if ( c==1 & e++ < 100 ) d = 100;

/دن ;6iار e در ایB�O�0 %<I ;¨ آ6I آ� ا\8ای  ;6iار &ا�nE%د5 از Àاز ی ,wI\,R c ¨; م%<Aا

.-/د

�-d>ت (�,�.

*;tP % ���?0 ,r�OP"=" ن داد5 ;¨ -/د%zA . ن/Ç�Oوا ه%Çدر ج ��Ç�?0 ,Çr�OP د,Ç©�OP

:-©[ آ�¨ <ن � R/رت زی, ا�* . ,ي ا�*�%ی8 ز%MA%ي آ%;��/0

Var = expression ;

%ی6 % A/ع Avar/ع داد5 expression6-% . �%زo%ر

6�-%XA %I-> ن> %ا;©%ن ای>%د زA>�,5 اي از : �OP©,د 0?��� وی�o¨ ج%لX¨ دارد آ� ;B©O ا�*

� IP/ان ;W%ل ، � XP%رت زی, 0/ج�. ��OP%ت 0?��� را \,اه] ;¨ �%زد 6�Iآ :

int x, y, z;

x = y = z = 100; // set x, y, and z to 100;

,��TE; �� ,6ار هi; رت%XP Àد5 از ی%nEا� % %MI0 1%دل�[ ;�@, /دن ایz�; . B/د١٠٠در XP%رت

�Çآ *Çن ا�> ¨Ço�از ایBÇ رو ، . Çr�OP,ي ا�Ç* آ�Ç<�EA �Ç <ن ، �OÇ* را�ÇXP *Ç%رت ا�Ç* "="وی

� خ/د � yآ� � ا�* ١٠٠ ، 6i;z=100ار /A � 8�A 6 ، و <ن x ¨; ���?0 0?��� ;¨ ی%

6,اي X@A* دادن ی6i; Àار ;Ez,ك � o,وهǨ از " زA>�, 0?���"ا�nE%د5 از . ی% ¨A%�> روش

.;��TE,ه%�*

.�,�) ؟

Page 87: Java farsi

,خǨ از اÇA/اع خÇ%ص XP%رÇM0%ي B�ÇzA%6 جA5 دارد آ� ;¨ 0/ا�-ifج%وا r�OP ¨P/A, �� 0%ی¨ وی

then-else د/- . ، ,r�OP Bا�*" ؟"ای . ,r�OP"؟ " ,ÇwA �Ç 56ÇIIآ ¼�o 5 اول%rA ا�* در B©O;

6�Iد5 آ%nEث,ي از <ن ا�/; ]©- � 6�Aن ;¨ 0/ا> , BE\%ی b�@0 6 ، ا;% 34 از�, . �Ç-©[ آ�¨ <ن

:R/رت زی, ا�*

expression1 ? expression2 : experssion3

experssion1 %%-true ، 6ÇاR%Z ,o[ <ن . %-A ]R%ZBoolean6/ع ;¨ 0/ا6A ه, ج��O اي

¨ ;Ç- ¨Ç/د ، در _�Ç, ایÇR BÇ/رت expersion2در <ن ÇR/رت %Çارزی experssion3 ¨%ÇÇارزی

� ;W%ل¨ از آ%ر,د ؟ 0/ج� آr�OP �<�EA . 6�I, ؟ ، هO%ن �EA>� ارزی%¨ جtOت <ن ا�*. خ/اه6 -6

:

ratio = denom == 0 ? 0 : num / denom

¨E^6وIال 0/ج� ;¨ آ/� *;tP Ïd *O� ��Oج � *@?A ، 6Iآ ¨; ¨. ج%وا ایXP B%رت را ارزی%

,oاdenom ال و/Ç� *;tP B� ��Oرت ج/R 6 ، در <ن-% ,nR ,,ا ":" �Ǩ -56Ç و %Çارزی

%-6 ، در <ن R/رت denomاo, . ;/رد ا�nE%د5 ^,ار ;��r,د"?"IP/ان ;6iار آ[ ,nR £ل%?;

� آ%ر ,د5 ;¨ -/د ��ÇR%Z �<�EA 3[ "?"ارزی%¨ -56 و � IP/ان ;6iار آ[ " ":ج��O 34 از

� " ؟"از ratio6 . 0?��� ;¨ ی%

,A%;� از . را zA%ن ;¨ ده6? آ6�I آ� r�OP, در زی, ,A%;� اي ;z%ه56 ;¨ Bاي ای,r�OP, \/ق

6Iد5 ;¨ آ%nEا� ,�TE; Àی {�g; 6ارi; 6اريMrA.

// Demonstrate ?.

class Ternary {

public static void main(String args[] ){

int i, k;

i = 10;

k = i < 0 ?- i : i; // get absolute value of i

System.out.print("Absolute value of ");

System.out.println(i + " is " + k);

i = -10;

k = i < 0 ?- i : i; // get absolute value of i

System.out.print("Absolute value of ");

System.out.println(i + " is " + k);

}

}

Page 88: Java farsi

6-%�/رت زی, ;¨ �;%A, Bخ,وج¨ ای :

Absolute value of 10 is 10

Absolute value of- 10 is 10

ت:%م .�,�)ه�

%01,یB اول/یÇ4 %Ç0 *Ç%ی�Ç0 B,یÇzA B%ن ;Ǩ ده6Ç ج6ول زی, 6i0 {Z u�0,0م r�OP,ه%ي ج%وا را از .

,g� 6 آ� در�Iد^* آ ,r�OP ان/IJ 1/OJ; وج/د دارد آ� ¨;t^6 اول اÇ�I©�OA ,Ç©\ %ÇMA> 5ر%: در

�giA ,r�OP 8ه% ، آ,و-� ه% وEAدر ) .(4,ا %MA> د,©�OP %;6 ، اA/- ¨; 56�;%A ارد ج6ا�%ز/; Bای ،

�Ç آÇ%ر Ç,د6A/Ç- ¨Ç; 5 . جtOت جX,ي ه�O/ن r�OP,ه%�* ]ÇOP ÀÇ6م یÇi0 ,Ç��T0 اي,. 4,ا8EAه%

,اي ارج%ع � ا. آ,و-� ا;©%ن ;z?� آ,دن ای6Iآ3 <رای� ه% را \,اه] ;¨ �%زد �giA ,r�OP ز

.-¨ ه% ا�nE%دz�; 5/د

B01,ی%

() []

++ -- ~ ~

* / %

+ -

>> >>> <<

> => < <=

== !=

&

^

|

&&

||

?:

= op=

B0,ی B4%ی�

آ�ر�)د پ)ا��]ه�

Page 89: Java farsi

Ç,اي . ا\8ای  ;Ǩ ده6ÇI در,�E\,o ا6A ، 4,ا8EAه% 6i0 {Zم ��OP%0¨ را آ� uÇ�_ر ا%Ç©I6اري ایÇMrA

�r,ی�EA . 6>� دل?/اهE%ن �,وري ا�* ,wA رت زی, را در%XP ، ل%W; ان/IJ :

a >> b + 3

Çg,ف را�Z *Ç,آa ¨Ç; *Ç ا�%\� OA/د5 و ��b 3 را � ٣ایXP B%رت ا6Eا �Ç<�EA ن> {%g; را

�/رت زی, دو%رA 5/ی@¨ OA/د ایXP B%رت را ;¨ 0/ان % ا�nE%د5 از 4,ا8EAه%ي ا. ده6 ¨\%� :

a >>( b + 3)

?/اه�6Ç ا6ÇEا ,Çoا;% ، اa ي%ÇMA%©; %Ç را �Ç<�EA �Ç <ن ٣ Çg,ف را�Z *Ç,آÇ* داد5 و �b 3�Ç را

%یXP 6%رت را �/رت زی, در 4,ا8EA ^,ار ده�6 ، 6�Iا�%\� آ:

( a << b )+ 3

/دن ;Mn/م را ;¨ 0/ان o%ه¨ ,اي رو-tP OA Bو5 , 6i0 {Z ,��T0م P%دي یr�OP À, ، 4,ا8EAه%

©%ر ,د 8�A رت%XP À6، درك . یÇAخ/ا ¨Ç; را %O- 6اي ه, آ@¨ آ� آ,@�Ç%ر 56Ç���4 رت%ÇXP ÀÇی

� ÇXP%رات Ç; 56Ç���4¨ 0/ا6ÇA از اÇ;%M%ت . ;z©[ ا�* ,rI-8ه%ي ا�%\¨ و روEAدن 4,ا/OA �\%ا�

زی, راZ* 0, خ/ا56A و درك ;¨ -/6A ؟ IJ/ان ;W%ل ، آ6ا;�À از XP%رات. 6Jي ج�/�o,ي OA%ی6

a | 4 + c >> b & 7

( a |((( 4 + c )>> b )& 7 ))

,Çrدی �ÇE©A Àی : %Ç8هEA4,ا ) �ÇA %Ç6 یIÇ-% ¨\%Çا5 ا�/Çخ ¨Çر آ�/Çg�Ç©�OP �gÇ,د ,OÇ- �Ç;%A% را )

6ÇIده ¨ÇOA  ه%Çم . آ%ÇÇMÇ,اي آÇ%ه  ا %ÇÇ8هEAدن 4,ا,Çآ �\%Çا� ، Bای,%ÇÇI روي ,Ç0 %OÇÇ- �Ç;%A%ث�,ي

?A*-اه6 دا/.

Page 90: Java farsi

+�(�� .��رات '

G>� وی� ای���.:

XP%رات اEA?%ب ج%وا

XP%رات 0`,ار

XP%رات 4,ش

;6ی,ی* ا�IWE%ه%

� +EI,ل u�0,0 اج,ا7 ,A%;� ، د�E/رات -,Lv و 0`,ار 4,داخz�; �E/د ]�\ Bدر ای.

Page 91: Java farsi

i�(�� .��رات آ

Ç, ا�Ç%س Ç��T0,ات ه, ز%ن �Ç;%A,,A%;� �%زي از XP%رات آEI,ل¨ ,اي ه6ای* ج,یÇ%ن اجÇ,اي

6Iد5 ;¨ آ%nEن ا�> *�Jو� . �ÇiXv ]Çه%ي ذی �Eد� �XP%رات آEI,ل¨ ,A%;� ه%ي ج%وا را ;¨ 0/ان

,�ÇÇ;%A ه%یÇÇE%ن ا;©ÇÇ%ن ;ÇǨ دهÇÇ0 6ÇÇI% . اÇÇ?EA%ب ، اآÇÇ,ار و ÇÇ4,ش : 6ÇÇIي ÇÇOA/د �ÇÇÇÇXP%رات اÇÇ?EA%ب ،

. ج,ای¨ ;?n�E¨ را , ا�%س �EA>� یÀ ج��O جX,ي ی% و��J* یÇ��TE; ÀÇ, اÇ?EA%ب آ6ÇII ;@�,ه%ي ا

6IIرت را 0©,ار آ%XP 6Id %ی À6 0% یIه% ا;©%ن ;¨ ده �;%A, �یÇXP ، ¨IJ%رات ( XP%رات 0©,ار ،

6ÇIده ¨ÇÇ; ]�©ÇÇz0 را %ÇÇه �ÇÇi�Z ، ار,Ç©0 ( . �ÇÇ %ÇÇ0 6ÇÇIده ¨ÇÇ; ن%ÇÇ©;ن ا%ÇEه%ی �ÇÇ;%A, �ÇÇÇÇXP%رات ÇÇ4,ش ،

. _�, خg¨ اج,ا -/R6A/رت

: 0/ج� � ج%وا XP%رات آEI,ل%z; ي%MA%Çn0 6Id%وت وجÇ/د دارد �Ç ا;% . ;¨ %-C#/C++/C 6 ز

.continue و breakوی�XP 5%رات

.��رات ا��<�ب /�وا

% ایB د�E/رات -O% اج,اي ,A%;� را . switchو 6I : if ز دو د�E/ر اEA?%ب A%X�Ez4¨ ;¨ آج%وا ا

,ا�%س -,ا 6Ç�Iآ ¨Ç; ل,ÇEI6 آÇIE\ا ¨Ç; ق%Çn0ا �Ç;%A,,�Ç;%A . یg¨ آ� \B�ÇZ bi اجÇ,اي �i%Ç� ,Çoا

%ÇÇ ¨ÇÇ@ی/AC++/C و uÇÇ<JE; ر/EÇÇدو د� BÇÇد در ای/ÇÇی,ي ;/ج¡ÇÇ4 ف%ÇÇgJA6رت و اÇÇ^ 6، ازÇÇ6اریA را

. -nr* زد5 خ/اه�6 -6

if

اجÇ,اي از ایBÇ د�EÇ/ر ;Ç0 ¨Ç/ان ا�nEÇ%دÇOA 5/د و . E/ر اJzA%ب -v,Ǩ در جÇ%وا ا�Ç* د� ifد�E/ر

¨v را �;%A, : -©[ آ�¨ ایB د�E/ر �/رت زی, ا�* . دو ;@�, ;nE%وت � ج,ی%ن ا6Aاخ*

if( condition )statement1;

else statement2;

Page 92: Java farsi

,ÇÇÇه %ÇÇÇ<Iدرایstatement �ÇÇÇE\,o ار,ÇÇÇ^ uÇÇÇر ;,آ/EÇÇÇد� ÀÇÇÇی %ÇÇÇد ی,ÇÇÇnI; ر/EÇÇÇد� ÀÇÇÇی *ÇÇÇا� BÇÇÇ©O;

�ÇÇÇÇÇ/ك ( <آÇÇÇÇÇ/1ددر ÀÇÇÇÇÇی ¨ÇÇÇÇÇIJ6) یÇÇÇÇÇ-% .condition ) ط,ÇÇÇÇÇ- (ÇÇÇÇÇه ÀÇÇÇÇÇی �ÇÇÇÇÇآ *ÇÇÇÇÇر0¨ ا�%ÇÇÇÇÇXP ,

. اخ�E%ري ا�*elseج��O . را ,;¨ o,دا6i;boolean 6Aار

if %رت زی, آ/� 6I6 : ر ;¨ آ-% {im; bای,- ,oا ) ]R%Zcondition 6ارi; ، true 6-% ( .

5%rA>statement1 رت . اج,ا ;¨ -/د/Ç�Iدر _�, ایstatement2 ) ر/ÇR د در/Çا ) ت وج,Çاج

6ÇÇ- 6ÇÇخ/اه . ¥�ÇÇه *ÇÇm0,ÇÇه ¨gای,ÇÇ-6ÇÇ- 6ÇÇIاه/?A ا,ÇÇاج [ÇÇه %ÇÇÇÇIJ/ان ;ÇÇW%ل ، در ÇÇwA, . دو د�EÇÇ/ر

�r,ی6 :

int a, b;

// ...

if(a > b )a = 0;

else b = 0;

,oاa از ,E©d/آ b 5%rA> ، 6-% aد/- ¨; ,nR ,,ا, b ,nRای�I/رت در _�,. ,ا 6Çخ/اه

6- .,�TE; دو Bای ¨g6 در ه�¥ -,ایZدر <ن وا ,nR ,6,اA/- ¨OA .

ÇÇÇ,اي آÇÇÇEI,ل �ÇÇÇر0¨ آ%ÇÇÇXP ، ت%ÇÇÇ^او uÇÇÇل%_if ÇÇÇ; 5د%nEÇÇÇا� ÇÇÇ- اي �ÇÇÇg /د -r�OP ];%ÇÇÇ,هÇÇÇ%ي را

ا;% از wA, ،ا�* ÇI\ 6اردÇA د/Çور0¨ وج,Ç� . رت%ÇXPif ÀÇی %Ç ,Çل زی%ÇW; ن/Ç�Oان ه/Ç0 ¨Ç; را

/ل¨ ه] آEI,ل OA/د ,��TE;:

boolean dataAvailable;

// ...

if( dataAvailable )

ProcessData();

else

waitForMoreData();

6�Ç-% �EÇ-دا ,v%Çخ �Ç Çآ %O�iEÇ@; 6ÇA0/ا ¨Ç; ر/EÇد� ÀÇÇی bÇi\ � 6ÇJاÇ^ . ,ÇÇo,ار Ç�o,د else یif %ÇÇاز

�/ك 6Aاری6 ?/اه�6 د�E/رات �Ez,ي داخ[ OA%ی�6 ، Àای>%د ی ��wA, ای�ÇJg^ B آ�Ç در ، �A%زي

: زی, <;56 ا�*

int bytesAvailable;

// ...

if( bytesAvailable > 0 ) {

ProcessData();

bytesAvailable -= n;

Page 93: Java farsi

} else

waitForMoreData();

Bل در ای%W; ك/Ç� ]Çر داخ/EÇه, دو د� ، if ,Ço6 اÇ- 6ÇIا خ/اه,Çاج bytesAvailable از ,ÇEo8ر

6-% ,nR .

E/ر در ¨ ز;%bi\ �©�A یÀ د� if، EZا�nE%د5 از ا�nE%د5 از <آ/1د را هrI%م ,خ¨ از ,A �;%A/ی@%ن

6-% �E-وج/د دا ��O6ه, جIA6ا�; u�%I; 6ا . راÇJر ÇE/ان ,اÇEZ¨ د�EÇ/ ایB ا;, �uX ;¨ -/د %0

¨Aا,rA د و/OA �\%ي را ا�,rاه�6 د<آ/1ده%از \,ا;/ش آ,دن دی/?A *-ا .�iZ ا;/ش در,\ ، *i

�/ك Àی£ ی,J0 آ,دن ، *Çز ا�%Ç�A آ� ¨;%rIه ¼Çرای ]Çاز د1ی ¨Ç©6 یÇ-%X�; %Çه%gوز خ,ÇÇIJ/ان .

�Jg^ ل%W; 6ی,�r ,wA آ6 را در Àزی, از ی :

int bytesAvailable;

// ...

if( bytesAvailable > 0 ){

ProcessData();

bytesAvailable -= n;

} else

waitForMoreData();

bytesAvailable = n;

wI, خ��¨ رو-B ا�Ç* آ�Ç د�EÇ/ر bytesAvailable = n; �Ç�Oج ]Çداخ %Ç0 56Ç- ¨ÇZا,v ري/Çv

else دد,o ن ا�* اج,ا> ¨Zا,v �g� ,v%? Bو ای ، .%OEZ %;اي ا,Ç�%د داری6 آ� \�Ç%ي خÇ%ل¨

6Çون . ج%وا اه6A ¨E�Oارد و راه¨ وج/د 6Aارد آ� آ%;�%ی�, Ç�i; �d 6OMn/دي وجÇ/د دارد 6Çآ BÇای

�mR%A ر/gÇR �Ç/رت . � اجÇ,ا خ/اهz; 6Ç- 6Ç©[ آ%;�%ی[ خ/اه6 -6 ، ا;% هrI%م اج,ا 1%Ç;ÇW%ل

:زی, اtRح ;�z/د

int bytesAvailable;

// ...

if( bytesAvailable > 0 ) {

ProcessData();

bytesAvailable -= n;

} else

waitForMoreData();

Page 94: Java farsi

bytesAvailable = n;

}

ifه�ي ت� در ت�

if. دیr, ^,ار ;¨ �o,دelse ی% ifیr,ي ، در یÀ دif 0/ در 0/ ، <ن ا�* آ� XP%رت wI;if/ر از

هÇ% را ÇR �Ç/رت Ç0/ در A ¨Ç; /Ç0/ی@if ، 6�Çو^ÇE¨ . در ,A%;� �%زي @�%ر ;6Eاول6ÇI 0/در0/ يه%

@�%ری6 <ن ا�* آ� ه, XP%رت ,v%خ �8A �Çدی©ÇE,یÇXP B%رت u�g;else ا�R¨ آ� %ی6 �Çz�Oه

if ك/�else %Ç ;/ج/د در هO%ن �Çآ else Çrع دارد دی%Çارج ، *Ç@�A bX0,Ç; [Çي ه, . ,Çل زی%ÇW; �Ç

6�I0/ج� آ:

if(i == 10 ( }

if( j < 20 ) a = b;

if( k > 100 ) a = d; // this if is

else a = c; // associated with this else

}

else a = d; // this else refers to if(i == 10)

هÇO%ن ، d,اآ� در ;,MA if(j<20) *@�A bX0%ی¨ % else ده6I ، ه�A/rA%O آ� m��/0%ت zA%ن ;

�/ك ^,ار 6Aارد ) Bی,E©8دیA �©A> وج/د %if 6ون else*ا� ( . Bض ، <خ,ی/P در �©�else %

if(i==10) *ÇÇا� bX0,ÇÇ; .else �ÇÇ ¨ÇÇداخ� if(k>100) Bی,ÇÇE©8دیA �ÇÇا آ,ÇÇd ، ع دارد%ÇÇارج if در

.هO%ن �/ك ا�*

�if-else-if)د��ن

ÇI% هÇ%ي 0/درif /Ç0یÀ �%خE%ر ,A �;%A/ی@¨ رای¼ ,ا�%س یuÇ�0,0 À از 56Ç- *Çر . ا�%Eخ%Ç� BÇای

�/رت زی, وا�* Aif-else-if,د%ن 6-% ¨;:

if(condition)

statement;

else if(condition)

statement;

else if(condition)

statement;

Page 95: Java farsi

.

.

.

else

statement;

� 4%ی�B اج,ا ;¨ -/if 6Aد�E/رات 1%%-if 6Çآ56ÇII ;%دا;�©� ی©¨ از -Ç,ایb آÇEI,ل . از ��mÇR

)true( ن> %ÇÇاÇÇo, ه��©6ÇÇام از . /د ، و A �ÇÇ�i,دÇÇ%ن رد خ/اه6ÇÇ- 6ÇÇ اجÇÇ,ا ;ifÇÇ- ¨ÇÇ، د�EÇÇ/ر هÇÇO,ا5

6I-%XA ��mR bر -,ای/E5 د�%rA> ،else 6Ç- 6Çا خ/اه,Çی¨ اج%MA .else ط,Ç- ان/ÇIJÇMA  �Ç4%ی¨

اÇ<A%م else\,ض OP[ ;¨ آ6I ، یIJ¨ اo, آ��� -,ایb دیrA> ، 6I-%XA ��mR ,r%5 <خ,یB د�EÇ/ر

%-ÇrA> ، 6IÇ%5 هMA ¨Ç�OP ¥�Ç%ی¨ elseاo, . خ/اه6 -6 ��mÇR%A bای,Ç- ,ی%Ç� 6 وÇ-% �EÇ-6اA وج/د

. o,\*اA>%م A?/اه6

B��J0 %0 آ6I آ� یnE� ÀÇ%د5 آ,د5 اif-else-ifدر زی, ، ,A%;� اي را ;z%ه56 ;¨ آ6�I آ� از A,د%ن

. z; 5?� در آ6ام \�[ وا^� -56 ا�*;%

// Demonstrate if-else-if statement.

class IfElse{

public static void main(String args ( []}

int month = 4; // April

String season;

if(month == 12 || month == 1 || month == 2)

season = "Winter";

else if(month == 3 || month == 4 || month == 5)

season = "Spring";

else if(month == 6 || month == 7 || month == 8)

season = "Summer";

else if(month == 9 || month == 10 || month == 11)

season = "Autumn";

else

season = "Bogus Month";

System.out.println("April is in the" + season + ".");

}

}

6-%i,ار زی, ;¨ �;%A, Bخ,وج¨ ای :

Page 96: Java farsi

April is in the Spring.

, Bاه�6 ای/? . <ز;%ی  آA 6�I%;� را ;B©O ا�* 6Aارد آ� 6i; �dاري �Ç خ/اه�6 دی6 آ� ه�¥ \,^

monthن% . اج,ا خ/اه6 -6 6ه�6 ، یÀ و \bi یÀ د�E/ر اEA@%ب داخ[ A,د

Switch

Ç,اي ایBÇ د�EÇ/ر راÇ� 5%د5 اي . 6ÇId راه�Ç در جÇ%وا ا�E *Ç/ر اJzA%ب ، د� switch د�E/ر *Çا�

ÀÇی £Ç�E?; ي%Mz?,ا�Ç%س ;6Çiار یÇXP ÀÇ%رت ��T0, ;@�, اج,اي 6Ç6 آÇ-% ¨Ç; . BÇای ÀÇروش ی

,اي ;>�P/O ه%ي 8رEo, از د�E/رات ,0 u�%I; B8یrج%ی if-else-if *ر -©[ آ�¨. ا�/Eد�

switch �6-% : ^,ار زی, ;¨

switch(expression (}

case value1:

//statement sequence

break;

case value2:

//statement sequence

break;

.

.

.

case valueN:

//statement sequence

break;

default:

//default statement sequence

}

expression ع/ÇÇA 6 ازÇÇی% byte ، short ، int %ÇÇی char ، 6ÇÇ-% در values ز ;ÇÇi%دی,هÇÇ, یÀÇÇ ا

%ی6 از A/ع �%زo%ر % case د�E/راتexpression6I-%%یcase 6 ه, یÀ از ;i%دی,. Àالی,Eل�

6-%n,د ,�mI; )6-% ، ,�TE; �A ، *%ی6 یÀ ث% ¨IJدی, . ) ی%i;case6I-% . XA%ی6 0©,اري

ل�E,ال XP%رت یÀ از ;i%دی, % ه, 6i; expressionار: z,ح \/ق OP[ ;¨ آswitch 6I د�E/ر

case 6A/ÇÇÇÇ- ¨ÇÇÇÇ; �ÇÇÇÇ@ی%i; .,ÇÇÇÇo6ا اÇÇÇÇ�4 ي,­%ÇÇÇÇIE; 6ارÇÇÇÇi; 56ÇÇÇÇIIآ uÇÇÇÇ�iJ0 اي ��ÇÇÇÇ@�� 6ÇÇÇÇد ، آ/ÇÇÇÇ-

Page 97: Java farsi

6Çi; %Çار اÇo, ه���ÀÇ از . اج,ا خ/اهcase 6Ç- 6Ç <ن د�E/ر %Çه *Ç,اexpression 6IÇ-%XA ,Çث% ،

اÇo, . ي ا�Ç* اخÇ�E%ر default خ/اه6Ç- 6Ç ، ا;Ç% د�EÇ/ر اجÇ,ا rA> (default)%5 د�E/ر Ç\  �Ç4,ض

case 6Ç ه���À از%�A {%Çg0 %Çو ه default 6Ç-% �EÇ-6اA د/Çم وج%Ç<Aي ا,Çrدی ¨\%Çا� ]ÇOP 5%ÇrA>

.A?/اه6 -6

% . ده6 ا�nE%د5 -56 0% ��@�� یÀ د�E/ر را 4%ی%ن switch داخ[ د�E/ر XP break%رت از �©�;%rIه

^Ç,ار switch آÇ[ د�EÇ/ر ز6J ا ;/اج� ;¨ -/ی] ، اج,ا � خb اول ,A%;� آ� break یÀ د�E/ر

6یu�0,0 B آEI,ل از XP%رت . uJzI; ، �E\,o خ/اه6 -6switchد/z�; خ%رج .

: ا�* ا�nE%دOA 5/دswitch 5 در زی, ;W%ل �%د5 اي را ;z%ه56 ;¨ آ6�I آ� از د�E/ر

//A simple example of the switch.

class SampleSwitch{

public static void main ( String args[] ) {

for(int i=0; i<6; i++ )

switch(i){

case 0:

System.out.println("i is zero.");

break;

case 1:

System.out.println("i is one.");

break;

case 2:

System.out.println("i is two.");

break;

case 3:

System.out.println("i is three.");

break;

default:

System.out.println("i is greater then 3.");

}

}

}

6-%i,ار زی, ;¨ �;%A, Bخ,وج¨ ای :

i is zero.

i is one.

i is two.

Page 98: Java farsi

i is three.

i is greater than 3.

i is greater than 3.

، �i�Z ]6 ، داخ�Iه56 ;¨ آ%z; �©ری/gA%Oه *ÇÇ/دcase 5 د�E/را0¨ آ�Ç هÇO,ا5 ث% %Çi *Çi و %g;

6- 6I6 ، اج,ا خ/اهI-% �E-دا .z4 رات/Eی, د�%��E-ا¡o ,� * 6A/- ¨; . �Ç©I6 از ایJ i ,ÇEo8ر

,ا, ;6iار caseیÀ از ;i%دی, z/د ، ه�¥ ٣از expression رت%ÇXP Bای,%ÇIÇ/د ، و 6Çاه/?A

defaultاج,ا ;¨ -/د .

Ç% را ÇZ¡ف آ6Ç�I ، اجÇ,اي break اÇo, . اخ�E%ري ا�default *Ç د�E/ر �Ç;%A, case �Ç;6ي اداÇJ

6ون د�E/رات case ا�* 6IdیoB%ه¨ EM, . خ/اه6 ی%\* break B�%-�] در �E-دا %MA>. ان/IJ

�r,ی6 ,wA 6ي را درJ �;%A, : ;W%ل ،

//In a switch/ break statements are optional.

class MissingBreak{

public static void main(String args[] ){

for(int i=0; i<6; i++ )

switch(i ( }

case 0:

case 1:

case 2:

case 3:

case 4:

System.out.println("i is less than 5");

break;

case 5:

case 6:

case 7:

case ٨:

case 9:

System.out.println("i is less than 10");

break;

default:

System.out.println("i is 10 or more");

}

}

Page 99: Java farsi

i,ار زی, خ/اه6 /د �;%A, Bخ,وج¨ ای :

i is less than 5

i is less than ٥

i is less than 5

i is less than 5

i is less than 5

i is less than 10

i is less than 10

i is less than 10

i is less than 10

i is less than 10

i is 10 or more

i is 10 or more

Ç©ری/gA%Oه� ,Çه ¨Çv ا,Ç6، اجÇ�Iآ ¨Ç; 56ه%Çz; case Ç Çm; break« ر�6�Çن �Ç یÀÇ د�EÇ/ر � ،

.;E/^£ ;¨ -/د ) switch ی% اMEA%ي(

56ÇÇ- ¨ÇÇZا,v ¨ÇÇR%خ ,ÇÇwA £�ÇÇR/0 اي,ÇÇ ¨ÇÇ�X^ ل%ÇÇW; �ÇÇ©ل�%Z ف در¡ÇÇZ ل%ÇÇZ ,ÇÇM %ÇÇ;د ، ا/ÇÇ

break د�EÇÇ/ر ÇÇJ^ي وا%ÇÇه �ÇÇ;%A,ÇÇ,اي ÇÇzA%ن دادن . دارد آ%ر,دهÇÇ%ي ÇÇ�OP¨ زیÇÇ%دي در

,,�ÇÇ;%A آ%ر ¨ÇÇ@ی/A 5ر%ÇÇÇÇ/ط ÇÇ�\ �ÇÇ/ل �ÇÇ%ل دهÇÇ%ي وا^ÇÇ0 ¨ÇÇJ, ایÇÇ�/; BÇÇ/ع ، دو,; �ÇÇA/OA

. را ;z%هOA 56%ی�6 Ç�X^ �Ç;%A,Ç�4 %Ç0%دÇ� 5%زي ا�nEÇ%دÇ; 5¨ آswitch 6ÇI از ایB روای* ج6ی6Ç هÇO%ن

. ;/ث,0,ي را ارا�U ده6

//An improved version of the season program.

class Switch{

public static void main(String args[]){

int month = 4;

String season;

switch(month){

case 12:

case 1:

case 2:

season = "Winter";

break;

case 3:

case 4:

case 5:

season = "Spring";

Page 100: Java farsi

break;

case 6:

case 7:

case 8:

season = "Summer";

break;

case 9:

case 10:

case 11:

season = "Autumn";

break;

default:

season = "Bogus Month";

}

System.out.println("April is in the" + season + ".");

}

}

ت� در ت�Switch.��رات

À6 از ی�A0/ا ¨; switch ر/Eد� Àی u�0,0 از ¨z?IJ/ان switch ,0 ¨د5 خ%رج%nEی�6 ا�%OA .

�/ك ;,/ط � switch د�E/ر از <A>%ی�©�. 6I;%A 0/درswitch ¨; /0 ایZ B%ل* را 56IIی£ آ,J0

B� ¨^t0 ¥6، ه�-% switch داخ�¨ و <MA%ی¨ آ� در switch درcase ث%ME%يخ/دش ;¨

/ج/د ، 6Aا �E\,o اه6 <;6 خ%رج¨ ^,ار/?A .ان/IJ t;%6ي آJ �Jg^ ، ل%W;*ا� ,XEJ; .

switch(count ( }

case 1:

switch(target){ // nested switch

case 0:

System.out.println("target is zero”);

break;

case 1:// no conflicts with outer switch

System.out.println("target is one”);

break;

}

Page 101: Java farsi

break;

case 2: // ...

A?/اهt0 6^¨ خ%رج¨switch درcase 1 داخ�¨ % د�E/ر switch درcase 1 در ایI>% د�E/ر

% \�TE; count bi\ *�,M,. دا-* case �@ی%i; ¨خ%رج �g� د ه% در/- ¨; .,oا count

,١5%,اrA> ،6-% target *�,M\ % case �@ی%i; ¨خ/اه6 -6 ه%ي داخ� . � �� ، �Rtر خ/v

�XIر ج/Eاز د� [M; switch 6IE@0/ج� ه ]%^ :

١ - switch% ifن/d *وت ا�%nE; switch ; م%<Aا *�nز;%ی  آ�> bi\ل�©� ¨ ده6 ، در%Z if ,ه

¨; ¨XA6%ل switch یIJ¨ آ�. آA 6I/ع XP%رت /ل¨ را ارزی% bi\ رت و%XP 6ارi; B� {%g0 Àی

. خ/دش ;¨ o,دد case ی©¨ از ث%* ه%ي

٢ - *%-OA 6I¨ 0/اi; 6IA%دی, ی©@%نswitch درcase دو ث% �E-ر . دا/Eد� Àی ، �EXال switch

Àداخ[ ی �E\,o ار,^ switch ¨; ,0 ¨ي خ%رج%ME%-case 6 0/ا6A ث% �E-ك دا,Ez;.

ه%ي 0/درif 56- /0 از ی�P/O<; À از<;06,آ%ر @�%ر;switch 1/OJ یÀ د�E/ر- ٣

. ا�*

?�/ص ج%لu 0/ج� �E©A B5 آ%ر آ%;�%ی�, ج%وا <خ,ی/mA ,rI-6 ا�* زی,ا رو-%آ%;�%ی�, .;¨

Àی �©�;%rIر ج%وا ه/Eد� switch ه,را � ، 6Iي آ%;�%ی[ ;¨ آ%ME�,آOA ¨z/دcase 5 یÀ از ث%

Àج6ول و ی jump table ب%?EAاي ا, ;@�, اج,ا ,ا�%س ;6iار ;/ج/د در XP%رت ;¨ �%زد آ�

%ی6. ا�nE%د5 ;¨ -/د ,oا ، Bای,%I OA%ی�6 ، یÀ د�E/ر از ;�%ن o,و5 8رo¨ از ;i%دی, اEA?%ب

switch Àی � *X@A از u�0,0 if-else دل و%J; ر/g@�%ر ه% آ� ، 6-%;igI¨ آ6 6Iي -56

,EJي آ%;�%ی�, ^%در ا�*. اج,ا خ/اه6 -6 �,ی%ME ایI©%ر را اA>%م دهd 6/ن ;¨ دا6A آ� ث%

case6ی%,اي آ�i; *�n%ی@� switch خ��¨ �%د5 % XP%رت ه�O از یA À/ع /د5 و 6A/- . ,آ%;�%ی�

� یI- B�Id À%�%ی¨ را *X@Aرات%XP از ¨A1/v *�,M\ if 6اردA.

) Iteration Statements (د���رات ت�)ار

�d �i�Z را ;% د�E/رات <ن ایdo-while .Bو for ،while د�E/رات 0©,ار در ج%وا XP%ر6I0 از

¨;6IIای>%د ;¨ آ ، [�;%A .1%OEZ6 آ�ا�Aدا ¨; Àی �i�Z را %M�OJرال/Eاز د� �P/O<; ر 0©,اري/g

Page 102: Java farsi

خ/اه�6 دی6، ج%وا �i�Z هgA%O/ری©� 6Jا. ;t^%ت OA%ی6را 4%ی%A¨ 0% ایI©� یÀ -,ط .,ا ;¨ آ6Iجا

.�A%زه%ي ,A �;%A/ی@¨ ;u�%I ا�* ,اي آ��� اي دارد آ�

While

�i�Z while زي%� �i�Z ر/Eد� Bا�%�¨ 0,ی (looping) *ر. در ج%وا ا�/Eد� Bدا;�©� ای%;

�mR ، 56IIل آ,EIرت آ%XP� (true) ك را 0©,ار/� Àر ی% ی/Eد� À6، ی-% 6Iآ ¨;. Bآ�¨ ای ]©-

: د�E/ر i,ار زی, ا�*

while( condition ){

//body of loop

}

%-6 ;%دا;�©� XP%رت -,XP .*mR ¨v%رت /ل¨ %-B©O; 6 ا�* ه, condition -,ط ی% �E-دا

�i�Z �A6 اج,ا خ/اه6 ، 6- .E-6اA *mR ط,- �©�;%rIله,EI6 ، آ-%6Jي � bخ � ��R%\t

در اbi\ ,o یÀ د�E/ر ;nI,د. -6 ��R%\t 34 از �i�Z ج%ري ^,ار دارد ، ;iEI[ خ/اه6 آ6ي آ�

. ا�* Z%ل 0©,ار %-6 ، ا�nE%د5 از ا,وه% _�, �,وري

�i�Z Àی %<Iدر ای while ١٠آ� 0% وج/د دارد%i�^آ,د5 و د �X�%m; را bد5 خ "tick"

.d 6%پ ;¨ آIرا

//Demonstrate the while loop.

class While {

public static void main(String args[]){

int n = 10;

while(n > 0 ){

System.out.println("tick" + n );

n--;

}

}

}

,A%;� را اج,ا ;¨ Bای �©�;%rIه �X0,; 56، د�Iآ "tick" م خ/اه6 داد%<Aرا ا:

tick 10

tick 9

tick 8

tick 7

Page 103: Java farsi

tick 6

tick 5

tick 4

tick 3

tick 2

tick 1

�i�Z �©ی�%<A> از while خ/د را ¨v,- رت%XP 6I©�; ¨-,ط ا6Eای¨ ، اo, در %1ي �i�Z ارزی%

�i�Z �A6 اج,ا ، 6-% ��mR%A 6- 6اه/?A .�Jg^ ل ، در%W; ان/IJ ¨Aزی, ، \,اخ/ا println()

.-6 ه,8o اج,ا A?/اه6

int a = 10, b = 20;

while(a > b)

System.out.println("This will not be displayed”);

�A6 while در ج%وا ,rدی �i�Z ,6ی% ه-% ¨M0 *ا� B©O; . ¨M0 ر/Eري آ� زی,ا د�/Eد� bi\

];%- ; 6-%،EJ; در ج%وا ¨X6 0,آ�Pا/^ ,wA ا�* از,X .IJ;W%ل ، ,A%;� زی, را در wA, /ان

�r,ی6 :

//The target of a loop can be empty.

class NoBody {

public static void main(String args[]){

int i/ j;

i = 100;

j = 200;

//find midpoint between i and j

while(++i < --j); // no body in this loop

System.out.println("Midpoint is" + I );

}

}

¨A%�; �giA �;%A, Bای (midpoint) B� iو j6 و خ,وج¨ زی, راI0/ل�6 خ/اه6 را 6�4ا ;¨ آ

: آ,د

Midpoint is 150

�i�Z آ%ر ¨rA/rd %<Iدر ای while 6�I���3 .آ%ه  ;¨ ی%j 6 ا\8ای  و ;6iار 6i; iار. را ;¨

%-j ، 6 هI�O%ن آEO, از ;6iار ج6یi 6 ا6i; ,oار ج6ی6A/- .6;¨ ایB دو ;6iار % ی©6یi; ,r%ی@�

% ی% 8رEo, از ;@%وي i ا�i�Z 5%rA> .,o 0©,ار خ/اه6 -6 j 6- 6خ/اه £^/E; �i�Z ، د/z . %0

Page 104: Java farsi

، �i�Z م خ,وج از%rIهi دی, اول��%i; B�6یM¨ ا�* آ� . ( ;¨ %-j6 و6i; iاري را ;¨ �o,د آ�

Bآ ای ¨;%rI6 آ�روی� هIر ;¨ آ% i 6ار اول��i; از ,E©d/آ j 6-%��A ، 6�I%زي هgA%O/ری©�) . ¨;

�A �i�Z �A6@* ، آ��� ��OP%ت داخ[ خ/د XP%رت -,v¨ اn0%ق � 6E\اي . ;¨ ا �\,Z در آ6ه%ي

56IIل آ,EIرت آ%XP آ� ¨E^ج%وا ، و ,r56 دی- �E-/A ت خ/د را دا%�U8ی¨ ;6ی,ی* آ��� ج%A0/ا �E-

�Z ، 6-%%Xه%ي آ/0%5 _%ل �i6ون 6A/- ¨; 6يI�A6 آ6 .

Do-While

[�Eno �i�Z À56 یIIل آ,EIآ ¨v,- رت%XP ,oا while 6-% ��mR%A 6اE�A6 در ا 5%rA> tRا �i�Z

�A6. اج,ا OA¨ -/د ، ¨gای,- B�Id ه¨ ;%ی��] در%o %;6ا^[ اZ �i�Z ر اج,ا -/د%X©ی .,rرت دی%XJ

%; ¨R%1ت خ%Z رت 4%ی%ن، در%XP %0 656 در ی��I6 ده�Iرا <ز;%ی  آ �i�Z ي%MEAج%وا . ا ، �A%E?X-/خ

6Iآ ¨; ��,P اي را �i�Z آ� %i�^م ;¨ ده6د%<Aآ%ر را ا B�Oه . �i�Z do-while ]^6اZ 5ار/Oه

6Iخ/د را اج,ا ;¨ آ �A6-©[ . ا�* ، زی,ا XP%رت -,v¨ <ن در اMEA%ي �i�Z ^,ار �E\,o ی©X%ر

: �/رت زی, ا�*آ�¨ <ن

Do {

//body of loop

}while(condition);

�i�Z ه, 0©,ار از do-while ¨XP%رت -,v¨ ا6Eا �i�Z �A6 را اج,ا OA/د5 ، ��3 � ارزی%

ای�I/رت در_�,. -6 %-�i�Z ، 6 اج,ا خ/اه6 (true) اo, ایXP B%رت ��mR. خ/د ;¨ 4,دازد

�i�Z د,�o ¨; ه. 4%ی%ن �i�Z آ��� ,�wA6ی% .یXP À%رت /ل¨ %-6 %ي ج%وا ، -,ط

�;%A,. ;¨ ده6 را zA%ن do-while وج/د دارد آ� (tick) �i�Z ایI>% یÀ روای* دیr, از

,�X^ �;%A¨ خ/اه6 /د �%z; �;%A, Bخ,وج¨ ای :

//Demonstrate the do-while loop.

class DoWhile {

public static void main(String args[]){

int n = 10;

do{

System.out.println("tick" + n);

n--;

}while ( n > 0 );

Page 105: Java farsi

}

}

�;%A,<ن را � -©[ ^�X¨ ، ا�d ,o از ��mR ¨©�I©0 ,wA ا�* ، ا;% ;¨ 0/ان �i�Z ;/ج/د در

�/رت زی, دو%رA 5/ی@¨ OA/د آ%را0,ي:

do {

System.out.println("tick " + n);

} while (--n > 0);

,اي nR, را در یXP À%رت و <ز;%ی  OP n[ آ%ه ، )n>0-- (در ایW; B%ل ، XP%رت

n اج,ا ;¨ -/د و n ا6Eا د�E/ر. �OP©,د <ن i,ار 6Jي ا�*. 56A%<Io ا�*

�اo, . ;¨ -/د ��3 % i; ,nR%ی@� ای6i; Bار. ,;¨ o,داn 6A را آ%ه  داد5 و ;6iار ج6ی6 را

، 6-% ,nR از ,Eo8رi�Z 6 . 4%ی%ن ;¨ �o,د _�, ای�I/رت �i�Z در. � ادا;� ;¨ ی%

�i�Z do-while ب%?EAم 4,دازش ا%rI5 ه�@�%ر �/د;6I ا�* ، زی,ا /ی /I; �A6;OJ/1 ;%ی��%0 6

6Jي را آ�. اج,ا -/د ی6Z /I; �i�Z Àا^[ ی©X%ر �;%A, [E@�� Àی Help رات/Eاي د�,�%د5 را

�r,ی6 د5 �%زي ;¨ آ6IاEA?%ب در ج%وا �4% 0©,ار و ,wA در :

//Using a do-while to process a menu selection

class Menu}

public static void main(String args[])

throws java.io.IOException{

char choice;

do {

System.out.prinln("Help on:”);

System.out.prinln(" 1 .if”);

System.out.prinln(" 2 .switch”);

System.out.prinln(" 3 .while”);

System.out.prinln(" 4 .do-while”);

System.out.prinln(" 5 .for\n”);

System.out.prinln("Choose one:”);

choice =( char )System.in.read();

} while(choice < ‘1’ || choice > ‘5’ );

System.out.println("\n”);

switch(choice){

case ’1’:

System.out.println("The if:\n”);

System.out.println("if(condition( statement;”);

Page 106: Java farsi

System.out.println("else statement;”);

break;

case ‘2’:

System.out.println("The switch:\n”);

System.out.println("switch(expression){“);

System.out.println(" case constant:”);

System.out.println(" statement sequence (";

System.out.println(" break;”);

System.out.println(“ //…”);

System.out.println(“}”);

break;

case ’3’:

System.out.println("The switch:\n”);

System.out.println(while(condition )statement; ”);

break;

case ‘4’:

System.out.println("The do-while:\n”);

System.out.println("do {”);

System.out.println(" statement; ”);

System.out.println("} while( condition );”);

break;

case ‘5’:

System.out.println("The for:\n”);

System.out.print("for(init; condition ;iteration)”);

System.out.println(" statement;”);

break;

}

}

}

,A%;� را ;z%ه56 ;¨ آ6�I اآI/ن یÀ اج,اي �A/OA 0/ل�6 -56 Bای b�/0 :

Help on:

1. if

2. switch

3. while

4. do-while

5.for

Choos one:

4

Page 107: Java farsi

The do-while:

do {

statement;

} while (condition);

,A%;� ، از Z در�i� do-while را ,ÇXEJ; �ÇI8یo ÀÇی ,%-6Ç ، وارد آÇ,د5 ,اي 6�0ی} ایI©� آ%ر

%ی6Z 6ا^[ از. خ/اه6 -6 اtPندر _�, ای�I/رت ، � آ%ر, ;>6دا. ا�nE%د5 ;¨ -/د /I; �©ی�%<A>

�ÇE©A 6Id دیÇr, درÇ%ر5 . *ای�i; B/د ا� آ%;�¨ ,اي اA>%م لdo-while �iی©X%ر OI%ی  در<ی6 ،

W; Bل ای% :�mnR ه%از,E6 آ� آ%راآ�Iد^* آ ����/خ/اsystem.in.read() ¨; 56A \,اخ/اA¨ آ��6

6A/- .� .ج%وا ا�* ورودي آI@/ل در ایB ی©¨ از 0/ا

,ر���ÇÇÇ�n0 ¨ÇǨ رو-MÇÇ%ي �ÇÇd ,ÇÇoا I/O ي%ÇÇMWm �ÇÇ6ÇÇJي ;/آÇÇ/ل -56ÇÇÇ ، ا;ÇÇ% از جÇÇÇ%وا

system.in.read() �ÇÇÇI8یo وردن> *ÇÇÇ�6ÇÇÇ,اي %ÇÇÇ<Iا در ای , ای56ÇÇÇ- 5 .BÇÇÇ ا�nEÇÇÇ�*ÇÇÇ%دآÇÇÇ%ر

6A6ارد ;¨ خ/اA%Eه% را از ورودي ا�,Eآ%راآ �,o,داÇA %را+E,ه%آ . (%0 ��mR 6دP ان/IJ LÇ; 56

6A/- ، {ی,v دل�[ از B�Oه �� castingو char 6A/Ç- LÇ; ]6یX0 ( .  �Ç4 {ÇXv 7ورود ���Çو�

,ا7 ار�%ل +%را+E,ه7% %0 Bای,%I,L; ، �;%A \,ض ، ه�O/ن ی� %\, خLg ا�* ، � 56- L4

%ی@* +��6 ENTER6ر ده�%z\ را .

6-% 56II+ *Zرا%A 76 ^6رA0/ا L; ل ورود7 ج%وا/@I+ %,A%;� هÇ%7 . +%ر +,دن ,Ez�� tPو5

ÇÇ/د وا^LÇÇJ و اÇÇ�4* هÇÇ%7 جÇÇ%وا ، 6ÇÇI5 خ/اه,ÇÇ<I4 ,ÇÇ LÇÇIEX; و LÇÇ`�\ا,o . ن از/ÇÇd �ÇÇ`Iای ,ÇÇrدی �ÇÇE`A

system.in.read() د5 -56 ا�%nE6 از ا�Çی% �Ç;%A, ، *throws.java.io.IOExeption 5د%nEÇا�

6I+ .

for

�i�Z خ/اه�6 دی6 آ� for ر%Eخ%� Àر روان ا�* ی%�@�/رت for -©[ آ�¨ د�E/ر .^6ر6IO0 و

: زی, ا�*

for(initialization; condition ;iteration; ){

//body

{

z,ح 6Jي �OP for©,د �A .�i�Z@*+/1ده%<�A%زي � اbi\ ,o یÀ د�E/ر %ی6 0©,ار -/د ،

,اي. ا�* �i�Z آ� ¨E^اج,ا ;¨ -/د و �i�Z 6ار ده¨ اول�� درi; ر -,وع ;¨ -/د% Bاول� .

Page 108: Java farsi

1/OJ; ، رت ا�* آ�%XP Àی  ? Bان ای/IJی6i; Àار ;�TE, آEI,ل �i�Z را B��J0 ;¨ آ6I ، آ�

�i�Z ل,EIآ ، ,r-ر%O- م خ/اه6 داد%<Aا�. را ا [M;6ارi; رت%XP آ� [�A6اده¨ اول�� \bi ی©X%ر *

%-6 -,ط %ی6 یXP À%رت /ل¨ ایB. ��3 -,ط ;/رد ارزی%¨ ^,ار ;¨ �o,د . ;¨ -/د اج,ا . Bای

1/OJ;  ?% (true) اXP ,o%رت 6i;. ��mRار ه6ف ;i%ی@� ;¨ آ6i; 6Iار ;�TE, آEI,ل �i�Z را

�i�Z �A6 اج,ا 5%rA> ،6-%%-6اo. خ/اه6- 6 ��mR%A , د,�o ¨; 4%ی%ن �i�Z .0©,ار  ? ،6J

(iteration) اج,ا ;¨ -/د �i�Z . ? B1 ای/OJ; ل را,EIآ ,�TE; 6ارi; ر0¨ ا�* آ�%XP

آ6I ، 0©,ار خ/اه6 -6 ، ا6Eا XP%رت -,v¨ را ارزی%¨ ;¨ <�i�Z 5%rA. ی% آ%ه  ;¨ ده6 ا\8ای 

�i�Z �A6 را اج,ا 3�� %<A6 و �,اIر;¨ آ¡o ,رت 0©,ار را در ه%XP ) مpass( 6I©�; اج,ا . Bای

. o,دد (false) داد;� ;¨ ی%XP %0 6%رت -,��mR%A ¨v روال <6iAر

�;%A, : آ,د5 ا�* ا�nE%دfor 5 را ;¨ �6�I آ� از یtick" �i�Z À" در زی, روای* ج6ی6ي از

//Demonstrate the for loop.

class ForTick {

public static void main(String args[]){

int n;

for(n=10; n>0; n--){

System.out.println("tick" + n);

}

}

�)ل ح,:5 در ح,:5 ��t--)ه�! ' forت\)ی�

%Xل%_�i�Z Àي آ� ی,�TE; for رد/; �i�Z ن%Oاي ه, bi\ ، 6Iل ;¨ آ,EIرا آ , د�A%ز /د5 و آ%ر

?  ;6iار ده¨ اول�� �i�Z ن <ن ;�TE, را داخ[در Z B�Id%لE¨ ، ;¨ 0/ا. دیr,ي 6Aارد for نtPا

IJ/ان ;W%ل در ایI>% هO%ن ,OA .�;%A/د ¨IJی �i�Z ل,EIآ ,�TE; 6 آ��Iه56 ;¨ آ%z; را ¨�X^ n

Àان ی/IJ int ]در داخ �i�Z for *ن -56 ا�tPا.

//Declare a loop control variable inside the for.

class ForTick {

public static void main(String args[]){

//here/ n is declared inside of the for loop

for(int n=10; n>0; n--)

Page 109: Java farsi

System.out.println("tick" + n);

}

}

TE; Àی �©�;%rIه��i�Z Àرا داخ[ ی ,� for 6ی% اtPن ;¨ آ6�I ، یM; �E©A À] را � 6�-% �E-ی%د دا

:TE; و <ن,O�^�,� ر/Eد� �©�;%rIه for م ;¨ -/د ، 4%ی%ن%<A6 ا یO�^ ¨IJ,و ;6m; ,�TEود. ( ;¨ ی%

�i�Z � for *ا� ( .�i�Z خ%رج از for د/- ¨; £^/E; ,�TE; ت <ن%�Z .,oا ,�TE; Bاه�6 از ای/?

اtPن XA for%ی6 <ن ;�TE, را داخ[ �i�Z دیr,ي از ,A%;� ا0%ن ا�nE%د5 آ6�I ، آEI,ل �i�Z در ج%ي

.OA%ی�6

,A �;%A/ی@%ن در-,ایg¨ آ� ;�TE, آEI,ل ,W6، اآ-%XA ز%�Aي ;/رد,rج%ي دی �i�Z ,�TE; ج%وا <ن

,A%;�. اtPن ;¨ آfor 6II را داخ[ Àی %<Iل ، در ای%W; ان/IJXA6%ل �%د5 را ;z%ه56 ;¨ آ6�I آ�

�A%ز �A@* ، داخ[ دd ، �i�Z/ن ج%ي دیr,ي ;/ر د^* آ6�I آ� ;�TE, آEI,ل. ا6Pاد اول ;¨ o,دد

for *ن -56 ا�tPا.

//Test for primes.

class FindPrime {

public static void main(String args[]){

int num;

boolean isPrime = true;

num = 14;

for(int i=2; i <= num/i; i++){

if((num % i )== 0 ){

isPrime = false;

break;

}

}

if(isPrime )System.out.println("Prime”);

else System.out.println("Not Prime”);

}

}

� Comma ا��A�د� از آ�

¨g6ار ده¨ اول�� -,ایi;  ?و initialization �4  ;¨ <ی6 آ� ;%ی��6 �  از یÀ د�E/ر در

6Jي را در IJ/ان ;W%ل ، �i�Z ;/ج/د در. 6�A%<Ir (iteration) 0©,ار �;%A, �r ,wA6ی, :

Page 110: Java farsi

class Sample {

public static void main(String args[]){

int a, b;

b = 4;

for(a=1; a<b; a++){

System.out.println("a = " + a);

System.out.println("b = " + b);

b--;

}

}

}

[ دو ;�TE, آEI,ل ;¨ -/د�b�/0 �i�Z ، 6�I ارX0 هgA%O/ری©� ;¨%iE; از. %ط Z �©ی�%<A>�i� b�/0

�©Iي ای%<EM, را �/رت د�E¨ ادارb 5 دو ;�TE, ادار5 ;¨ -/د ، ، [�Iا�* 0% ه, دو را در آ

,اي ایI©%ر دارد خ/-�A%E?X ج%وا راه¨. for [�A%<Ir د�E/ر 6IAا/E ,�TE; 6Id %دو ی �©Iاي ای,

�i�Z Àی for ل,EIرا آ %O- �ر را در ?Mz%ي ;6iار ا;©%ن ;¨ ده6Id %0 6یB د�E/ آ6II ، ج%وا

;¨ ه, د�E/ر را /���� یÀ آ%;% از د�E/ر 6Jي ج6ا. ^,ار ده�for 6 و 0©,ار �i�Z ده¨ اول��

[�Iآ.

�i�Z for رت/�6Iي OA/د زی, آ�X^ 6¨ را % ا�nE%د5 از آ%;% ، خ��¨ آ%را0, از ^X[ ;¨ 0/ان :

//Using the comma.

class Comma {

public static void main(String args[]){

int a, b;

for(a=1, b=4; a<b; a++, b--){

System.out.println("a = " + a);

System.out.println("b + " = b);

}

}

}

?  ;6iار ده¨ اول�� ، ;i%دی, در ایW; B%ل ، aو b6Iآ ¨; B��J0 ر. و را% آ� �i�Z 0©,ار ;¨ ه,

?  0©,ار-/د ، دو د�E/ر ج6ا -b�/0 56 آ%;% در )itration( 6- 6Iاج,ا خ/اه . Bخ,وج¨ ای

6-%i,ار زی, ;¨ �;%A, :

a=1

b=4

Page 111: Java farsi

a=2

b=3

�E©A :,oا % C++/C %OEZ ، 6ی¨ داری%I->*;tP ، %MA%r�OP, آ%;% یÀ ;¨ دا6�A آ� در ایB ز

tP;* ،در ج%وا .ج%وا ایgI/ر �A@* ا;% در. , XP%رت ;XEJ,ي ^%[ ا�nE%د5 ا�*ا�* آ� در ه

[ اOP%ل ;¨ %-�i�Z for 6 آ%;% یÀ ج6ا آ56II ا�* آ� \bi در%^.

i&(ل��pح,:5از اش for

�i�Z for ¨A%X�Ez4 %M�A/o%A/o 6اديJ0 ي <ن را از,دل�[ . ا\8ای  ;¨ ده6I ;¨ آ6I آ� ^6رت و آ%ر

ط و 0©,ار ، اول�� ، <ز;/ن -, ل8و;¨ 6Aارد آ� �� ?  ;6iارده¨ اgJA%ف 4¡ی,ي <ن ا�* آ�

,اي هO%ن bi\ 6A,�o د5 ^,ار%nEاه6اف ;/رد ا�. �i�Z  ? �� ، *i�iZ در for اي ه, ه6ف,

[ ا�nE%د5 ه@6IE ;/رد%^ %O- ,wA .� 6�U%;,\ ل 0/ج�%W; 6Id.

Bی,E<ی©¨ از رای A/o*ا� ¨v,- رت%XP �/ط ,; %M�A/o% .¨;ل8و ، �?z; ر/g B6ارد ایA

,خ¨ ;i%دی, ه6ف <ز;%ی  OA%ی��i را ;�TE, آEI,ل XP Z%رت ، %آi�iZ 56II* ، -,ط آEI,ل در. 6

�i�Z for 6-%�r,یW; 6%ل ، ^�Jg زی, را IJ/ان. ;B©O ا�* ه, A/ع XP%رت /ل¨ ,wA در :

boolean done = false;

for(int i=1; !done; i++){

//...

if(intettupted ()) done=true;

}

�i�Z ، ل%W; Bدر ای for ,�TE; �©�A%;ل¨ 0% ز/ done دل%J; true د ، اج,ا/z. را ادا;� خ/اه6 داد

,ر�¨ OA¨ آ6I را i ایW; B%ل ;6iار . �i�Z uي ج%ل%M�A/o%A/o از ,rن ی©¨ دی/Iاآ for 56ه%z; را

¨; 6�Iا�*. آ B©O; 6ار ده¨ اول�� و 0©,ارi; رت%XP فی©¨ ی% ه, دو¡Z ]%^,�wA ، 6I-%

�;%A, : 6Jي

//Parts of the for loop can be empty.

class ForVar {

public static void main(String args[]){

int i;

boolean done = false;

i = 0;

for (;!done;){

Page 112: Java farsi

System.out.println("i is" + i);

if(i == 10 )done = true;

i++;

}

}

}

� خ%رج از ©,اردر ایXP %<I%رM0%ي ;6iار ده¨ اول�� و 0for 6Aا �E\%ل ی%iEAي . ا%Mz?,خ¨ از

�i�Z for 6IE@ه ¨M0 .�d ,oه�¥ ا ¨Eل%Z B�Id 5ل �%د%W; Bدر ای *i�iZ 6ارد ، ا;% درA ¨-ارز

IJ/ان ;W%ل ، اo, -,ط اول�� . خ/اه6 /د آ� ایB روش @�%ر آ%را و �/د;6I -,ایg¨ وج/د دارد

%-6 و ی% ��T0,ات ;�TE, دیr,يیXP À%رت 56���4 و در ج%ي �/رت �E\,o ار,^ �;%A, از

�/رت _�, X�0,0¨ و �i�Z ل,EIآ �i�Z �A6B��J0 -/د ، b�/0 34 اOP%ل اn0%ق ا\E%د5 در داخ[

Bا�* آ� ای ,EM �i�Z را در %Mz? for [اری¡r ¨M0 . ن/Iاآ �i�Z ي%M�A/o%A/o از ,rی©¨ دی for

6�Iه56 ;¨ آ%z; ه, �. را ,oا ? � �i�Z for 6ودm;%A �i�Z À6 یOJ 5%rA> ، 6اری¡r ¨M0 را )

IJ/ان ;W%ل. ای>%د آ,د5 ای�o ¨OA ( 6,د �i�Z اي آ� ه,8o 4%ی%ن :

for (;;){

//...

}

,اي 4%ی%ن BE\,o <ن ای�i�Z B 0% ا6 ادا;� خ/اه6 ی%\* ، زی,ا ¨v,- ¥56 ا�* ه�zA ��XJ0. �d ,oا

,�wA %ه �;%A,,خ¨ 4];%P [E@�� ي \,;%ن%M-داز, ,W6 ، ا;% اآIE@6ود هm;%A �i�Z À8م ی�E@;

8ودي .�8و;%ت 4%ی%ن �o,ي وی�5 اي دار6Aه@6IE آ� ; 6m;%Aود در وا^� �i�Z ه%ی¨ �i�Z ه%ي

^�X¨ وج/د دارد 4%ی%ن دادن � یEZ �i�Z À¨ ی6m;%A �i�Z Àود W; ,�wA%ل خ/اه�6 دی6 ، راه¨ ,اي

. ;OJ/ل¨ �i�Z ا�nE%دOA 5¨ آ6Iاز XP%رت -,v¨ آ�

;pشfor-each 5:,از ح for

]`- �i�Z 7 از,rدی for6-% L; ,زی �X� �;8ی* ایB روی� <ن ا�* +� +��O +��76 ج6ی76 .

6I� ایo L; �E\,z�4 �i�Z ، �X� B/ی6I. 1زم �A@* و روB�0 ه%7 ;/ج/د LOA ,��T0 8�A ی%.

For ( type itr-var :collection) statement-block

Page 113: Java farsi

Type ، ع/A 56II+ �?z; int-var � A%م ;��TE, 0`,ار ا�* +� R%IP, ی� +�`@�/ن را ی�

6I+ L; *\%دری %MEA6ا 0% اE d �+ LA/�@`�+collection,خ� ا7 ,ا7 <ن ای>%د ;L -/د . ی� از ا

.L; 56�;%A -/د

6�Iل زی, 0/ج� آ%W; �:

//use a for-each style for loop.

Class ForEach{

Public static void main (String args[]){

Int nums[] = {1,2,3,4,5,6,7,8,9,10};

Int su, = 0;

//use for-each style for to display and sum the values

for ( int s, nums ){

system.out.println("value is: " + x );

sum +=x;

}

system.out.println("summation : " + sum );

}

}

:خ,وج¨ � R/رت زی, ا�*

Valu is : 1

Valu is : 2

Valu is : 3

Valu is : 4

Valu is : 5

Valu is : 6

Valu is : 7

Valu is : 8

Valu is : 9

Valu is : 10

Summation : 55

ت�)ار در "رای5 ه�ي چ�% �\%ي

.ایB آ%ر,د % یW; À%ل ;z?� ;¨ -/د

Page 114: Java farsi

//use for-each style for on a two-dimensional array.

Class foreacha {

Public static void main ( String args[]){

Int sum = 0;

Int nums[][] = new int[3][5];

//give nums some values

for ( int i = 0 ; i<3 ; i++ )

for ( int j = 0 ; j<5 ; j++ )

nums[i][j] = (i+1)*(j+1);

//use for-each for to display and sum the values

for ( int x[] : nums ){

for ( int y : x )

system.out.println("value is: " + y );

sum += y;

}

}

system.out.println("Summation: ") + sum);

}

}

:خ,وج¨ � R/رت زی, ا�*

Valu is : 1

Valu is : 2

Valu is : 3

Valu is : 4

Valu is : 5

Valu is : 2

Valu is : 4

Valu is : 6

Valu is : 8

Valu is : 10

Valu is : 3

Valu is : 6

Valu is : 9

Valu is : 12

Valu is : 15

Summation : 90

Page 115: Java farsi

ه�ي ت�درت� ح,:5

A%یIJ¨ ی�i�Z À . دارد ه% را M%ي ,A �;%A/ی@¨ ، ج%وا 8�A ا;©%ن 0/در0/ آ,دن �wA�i�Z, آ��� ز

*\,o 6ي ^,ار خ/اه,rدی �i�Z ]ل ، در. داخ%W; ان/IJ6Jي �i�Z ه%ي �;%A, for 56zA /00/در

6Aا :

//Loops may be nested.

class Nested {

public static void main(String args[]){

int i, j;

for(i=0; i >١٠ ; i ( ++}

for(j=i; j >١٠ ; j(++

System.out.print (".");

System.out.println )(;

}

}

}

.��رات پ)ش

ایXP B%رات ، آEI,ل را . break ، continue ، return6I©�; ¨A%X�Ez4ج%وا از �� XP%رت 4,ش

6Iل ;¨ ده%iEA0%ن ا �;%A,?  دیr,ي از � .

Break

Md ر/Eد� Bد دارد ای, :%ر آ%ر

�Ç اجÇ,اي ;ÇE/ال¨ ÇXP%رات در ی©Ç¨ از ÇZ%1ت ÇXP%رت – ١ 6Çر آ� دی6ی/gA%Oه switch Ç; ن%Ç4%ی

6z?.

Ç% ا�nEÇ%د5 از break ا�nE%د5 از – ٢ ، �Çi�Z وج از,Çاي خ, break را/Ç\ را �Çi�Z ÀÇ6 یÇ�A0/ا ¨Ç;

*O@^ رات ;/ج/د درtP ¨iو^ÇwA . ¨ÇE, آR 6Ç�I,ف4body%ی%ن ?6�z و از جv,- ��O¨ و ;%

�ÇÇ اجÇÇ,اي ÇÇXP%رت *ÇÇ/ABreak ل,ÇÇEI56 و آ�ÇÇن ر�%ÇÇ4%ی �ÇÇ �ÇÇi�Z اي,ÇÇد ، اج/ÇÇ- ¨ÇÇ; �ÇÇi�Z ÀÇÇدر ی

� tP B�E@?Aرت 34 از �i�Z ه6ای* ;¨ -/د �;%A, .اج,اي

Page 116: Java farsi

�©� د�E/رات -,v¨ و­��n ایB آÇ%ر را دار6ÇA و در ، *@�A �i�Z ج,ی%ن �g^ �E?; ر/Eد� Bای

.ا�*-,ایb خ%ص ^%[ ا�nE%د5

� IP/ان break ¨P/A ا�nE%د5 از – ٣ goto : رت%XP 6^%\ ج%واgoto درك �Ç©A> وج/د % ا�* ،

د-/ار ا�* و از ,خ¨ از �I�M �%زي ه%ي آ%;�%ی�, ج�/�o,ي ;¨ gotoو 6MrAا-* روB�0 ه%ي

Ç% ایÇA BÇ/ع از د�EÇ/ر *Çآ,د5 ا� ¨J� 6 ، ج%واIآbreak ر%Çن آ%ÇOه ,Çrاي دی �ÇA/o �Ç gotoا ر

�Ç/ك Ç- ¨Ç; ,wI\,ÇR/د . اA>%م ده6 6ÇId %Çی ÀÇاي ی,Çر از اج/EÇد� Bاج,ا ای %. ,Çاي ه,ÇایBÇ آÇ%ر

;8ایÇ%ي Ç; %IO� .break¨ 0/اÇz; 6Ç�A?� آ6Ç�I اجÇ,ا از آ>Ç- £Ç^/E; %Ç/د . �/آ¨ ا;©%�A¡ی, ا�*

goto 6I©�; [ت <ن \,اهt©z; 6ون :ایB د�E/ر � \,م زی, ا�nE%د5 ;¨ -/د . را

Break label;

Lable6-% ¨; ,wA ك ;/رد/� 56Iن ده%zA .

//using break as a civilized form of goto.

Class Break{

Public static void main ( String args[] ){

Boolean t = true;

first: {

second: {

third: {

system.out.println("Before the break.");

if(t) break second; // break out of second block

system.out.println("This won't execute");

}

system.out.println("This won't execute");

}

system.out.println("This is after second block.");

}

}

}

:خ,وج¨ � \,م زی, ا�*

Before the break.

This is after second block.

. ی©¨ دیr, از آ%ر,د ه% خ,وج از �i�Z ه%ي 0/ در 0/�*- ٤

// using Break to exit from nested loops

class BreakLoop4{

Page 117: Java farsi

public static void main( String args[]){

outer: for( int i=0; i<3; i++ ){

System.out.print("Pass " + I + ":");

for ( int j=0; j<100; j++ ){

if ( j==10 ) break outer; // exit both loops

System.out.print(j + " ");

}

System.out.println("This will not print");

}

System.out.println("Loops complete");

}

}

:خ,وج¨ از ^,ار زی, ا�*

Pass 0 : 0 1 2 3 4 5 6 7 8 9 loops complete.

Continue

?/اه�o . 6Ç%ه¨ 1زم ;¨ -/د اج,اي �Ç4 �i�Z  از ر�6�Çن �Ç اÇ©0 %ÇMEA,ار -Ç/د *Çا� BÇ©O; ¨ÇIJی

*OÇ@^ رات%ÇXP ¨i <ن Ç,اي Ç©0,ار جÇ%ري ;body £Ç^/Eاج,اي �i�Z ادا;� %ی6 ، ا;% 4,دازش ;%

�uXÇ اÇiEA%ل ;@�iEÇ] آÇEI,ل �Ç جdo-while ¨v,Ç- �Ç�O و Xwhile%رت در �i�Z ه%ي ایP B . -/د

� ^@for *Oدر �i�Z . آEI,ل آz�; �i�Z 56II/د *@?A ل,EIآ iteration ¨v,- ��Oج � و ��3

. A%دی56 اz�; �E-%rA/دcontinueدر ه, �� XP ، �i�Z%رات 34 از . ه6ای* ;¨ -/دXPfor%رت

// Demonstrate continue.

Class Continue {

Public static void main ( String args[] ){

for ( int i=0; i<10; i++ ){

System.out.print(i + " ");

if ( i%2 == 0 ) continue;

System.out.println(" ");

}

}

}

Page 118: Java farsi

,r�OP د5 از%nEا� %6ون . زوج ا�* ی% خ�,I آ� ;6iار ,ر�¨ ;¨ -/د% �i�Z ، 6-% B�Id ,oا

6 :خ,وج¨ ;%6IA زی, ا�* . d%پ آ%راآg� ,E, ج6ی6 ادا;� ;¨ ی%

0 1

2 3

4 5

6 7

8 9

. ;¨ 0/ان از ,8�A u@d ا�nE%د5 آ,د6IA%;break د�E/ر

ی>%د A �i�Z%در ا�* d/ن ج%وا ;>I_ �P/O¨ از XP%رات اbreakآ%ر,ده%ي در�* ,اي XP%رت

6Z 5 اي آ� 0©,ار زود0, از�%-6I ، ا;% ,اي -,ایb وی ¨; u�%I; %ده,دارد آ� ,اي �Ez, آ%ر

روش �Ç%خE%ری%\�E اي Ç,اي اÇ<A%م ایBÇ آÇ%ر \Ç,اه] �A �i�Z 56- B��J0continue%ز %-ÇXP ، 6%رت

.OA/د5 ا�*

Return

� آÇ%ر ;Ǩ رود 6E; Àی� از ی,R *zoز%,اي . uXÇ� ¨ÇIJی �Ç;%A, �Ç%زo,دا6ÇAن آÇEI,ل اجÇ,ا

6Iي -56 ا�*. \,اخ/ان ;6E ;¨ -/د �iXv ان 4,ش/IP �6یu�0,0 B ، ایXP B%رت .

% ا�nE%د5 از XP%رت return ان/Çاخ,\ B�Ç0رو �Ç �Çwmل ,Çا را در ه,Çل اج,EI6ه% ;¨ 0/ان آE; در

6Aدا,oز% 6E; .6ي آ� در <ن اج,ا ;¨ -/د را \/رE; رو اج,اي Bا 4%ی%ن ;¨ ده6از ای.

����ت ا��A�د��� از ا�

,اي ;©%�A@] یÀ ا�U%IWE%ت ادار5 آ,دن 6IO0ل ^6ر,EIه%ي آ �;%A, \,اه] 56���4

، try ،throw آ� ا�* ایM; B] . اج,ا ا�* B�Z 4/ی%ي وی�6Id ¨oیB داراي آ� <ورد5

،throws ، finallyو catch ان/IJ خg%ه% و -,ای6m; bود5 ادار5 ,اي وا�� -�/5 ه%ي را

¨J�Xv ,�_ در {gI; ن%Eه%ی �;%A,�r,ی6 ,wA در.

]W; ,oا �;%A, ,Wی@%ن اآ/A 5%rA> ،6�-% ¨E^و Àروش ی [�iP ¨; 1%OEZد، ا/- ¨J� ¨; %0 6�Iآ

À6 ی�Aدا,o,%ی6 ایA B/ی@¨ ,A%;� در ج%وا ;Tz/ل و^E¨. آ6 خg% را ، 6�E@دت ه%P ر%Iرا آ

Page 119: Java farsi

r¡اری6 .E^و¨ Àروش ی ¨; [�iP 6A0/ا ,EM ،6-% -�/5 ایOA .B%ی�6 ا�IWE%ئ 0,4%ب یÀ ا�*

u0ا,O .ا�* Z ¨O�iP%1ت ادار5 ,اي EM,ي

�E©A :رات/Eان آ,دن ادار5 د�/IJ,اي اJzA%ب �%زي ;©%�A@] یÀ ا�IWE%ئ در ج%وا XA%ی6 ¨;/OP

�0 ¨�m; ,�_د/- ¨i .، 6م ده�%<Aر را ا%©Iای ,oا bi\A,را ;zT/ش آ,د5 و 6MrAاري <MA% را %;�

. ;z©[ ;¨ �%زی6

����ت ادار��� ا�

%IWEا� (exception) Àی ¨J�Xv ,�_ bدر ز;%ن آ� ا�* -,ای B�آ6 ی�E?; À£ ;,اZ[ اج,ا در

XJ%رت. -/د ;¨ Z%دث Àئ ی%IWEا� ,rي دی%gخ B�Z *ي در . اج,ا ا�%MA% آ� آ%;��/0,ي ز

;OJ/1 از -/6A و ادار5 آEI,ل د�E¨ آ6II ، خg%ه% %ی6 �/رت A% ¨OA¨ را X�Ez4ا�IWE% ادار5

@�%ر v%^* -�/5 ایB . و _�,5 (error codes) خg% آ6ه%ي v,ی} ]©z; و %�,\ Bا�* <\,ی .

ایt©z; Bت در4,دازش ج�/�o,ي آ,د5 و ;6ی,ی* خg%ي B�Z اج,ا در ج%وا از ,وزا�IWE% ادار5

. %یoOA 6,ای¨ را در د�A%ي -¨

�� ادار� ا�Bل�� ا�

Àی %IWEا�¨f�- ،آ� ا�* در ج%وا Àی¨ ی%IWEط ا�,- ) ÇIJی ÀÇی %Çgخ ( �Çاي در را آ �ÇJg^ 6Çاز آ

یÀ و^E¨. آZ 56- £�R/0 ، ¨; 6I%دث Ç; د%Ç<ئ ای%IWEÇد -,ط ا�/Ç- ÀÇی Ç- �Çئ را <ن آ%IWEÇا�

¨\,J; ¨; 56- 6 ای>%دIرا ای>%د <ن آ� و در رو-¨ آ %gد5 خ/OA ,4 ،د ;¨ 0%ب/- (Thrown) .

، در �giA در ه, R/رت. o¡ر آ6I و ی% از <ن OA%ی6 ادار5 ا�IWE%ئ را خ/دش ا�* ;B©O روش <ن

EÇ@�� bÇ�/0 B�ÇZ] ا�* ;B©O ا�U%IWE%ت. -/د ;¨ 4,دازش و (caught) -56 ا�IWE%ئ �E\,o اي

ا�U%IWE%ت. /ج/د <یb�/0 %O- 6I آ6ه%ي د�E¨ دارد �/رت ی% ا;©%ن ج%وا 0/ل�6A/- 6 ، و اج,اي

;�©6II و ی6Çm; %ÇودیME%ي ج%وا g?0¨ ز%ن از ^/اB�A آ� اb�/0 ¨�R ج%وا % خg%ه%ي -56 0,4%ب

0/ل�56Ç- 6Ç ا�U%IWE%ت. o¡ارbX0,; ، 6A ه@6IE ج%وا را زی, b�m; ¨; %4 اج,ای¨ EÇاي د�,Ç %ÇP/A

,خ¨ OA/دن 8oارش � %gخ b56 -,ایIAاخ/ا,\ Àد5 روش ی%nE6 ;¨ ا�A/-.

Page 120: Java farsi

اÇOP%ل آ��6Çي واژ5 در ج%وا IÇ4 b�/0¼ ا�IWE% ادار5 Ç; د/Ç-: try ،catch، throw ،throws و

finally .�Rtر خ/g,�Ç;%A اي د�EÇ/رات . ده�OP ¨; [�Ç©,د <MA% را 0/��� �Çاي آ,Ç 6Çی��%;

�/ك یÀ ده�6 داخ[ zA%ن ا�U%IWE%ت try A/z�; 56A%<Io6 . ]Çداخ ,Çoا BÇك ای/Ç� ÀÇئ ی%IWEÇدث ا�%ÇZ

. خ/اه6Ç- 6Ç -/د ، 0,4%ب Ç; %OÇ- 6Ç6 آÇA0/ا BÇای bÇ�/0 را %IWEÇا� catch �ÇE\,o و <ن Ç-و, را

¨igI; 5ی6 ادار%OA .ت%U%IWE0/ل�6 -56 ا� [E@�� b�/0 [E@�� b�/0 ر خ/دآ%ر/g B�Z ج%وا اج,اي

. -/6A ;¨ 0,4%ب

,اي �©Iای Àرت ی/� ا�nE%دthrow 5 آ��6ي آ�I] ، از واژ5 0,4%ب د�E¨ ا�IWE%ئ را Ç; [�ÇIآ .

�,ون آ� ه, ا�IWE%ی¨ À0,4%ب روش از ی ¨; ÀÇی bÇ�/0 6Çی%. -Ç/د ;throws �?Çz جÇ- �Ç�O/د

%ی6 آ%;t آ� ه, آ6ي "]X^ ي%MAدا,o,�/ك در یÀ اج,ا -/د روش یÀ از finally 5ار داد,^ ¨;

%-6 زی, ;¨ ا�IWE%ئ �/رت ادار5 �/ك یOP À/;¨ -©[ .-/د :

try {

// block of code to monitor for errors

}

catch( Exception Type1 exOb ){

// exception handler for Exception Type1

}

catch( Exception Type2 exOb ){

// exception handler for Exception Type2

}

//...

finally {

// block of code to be executed before try block ends

}

. ا�* -Z 56%دث آ� ا�* ا�IWE%ی¨

���� ا��اع ا�

%-throwable ¨; 6I 0/آ%ر از آtس زی, آM�t%ی¨اA/اع ا�IWE% آ��� .Bای,%I throwable در

%1ي ��@�� u0س ;,اtئ آ%IWE) ا�exceptionار دارد (,^ .��R%\tدو throwable از 34

Page 121: Java farsi

-%خ� یÀ آIP ,� ، 6II/ان ;¨ ;>8ا i0@�] و -%خ�د را � ا�U%IWE%ت وج/د دار6A آ� زی, آtس

Exception *ا� . Bس ایtاي آ,%ی6 �r,د ، ا�nE%د5 ,A%;� ه%ي آ� -,ایb ا�IWE%ی¨ , آ%ر

را خ/د0%ن �%زی6 0% اA/اع ا�IWE%ئ �n%ر-¨ ;¨ ، زی, آ�t¨ آtس از ایB هB�I�O. -/د ;¨

% زی, آtس یÀ. ای>%د OA%ی�6 *�Oاز اه Exception *m0 ان/IP RuntimeException وج/د

, A ,�wA "[�@i0 ,nR/ی@�6 و ;/اردي -O% ;¨ آ� ,A%;� ه%ی¨ ,اي A/ع ایB ا�U%IWE%ت. دارد "

g/ر خ/دآ%ر J0,ی£ ;¨ را در <ن " _�, ;XEJ, <رای� �%زي OA%ی�" و ، 6�A%<Io ¨; د/- .

6A . *m0اری] اwEA%ر آ6I آ� ;¨ را J0,ی£ ا�U%IWE%0¨ آ� ا�* IP Error/ان دیm0 ,r* -%خ�

,A%;� -,ایP b%دي b�/0 �E\,o %O- 6A/- .ت%U%IWEع ا�/A از Error [E@�� b�/0 B�Z اج,ای>%وا

. -/د ;¨ ج%وا �, و آ%ر دار6A ، ا�nE%د5 اج,اي % خ/د ;B�Z b�m آ� خg%ه%ی¨ دادن zA%ن ,اي

-©@ME%ي � در A Error %P/A ½�%4/ع U%I%تا�WE . خg%ه%�* از ای�A/OA B اي �Ez4 �,ری8ي

*X��; ري%,OJ; �;%A/1 آ� b�/0 5ار *@�A %MA> ¨; ج/د/ ، 6Iی> .

����ت��2�5 ا�(* �%�� Uncaught Exceptions

]X^ �©Iزی6 آ� از ای/;%� �A/rd ت%U%IWEا� �;%A,6�OMn در آ� EM, ا�* OA%ی�6 ادار5 0%نرا در

6Jي �%د5 ,A%;�. ا\6E ;¨ ا�d ¨^%n0 ا�U%IWE%ت ادار6P 5م R/رت 56A,�o, ا�* XP%رت یÀ در

%�P آ� 6OJ Àي ی%gخ [�@i0 ¨; ,nR , .-/د

class Exc0 {

public static void main(String args[] ){

int d = 0;

int a = 42 / d;

}

}

¨E^و [E@�� B�Z ش اج,ايt0 اي ج%وا,Ç، -Ǩ یÀÇ را <-Ç©%ر ;�@Ç%زد ,�Ç@i0 ,nÇR] اÇ<A%م خÇ/د

%IWEÇ6ي ا�Çج6ی �Eخ%Ç� 3�Ç� ب <ن و%Ç0,4 را Ç; 6ÇIآ (throws) . BÇر ای%Çآ �ÇP% £Ç^/0 اي,Çاج

EXC0 ¨; ر آ�%X©دد ، زی,ا ی,o Àی %IWEی6 0,4%با�% �ÇE\,o ا�IWEÇ% آ56II ادارb�/0 5 یÀ -/د ،

56- (caught by an exception handler) و ��R%\t ;W%ل درای�o .B,د >%ماA آ%ري <ن ,اي

Page 122: Java farsi

,ایÇ©A B,د5 ایÇ] را �Ç�,P خ/د;Ç%ن ا�IWEÇ% آ56ÇII ، ;% ادار5%ÇI �Ç4  آ56ÇII ا�IWEÇ%ئ bÇ�/0 ادار5 ،

/���� <;56 \,اه] \,ض [E@�� B�Z ج%وا اج,اي �E\,o 56- *ا� . ¨U%IWEآ� ه, ا� �;%A, b�/0

�E\,o %O- *ی%MA د ، در/zA 5ادار b�/0 56II6 4,دازش \,ض �4  آÇ- 6Ç56 ادار5. خ/اهÇIIآ  �Ç4

�Ez4 (stack tracer) ردی%ب ده6 ، یOA ¨; À%ی  OA/د5 ا�IWE%ئ را �R/0£ آ� ر-�E ، یÀ \,ض

,OA �;%A%ی6 و ;¨ d%پ ا\E%د5 ا�IWE%ئ اn0%ق در <ن آ� از �giA اي [E6 ;¨ را خIآ .

Bای �;%A, �©�;%rIل ه%W; ق/\ B�Z ,@n; b�/0 ج%وا اج,اي JDK ¨; د اج,ا/- ]ÇR%Z را ,Çزی

: آ6I 0/ل�6 ;¨

java.lang.ArithmeticException :/ by zero

at Exc0.main(Exc0.java:4)

�Ç0/ج �Ç6 آÇی�%;,\ �ÇA/rd سtÇم آ%ÇA ،EXC0 م%ÇA ، روش ،main ]Çم \%ی%ÇA ، ،EXC0.java و

ÇA/ع 6 آOA �Ç%ی�Ç د^Ç* ه56Ç- . B�ÇI�O ا�EÇz4 56ÇA%<Io 6ÇA ایB �%د5 در ردی%¨ ، هrO¨٤خO- ، b%ر5

%IWE56 0,4%با�- Àس یtاز زی, آ Exception *m0 ان/IP Arithmetic Exception¨; 6-%

�d ده6 آ� ;¨ 0/��� د^�} خ��¨ آ� ^��Ç�/0 tXÇ هgA%O/ری©�Ç . ا�Ç* ا\ÇE%د5 اÇn0%ق ÇA/ع خÇg%ی

اج,ا B�Z خg%ه%ي % اA/اع o%A/o/ن آ6I آ� ;¨ A/ع ا�IWE%ئ 0/آ%ر را P,�� ، ج%وا 6IdیB دادی]

i* آ�%g; ،6A/z�; 61 0/ل�%OEZ6 ;¨ اI . ی%

� آ� روش \,اخ/اM�A%ي ��@�� ه�Ez4 �z�O ردی%ب ,<I; 6 راA56 ا- %gوز خ, ÇOA%ی  Ç; 6Çده .

هO%ن آ� آ6�I ;¨ را ;z%ه�X^ 56¨ دیr, از ;W%ل روای* ، یW; À%ل IJ/ان Ç\,J; را %Çgخ Ç; 6ÇIآ

: ()main ج6ا از ا;% در رو-¨

class Exc1 {

static void subroutine )({

int d = 0;

int a = 10 / d;

public static void main(String args[] ){

Exc1.subroutine)(;

}

}

Page 123: Java farsi

\,اخ/ا�A/rd �Ez4 ¨A ده6 آ� ;¨ ا�IWE%ئ zA%ن \,ض �4  آ56II از ادار5 <;56 �6* ر-�E ردی%ب

: ا�* در<;56 OI%ی  آ[

java.lang.ArithmeticException :/ by zero

at Exc1.subroutine(Exc1.java:4)

at Exc1.main(Exc1.java:7)

�6�I ، 4%ی�B ;¨ هgA%O/ری©� �Ez4 bروش٧خ main وج/د دارد آ� *m0 ان/IP Subroutine

(debugging) زدای¨ ا-©%ل ,اي \,اخ/ان �Ez4 .* -56 ا�٤,وز خg% در خb و �uX ا�*

� را آ� ;,ا�Z¨ د^�} ��@��، زی,ا آ%;6�n; t ا�*,<I; 6A56 ا- %gخ.

catch وtry از ا��A�د�

�d,o56 ادار5 اIIض �4  آ,\ %IWE56 \,اه]ا�- [E@�� b�/0 B�Z اي ج%وا اج,اي, زدای¨ ا-©%ل

XA6%ل ;6�n ا�* 1/OJ; %;ن ، ا> À6 0% ی�E@ه %IWEی�6 ادار5 خ/د0%ن ا�%OA .م%<Aا BÇای *Çر دو ;8ی%Çآ

. خ/اه6 -6 خ/دآ%ر ,A%;� خE] ، ایI©%ر ;%�A ایI©� دوم. داری6 خg% را �XW0* ا;©%ن ایI©� اول.دارد

,A%;� ا0%ن ,وز ;¨ -O% خg%ی¨ در ,A%;� اo, ه, %ر آ� ، 6Iآ £^/E; 56Ç- ÀÇب و ی%Çردی �EÇz4

,�Ç;%A اÇ0%ن اآÇW, آÇ%ر,ان ، <OA 5%ÇrA%یÇd 6Ç%پ ¼�Ço [oدر,Ç� 6 وA/Çz�; . �A%E?XÇ-/خ ,�o/Çيج�

B�Id از ¨Eل%Z 5ر �%د%�@ .ا�*

را آ�Ç آ6ي �%د5 اج,ا ، خ��¨ B�Z خg%ي یÀ و ادار5 و��J* از ایB ج�/�o,ي ,اي Ç; 6Çخ/اه�

�Ç/ك یÀÇ داخÇ[ (monitor) ده�OA 6Ç%ی  try 6Çار ده�,Ç^ . ��ÇR%\t 6ÇJ�Ç/ك ایBÇ از ÀÇی ، �Ç�Oج

catch ار ده�6 آ�,^ ¨U%IWEع ا�/A د را آ�,�r,اي. آz; ¨; 6I?� ;%ی��6 �©Iل* ای/M� ر%©Iای

�/ك یÀ در,56A,�o آ6�I آ� rA%5 را 6Jي ، ,A%;� ده�] را zA%ن try Àو ی ��Oج catch 6 آ�-%X�;

ArithmeticException 56- 6ي 0/ل�%gخ b�/0 [�@i0 را 4,دازش ,nR , ¨; 6Iآ .

class Exc2 {

public static void main(String args[] ){

int d/ a;

try { // monitor a block of code.

d = 0;

a = 42 / d;

Page 124: Java farsi

System.out.println("This will not be printed.");

} catch( ArithmeticException e ){ // catch divide-by-zero error

System.out.println("Division by zero.");

}

System.out.println("After catch statement.");

}

}

i,ار زی, ;¨ ,A%;� ایB خ,وج¨ 6-% :

Division by zero.

After catch statement.

�/ك داخ[ ()println \,اخ/اOA ¨A%ی�6 آ� د^* try ¨OA 8 اج,اo,ر. -/د ه%ا�IWEÇ%ئ یÀÇ آ� ه,

�/ك � try از �/ك خ%رج ، اiEA%1ت -/د، ,A%;� ;¨ 0,4%ب catch ل,EI6 ;¨ را آIرت. آ%XJ

M ،,Ecatch ¨Aاخ/ا,\ ¨OA Bای,%I�Ç/ك catch �Ç یÀÇ از اجÇ,ا ه,8Ço -/د try ÇOA,. Ço,دد

Bای,%I bخ ، "This will not be printed"  ی%ÇOI ÇOA 6 درÇی> . �Çر آ%Ç ,Çر ه/EÇد� catch

,A%;� اج,ا -/د ، آEI,ل bÇخ %6ÇJي �Ç;%A, uÇ�iJ0 56ÇIIآ [Ç@�A%©; ]Çآ try/catch �Ç;6 اداÇخ/اه

. *ی%\

Àر ی/Eد� tryو catchÀ6 و یZوا (unit) ]�©z0 ¨; 6Iده .��Oو ج,O�^ catch 56- 6ودm; � <ن

��R%\t آ� ا�* د�E/را0¨ ]ÇX^ ر/EÇاز د� try �?Çz; 6ÇA56 اÇ- . ÀÇر ی/EÇد� catch ÇOA 6ÇA0/ا

0/در56Ç- /0 د�E/رات ;r, در Z%ل* ، را �r,د try د�E/ر دیb�/0 ,r یÀ -56 ا�IWE%ئ 0,4%ب

try ر 0/��� آ�%�Eخ%/���� آ� د�E/را0¨ . داد5 ای] try *w\%m; ¨; 6A/- . %وه,%یb�/0 6 ا

�v%Z6 اA/- ) . ÇIJی %ÇMA> ]Ç6 داخÇی% ÀÇك ی/Ç� 6ÇA,�o ار,Ç^ ( . ÇOA 6 ازÇ�A0/اtry روي ÀÇر ی/EÇد�

. ا�* -56 ز ;JDK¨\,J از��T0 1.0.2, در روای* ایOA .B%ی�nI; 6,د ا�nE%د5

%-6 آ� %ی6 ایcatch B �%خ* خ/ش جtOتاآW, ه6ف و ��ÇE\,o ,Ç� 3�Ç رااز -Ç,ط ا�IWEÇ%ی

6Jي ، در ,W; �;%A%ل IJ/ان . ا�* En�A%دo 5/ی% خg% ه,8o اn0%ق ده6 آ� را ادا;� ,v �;%A/ري

�i�Z ه, 0©,ار for ��mR 6دP �0%د\¨ دو u@6 ;¨ را آIن . آ> ��mR 6دP دو [�@i0 ,rی©6ی ,

,اي <ن بو ج/ا -56 [�@i0 6دP١٢٣٤٥ 5د%nEی¨ ج/اب. -/د ;¨ ا�%MA در a ¨; د ^,ار,�o .

Àه, ی ,oت ا%��OP از [�@i0 ,<I; � و ;6iار -56 خ�E\,o %g -/د ، <ن" , i0 ,nR@�] " خg%ي

a ار,^ ,nR ,,ا �E\,o �;%A, . ی%6 ;¨ ادا;� و

Page 125: Java farsi

// Handle an exception and move on.

import java.util.Random;

class HandleError {

public static void main(String args[] ){

int a=0/ b=0/ c=0;

Random r = new Random)(;

for(int i=0; i<23000; i++ ){

try {

b = r.nextInt)(;

c = r.nextInt)(;

a = 12345 /( b/c);

} catch( ArithneticException e ){

System.out.println("Division by zero.");

a = 0; // set a to zero and continue

}

System.out.println("a :" + a);

}

}

}

Gی��� iA-Bت� fاز ی ���� ا�

Throwableروش toString() ،) ���Ç�/ object £Çی,J0 56Ç- ( 6ÇI©�; /ÇTرا ل، �Ç©ری/g

Àی �E-56 رA,�o, ا�o %IWE¡ر دادن % �%د5 0/ا6�A خ��¨ ;¨. o,دا6A از ا�IWE%ئ را ,;¨ n�R/0¨ در

IJ/ان Àن ی%;/oر> Bای ، £�R/0 Àر را در ی/Eد� println() � OA 6 %یÇاری¡r، ;ÇW%ل ÇIJ/ان .

�/ك catch �;%A, . OA/د A/ی@¨ دو%ر5 زی, �/رت 0/ان را ;¨ ^�X¨ در

catch( ArithmeticException e ){

System.out.println("Exception :" + e);

a = 0; / set a to zero and continue

}

¨E^و Bروای* ای �;%A,اج,ا -Ç/د ، هÇ, ج%وا OA� *m0 ,@n; JDK%ی�6 ، و ,A%; ج%ی8rیB را در

: خ/اه6 داد را OA%ی  6Jي , nR, ، �4%م i0@�] خg%ي

Page 126: Java farsi

Exception :java.lang.ArethmeticException :/ by zero

در �%ی, -Ç,ایb ا;% 6Aارد، خ%R¨ ارزش ;BE در ایB ا�d,oا�IWE% از یOA ¨n�R/0 À%ی  0/اA%ی¨

.زدای¨ ا-©%ل ی% هrI%م %ر % ا�U%IWE%تآ هrI%م ?�/ص @�%ر ارز-6IO ا�*

چ�% *��catch 5 /�1ت

Ç�J�Ç  آ/�ÇJg^ ÀÇd از یÀÇ ;/ا^�Ç در 6Çآ ÀÇاز ی %IWEÇا� Ç; د/Çج/ 6Çاي . <ی,Ç B�ÇId ادار5

¨gای,- ¨; ، ��O6 جId %6 دو ی�A0/ا catch �?z; ی�6 آ�%OA ,آ6ام ه Àوت ی%nE; ع/A ئ%IWEاز ا�

6A,�r .¨E^و Àئ 0,4 ی%IWEر -/د ، ه, ;¨ %با�/Eد� catch u�0,E ا;mE%ن Ç; B�Çد، و اول/Ç-

% A/ع ا�A %IWE/ع <ن آ� د�E/ري*i%g; �E-6 ، اج,ا خ/اه6 -6 دا-%6J از اج,اي. Àر ی/Eد�

catch رات/Eی, د�%� ، *z4 �E-ا¡o ,� ¨; 6 و اج,ايA/- ك/�6J از try/catch �;خ/اه6 ادا

: ا6Aازد ;¨ را 6ام ا�IWE%ئ ;?�E£دو A/ع 6Jي ,A%;� . ی%\*

// Demonstrate multiple catch statements.

class MultiCatch {

public static void main(String args[] ){

try {

int a = args.length;

System.out.println("a = " + a);

int b = 42 / a;

int c[] = { 1 };

c[42] = 99;

} catch(ArithmeticException e ){

System.out.println("Divide by 0 :" + e);

} catch(ArrayIndexOutOfBoundsException e ){

System.out.println("Array index oob :" + e);

}

System.out.println("After try/catch block.");

}

}

Page 127: Java farsi

;@Ç%وي Çd a/ن Ç; ,nÇR BÇد، ای/Ç- �Ç;%A,6Çون ,Çoي ا%Çه,E;ن 4%را%Ç;,\ bÇز خ%Ç_> د/Ç-

�ÇÇ ,ÇÇ<I; ÀÇÇی %IWEÇÇا� " [�ÇÇ@i0 ,nÇÇR ,ÇÇ "6ÇÇ- 6ÇÇخ/اه .ÀÇÇی ,ÇÇoن ا%ÇÇ;/oن <ر%ÇÇ;,\ bÇÇد خ/ÇÇج/

8رEo, از nR, ^,ار ده�6، ,6i; �;%Aاري را ;J%دل a<وری6 و [�@i0 %O- ت%<A ده6 ;¨ را . %Ç;ا

Bای �;%A, uX� ArrayIndexOutOfBoundsException ¨; ، دد,o ن/Çd �Çرای> C ÇA عاز/

int ل داراي/v 1 *ن ا�%I�Oه ، �;%A,�Ç را آ6Çi; %Ç0 6Iاري ;¨ t0ش C[42] ب/Ç@I; 6Çی%OA .

: آ6�I ;¨ را ;z%ه56 ه, دو را5 اج,اي /���� 0/ل�6 -56 در ایI>% خ,وج¨

C:\>java MultiCatch

a = 0

Divide by 0 :java.lang.ArithmeticException :/ by zero

After try/catch blocks.

C:\>java MultiCatch TestArg

a = 1

Array index oob java.lang.ArrayIndexOutOfBoundsException :42

After try/catch blocks.

¨E^رات و/Eاز د� catch �A%o 6Id 5د%nEا� ¨; [ÇM; ، 6�Iآ *Çا� �Ç6 آÇ�A6اا�IWEÇ%ئ زیÇ, آMÇ�t%ي

]X^ 6ی% ÀÇی ,Çس از هtÇي از آ%Ç1ه% �Çv/6Çان ایÇ^ 6ÇA,�o . BÇ,ار ;, ]Çدل� *Çا� �Çآ ÀÇر ی/EÇد�

catch آ� Àس از یtد5 آ%nE1 ا�% ¨; ،6Iت آ%U%IWEي <ن ا�%M�tع و زی, آ/A 6 <نÇع را خ/اه/ÇA

*\,o . Bای,%I Àی ,oس ، اt6 از زی, آJÇ%1ی  آtÇس �Ç 8Ço,6 ، هÇی%� زیÇ, آtÇس <ن ÇOA

را در 6Jي ، ,W; �;%A%ل IJ/ان . خg% ا�* /A¨P د�E,س ^%[ ، در ج%وا ، آ6 _�, tJو5. ر�6

�r,ی6 ,wA :

/* This program contains an error.

A subclass must come befor its superclass in

a series of catch statements .If not/

unreachable code will be created and a

comple-time error will result.

*/

class SuperSubCatch {

public static void main(String args[] ){

try {

int a = 0;

int b = 42 / a;

Page 128: Java farsi

} catch(Eeception e ){

System.out.println("Generic Exception catch.");

}

/* This catch is never reached because

ArithmeticException is a subclass of Exception .*/

catch(ArithmeticException e ){ // ERROR - unreachable

System.out.println("This is never reached.");

}

}

}

BÇ6 ایÇاه�/? ,Çoا �Ç;%A, ]Çرا آ%;�%ی ÀÇ6 ، یÇ�Iم آ%ÇT�4 *Ç\%دری %Çgخ Ç; �Ç6 آÇ�Iآ B�Ç;6 دوÇی/r�;

از زیÇ,آtس یArithneticException ÀÇ از <A>%ی�©�Ç . ا�Ç* ر�6�Çن _�,^%catch ]Çد�EÇ/ر

Exception *Çا� ، B�ÇÇر اول/EÇÇد� catch �ÇÇي آ��%ÇÇه%gي خ%ÇÇIX;, Exception �ÇÇ�Oاز ج

ArithneticException 56 را ادارI©�; .B6ی u�0,0 B�;ر دو/EÇد�catch 6Çاه/?A ا,Ç8 اجÇo,ه

,اي ,v,ف آ,دن ایu�0,0 ]©z; B دو XP%رت ، 6-catch6ده� ,��T0 را .

try ت�درت� ش%� د���رات

. 0/درÇOA /0/د 0/ان را ;¨ try د�E/رات ÇIJی ÀÇر ی/EÇد� try Ç; ان را/Ç0 ]Çك داخ/Ç� ÀÇی try

�EÇz4 56A%ÇzA روي ÇXP%رت <ن -/د ، ;BEÇ وارد ;¨ try د�E/ر یÀ ر آ�ه, %. دیr, ^,ار داد Ç;

,ايcatch آ56II ادار5 0, \%^6 یÀ داخ�¨ try د�E/ر اo, یÀ. -/د ÀÇی %IWEÇص ا�%Çخ �EÇz4 ،6Ç-%

/ط catch آ56II و ادار56zA 5 دور زد5,; �,اي try د�E/ر 6Jي Àی {�Xg0 ار,^ /<E@رد ج/;

;/\catch {Ç ازد�E/رات ی©¨ ی%6 0%ایI©� ;¨ 60اوم Z%ل* ای�o .B,د ;¨ A%Ç;ز %Ç0 %Çد و ی/Ç- �Çآ

Ç% ا�catch %IWEÇ از د�EÇ/رات -6A/Ç ، اÇo, ه���ÇO0 ÀÇ%م try 0/در56Ç- /Ç0 د�EÇ/رات آ��� *Çi%g;

�E-6اA 5%rA> ، 6I-% [E@�� B�Z ئ را ادار5 ج%وا خ/دش اج,اي%IWEÇا� Ç; 6ÇIدر. آ را زیÇW; ,Ç%ل

: ا�* OA/د5 ا�nE%دtry 5 0/در0/ -56 از د�E/رات آ�;�©z; 6�I%ه56

// An example of nested try statements.

class NestTry {

public static void main(String args[] ){

try {

Page 129: Java farsi

int a = args.length;

/* If no command-line args are present/

the following statement will generate

a divide-by-zero exception .*/

int b = 42 / a;

System.out.println("a = " + a);

try { // nested try block

/* If one command-line arg is used/

then a divide-by-zero exception

will be generated by the following code .*/

if(a==1 )a = a/(a-a); // division by zero

/* If two command-line args are used/

then generate an out-of-bounds exception .*/

if(a==2 ){

int c[] = { 1 };

c[42] = 99; // generate an out-of-bounds exception

}

} catch(ArrayIndexOutOfBoundsException e ){

System.out.println("Array index out-of-bounds :" + e)

}

} catch(ArithmeticException e ){

System.out.println("Divide by 0 :" + e);

}

}

}

�/ك آ6�I، یz; ¨; À%ه56 هgA%O/ری©� try ]ي را داخ,rده6 ;¨ ج%ي دی . �Ç;%A,�Ç/رت ,Çزی

خÇ;,\ bÇ%ن <رÇMA%;/o%ي را 6ون ,A%;� و^E¨. آ6I آ%ر ;¨ Ç; ا,Ç6 اجÇ�Iآ ÀÇی %IWEÇا� " [�Ç@i0 ,Ç

,nR "ك/� b�/0 ¨0, خ%رج try ¨; اج,اي. -/د ای>%د �;%A, Àی b�/0 ن%;/oن <ر%;,\ bخ

Àی %IWEا� " [�@i0 ,nR ,0, داخ�¨ �/ك d/ن. آ6I 0/ل�try ¨; 6 0/در0/ -56 �/ك را از داخ["

Bای ¨OA ئ را%IWEد ا�,�o %IWEا��خ/اهÇ- 6Ç/د و در <Ç<A% ادارo ¨; 5¡ر دادtry 5 0, خ%رج¨ �/ك

6- .,oا �;%A, از داخ[ " <رای� ;6mود5 " ا�IWE% اج,ا OA%ی�6، یÀ خb \,;%ن <رMA%;/o%ي را 6ون

از Z%1ت ه, یÀ آ� وج/د دار�A/OA 6A اي در زی, اج,اه%ي. 0/ل�6 خ/اهtry 6- 6 0, داخ�¨ �/ك

: ده6I ;¨ را zA%ن \/ق

Page 130: Java farsi

C:\>java NestTry

Divide by 0 :java.lang.ArihmeticException :/ by zero

C:\>java NestTry One

a = 1

Divide by 0 :java.lang.ArihmeticException :/ by zero

C:\>java NestTry One Two

a = 2

Array index out-of-bounds:

java.lang.ArrayIndexOutOfBoundsException :42

Aا/Çاخ,\ ,Çoروش ا [Çه �EÇ-د دا/Ç5 وج%ÇrA> ،6Ç-% /Ç0دن 0/در/ÇOA رات/EÇد� try BÇ©O; *Çا� �Ç

� 0/ا6�A \,اخ/اW; ¨; ، ¨A%ل IJ/ان. �6En 0, اn0%ق MI4%ن رو-M%ی¨ Àرا درون روش ی Àك ی/�

try م%Ç<A6 اÇروش <ن درون. ده� ÀÇی ,Çrر دی/EÇد� try د/Çدارد وج . BÇدر ای *Çل%Z ،try درون

در . -/د آ6I 0/در0/ ;¨ ;¨ اA¨را \,اخ/ روش آ� try 0, خ%رج¨ �/ك یÀ داخ[ هI�O%ن روش

�;%A, nesttry() ]ÇiA روش 6اخ[ try 0/در0/ -56 �/ك در <ن آ6�I آ� ;¨ را ;z%ه�X^ 56¨ زی,

. ا�* آ,د5 ;©%ن

/* Tyr statements can be implicitly nested via

calls to methods .*/

class MethNestTry {

static void nesttry(int a ){

try { // mested try block

/* If one command-line arg is used/

then a divide-by-zero exception

will be generated by the following code .*/

if(a==1 )a = a/(a-a); // division by zero

/* If two command-line args are used/

then generate an out-of-bounds exception .*/

if(a==2 ){

int c[] = { 1 };

c[42] = 99; // generate an out-of-bounds exception

}

} catch(ArrayIndexOutOfBoundsException e ){

System.out.println("Array index out-of-bounds :" + e)

Page 131: Java farsi

}

}

public static void main(String args[] ){

try {

int a = args.length;

/* If no command-line args are present/

the following statement will generate

a divide-by-zero exception .*/

int b = 42 / a;

System.out.println("a = " + a);

nesttry(a);

} catch(ArithmeticException e ){

System.out.println("Divide by 0 :" + e);

}

}

}

6A%; ¨ن خ,وج%Oل ه%W; ¨�X^ *ا� .

Throw

m%ل %0 BE\,o bi\ %O- ¨0%U%IWEآ� ا� [E@�� b�/0 B�Z ب اج,اي%Ç0,4 وا%Ç56 جÇ- 6Ç56 ایÇرا دی . %Ç;ا

�;%A, ¨; %O- À6 یAی� 0/ا,R ر/g -©[. OA%ی6 0,4%ب throw د�E/ر از % ا�nE%د5 ا�IWE%ئ را

¨;/OP throw ¨; ,ار زی,i 6-% :

ThrowThrowableInStance;

%Ç<Iدر ای Throwable Instance ÀÇ6 یÇی% Ç- ع/ÇA از throwable ÀÇی %Çس یtÇآ ,Çاز زی

throwable 6-% throwable,�wA _�, از آM�t%ي ، ه�O/نchar ی%�wA ، int, اA/اع �%د5.

string و objectان و/IJ 6IAا/E�OA ت%U%IWEد5 ا�%nEا� A/-6. 5/�- اي دو, *�6-¨ یÀ <وردن

throwable د5: وج/د دارد%nEا� Àاز ی ,E;داخ[ 4%را ��Oج catch Àو ی% ای>%د ی %Ç 6Çئ ج6ی ¨-

,r�OP new . ج,ی%ن ��ÇR%\t6ÇJ از د�EÇ/ر اج,ا throw £Ç^/E; Ç; د/Ç- . رات/EÇ6ي د�ÇJ

�/ك 8Aدی©E,یA .B?/اه6I -6 اج,ا �E@ 56- try ¨; ار,^ /<E@رد ج/; Àد 0% ی,�o ر/Eد� catch

Page 132: Java farsi

% A/ع ا�IWE% ا -/د آ�6�4*i%g; �E-6 دا-% .*i%g; ,oا ]R%Z ل -/د,EIآ � د�E/ر ;iEI[ <ن

i*. -/د ;¨%g; ,o5 ا%rA> ، د/zA 6ي 6�4اJ@�E د�E/ر 56- try ¨; ار,^ /<E@د ، ;/رد ج,�o

catch *i اo, ه�¥. <خ, و هgI�O/ر ال¨%g; 56 ايII5 آ%rA> ، د/zA 56 ادار5 6�4اIIآ Ç4 � ض,Ç\

¨W©; ئ%IWEا� � �;%A,,A%;� در ایI>% یÀ . آ6I ;¨ را d%پ �Ez4 و ردی%ب داد5 �A/OA 56ه%z; ¨;

�o,د ، ;>6Çدا ا�IWE%ئ را ;¨ ایB آ� آ56II اي ادارOA .5%ی6 ;¨ را ای>%د و 0,4%با�IWE% یÀ آ6�I آ�

. خ/اهOA 6/د 0,4%ب �,وA¨ آ56II ادار5 را � <ن

// Demonstrate throw.

class ThrowDemo {

static void demoproc )({

try {

throw new NullPointerException("demo");

} catch(NullPointerException e ){

system.out.println("Caught inside demoproc.");

throw e; // rethrow the exception

}

}

public static void main(String args[] ){

try {

demoproc)(;

} catch(NullPointerException e ){

System.out.println("Recaught :" + e);

}

}

}

Bای �;%A, 3A%- اي دو, Àی % �ÇwI0] ا�BEÇ; %IWEÇ یmain() ÀÇ ، اول. دارد ;Ez,ك خg%ي آ%ر

را \,اخ/اdemoproc ¨A() آ6I و ��3 ;¨ Ç; 6ÇIروش. آ demoproc() 5%ÇrA> ÀÇی BEÇ; ,Çrدی

56ÇIIادار5 آ %IWEÇا� [�ÇwI0 د5 را/ÇOA ��ÇR%\tرا NullpointerException از ج6ی�ÇA/OA 6Ç یÀÇ و

6Jي روي آ6I آ� ;¨ 0,4%ب bخ �E\,o 6- 6خ/اه . %IWEخ/اه6 -6 0,4%ب;>6دا ا� .]R%Z ار,i

. زی, خ/اه6 -6

Caught inside demoproc

Recaught :java.lang.NullPointerException :demo

Page 133: Java farsi

�Ç;%A, B�ÇI�Oن ه%ÇzA Ç; �ÇA/rd 6Çده Ç©ی EÇا� %�Ç-از اW%I د%Ç<وا ای%Ç6ارد جA%EÇا� Ç; د/Ç- �Ç0/ج

�Ez,ي � Bای �E-دا b6 خ�-% :

+ throw new NullPointerException("demo");

%Ç<Iدر ای ، new 5د%nEÇ56 ا�Ç- ÀÇی %Ç0 �ÇA/OA از NullpointerException �Eخ%Ç� د/Ç-. �Çآ��

% یÀ 4%را;E, و ی©¨ 6ون ی©¨: دار6A 0/آ%ر ج%وا دو �%ز56A اج,اي B�Z ا�U%IWE%ت �EÇ-ر ,E;را%Ç4

ا�nEÇ%د5 ومد از -©[ و^E¨ . اي Ç; ن%Ç;/oد ، <ر/Ç- ÀÇی �EÇ-را ر �?Çz; Ç; �Ç6 آÇIآ %IWEÇرا . ا�

£�R/0 ¨; 6ی%OA .¨E^ان آ� و/IJ� <رo/;%ن یÀ -¨ ئ print() %ی println() 5د%nEد ;¨ ا�/-

BÇای ، �EÇ-ی  ر%ÇOI Ç;6 درÇی> . BÇای �EÇ-را ر B�ÇI�Oه Ç; ان/Ç0 ���Ç�/ ÀÇی Aا/Çاخ,\

getMessage() آ� b�/0 Throwable £�R/0 56- *�6 . <ورد

Throws

Àی ,oروش ا *�\,­ Àئ را دارد و <ن ای>%د ی%IWEÇرا ادار5 ا� ÇOA 6، <نÇIروش آ BÇ6 ایÇی%ر\ÇE%ر

�?z; اي خ/د را �A/r[ را در خ/د-%ن روش <ن \,اخ/اA%ن آ� OA%ی6 %i; ت%U%IWEا� *Çw\%m;

6Iی%OA .6نA%<Io % throws ج�Ç�O یÇ�r�; . ÀÇ,د اÇ<A%م شرو در اtÇPن Throws ج�Ç�O یÀÇ ایI©%ر

¨0%U%IWEاع ا�/Aآ� ا Àروش ی B©O; *0,4%ب ا� *�,M\ ی6 و%OA 6يI ¨; 6Iاي . آ,Ç آ���Ç ایI©%ر

Ç/ط ، یÇ% ا�U%IWEÇ%ت RuntimeException ی%Error اA/اع ، �T, از ا�* -,وري ا�U%IWE%ت,;

� آ��� . <MA% زی, آM�t%ي 0%U%IWEÇی, ا�%� �Çآ ÀÇروش ی Ç; ب%Ç0,4 6ÇA0/ا �Ç�O6 در جÇی% ، 6Çی%OA

throws نtP6 اA/- .م%<Aر ا%©Iای ,oا Àد ، ی/zA ي%gخ (compile-time) ]R%Z 6- 6خ/اه .

]©- ¨;/OP Àن یtP56 آ� روش اA,�o,�/رت throws ج��O در ، 6-% : زی, ا�*

type method-name(parameter-list )throws exception-list

{

// body of method

}

Page 134: Java farsi

%<Iدر ایexception-list Àی *�,M\ 56- 0¨ ج6ا%U%IWEآ%;% از ا� % *Çا� �Çآ ÀÇروش ی Ç; 6ÇA0/ا

6Jي ;W%ل . OA%ی6 0,4%ب Àی �;%A, ��mR%A *ش آ� ا�t0 ¨; À6 یIآ �Çئ را آ%IWEÇا� ÇOA 6ÇA0/ا

,d �;%A/ن. OA%ی6 ، 0,4%ب �r,د Àی ��Oج throws �?z; را ¨OA B6 0% ایIآ iZ*i� نtÇPرا ا

�;%A, : A?/اه6 -6 آ%;�%ی[ OA%ی6 ،

// This program contains an error and will not compile.

class ThrowsDemo {

static void throwOne )({

System.out.println("Inside throwOne.");

throw new IllegalAccessException("demo");

}

public static void main(String args[] ){

throwOne)(;

}

}

Ç,اي ]Çدن آ%;�%ی/ÇOA BÇل ای%ÇW; 6Çد <وری/Çج/ ,Ç�TE; 6 دوÇی% آ6Ç�I اtÇPن ا�Ç* ا6ÇEا ، 1زم . ،

throwOne() ¨-ا�* رو �Çآ IllegalAccessException ب%Ç0,4 را Ç; 6Çی%OA .روش دوم ،

main() Àی6 ی%�r,د را ا�IWE% ایOA B%ی6 آ� J0,ی£ try/catch د�E/ر .

// This is now correct.

class ThrowsDemo {

static void throwOne )(throws IllegalAccessException {

System.out.println("Inside throwOne.");

throw new IllegalAccessException("demo");

}

public static void main(String args[] ){

try {

throwOne)(;

} catch( IllegalAccessException e ){

System.out.println("Caught " + e);

}

}

}

: آ6I زی, را 0/ل�6 ;¨ ، خ,وج¨ ,A%;� ایB اج,اي

Page 135: Java farsi

inside throwOne

caugh java.lang.IllegalAccessException: demo

Finally

¨E^ت و%U%IWE6 ، اج,ا در روش ;¨ 0,4%ب ا�A/- 6يZ %0 ل%�iAا ¨Jg^ 6 ;¨ �6ا4 وÇIآ ,Ç�_ ,�Ç@;

¨gج,ی%ن آ� خ ¨J�Xv روش ¨; ,��T0 ده6 را .�E@ � �©Iروش ای �A/rd 6يÇI 6Ç56 آÇ- ، 6Ç-%

¨EZ دارد آ� ا;©%ن ÀÇی �ÇP%ÇrIM%م -Ç/د Ç0% روش ا�IWEÇ%ئ %A دد,Ço, . Çخ, رو-B�ÇId %MÇ در

¨�©z; B©O; *ان. <ی6 �4  ا�/IJ و هÇrI%م ز ÇOA/د5 ورود Ç% را هrI%م \%ی�¨ روش اo, یW; À%ل

6Iد /����Ç را ;¨ \%ی[ آ� 6�E@�A آ6ي -O% ;%ی[ را 6IXد ، <rA%5 <ن خ,وج [Ç@�A%©; 5ئ ادار%IWEÇا�

*z4 ,� �E-ا¡o د/Ç- .56ي واژÇآ�� finally ÇZا,v 56Ç- BÇای %Ç0 ل%ÇOEZا .آ6ÇI و^Ç/ع را -Ç�%I%ی

Finally Àك ی/�6J از ایI©� آ6I آ� آ6 ای>%د ;¨ ÀÇك ی/Ç� try/catch ]Ç�O©0 56Ç- ]ÇX^ 6 وÇاز آ

u�iJ0 56IIك آ/� try/catch 6- 6ك. اج,ا خ/اه/� finally �d Àئ 0,4%ب ی%IWEا� �d د -/د/zA

�/ك -/د 0,4%بيا�IWE% اo, یÀ. ، اج,ا خ/اه6 -6 finally ¨EZ 6- 6اج,ا خ/اه Àه��� ,oاز ا

% ا�IWE%ئ catch د�E/رات *i%g; �E-6اA 6I-% .

5%Ço,ه ÀÇروش ی ÀÇ8دیA *Çا� �Çآ ]Çاز داخ ÀÇك ی/Ç� try/catch �Ç 56ÇIAدد \,اخ/ا,Ço,

ÀÇی bÇ�/0 �ÇE\,o ئ%IWEÇ56 ا�ÇzA Çآ %Çی *Çzo, ^ÇX[ هfinally B�ÇI�O ، جÇR �Ç�O,ی� د�EÇ/ر

Ç,اي ا�Ç* ایÇ©I%ر ;BÇ©O . اجÇ,ا خ/اه6Ç- 6Ç روش از ,MEÇzo%ي BEÇ@ و \%یÇ[ د��rEÇ,5 هÇ%ي

J¨ <زاد آ,دن%I; ,آ� �%ی B©O; *6ايدر ا�E% ه6ف روش یÀ ا B�J; آ,دن ]X^ %MA> *zo, از

%-6 دادن 6�n; ر%�@ .��Oج finally ري%�Eر . ا�* اخ/Eا;% ه, د� try 8م�E@; ]^6اZ ÀÇی �Ç�Oج

catch Àی% ی ��Oج finally ¨; 6-%,A%;� اي . %<Iج/د در �� روش �� وج/د دارد آ� در ای/;

6وناز <A ه���À ده6 آ� ;¨ را zA%ن را5 %M ت اج,ايtOج finally 6IE@خ/د ه .

// Demonstrate finally.

class FinallyDemo {

// Through an exception out of the method.

static void procA )({

try {

Page 136: Java farsi

System.out.println("inside procA");

throw new RuntimeException("demo");

} finally {

System.out.println("procA's finally");

}

}

// Return from within a try block.

static void procB )({

try {

System.out.println("inside procB");

return;

} finally {

System.out.println("procB's finally");

}

}

// Execute a try block normally.

static void procC )({

try {

System.out.println("inside procC");

} finally {

System.out.println("procC's finally");

}

}

public static void main(String args[] ){

try {

procA();

} catch( Eeception e ){

System.out.println("Exception caught");

}

procB();

procC();

}

}

Bل در ای%W; ،procA() 0,4%ب % Àم ی%rIM%A ر/g finally ج6I©Ç-. �Ç�O را ;¨ try ا�IWE%ئ،

/ط try �Ç د�E/ر. -/د اج,ا ;¨ را5 خ%رج روي,; procB() ÀÇی bÇ�/0 ر/EÇد� return ا,Çاج

Page 137: Java farsi

د�E/ر()procC در. -/د اج,ا ;¨ OA%ی6 ,procB() *zo از ایfinally ]X^ �©I ج��O. -/د ;¨

try ¨J�Xv ر/g�/ك ا;%. -/د خg% اج,ا ;¨ و 6ون finally ن%I�Oا�* اج,ا -56 ه .

�/ك اo, یÀ : ی%د<وري finally Àی % try 5ا,Oك ه/Ç� ، 6Ç-% finally س%Çا�, �Ç<�EA try ا,Çاج

: آ6�I ;¨ را ;z%ه�X^ 56¨ از ,R%Z �;%A[ در زی, خ,وج¨ . خ/اه6 -6

inside procA

procA's finally

Exception caught

inside procB

procB's finally

inside procC

����ت�� ت�آ�ر /�وا ا�

6Id . آJ0 ¨; 6I,ی£ ا�IWE%ئ را آtس ، ج%وا 6Idیjava.lang B ا�6A%Eارد ا\8اري A,م @�E داخ[

Bي 0% از ای%Mل%W; در %M�tآ Ç�X^ 5د%nEÇ6 ا�A6Ç- . ;/ÇOP Bی,Ç0 BÇت ای%U%IWEÇا� %MÇ�tآ ,Çع يزی/ÇA

6ÇA throwsارد <ÇMA% در هÇ�,M\ ,Ç* ل8و;¨ tJو5. %-RuntimeException ¨; 6I ا�6A%Eارد

�/ط ,; À56 روش یA%<Io 6A/- .ن% 56Ç- (unchecked آÇEI,ل ج%وا ، ایMI% را ا�U%IWE%ت در ز

exception) ¨; 6I;%A .ل زی,ا,EIآ%;�%ی�, آ ¨OA 6 آ�Iآ Àروش <ی% ی Bت ای%U%IWEار5را اد ا� ¨;

%ÇMA> %6 یIب آ%Ç0,4 را Ç; 6Çی%OA . 6ولÇرا در ج %ÇMA> 1 *Ç�,M\ [Çد5 ای/ÇOA . 6ولÇن 2 ج> 0%U%IWEÇا�

*�,M\ 6 آ� ;¨ راIآ b�/0 java.lang £ی,J0 Àی6 در ی%/ط � M\ throws,�* -56 ا6A و ,;

E/ا6A ی©¨ روش -/6A ، اo, <ن 56A%<Io روش Bت از ای%U%IWEد5 را 0/ل�6 ا�/OA دش ، ا/Çخ %Ç; را <ن

56Ç- (checked exceptions) آÇEI,ل را ا�U%IWEÇ%ت ا�U%IWEÇ%ت ای6ÇI©A . BÇ ادار5 Ç; 6ÇI;%A . وا%Çج

B6یId ت%U%IWEاز ا� ,rع دی/A £ی,J0 6 آ� ;¨ راIه%ي آ �A%?%Eآ %جÇ%وا ;bX0,Ç آtÇس o%ÇA/o/ن

6IE@ه.

در ج%وا 56zA RuntimeException آEI,ل زی, آM�t%ي

��ا� ت�9-}��

AB (� ArithmeticException) ت:�-� ، �; /�)ي &3�ي

Page 138: Java farsi

ArrayIndexOutOfBoundsException ا�= از �%ود� &�رج "رای5 ���ی5

ArrayStoreException ��ع ��ز*�ر از ی�b. f "رای5 یf �5 ا����ب

��) cast ت�%ی;\ (-2 ClassCastException

IllegalArgumentException �)اي ش%� >-) I�ز ا��A�د� "ر*� �ن

i2)ا&�ا� fد ی%I روش

��%ن ��شi .�,-�ت (��� I�ز ، ��-) (-< IllegalMonitorStateException

�% �A; یf روي� �) ��%unlocked thread( .

IllegalThreadStateException ����ز*�ر �� و9\-= ش%� در&�ا�= .�,-�ت

�% /�ري�

i&(� 5&�رج ا��اع ���ی �ود%� IndexOutOfBoundsException ا�= از

�iA ا�%از� �� یf ایI�د ش%� "رای5 NegativeArrayException

fاز ی (��\ )/4 آ�ر�)د >-) iت� NullpointerException

��) یf ت�%ی;\ (-< 5� = یf �5 رش(2 iر�� NumberFormatException

�-= :�� �)اي ت1ش SecurityException ا

0/آ%ر در ج%وا -56 آEI,ل ا�U%IWE%ت

�� ت�9-}�� ا�

ClassNotFoundException ا�= پ-%ا ��%� آ1س

.CloneNotSupportedException را�? آ5شi یf ت��-% �; �)اي ت1ش

Cloneable%� . را پ-�د� ��زي ��-�

i�(� IllegalAccessException ا�= �ا���ر ش% آ1س یf �5 د�

InstantiationException ی� یf آ1س از یfشi ایI�د یf �)اي ت1ش

را�?

fت��� یthread f? ی�ت� thread(دی� InterruptedException

i� NoSuchFieldException .%م و/�د 2-,% در&�ا�

i��% در&�ا� NoSuchMethodException .%م و/�د

��ئ )��ط �5 زی) آ1���ي ایI�د ���دن�� &�دت�ن ا�

Page 139: Java farsi

�d,oت ا%U%IWEي ا�%Çه%gخ ,W0/آ%ر ج%وا اآ ¼Çرا ادار5 رای Ç; ل%ÇOEZ6 ، اÇIIاع آ/ÇA6 اÇاه�/?دارد

� -O% را ادار5 در ,A%;� ه%ي <;56 �4  را ای>%د آ6�I 0% -,ایz; b?� خ/د0%ن ا�IWE%ئ ;,/ط

6IIم. آ%<Aر �%د5 ا%�@ یÀ ال�EX آ�( OA%ی�J0 6,ی£ Exceptionاز زی,آtس \bi یÀ : ا�* ایI©%ر

را Ç�4%د8Ç�d 5ي " 6Aار6A 0% وا^O- %J% ل8و;¨ زی, آM�t%ي .( %-Throwable ¨; 6از زی,آtس

.آ6II �%زي

Ç,اي رو-¨ ه��Exception �A/r آtس £Çی,J0 د/Çخ ÇOA 6ÇIآ . �ÇEXال BÇس ایtÇي از آ%MÇ-رو

,د ;¨ ارث b�/0 Throwable -56 \,اه] .B6ی u�0,0 ت آ���%U%IWEی�©� -%;[ ا�%MA> ای>%د %O-

%-MA> 6I% ;¨ و در د�E,س -J0 56,ی£ b�/0 Throwable ه@6IE آ� رو-M%ی¨ آ,د5 ای6 ، داراي

?/اه�6 یÀ ا�* ;B©O هB�I�O. داد5 ای] زی, zA%ن <MA% را در ج6ول B6 0% از ایId %را در ی %M-رو

.آ,د5 ای6 ، لOA /T%ی�6 ای>%د آ� ی¨ا�IWE% آM�t%ي

J0 56- b�/0 Throwable,ی£ رو-M%ي

;6E -,ح

fی iش Throwable 5را آ ; ()ThrowablefillinStackTrace ردی�ب یf ش�

.*)دا�% �) i ا�= پ��5 ش%� ت��-;

��� ای� i= ش�دا پ)ت�ب ا%I . ش�د

iA-Bت� i ��ئ را �)�� ()StringgetMessage *)دا�% از ا�

()VoidprintStackTrace ده% i را ���یG پ��5 ردی�ب

�string��bشi از ��ع ()StringtoString را �) i *)دا�% آ5

=�������اي شi . ش)حi از ا�� Gم ���ی����% ه .��د 2)ا&�ا�%� -()println �5 و�-,throwable 5ای�

6Jي ;W%ل Àس یtج6ی6 از زی, آ Exception نtP3 ;¨ ا�Ç� 6 وIس از <ن آtÇآ ,Çد5 زی%nEÇا�

¨; *;tP %0 6Iآ Àی �را ()tostring ، روش زیÇ, آtÇس ایOA . BÇ%ی6Ç ار�%ل روش یÀ -,ط را

¨; /Tد5 ل%nEا� % . در<ی6 ا�IWE%ئ OI%ی  ده�R/0 %0 6£ ;¨ اج%زprintln 5() از آ6I ، و

// This program creates a custom exception type.

class MyException extends Exception {

Page 140: Java farsi

private int detail;

MyException(int a ){

detail = a;

}

public String toString )({

return "MyException[" + detail + "]";

}

}

class ExceptionDemo {

static void compute(int a )throws MyException {

System.out.println("Called compute(" + a + ")");

if(a > 10)

throw new MyException(a);

System.out.println("Normal exit");

}

public static void main(String args[] ){

try {

compute(1);

compute(20);

} catch( MyException e ){

System.out.println("Caught " + e);

}

}

}

Bل ای%W; Àس یtاز زی, آ Exception *m0 ان/IP MyException £ی,J0 Ç; 6ÇIآ . BÇای ,Çزی

tJو5 �%زbi\ 56A یÀ زی, آtس ایB : ا�* �%د5 خ��¨ آtس Àروش ی tostring() �E-%XA56 اÇ-

�Çی  دارد آ%ÇOA ئ را%IWEÇ6ار ا�Çi; Ç; 6Çس . دهtÇآ ExceptionDemo ÀÇروش ی *Çm0 م%ÇA

compute() ¨\,J; ¨; 6 آ�Iآ Àئ ی ¨- MyException 6 ;¨ را 0,4%بIآ . ¨E^آ� و ,E;4%را

��mÇR 6دÇP �ÇÇ/ط ,; compute() از ,ÇEo8ر روش. خ/اهÇ0,4 6Ç- 6Ç%ب %-6Ç ، ا�IWEÇ%ئ ١٠

main() À56 ادار5 یIIاي آ,را compute %Ç() ده3�Ç� ، 6Ç ;¨ ^,ار MyException ا�IWE%ئ

À6ار ;>%ز یi; ) از ,EO١٠آ ( À8 ی�A 6ار وi; اي,دو ;@�, ;/ج/د در آ6 دادن zA%ن _�, ;>%ز

¨A6 ;¨ \,اخ/اIآ .]R%Z رت/� : زی, ا�*

Page 141: Java farsi

Called compute(1)

Normal exit

Called Compute(20)

Page 142: Java farsi

"ش��ی+ �� '1س ه�

G>� وی� ای���.:

اR/ل آtس ه%

-�/J0 5,ی£ آ,دن -¨

?0¨- � ��� ;��TE,ه%ي ارج%ع

)ج%ی8rیB 0/ا� ( ;6E; ¨\,Jه%

Constructor%ه

thisآ��O آ��6ي

t ا�nE%د5 �w\%Z ي,�o 34 ز%

6E;finalize()

Stackآtس

]�\ Bدر ای �Ç;%A,J0 5/ÇmA %Ç,یÇ£ و \,اخÇ/اA¨ زی, ¨ÇP8اEAع داد5 ا/A ,آÇEI,ل ، ) ;tP) 6ÇEو5

%زz�; %I-> ¨Ezo/ی6 �;%A,� اMA% ، ار�%ل 4%را;E, و زی, �w\%Z ص%�E5 اخ/mA ، �;%A, زی,

Page 143: Java farsi

ه�آ1سا�Bل

�%خE%ر ;igI¨ ه@6IE آ� آ[ ز%ن ج%وا , ، ه%آtس. ه% در ه@�E ;,آ8ي ج%وا ج%ي دار6Aآtس

�Eا آ� -©[ و ;%ه�* -¨روي <ن �%خ,d ،*ی£ ;¨ -56 ا�,J0 6ه% راIIآ .tآ ،*X�0,0 B6یه% س

�;%A,ه, ;/�/P¨ آ� ?/اه�6 در . دهo6I,ا را در ج%وا z0©�[ ;¨ �%زي -¨4%ی� و ا�%س

�;%A,¨; ،6�Iنه%ي ج%وا �4%د5 �%زي آ%MA سtآ Àی@* در ی% . -/د١

�E©A Bی,EOM; 6س -%یtر5 آ%ه% را ه% ی%د o,\* <ن ا�* آ� A/ع ج6ی6ي از داد5اي آ� %ی6 در

ه%ي A/ع 0/ان ,اي ای>%د -¨ءه%ي A/ع ج6ی6 را 34 از J0,ی£ -6ن ;¨داد5. آJ0 6II,ی£ ;¨

� آ%ر رد ,wA ی¨. ;/رد/rس، الtرو، ه, آ Bء ا�*٢از ای¨- Àاي ی, .�A/OA [و ه, -¨ء ه-

، ا_�u خ/اه�6 دی6اي از یÀ آtس ا�*d/ن ه, -¨ء، �A/OA. <ی6 از یÀ آtس � -O%ر ;¨٣اي

� آ%ر,د5 ;¨آ� دو واژ5 -¨ ,rج%ي ی©6ی � �A/OA 6 وA/- .

ایB آ%ر % ;z?� آ,دن . -/دآ6�I، ;%ه�* و \,م د^�} <ن ;J,\¨ ;¨و^E¨ آ�t¨ را J0,ی£ ;¨

ا�d ,o . -/دآ6II، اA>%م ;¨ه% OP[ ;¨ه%ی¨ آ� , روي <ن داد5ه%ي درون <ن و روB�0داد5

@�%ري از آtس B©O; 5ه%ي �%دB�056 روA,�o,-ه% %-6I، ا;% �Ez, آtسه% ی% داد5ا�* MI0% در

ه%ي هO%ن �A/o آ� خ/اه�6 دی6، رو6A/- .B�0ه%ي ;g,ح در آ%ره%ي وا^J¨، ه, دو را -%;[ ;¨

� داد5 ¨MEI; b .آ6IIه%ي <ن را J0,ی£ ;¨ه, آtس، را

@�%ر 56���4ه% ;¨آtس. -/د J0,ی£ ;¨Classه, آtس % ا�nE%د5 از آ��O آ��6ي 6IA6 0/اI-% ,0

)6IE@1 ه/OJ; ن داد5 -56 ا�*) و%zA ]س در ذیtی£ ه, آ,J0 ¨;/OP ]©- .

Class classname {

Type instrance-variable1;

Type instance-variable2;

II…

Type instance-variableN;

Type methodname1(parameter-list){

//body of method

}

Type methodname2(parameter-list){

1 - encapsulated. 2 - template. 3 - instance.

Page 144: Java farsi

//body of method

}

// …

Type methodnameN(parameter-list){

//body of method

}

}

. -/56�;%A 6A ;¨٤» 6A/-»,�TE; �A/OA، ه%ی¨، ی% ;��TE,ه%ی¨، آ� در ه, آtس J0,ی£ ;¨داد5

B�06ه% ج%ي ;¨روE; 8 در�A %6هA,�o .; �6Eه% و ;�TE,ه%ی¨ آ� در ه, آtس J0,ی£ � v/ر آ�¨،

ه%، ;6Eه%ي J0,ی£ -56 ,اي ه, آtس در �Ez, آtس. -/د آtس �Eno ;¨٥-/6A، ا�P%ي;¨

¨ دار6Aه@6IE آ� , روي �TE; �A/OA,ه% آ%ر ;¨%�Eد� %MA> �از ایB رو، ای6E; Bه% ه@6IE . آ6II و

. آB��6II ;¨ه%ي ه, آtس را J0آ� rA/rd¨ ا�nE%د5 از داد5

¨; 56Aخ/ا ,�TE; �A/OA ،سtه%ي ه, آ,�TE; �©Iس دل�[ ایtآ Àاز ی �A/OA ,6، <ن ا�* آ� هA/-

ه%ي ه, -¨ء، از ایB رو، داد5. ، آ�¨ خ%ص خ/د را ;�TE,ه% دارد)یIJ¨، ه, -¨ء از یÀ آtس(

. ه%ي یÀ -¨ء دیr, ی©@%ن 6IE@�Aج6ا�A%o و خ%ص خ/د <ن /د5 و % داد5

t6 سآE; �-/د آ� آtس MI0% ز;%6E; B�Id ¨Aي ;6A .¨; �?zارmain()6Aه%ي ج%وا �A%ز

�;%A, Bزی%_> �giA ،,wA 6;/رد-%� ;6Eي � A%م ه% ا�A tR%ز� tPو5، ال*. 0%ن main()

6A6ارA.

. -/6A/-6A و � v/ر ج6اJ0 �A%o,ی£ J;¨OA,\¨ آtس و �4%د5 �%زي ;6Eه% در ی©>% ذخ�,5 ;¨

@�%ر 8رگ ;¨javaه%ي ایB ا;, o%ه¨ او^%ت �uX ای>%د \%ی[ tی6 آ%-/د، A> �d©� ه, آtس

. در یÀ \%ی[ واJ0 6Z,ی£ -/د

یf آ1س ��د�

� A%م ه% را % یW; À%ل �%د5 <_%ز ;¨;g%ل�J آtس ¨�tآ%ر آ Bاي ای, ،[�IآBox¨; £ی,J0 -

� ,�TE; �A/OA �� آ� داراي [�Iم آ%A height, width و depth*ا� . ،,�%Z ل%Z درBox

). ا;% در <ی6E; 56Iه%ی¨ � <ن ا\8ود5 خ/اه6 -6(\%^6 ه, 6E; �A/o ا�*

4 - instance variable. 5 - member.

Page 145: Java farsi

Class Box {

double width;

double height;

double depth;

}

%ص،در ایW; B%ل خ. آ6Iه% را J0,ی£ ;¨هO%ن �A/o آ� �Eno -6، ه, آtس، A/ع ج6ی6ي از داد5

Boxه% A/ع از ایA B%م ,اي J0,ی£ -¨ء. A%;�56 -56 ا�*Box-/د، A/ع ج6ی6ي آ� ای>%د ;¨

@�%ری6 آ� J0,ی£ ه, آtس ج6یuX� %MI0 6 ای>%د یÀ الr/. ا�nE%د5 خ/اه6 -6 ,v%خ � ٦;M] ا�*

¨;¨OA ای>%د ¨J^ء وا¨- Àد-/د؛ ی/-.

,اي <A©� یÀ -¨ء Box¨; ،ی@* از ای>%د -/د%6�Iد5 آ%nEزی, ا� ,g� ن/�Oرا0¨ ه%XP .

Box mybox new BOX ( ); // create a Box object called mybox

از ایB رو، . ای>%د خ/اهBox6- 6اي از � IP/ان 34mybox5/OA از <XP �©A%رت %1 اج,ا -6،

*�J^وا Àس » \�8ی©¨«یtاز آBox6- 6ای>%د خ/اه .

%ز ه] 1زم � ذآ, ا�* آ�A/OA 5%o ,س را ای>%د ;¨� هtآ Àای>%د ;¨اي از ی ¨f�- 6�Iد آ� آ/-

از . A@?� خ%ص خ/دش را از ه, یÀ از �TE; �A/OA,ه%ي J0,ی£ -56 در <ن آtس خ/اه6 دا-*

و height, widthه%ي خ%ص خ/دش را از �TE; �A/OA,ه%ي ، Box�?@AایB رو، ه, -¨ء

depth*-خ/اه6 دا . ¨%�Eاي د�,�giA ,r�OP ی6 از%ایB . ا�nE%د5 آ6�I (.) �٧ ای�TE; B,ه%

را ١٠٠� IP/ان ;W%ل، ,اي <6i; �©Aار . آA ،,r�OP»,�TE; �A/OA «¨; bX0,;6I%م -¨ء را � A%م

,�TE; �width از mybox6�Iد5 آ%nEرت زی, ا�%XP 0?��� ده�6، از :

mybox.width=100;

z; ,اي آ%;�%ی�, 1% آ� در -¨ء widthاي از را � A@?�١٠٠آ6I آ� ;6iار ?� ;¨XP%رت

mybox6ا�* 0?��� ده . �giA ,r�OP ر آ�¨، از/v �� �TE; �A/OA,ه% و (.) ¨%�Eاي د�,

. -/د;6Eه%ي ;/ج/د در یÀ -¨ء ا�nE%د5 ;¨

�?@A ه% خ/اه6 دا-*ه, -¨ء,�TE; �A/OA آ� ا. ه%ي خ%ص خ/دش را از *�%IJ; B6ی Bدو ای ,o

%-�6، ه, یÀ از <Box�?@A ،%MA-¨ء A/ع �E-ه%ي خ%ص خ/د-%ن را از داheight, width و

depth*-6 داIء ای>%د ;¨. خ/اه¨- Àه%ي ی,�TE; �A/OA ا0¨ آ� در,��T0 6 آ��A6ا-;M] ا�*

6A/- .*-6 داIاه/?A ,rه%ي -¨ء دی,�TE; �A/OA , . ه�¥ 0¯ث�,ي

6 . Template. 7 . dot.

Page 146: Java farsi

ه� ش-�� ت\)ی� آ)دن شiء

آ6�I، در وا^� یA À/ع ج6ی6 ,اي O%ن �A/o آ� در %1 -,ح داد5 -6، و^E¨ آ�t¨ را ای>%د ;¨ه

,اي J0,ی£ آ,دن -¨از ایA B/ع ج6ی6 ;¨. -/ده% ای>%د ;¨داد5 6�Aد5 ء0/ا%nEع ا�/A ه%ی¨ از <ن

6�Iء. آ¨- �%یA 6?@* ایI©�. اي ا�*ه%ي یÀ آtس، P/A¨ \,<ی6I دو ;,��Zا;% ، ر��6ن ،

6�Iی£ آ,J0 سtع آ/A ي از,�TE; .¨OA ء¨- Àی£ ی,J0 u� ,�TE; Bض، . -/دای/P در �©�

%-�TE;6,ي ا�* آ� ;¨ �E-ء ارج%ع دا¨- Àی � 6A0/ا .¨; ،�©I8ی©¨ دوم ای�\ �?@A Àی@* ی%

% ا�ایB آ%ر را ;¨. وا^J¨ از -¨ء � د�* <وری6 و <ن را � <ن ;�TE, 0?��� ده�6 6�Aد5 0/ا%nE

,r�OP ازnew6م ده�%<Aا . ,r�OPnew�w\%Z ، %ر 4/ی/v �� ) یIJ¨ در ز;%ن اج,ا(اي را

از . -/دایA%zA B¨ ��3 در ;�TE, ذخ�,o .¨; 5,دا6Aده6 و A%zA¨ <ن را ,;¨-¨ء 0?��� ;¨

. ه%ي A/ع آtس در ج%وا %ی6 � v/ر 4/ی% 0?��� ی%6IایB رو، O0%م -¨ء

%A, �A/OA ع ;�در/A از ¨f�- £ی,J0 اي,� XP%رت زی, %z; ي,g� ه%ي زی, ازBox 5د%nEا�

: خ/اه6-6

Box mybox = new Box ( );

56- u1 0,آ�%0/ان ,اي zA%ن دادن ه, یXP À%رت %1 را ;¨. ا6Aدو ;,�Eno  �4 ��Z در XP%رت

� R/رت زی, %زA/ی@¨ آ,د ]Zاز ;,ا :

Box mybox; // declare reference to object

Mybox = new Box ( ) ; // allocate a Box object

،*@?A ح,g� درmybox ع/A از ¨f�- ¨A%zA ان/IP � Box¨; £ی,J0 34 از اج,اي . -/د

ذخ�,5 خ/اه6 -6 آ� rA%zA, <ن ا�* آ� ;�TE, هI/ز � ه�¼ mybox در nullایB خ6i; ،bار

,وز myboxام ,اي ا�nE%د5 از ه, �A/o ا^6. -¨ء وا^J¨ ارج%ع 6Aارد � ,<I; ��Z,; Bدر ای

�g, دوم ه] ;/جu 0?��� -¨ء وا^J¨ و A%zA ���?0¨ <ن . خg%ي ز;%ن آ%;�%ی[ خ/اه6 -6

�mybox¨; دوم، ;¨. -/د ,g� 6 از 34 از اج,اي�A0/اmybox�A/o �اي ا�nE%د5 آ6�I آ�

- وا^J¨ را 6MrAاري ;¨öw\%Box -¨ء myboxZ ¨A%zA %\,Rا;% . ا�*oBox/ی¨ یÀ -¨ء

6Iآ.

iه�ي ار/�ع �5 ش(-t� �-d>ت

Page 147: Java farsi

�o,د، �OP©,د ;�TE,ه%ي ارج%ع � -¨ء % <��A اwEA%ر داری6 و^OP ¨E[ 0?��� اA>%م ;¨

ده6I؟ آ6�I دو XP%رت زی, �OP �d¨ اA>%م ;¨\©, ;¨. n0%وت دارد

Box b1 = new Box ( );

Box b2 = b1;

�Id *ا� B©O;�?@A ¨A%zA 6 آ��I�0/ر آ B آ� ¨f�- اي ازb1ن ارج%ع دارد> � . �b2

¨; ���?06ه%ي ج6ا�A%o و ;OE%ی8ي � -¨ءb2 و b1یB©O; ،¨IJ ا�* B�Id \©, آ6�I آ� . ی%

6Aارج%ع دار .*@�A *�0/ر در� B1، . ا;%، ای%�©� در P/ض، 34 از اج,اي XP%رات b1 و b2

;/ج�w\%Z ���?0 u ی% آ�¨ b2 و 0b1?��� . خ/اه6I دا-*ه, دو � یÀ -¨ء ارج%ع

¨OA از -¨ء اول�� ¨z?� هO%ن -�f¨ آ� b2-/د آ� �©� uX� %\,R ;¨. -/دآ,دن 8�A b1 �

6-% �E-ی} . <ن ارج%ع دارد، ارج%ع دا,v در -¨ء از ,��T0 �A/o ,رو، ه Bاز ایb2 ¨f�- , ،

� <ن ارج%ع دارد، 0¯ث�, خb1آ� 6IE@ء ه¨- Àی %MA> ا آ� ه, دو,d ،*-ا¡o 6اه/ .

�%ه� i2(\

;/�/ع ;6Eه% @�%ر . ٩ و ;6Eه%�TE; �A/OA٨,ه%: -/6Aه% ;OJ/1 از دو z0 8�d©�[ ;¨آtس

.4¡ی,ي زی%دي را در <A>% ج%ي داد5 ا�*E@o,ده%�*، d,ا آ� ج%وا ^6رت و اgJA%ف

� R/رت زی, ا�* 6E; ,آ�¨ ه ]©- :

Type name(parameter-list) {

// body of method

}

Type5ع داد/A ،¨; �?z; ز;¨ه%ی¨ را% 6E; 6 آ�I6آAدا,o .Type¨; اع/Aاز ا À6 ه, یA0/ا

%-6، از ج��O اA/اع آtس ¨�X^ ¨ر�,8�d 6E; ��A%Idي را . آ6�Iه%ی¨ آ� خ/د0%ن ای>%د ;¨;/رد

،6Aدا,rA,type 6ی% void6-%� و���� . 8�A 6E; م%Aname¨; �?z; د/- . ��%I- ,از ه

� _�, از ;/اردي آ� ,اي ا^tم ;/ج/د در ;XEJ,ي ;¨ �EX6؛ ال�Iد5 آ%nEم ا�%A ان/IP � 6�A0/ا

6Aد5 -56 ا%nE6ود5 ج%ري ا�m; ن%Oه .Parameter-list ¨ی%Mزوج *�,M\ ،)��%I- ع و/A ( *ا�

ه%ي 4%را;E,ه% ا�%�% ;�TE,ه%ی¨ ه@6IE آ� ;6iار <رo/;%ن.-/6Aآ� % آ%;% از ی©6یr, ج6ا ;¨

8 - instance variable. 9

- method.

Page 148: Java farsi

%-6، ایB . آ6IIار�%ل¨ � ;6E را هrI%م \,اخ/اA¨ <ن دری%\* ;¨ �E-6اA ي,E;6 4%راE; ��A%Id

. \M,�* خ%ل¨ خ/اه6 /د

� _�, از ¨�d %MA> ¨Aاز \,اخ/ا ]R%Z 6ارi; ع/A 6ه%ی¨ آ�E;void 5د%nEا� %%-6i; ،6اري را

� روB�0 \,اخ/ان %ز;¨returnز XP%رت ا 6IAدا,o:

Return value;

Value¨; 56Aدا,o, . -/د ، ;6iاري ا�* آ�

�% �5 آ1س Boxا2]ودن

ه%ی¨ آ� Z %MI0%وي داد5 %-6I آ%;t در�* ا�*، ا;% ایB ا;, � 6Aرت رخ ا�d ,o ای>%د آtس

� �TE; �A/OA,ه%ي J0,ی£ -56 در آtسدر �Ez, ;/ا^� از ;6Eه% ,اي د��E. ده6;¨ ¨ه% %

�Ez, آtس. ا�nE%د5 خ/اه6 -6 � ¨%�Eد� bایB ا;, . آ6IIه% را J0,ی£ ;¨در 6E; ،*i�iZه%، را

% آtس را z4* �, دهO- %0 6%ي �%خE%ره%ي داد5;¨ ه% ا;©%ن� ای>%د آ56II آtس bX0,; اي

� دادtP5و5 ,. MI4 ,0%ن OA%ی6E;6ه%ي -n%ف ¨%�E6ه%ی¨ آ� د�E; £ی,J0 ¨; [6، ه% را \,اهAز%�

v 8�A 6A,�o/ر داخ�¨ ;/رد ا�nE%د5 ^,ار ;¨ ه% �ا;©%ن J0,ی£ ;6Eه%ی¨ آ� b�/0 خ/د آtس

. \,اه] -56 ا�*

.آ�I] <_%ز ;¨BoxایÀI آ%ر خ/د را % ا\8ودن ;6Eي � آtس

Class box {

Double width;

Double height;

Double depth;

// display volume of a box

Void volume ( ) {

System.out.print ("volume is");

System.out.print(width *height*depth);

}

}

Class BoxDemo3 {

Public staticvoid main (string args [] ) {

Page 149: Java farsi

Box mybox1 = new Box ( ) ;

Box mybox2 = new Box ( ) ;

// assign values to mybox1's instance variables

mybox1.width = 10;

mybox1.height = 20;

mybox1.depth = 15;

/*assign different values to mybox2's

Instance variables */

Mybox2.width = 3;

Mybox2.height = 6;

Mybox2.depth = 9;

//display volume of first box

Mybox1.volume ( ) ;

//display volume of second box

Mybox2.volume ( ) ;

}

}

% خ,وج¨ ;W%ل �4  ی©@%ن ا�* �EXدر ذی[ <ورد5 -56 ا�* آ� ال �;%A, . خ,وج¨

Volume is 3000.0

Volume is 162.0

� �TE; �A/OA,ه% � و���� روI�0¨ اA>%م ;¨ ¨%�Eد� ¨E^نو%Oد آ� در ه,�o %ه,�TE; £ی,J0 سtآ

�giA د,©�OP م -¨ء و%A {ی,v آ%ر از Bی6 ای%. اA>%م -/د(.) J0,ی£ 56zA ا�*، در <ن R/رت

-/د آ� ?z¨ از هO%ن آtس ;,/ط � ;�TE,ه%�*، ا;%، و^E¨ ایB آ%ر � و���� روI�0¨ اA>%م ;¨

[ ارج%ع ;¨%^ [�iE@; ر/v �%-6Iدر <ن R/رت ;�TE,ه% .u�g; Bدق . ای%R 8�A %6هE; 5ر%در

. ا�*

��ز*)دا�%ن :�دی)

6�-% %I-> %MA> % ¨ : دو M; �E©A] در%رi; 5%دی, R%Z[ از \,اخ/ا6E; ¨Aه% وج/د دارد آ� %ی6 � خ/

Page 150: Java farsi

6%ی6 % P/A¨ آ� در J0,ی£ ;z; 6E?� -56 ا�*، �%زo%ر A/ع داد5E; ¨Aاز \,اخ/ا ]R%Z ه%ي

6-%%ز;¨� IP/ان ;W%ل، اA ,o/ع. 6E; À6اري آ� یi; ،6Aدا,oBoolean¨OA ،6-%0/ا6i; 6�Aار

6�Aدا,oز% . m�mR¨ را

6E; ¨Aاز \,اخ/ا ]R%Z 6ارi; 56IIدری%\* آ ,�TE;) tW;volل%W; Bآ� در ) در ای ¨P/A %%ی6 ،

6-% . J0,ی£ ;z; 6E?� -56 ا�*، �%زo%ر

fی(� �%ه�ي پ�را ا2]ودن

,خ¨ از �d ,o6اIE@�A �A/o B6ه% ایE; ,Ez�4%را;E,ه%، ا;©%ن . ;6Eه% �A%ز � 4%را;6A ,Eار6A، ا;%

?6�zن � ;6Eه% را \,اه] ;¨ *�;/OP6Aز%� .¨; Àی,E;6ه%ي 4%راE; ،¨IJاع ی/Aروي ا , 6IA0/ا

,اي درك ای�E©A B . ه% OP[ آ6II، و ی% در -,ای�E?; %EX@A b£ ;/رد ا�nE%د5 ^,ار 6A,�oداد5 �

6�Iر �%د5 زی, 0/ج� آ%�@ : o,دا6Aرا %ز;¨١٠;6E زی,، ;>¡ور 6Pد . ;W%ل

Return I + 1 * i; int square( )

{

Return 10 * 10;

}

o,دا6A، ا;% آ%ر,د <ن @�%ر ;6mود ا�*، ا;% اo, را %ز;¨١٠ا�d ,o ای6E; B وا^J% ;>¡ور 6Pد

�A/o � 4%را;E,ي را ه�O/ن ;W%ل زی, دری%\* آ6�I، در <ن R/رت اي ��T0, ده�] 6E;%0 را

square()¨; ,06�n; ر%�@ . -/د

Int square (int i)

{

}

u�0,0 B6یsquare()¨; 56Aن \,اخ/ا> %یo . ،¨IJ,دا6A-/د را %ز;¨ ایÀI ;>¡ور ه, ;6iاري آ�

square()5ر/wI; �O6 هE; � ، ;>¡ور ه, 6Pد ��mR ١٠٠اي ;6Xل -56 ا�* آ� � ج%ي 6Pد

¨; �X�%m; 6 را�Iآ .

,خ/ردار ا�* ¨R%خ *�Oن از اه%;/oو <ر ,E;دو واژ5 ارا B�;wI/ر از 4%را;O0 µnZ . ،,E%ی8

--/د، ;6iاري را دری%\* ;¨-/د و و^6E; ¨E \,اخ/ا�TE;¨; 56A,ي ا�* آ� J0 6E; b�/0,ی£ ;¨

6I1، . آ% 6E; ل، در%W; ان/IP �i,E;ر ;¨ 4%را%O- �;wI/ر از <رo/;%ن، ;6iاري ا�* آ� . <ی6

Page 151: Java farsi

� <ن ار�%ل ;¨ 6E; ل �%زي%J\ م%rIل، در . -/ده%W; ان/IP �square(100) 6دP ، ١٠٠ �

.آ6I ، <ن ;6iار را دری%\* ;¨i ، 4%را;square() ,Eدر ;6E .-/د IP/ان <رo/;%ن ا�nE%د5 ;¨

Constructor �ه

ه% خ/د-%ن را � هrI%م ای>%د، ;6iار ده¨ آ6II ایB ,اه] �%خ�E 0% -¨ءج%وا ایB ا;©%ن را \

Àد5 از ی%nEی} ا�,v 6ارده¨ خ/دآ%ر، ازi;constructor¨; م%<Aد ا/- .

constructor¨; ¨6ار دهi; ای>%د »m; �A%م <ن % A%م آ�t¨ آ� در <ن ^,ار . آ6I ، یÀ -¨ء را

� ;6Eه%�*دارد ی©@%ن /د5 و از wA, �%خE%ر o,ا%z; 8�A ه, . ;,يconstructor 34 از

¨; 56Aای>%د -¨ء \,اخ/ا »m; � . -/دJ0,ی£، � v/ر خ/دآ%ر

�nو­� Bایconstructor 6IIآ B��J0 6اي آ%رEه%�* آ� و��J* داخ�¨ یÀ -¨ء را در هO%ن ا

ء ^%[ ا�nE%د5 و آ6I، \/را -¨اي از آtس را ای>%د ;¨، 0% روI�0¨ آ� 6i;(�A/OAار ده¨ اول��(

%-6i;6ار ده¨ -56 �E-اي دا .

/*Here, Box uses a constructor to initialize the dimensions of a box.

*/

Class Box {

Double width;

Double height;

Double depth;

//This is the constructor for Box.

Box ( ) {

System.out.printIn("Constructing Box");

Width = 10;

Height = 10;

depth = 10;

}

/// compute and return volume

Double volume ( ) {

Return width * height * depth;

}

Page 152: Java farsi

}

Class BoxDemo6 {

Public static void main (String args [] ) {

//declare,allocate, and initialize Box objects

Box mybox1 = new Box ( ) ;

Box mybox2 = new Box ( ) ;

Double vol;

//get volume of first box

Vol=mybox1.volume ( ) ;

System.out.println("Volume is " + vol);

//get volume of second box

Vol=mybox2.volume ( ) ;

System.out.printLn("volume is " + vol);

}

}

,A%;� اج,ا ;¨ ¨E^دو/ : -/د، EA%ی¼ <ن � -©[ زی, خ/اه6

Constructing Box

Constructing Box

Volume is 1000.0

Volume is 1000.0

¨; �wZt; آ� �A/o ن%O6ه�Iآ ،mybox1 و mybox2 öو��� � ه, دو هrI%م ای>%د

constructor آ� Box()- ¨6ار دهi; ،م دارد%A 566Aی¨ آ� . ا%<A> ازConstructor د%J ا

101010 ××uJ©; م%O0 �,ا, خ/اهmybox26- 6 و mybox1دهZ ،6>] ه% X@A* ;¨ را .

� خ%OA ,v%ی  �OP *mR©,د <ن ا�*()Box در ()XPprintLn%رت %\,R . ,Ez�

constructor6 دادIاه/?A  ی%OA 8ي را�d %ه .OP %\,R %MA> اي -¨ء,[ ;6iارده¨ اول�� را

. ده6IاA>%م ;¨

¨; ÀIس �,وري ا�*ایtم آ%A 8ه% 34 ازEAا وج/د 4,ا,d 6 آ��A8<��A آ� وا^J% رخ . 0/ا6Z 6�Aس

از ایB رو، در �g, زی,، . -/د آtس \,اخ/اconstructor¨; 56Aده6، <ن ا�* آ� ;¨

Box mybox1 = new Box ( );

Page 153: Java farsi

newBox() اخ,\ uج/; ¨Aا/constructor¨; سtس ا�* آtخ/د آ %یIJ¨ (-/د آ� هIO%م

Box() ( ¨E^وconstructor¨OA £ی,J0 ¨�tاي آ, %mی,R 6اي را�Iآ . �ج%وا ایB آ%ر را

%1 در rA%ر-M%ي W; B�z�4%ل . دهv6/ر �4  \,ض اA>%م ;¨ ,g� دل�[ ا�* آ� B�Oه �Box ،

� خ/¨ آ%ر ;¨ /دconstructorآ� \%^J0 6,ی£ ،6Aآ,د .constructor �A/OA م%O0 ،�4  \,ض

,اي Constructor. آ�TE;6I,ه% را � v/ر خ/دآ%ر % 6i; ,nRارده¨ ;¨ u�_�4  \,ض ا

,اي آtسه%ي �%د5 آn%ی* ;¨آtس 1/OJ; %;6، اIه%ي 56���4آ¨OA *ی%n06, آIآ . ¨E^و

constructor¨; £ی,J0 خ%ص خ/د0%ن را I6، آ�constructor 5د,� آ%ر ,r�4  \,ض دی

¨OAد/- .

Construdtor fی(� ه�ي پ�را

�d ,oاconstructor  �4 ل%W; (Box() ) اي -¨ء,- اA>%م ;¨6i; ]OP Boxار ده¨ اول�� را

%ی6 � دXA%ل رو-¨ ,اي �%خ* . ده6، ا;% 6Idان ;�A 6�n@* ـ اJ%د O0%م ;©MXJ% ی©@%ن خ/اه6 /د

% اJ%د o%A/o/ن %-�]Boxه%ي -¨ء . �راZ 5[ <�%ن ,اي اA>%م ایB آ%ر، ا\8ودن 4%را;E,ه%ی¨

constructor*6س زد5. ا�Z 1%OEZآ� ا �A/o ن%O06, -6ن <ن ه�n; uآ%ر ;/ج Bم ای%<Aای6، ا

� IP/ان ;W%ل، در rA%رش ج6ی6 . -/د;¨Box Àی ، constructor *ی£ -56 ا�,J0 Àی,E;4%را

. آ6IاJ%د ه, ;©uJ را ,ا�%س 6J0اد 4%را;E,ه% B��J0 ;¨آ�

//This is the constructor for box.

Box (double w, double h, double d) {

Width = w;

Height = h;

Depth = d;

}

this آ,�5 آ,-%ي

,اي \,اه] واج%. o%ه¨ او^%ت ;6Eه% �A%ز � ارج%ع � -�f¨ دار6A آ� <MA% را \J%ل آ,د5 ا�*

% ا�nE%د5 از . را J0,ی£ آ,د5 ا�*�this%خBE ایB ا;©%ن، آ��O آ��6ي this¨; 6E; ,0/ان در ه

Page 154: Java farsi

� -¨ء ج%ري ارج%ع OA/د . ، ¨IJیthis ل%J\ اي <ن, 6E; دارد آ� ¨f�- �-56 ه�z�O ارج%ع

. ا�nE%دOA 5/د0this/ان از ه, ج% آ� ارج%ع � -�f¨ از آtس ج%ري ;>%ز %-6، ;¨. ا�*

ÀIای ,EM,اي درك this رش زی, از%rA �� 8�d �dي ارج%ع دارد، Box()6�I0/ج� آ .

// A redundant use of this.

Box(double w, double h, double d) {

This.width = w;

This.height = h;

This.depth = d;

}

;/رد ا�*، ا;% ¨thisا�nE%د5 از . آ6I آ%ر ;¨ د^�i% ه�O/ن rA%رش ^Box()¨�XایrA B%رش از

� -�f¨ آ� ;6E را \,ا;¨this. آ%;��mR t ا�* �z�Oرش، ه%rA B6، ا در ایAرج%ع خ/اه6 خ/ا

. -/د;/رد ا�*، ا;% در �%ی, ;/ارد;6�n وا^� ;¨ا�d ,o آ%ر,د <ن در ایW; B%ل ¨. دا-*

*-)ي ح�5�2 �1 ا��A�د� ��زپ�

ی%B©O; ،6I ا�* از � v/ر 4/ی% new¨; ���?0ه% % ا�nE%د5 از r�OP, آ� -¨ءاز <A>%ی¨

,د5 ;¨ B�,اي ا�nE%د5خ/د �,��6 آ� �A/rd از �A/rd %MA> �w\%Z 6 وA/-¨; ه%ي <0¨ <زاد-

-/6A را ه%ی¨ آ� � v/ر 4/ی% 0?��� داد5 ;¨ ، -¨ء++Cدر ,خ¨ از ز%MA%، از ^�X[ . -/د

R �%ی6 ,r�OP د5 از%nEا� % ¨Eرت د�/deleteد/OA د5 ;¨. ، <زاد%nEي ا�,rج%وا از روی� دی-

�I©0©¨ آ� از <ن ,اي اA>%م ایB آ%ر . ده6آ6I؛ <زاد �%زي را � v/ر خ/دآ%ر ,ایE%ن اA>%م ;¨

�OP©,د <ن � ایB -,ح ا�*؛ و^E¨ ه�¥ A . �A/o%م داردgarbage collection-/د، ا�nE%د5 ;¨

%-6، \,ض ;¨ار �E-6اA ء وج/د¨- Àی � ¨P%ن ج> �w\%Z د5 و/XA ز%�A رد/; ,rد آ� -¨ء دی/-

¨; �E\,o 34ز% 8�Aف . -/دtخ,,دن -¨ء++Cدر ز%ن ج%وا، B�ه% ، دی�A ,r%زي � از

*@�A .¨; م%<Aا �;%A,� R/رت wI;%A] و o%5 و �r%5 در v¨ اج,اي %MI0 آ%ر Bدای/- .

%� Finalize()

Page 155: Java farsi

,دن دارo6A%ه¨ او^%ت ,خ¨ از -¨ء B�� IP/ان ;W%ل، . ه% �A%ز � اA>%م ��OP%ت خ%ص �4  از

]�X^ ج%وا ، از ,�_ �%I; از ¨f�- ,oاhandle¨; 5د%nEخ%ص، ا� *A/\ %ی[ ی%\ À6، در <ن یIآ

%Z ن%I�Ovا �%I; ا�* �4  از <زاد�%زي <ن -¨ء، از <زاد -6ن <ن ,EMج%وا . OA ]R%ی�R6/رت

� A%م ¨;8�A%©; ،bای,- �A/o Bاي ;6ی,ی* ای,funalization8م . دارد�A%©; Bد5 از ای%nEا� %

0/ا��OP 6�A%ت خ%R¨ را ;z?� آ6�I 0% در�* �4  از <زاد �%زي یÀ -¨ء، O0%;% اA>%م ;¨

6A/- .

6E; *س، آ%\¨ ا�t8م در ه, آ�A%©; Bاي �4%د5 �%زي ای,finalize()6�Iی£ آ,J0 را . b�m;

()finalizeدر ;6E . خ/ا6Aز;%ن اج,اي ج%وا ای6E; B را هrI%م %زی%\* -�f¨ از <ن آtس \,ا ;¨

6A/- م%<Aء ا¨- Àدن ی, B�^@EO¨ آ� از . %ی6 <ن ��OP%0¨ را ;z?� آ6�I آ� %ی6 �4  از

t ا�nE%د5 را دارد، � v/ر ;IE%وب اج;@f/ل�* %ز34 �w\%Z ي,�oه%ی¨ را ,ا -56 و -¨ء

¨; /<E@ج¨OA رت/R %MA> � ¨P%ارج ,r6 آ� دیIی} آ,v 8 از�A [�iE@; ,�_ ر/gM�o,د و

» ز;%ن اج,اي«در�* �4  از <زاد آ,دن ه, -¨ء، ��@E] . -/ده% � <MA% ارج%ع OA¨�%ی, -¨ء

6E; ج%واfinalize()¨; اي <ن -¨ء \,ا, . خ/ا6A را

:زی, zA%ن داد5 -56 ا�*-©[ آ�¨ ای6E; B در

Protected void finalize()

{

//finalization code here

}

� ا�* آ� از١٠اي ، ;protected��?zآ��O آ��6ي ¨%�Eد�finalize()B�0رو b�/0 ه%ي

. آ6Iخ%رج از هO%ن آtس ج�/�o,ي ;¨

;tW . -/ده% \,اخ/ا56A ;¨ء MI0% �4  از %ز�o 34,ي M;finalized()¨- �w\%Z] ا�* 6ا6�A آ�

. -/د�o,د، ای6E; B \,اخ/اOA 56A¨اش ^,ار ;¨ز;%A¨ آ� یÀ -¨ء در خ%رج از ;6mود5

Overload�ه%� آ)دن

�Ç  از دو ;6ÇE هÇIO%م در یÀÇ آtÇش J0,یÇOA £Ç/د، %Çدو و ی %Ç0 56Ç- [ا;©%ن \,اه Bن ج%وا ای%در ز

E; %ÇMA> ي%Çه,E;ی£ 4%را,J0 �©Iای , ;z,وط Ç; وت%Çn Ç; �ÇEno ارد/Ç; �ÇA/o BÇ6 در ایÇ-% �Çد آ/Ç-

10 - specifier.

Page 156: Java farsi

ایB \,<ی6I ی©¨ از . -/د method overload¨; �Eno -56 ا6A و � ایB \,<ی6E;Overload ،6Iه%،

¨; ¨A%X�Ez4 ی} <ن �4¨ ;/ر\�8م,v ی¨ ا�* آ� ج%وا از%M-6 روIآ.

6E; ¨E^وoverload <رo/;%ن ه% ,اي B��J0 ایI©� -/د، ج%وا از اA/اع و ی% 6J0اد -56 اي \J%ل ;

-56Ç از overload -56 \,اخ/ا56A -56 ا�*، از ایB رو، ;6ÇEه% overloadآ6ام rA%رش از ;6Eه%

6ÇÇAوت دار%ÇÇn0 ,r6یÇÇ©ی %ÇÇ %ÇÇه,E;6اد 4%راÇÇJ0 ع و/ÇÇA *ÇÇMج . ,ÇÇاÇÇA �ÇÇd,o/ع ;ÇÇi%دی,ي آ�ÇÇ ای6ÇÇE; BÇÇه%

¨; ,. اي O0%ی8 �MA> B% آn%یÇOA *Ǩ آo 6ÇI,اB©O; 6IA ا�* ;nE%وت %-6، ا;% A/ع ;i%دی, � MI0%ی¨

ÇÇ; �ÇÇ6ه% ;/اجÇÇE; �ÇÇA/o BÇÇای ¨Aا/ÇÇرت \,اخ%ÇÇXP %ÇÇآ6ÇÇI آÇÇ- �ÇÇ/د، ;6ÇÇEي را اجÇÇ,ا ;ÇǨ و^ÇÇE¨ آ�ÇÇ جÇÇ%وا

6-% �E-دا {%g; ¨Aرت \,اخ/ا%XP د5 در%nEن ه%ي ;/رد ا�%;/oر> % .4%را;E,ه%ي <ن

6Iل �%د5 زی, \,<ی%W;overload¨; ن%zA 6ه% راE; ده6 آ,دن:

/ / Demonstrate method overloading.

class overload Demo {

void test ( ) {

system.out.println ("No parameters");

}

/ / overload test for one integer parameter.

void test (int a) {

system.out.println ("a: " + a ) ;

/ / overload test for two integer parameters.

void test (int a, in b)

system.out.println ("a and b: " + a + " " + b);

}

/ / overload test for a double parameter

double test (double a) {

system.out.printl ("double a: " + a);

return a *a;

}

}

class overload {

public static void main (strain gags [ 1) {

overload Demo ob = new overload Demo ( ) :

double result ;

/ / call all versions of test ( )

ob.test ( ) ;

Page 157: Java farsi

ob.test (10) ;

ob.test (10,20);

result = ob.test (123.25);

system.out.println ("Result of ob.test (123.25) : " + result) ;

}

}

No parameters

a: 20

a and b: 10 20

double a: 123.25

Result of ob.test (123.25): 15190.5625

¨; �wZt; آ� �A/o ن%O6، ه�Iآtest ( ) �ÇX0,; ر%ÇMd overload *Ç56 ا�Ç- . رش <ن%ÇrA B�EÇ@?A

,E;را%Ç4 رش �/م دو%rA ،دارد ��mR 6ادPع ا/A از ,E;4%را Àی %MI0 رش دوم%rA ،6اردA ي,E;4%را

. داردdoubleآ6I، و rA%رش Md%رم MI0 8�A% یÀ 4,ا;E, از A/ع از A/ع ا6Pاد ��mR دری%\* ;¨

6E; ¨E^وoverload¨; 56Aاي -56 اي \,اخ/ا,�B <رo/;%ن ه%ي ;/رد ا�nE%د5 {%g0 د، ج%وا/-

} ه�z�O د^�} %-6. آ6I \,اخ/اA¨، و 4%را;E,ه%ي ;6E را ,ر�¨ ;¨%g0 Bآ� ای *@�A زي%�A ،%;ا .

J\ 6ی%%ل -/د، ای6X0 %nی[ خ/دآ%ر اA/اع داد5 ه% در ,خ¨ از -,ایOM;  iA ،b¨ را 6E; B��J0ي آ�

¨; 6Iآ.

6Iی>,\ �©Iدل�[ ایoverload ; ¨A%X�Ez4 6ه% از �4¨ ;/ر\�8مE; 6 آ,دنÇIی>,\ BÇ6، <ن ا�* آ� ایIآ

» یÀ را6E; 6Id ،b«ی©¨ از راهM%ی¨ ا�* آ� ج%وا از v,ی} <ن، ;6ل Ç; 6 را �4%د5 �%زيÇIدر . آ

� وجÇ/د آ,دن OA ¨A%X�Ez4¨ آOJ; ،6II/1 د overloadز%MA%ی¨ آ� از %Ç0 BÇرش از ای%ÇrA �Ç� %و ی

� IP/ان ;W%ل، %0� . دارد آ� z;%A%ن ^6ري % ی©6یn0 ,r%وت داردabs ( ) ن% ^6Çر ;C {Ç�g در ز

ÇÇ; ,ÇÇ را 6ÇÇ^ long ,ÇÇر ;ÇÇ�g} ی6ÇÇP ÀÇÇد ÇÇA ��mÇÇR/ع ( ) olabs,دا6ÇÇA، و ی6ÇÇP ÀÇÇد ��mÇÇR را

Ç; 6، وÇAدا,ofabs ( ) Ç- 8Ç�O; %Ç 6Ç^ 8Ç�Aر ;Ç�g} ی6Çi; ÀÇار اÇzP%ري Ç; ,Çاز . o,داI 6ÇA%ور را

� ا�%�overload %Ç از A>C>%ی¨ آ� ز%ن %Ç0 �Ç� ,ه �©A> وج/د % ،6Iآ ¨OA ¨A%X�Ez4 %6هE; آ,دن

%-6I یÀ آ%ر اA>%م ; �E-4%ی� خ%ص خ/د-%ن را دا �و��J* آ%ر را از . ده6I، ا;% ه, یÀ از 0/ا

%ی6Ç اo. آOMn; ,wA 6I¨ 56���4 0, از <��A آ� وا^ùJ ه@*، ; %Ç;ی©@%ن ا�*، ا �,Mn; �d/م �� %0

@�%ری6 ,v%خ �ایB و��J* در ج%وا OA  �4¨ <یd ،6,ا آ� ;6Eه%ي ^6ر ;A �� . {�g%م ;?�E£ را

¨; 6IIد5 آ%nEآ¨ ا�,Ez; م%A 6 ازIAم . 0/ا%ÇA �Ç?%�ÇA ا�6A%EÇارد آtÇس هÇ%ي ( ) 6E;absي %Eرا در آ

Page 158: Java farsi

match Çای6E; B در آtس . ج%وا وج/د دارد %Çداد5 ه £Ç�E?; اع/ÇA6ی,ی* اÇ; اي,overload 56Ç-

.�o,د آ� آ6ام rA%رش %0� \,اخ/ا56A -/د ج%وا , ا�%س A/ع <رo/;%ن �O�0] ;¨. ا�*

�ÇÇ هÇÇ] را از v,یoverload {ÇÇارزش bX0,ÇÇ; 6ه%يÇÇE; �ÇÇ ¨%�EÇÇن د�%ÇÇ©;ا �ÇÇآ *ÇÇن ا�> ,v%ÇÇخ �ÇÇ

%ی%ÇOP ]ÇOP ,rA/;¨ ا�Ç* آ�Ç اÇ<A%م abs OAاز ایB رو، A%م . آ%ر,د A%م ;Ez,ك \,اه] �%خ�E ا�*

ایB و­��n آ%;�%ی�, ا�* آ� rA%رش خ%ص ;/رد wA, را ,اي ه, یÀ از -Ç,ایb اÇ?EA%ب . -/د ;¨

%یOP ]OP 6/;¨ آ� اA>%م ;¨ %MI0 ز%� �;%A,� IP/ان %O- 6، وIری6 آ%�@ ,v%خ � .-/د را

;overload¨ÇÇو^6ÇÇE; ¨ÇÇEي را ÇÇ; ي <ن%MÇÇ-ر%rA از ÀÇÇی ,ÇÇ6، هÇÇ�Iرد 0 آ/ÇÇ; ي%ÇÇاز آ%ره ¨ÇÇ©6 یÇÇIAا/

6Iم ده%<A0%ن را ا,wA . 6ه%يÇE; �Ç©Iای ,Ç ¨IX; ¨A/A%^ ¥ه�overload bX0,Ç; ,r6یÇ©ی %Ç 6Çی% 56Ç-

%-6I وج/د 6Aارد . 6Iآ%ر، \,<ی ÀX� ,wI; ا;% ازoverload 56IIء آ%iخ/د ال ¨ آ,دن ;6Eه% � خ/

% ا�nE%د5 از ÇA%م ;P/A . Çz¨ را�g ا�* �d,oرو، ا Bاز ای Ç; ك,E را bX0,Ç; ,Ç�_ 6ه%يÇE; 6Ç�A0/ا

overload¨; ��R/0 %;6، ا�I6ه�6 آA م%<Aآ%ر را ا Bد ای/-.

Overload آ)دن Constructor�ه

6E;Constructorه%ي ; 8�A ل¨ را/OJ; 6ه%يE; ن/�O6 ه�A0/اoverload 6�Iدر . آ ،*Çi�iZ در

¨J^آ%ره%ي وا ��Ez, آtس ه%ي ;,/ط constructor ه%ي overload �Ç %IWEا� %MI0 �A ،56-

/د 6Iل خ/اه/OJ; t;%آ �©� ،6Iی> ¨OA ر%O-.

(� ا��A�د� از شiءه� �5 .��ان پ�را

ا;Ç%، ار�Ç%ل . %0 � Z%ل MI0% از اA/اع داد5 ه%ي 4%ی� و �%د5 � IP/ان 4%را;6E; ,Eه% ا�nE%د5 آ,د5 ای]

*ÇÇ6اول ا�ÇÇE; [ÇÇو ه *ÇÇدر� [ÇÇ6ه% هÇÇE; �ÇÇÇÇ- .ÇÇIP �ÇǨءه% ,ÇÇwA را در ,ÇÇ5 زی%ÇÇ0/آ �ÇÇ;%A,/ان ;ÇÇW%ل،

�r,ی6:

/ / objects may be passed to methods.

Class test {

Int a . b ;

Test (in i, int ) {

Page 159: Java farsi

a = i;

b = j ;

}

/ / return true if o is equal to the invoking object Boolean equals

(test o) {

in (o.a = = a & & o.b = = b) return true;

else return false;

}

}

class passob {

publics static void main (string agrs [ ]) {

test ob1= new test (100 , 22) ;

test ob2 = new test (100 , 22) ;

test ob3 = new test (-1 , -1);

system.out.println ("ob1 = = ob2: " + ob1.equals (ob2) ) ;

system.out.println (: ob1 = = ob3: " + ob1.equals (ob3) ) ;

}

}

ob1= = ob2: true

ob1 = = ob3: false

¨; �wZt; آ� �A/o ن%O6 هE; ،6�Iآequals ( ) ö;%A,/دن دو -¨ء را ;i%ی@Test، �Ç در ,,ا

; , . o,دا6A و �EA>� را اi; ,o%دی, . آ6I یIJ¨، -¨ء \J%ل آ6E; 56II را % -¨ء ار�%ل¨ ;i%ی@� ;

،6E; ]R%Z 6ارi; رت/R 6، در <ن-%ت، R%Z[ در _�, ایR B/ر. خ/اه6 /دMA>true% ی©@%ن

. خ/اه6 /دfalse<ن

ÇÇ/ط constructorی©ÇǨ از ;6ÇÇEاولE,یB آ%ر,دهÇÇ%ي 4%را;E,هÇÇ%ي ÇÇA/ع -ÇǨء، �ÇÇ ا�nEÇÇ%د5 از ,; %ÇÇه

. -/د ;¨ Ç; %ÇMA> �Çاول� ¨Ç6ار دهÇi; �Çآ *Ç-6 داÇ6ي خ/اهÇءه%ي ج6ی¨Ç- د%Ç<ای �Ç%ی@Ç* _%لÇ�A %X%ز

6-%,اي اA>%م ایBÇ آÇ%ر %ی6Ç . ه�O/ن ی©¨ از -¨ءه%ي ;/ج/د constructor %Ç0 6Ç�Iآ £Çی,J0 اي

6ÇIآ *Ç\%دری ,E;را%Ç4 ان/ÇIP �ÇÇIP �Ç/ان ;ÇW%ل، ÇrA%رش زیÇ, از . -�f¨ از A/ع آtÇس خÇ/دش را

:�%زد ا;©%ن ;6iار ده¨ اول�� یÀ -¨ء % ا�nE%د5 از یÀ -¨ء دیr, را \,اه] ;¨Boxآtس

Class Box {

Page 160: Java farsi

double width;

double height;

double depth;

/ / construct clone of an object

Box (Box ob) { / / pass object to constructor

width = ob.width;

height = ob.height;

depth = ob.depth;

}

/ / constructor used when all dimensions specified

Box (double w, double h, double d) {

width = w;

height = h;

depth = d;

}

/ / constructor used when no dimensions specified

Box ( ) {

width = -1; / / use -1 to indicte

height = -1; / / an uninitialized

depth = -1; / / box

}

/ / constructor used when cube is created

Box (double 1en) {

width = height = depth = 1en;

}

/ / compute and return volume

double volume ( ) {

return with * height * depth;

}

}

class overloadcons 2P

public static void main (string args [ ]) {

/ / create boxes using the various constructors

Box mybox1= new box (10 , 20 , 15);

Page 161: Java farsi

Box mybox2= new box ( );

Box mycube = new box (7) ;

Box myclone = new box (mybox1) ;

Doble vo1;

/ / get volume of first box

vo1 = mybox1.volume ( ) ;

system.out.println ("volume of mybox1 is " + vo1) ;

/ / get volume of second box

vo1= mebox2.volume ( ) ;

system.out.print1n ("volume of mybox2 is " + vo1) ;

/ / get volume of cube

vo1 = mycube.volume ( ) ;

system.out.print1n ("volume of clone is " +vo1) ;

}

}

�)ه� ���هi د�-:�) �5 رو�% ار��ل پ�را

,وB�0 وجÇ/د g/ر آ�¨، در ه %Ç� ÀÇی �Ç %Çن ه%;/oاي ار�%ل <ر,, ز%ن ,A%;� �%زي دو روش

در ایBÇÇÇ روش، ;6ÇÇÇiار <رÇÇÇ;/o%ن ÇÇÇ4 �ÇÇÇ%را;ÇÇÇA . ,E%م دارد"call-by-value"روش ÇÇÇ@?A*، . دارد

,ای��T0 ،B,ا0¨ آ� در 4%را;E, اOP%ل ;¨. -/د �%,وB�0 آ�¨ ;¨%I-/6A، ه�¥ 0¯ث�,ي , <رo/;%ن

و �A (در ایB روش، A%zA¨ <رo/;%ن . A%م دارد"call-by-reference"دوم، روش . A?/اه6I دا-*

) ;6Çiار <رÇ;/o%ن Ç; ل%Çار� ,E;را%Ç4 �Ç�Ç خÇÇ/د . -Ç/د ¨%�EÇاي د�,Ç B�0و,%Ç� در ¨A%ÇzA BÇاز ای

Ç; 5د%nEÇا� ¨Aا/Çرت \,اخ%XP 56 در- ½z; ن%;/oد <ر/Ç- . در �Çآ ¨Ç0ا,��T0 �Çآ *Ç�%IJ; B6یÇ BÇای

,وB�0 0¯ث�, خ/اهo 6I¡ا-*-/A 4%را;E, اOP%ل ;¨%� ¨Aاي \,اخ/ا,, <رo/;%ن ;/رد ا�nE%د5 ،6 .

� 8�dي آ� ار�%ل ;¨ �E@ .آ6I -/د، از ه, دو روش ا�nE%د5 ;¨ هO%ن �A/o آ� خ/اه�6 دی6، ج%وا

Ç; ل%Ç6ي ار�ÇE; �Çآ6Ç�I، از روش Ç@?A* ا�nEÇ%د5 و^E¨ در ج%وا ی©Ç¨ از اÇA/اع داد5 هÇ%ي 4%ی�Ç را

از . -/د ;¨ Ç; ن رخ%;/o56 <رIIدری%\* آ ,E;اي 4%را, ��A> ،رو Bرج از ای%Çدر خ ¨%Ç0ز% ،6Çده

.;A 6E?/اه6 دا-*

Ali
Highlight
Page 162: Java farsi

� v/ر �rOzd,ي ��T0, ;¨ و^f�- ¨E¨ را � ;6Eي ار�%ل ; *�J6، و��Iا آ� -¨ءه% آ,d ،6Iآ

% روش "call-by-reference" %-�6 آ� و^Ç�TE; ¨E,ي ا . -/6A ار�%ل ; �E-دا ,v%خ �ز ÇA/ع

آtس ای>%د ; � یÀ -¨ء ای>%د ; ¨A%zA ¨P/A %MI0 ،6�Iرا . -/د آ ¨A%ÇzA BÇای ¨ÇE^رو، و BÇاز ای

آ6�I، 4%را;E, دری%\* آ56II <ن، � هÇO%ن -f�Ǩ ارجÇ%ع خ/اه6Ç- 6Ç آ�Ç <رÇ;/o%ن � ;6Eي ار�%ل ;

6ÇیÇ�%IJ; B* آÇ- �Ǩءه% Ç% روش . ;IE%­,ش � <ن ارجÇ%ع دارد BÇای"call-by-reference" �Ç

. -6E; 6A/Çه% ار�%ل ; Ç; ل%ÇOPء ا¨Ç- �Ç 6ÇE; در �Çآ ¨Ç0ا,��T0 �ÇÇ- ,Ǩء ;Ç/رد ا�nEÇ%د5 ،6A/Ç-

�r,یIP .6/ان <رo/;%ن 0¯ث�, خ/اه6I دا-* ,wA زی, را در �;%A,� IP/ان ;W%ل، :

/ / objects are passed by reference.

Class test {

in a, b ;

test (int i, int j) {

a = i ;

b = j ;

}

/ / pass an object

void meth (Test o) {

o.a * = 2;

o.b = 2 ;

}

}

Class callbref {

public satic void main (straing arges [ ]) {

Test ob = new Test (15 , 20);

System.out.println ("ob.a and ob.b before call: " +

ob.a + " " + ob.b) ;

ob.meth (ob) ;

system.out.pritln ("ob.a and ob.b after call: " +

ob.a + " " + ob.b) ;

}

}

Ali
Highlight
Page 163: Java farsi

ob.a and ob.b before call: 15 20

ob.a and ob.b after call: 30 10

� ی6E; À ار�%ل ;¨ ¨f�- ¨A%zA ¨E^6 آ� و�A6ا *@�A 6 uاي ج%ل �E©A ان/IP � ¨A%zA د، خ/د/-

� R/رت "call-by-value" ا;%، از <A>%ی¨ آ� ;6iار در د�* ار�%ل، � -Ǩء . -/د ار�%ل ;

% <رo/;%ن ارج%ع خ/اه6 -6 ,­%IE; ن -¨ء%Oه � 8�A 6ار <نi; ¨ارج%ع دارد، آ�.

-/6A آ� � IP/ان خ,وج¨ ;6Eه% %ز o,دا56A ;¨-¨ءه%ی¨

Ç; س ه%ی¨ را آ� ای>%دtاع آ/Aا ��O6؛ از جAدا,oز%�Ç . آ6Ç�I ه, ;6E اA/اع ;?n�E¨ از داد5 ه% را

6ÇÇE; ،ل%ÇÇW; ان/ÇÇIPincrByTen ( ) ز%ÇÇ ¨ÇÇان خ,وج/ÇÇIP �ÇÇf�ÇÇ- ،6ÇÇJ¨ را �mnÇÇR �ÇÇ;%A, در

�Ez, ١٠ در <ن، oa,دا6A آ� ;6iار ;¨ 6Z6ار واi; ازa*6 ا�E; 56IIل آ%J\ در -¨ء .

/ / Returning an object.

class Test

int a ;

Test (in i) {

a = I ;

}

Test incrByTen ( ) {

Test temp = new Test (a+10) ;

Return temp;

}

}

Class Retub {

Public static void main (string args [ ] ) {

Test ob1 = new Test (2) ;

Test ob2 ;

ob2 = ob1.incrByTen ( ) ;

system.out.println ("ob1.a: + ob1.a) ;

system.out.println ("ob2.a: + ob2.a) ;

ob2 = ob2.incrByTen ( );

system.out.println ("ob.a after second increase: "

+ ob.a) ;

}

}

Ali
Highlight
Ali
Highlight
Page 164: Java farsi

ob1.a : 2

ob2.a: 12

ob2.a after second increase: 22

-/�A ،6A%زي �A@* آ� � v/ر 4/ی% 0?��� دادnew¨; 5از <A>%ی¨ آ� O0%م -¨ءه% % ا�nE%د5 از

� دل�[ 4%ی%ن ی%\BE اجÇ,اي ;6ÇEي آÇ- �Ǩء در <ن ای>Ç%د -ÇrA ،56Ç,ان خÇ%رج -6Çن -Ǩء از ;6Çmود

6�-% ¨%�Eت . د�%Ç�Z 56، دور�Ç-% �EÇ-د دا/Çخ �Ç;%A,<ن 0% ز;%A¨ آ� A%zA¨ -¨ء را در جÇ%ی¨ از

� -¨ء 6Ç-%XA . ادا;� خ/اه6 ی%\* ¨P%ارج ,r5 دی%o,اي . ه,Çاج ¨Ç0> �ÇX0,; ن در> �Çw\%Z» [EÇ@��

t ا�nE%د5 �w\%Z ي,�o 34 ز% .-/د ، <زاد ;¨ »

���,-= ��ز*�=

*zoز% *��%^ ��f@; ١١ج%وا از ; ¨A%X�Ez4 6Iی£ آ,دن . آ,J0 6Iی>,\ ،*zoز% *��;wI/ر از ^%

, u@Z خ/دش 8�d Àی ; 6-% .» *zoز% *��%^ « دهÇ0 6Ç% خ�/E�R¨ ا�* آ� ;6Eه% ا;©%ن ;

6IAا/?%زEzo¨. خ/د-%ن را \,ا ،6Aا/? .-/د 56�;%A ;¨١٢;6Eي آ� خ/دش را \,ا

À��tل آ%W;» *zoز% *��روش ;�XÇ�%m \%آE/ریÇ[ ه6ÇP ,Çد . ، ;�X�%m \%آE/ری[ ا6Pاد ا�* »^%

% ا�nE%د5 از روش »*zoز% *�� :ر ذی[ zA%ن داد5 -56 ا�*د» ^%

/ / A simple example of recursion.

Class Factorial {

/ / this is a recusive function

int fact (int n) {

int result ;

if (n == = 1) return 1;

result = fact (n-1) * n;

return result ;

}

}

class Recursion {

public static void main (staring args [ ]) {

Factorial f = new Factorial ( );

11- Recursion. 12- Recursive.

Page 165: Java farsi

system.out.printl ("Factorial of 3 is " + f.fact (3) ) ;

system.out.printl ("Factorial of 4 is " + f.fact (4) ) ;

system.out.printl ("Factorial of 5 is " + f.fact (5) ) ;

}

}

خ/ا6A، \�%ي ;Ç/رد Ç�A%ز ;�TE,هÇ%ي ;Ç�m¨ ج6ی6Ç و 4%را;E,هÇ% در �EÇz4 و^6E; ¨Eي خ/د را \,ا ;

; ���?0 Ç; ا,Ç6ا اجÇEÇ% ه�TE; B�ÇO,هÇ%ي ج6ی6Ç از ا 6ÇE; ¨اج,ای *O@^ 6، وÇ% 4%یÇ%ن . -Ç/د ی%

�EÇ-دا, �EÇz4 از روي %Çه,E;و 4%را ¨O6یÇ^ ¨Ç�m; ي%Çه,�TE; ،¨Aا/Çرت \,اخ%XP ,ه �<�EA ر��6ن

¨; Ç; �Ç;6 اداE; در خ/د ¨Aز \,ا خ/ا%_> �giA 6، و اج,ا ازA/- 6Ç . ی% Ç; �ÇEno %ZtgÇRا �Çد آ/Ç-

.ه%، Z,آ* رو � ج�/ و uiP دار6E; 6Aه%ي %زEzo¨ ه�O/ن �0@©/پ

]ÇÇدل� �ÇÇ *ÇÇا� BÇÇ©O; %ÇÇه B�ÇÇ0ري از رو%�ÇÇ@ ¨EÇÇzoز%%ر«rA%ر-MÇÇ%ي ,ÇÇ�«از ١٣ ]ÇÇR%Z ¨\%ÇÇا�

@�ÇÇ%ري از ای6ÇÇJ; . �ÇÇA/o BÇÇلM%ي ÇÇ©0,اري <ÇÇMA% اجÇÇ,ا -ÇÇ/د \,اخ/اÇÇM�A%ي ا�6ÇÇ^ ،¨\%ÇÇري آ06ÇÇI, از

%M�Aاخ/ا,\) Ezoز%Çd/ن \�Ç%ي 1زم . ;B©O ا�* Ç� �Ç, ریÇ- ,Ç<I; �EÇz4 8Ç/د ) ,اي ;6Eه%ي

Ç; B�;¯Ç0 *Çz4 از ¨�m; ه%ي,�TE; ه% و,E;اي 4%را, uÇ6 ;/جÇج6ی ¨Aا/Çرت \,اخ%ÇXP ,Çد و ه/Ç-

% آXO/د \�% ;/اج� -/د-/د، ا;©%ن ای>%د A@?� ج6ی6ي از ای�TE; B,ه% ; �Ez4 دارد . B�ÇId ,Çoا

6Ç- 6Çخ/اه %IWEÇوز ا�,Çا;Ç%، اXA 1%ÇOEZ%یÇrA 6Ç,ان ایBÇ . اn0%^¨ رخ دهE@�� ،6] ز;Ç%ن اجÇ,اي جÇ%وا

6I©A ]OP *د5 0%ن، در�%nEرد ا�/; ¨Ezoز% B�0رو �©A> ,r; ،6�-% ��f@;.

%ÇMA> د5 از%nEÇا� %Ç �Çآ *Çن ا�> ¨Ezoز% ;8ی* ا6E; ¨�Rه%ي Ç; 5د%Ç� و ,E\%nÇ- ي%MÇ-ر%rA ان/Ç0

J; �Ç%دلÇM%ي Ç©0,اري خ/د-Ç%ن ای>Ç%د ÇOA/د *XÇ@A را %Çه [Eری/Çrد5 . 0,ي از ال%Ç�4 ،ل%ÇW; ان/ÇIP �Ç

% روش 0©,اري آ%;t د-/ار ا�* �QuickSort%زي الr/ریu0,; [E �%زي . Ç; ,ÇwA �Ç 6Çر�

%ÇÇ bX0,Ç; ]U%ÇÇ@; 5�ÇÇوی �Ç ،]U%ÇÇ@; از ¨Çخ, ]ÇÇZ �ÇآAI %ÇÇM�Z 5را %Ç ، 6ÇÇ-% ,EA%ÇÇ�> ¨EÇzoز%و . ي

,اي ?,ي از ا\,اد <�%EA, از روش n0©,ي 0©,اري ا�* ¨Er-ز% ,©n0 روش ،�©I1خ,5 ای%.

; ¨Ezoز%%ی6Ç در جÇ%ی¨ از <ن ÇXP%رت و^6E; ¨Eه%ي ،6�Ç@ی/AIf 6اري راÇi; 6ÇE; %Ç0 6Ç�Iد5 آ%nEÇا�

6Aدا,oز%6ون \,اخ/اA¨ ;>6د خ/دش . ،6Ç6ه�A م%Ç<Aر ا%Çآ BÇای ,Ço8 اÇo,6، هÇE; ¨Aا/Ç3 از \,اخÇ4

*zo 6اه/?A ز%در 6ÇE; BEÇ-/A B�Z . ایB خg% هrI%م آ%ر % ایB روش @�%ر ;6Eاول ا�*. 8�dي

E/اPrintln ( ) 6Ç�Aاز XP%رت ¨EZرا � ا�nE%د5 آ6�I 0% ^%در � ردی%¨ اn0%^%ت درون <ن %-�6، و

6�Iآ �g^ %gخ �A/o,وز ه, .اج,اي <ن را در R/رت

13- Overhead.

Page 166: Java farsi

5 %: i��-��)ل د�� اي �) آ

، داد5 ه% را % روB�0 ه%ی¨ آ� <MA% را 4,دازش و ;6Çی,ی* ١٤»MA%ن �%زي«دا6�A، هO%ن �A/o آ� ;

¨; ¨; bX0,; ،6IIن �%زي«ا;%، . �%زد آ%MA «ي ه] دارد,rدی [M; *�R/خ� :¨%�Eل د�,EIاز . آ

� ا�P%ي آtس ;Ç/رد 0/ا6�A آEI,ل آ6�I آ� آ6ام ^@MEO%ي ,v ; �;%A,ی} MA%ن �%زي ; 6IA0/ا

6IÇÇ-% �EÇÇ-دا ¨%�EÇÇد� ,ÇÇwA . ÇÇ; ¨%�EÇÇل در <وردن د�,ÇÇEIآ *ÇÇm0 %ÇÇ *ÇÇدر�%A د,ÇÇ0/ا6ÇÇ�A از آÇÇ%ر

6�Iي آ,�o/ج� .

� ه, آ¨ از ا�P%ي یÀ آtس � و���� ¨%�Eد� ¨rA/rd» %�EÇد� �Ç�?z;«١٥ 5د%nEÇرد ا�/Ç;

¨ÇÇ; B�ÇÇ�J0 دن <ن,ÇÇآ £ÇÇی,J0 اي,ÇǨ را \ÇÇ,اه] جÇÇ%وا ;>ÇÇI_ �ÇÇP/O¨ ا. -ÇÇ/د %�EÇÇي د�%ÇÇه �ÇÇ�?z; ز

.�%خ�E ا�*

¨ ج%وا XP%ر6I0 از %�Eد� ��?z;protected , private, public . ¨%�EÇد� �gÇ� B�ÇI�Oج%وا ه

¨ . �4  \,�¨ را J0,ی£ آ,د5 ا�* %�Çد� ��?z;protected Ç; ل%ÇOPا ¨A%Ç;ز %ÇMI0 ، �Çد آ/Ç-

6-% . وراث* ;g,ح

ö�?z; و���� � publicو^�P ¨E/ي از یÀ آtس Ç; £ی,J0 /Ç�P رت <ن/ÇR د، در <ن/Ç-

¨ خ/اه6 /د %�Eد� ]و^�P ¨E/ي از یÀÇ آtÇس �Ç و�b�/0 . öÇ�?z; ���Ç ه, روB�0 دیr,ي ^%

private ¨ J0,ی£ ;%�EÇد� ]Ç-Ç/د، در <ن ÇR/رت Ç� bÇ�/0 %ÇMI0%ی, اÇ�P%ي آtÇس خÇ/دش ^%

. خ/اه6 /د

public int I ;

private double j ;

private int myMethod (ina a, char b) { / / . . .

�ÇE\%د ی/ÇXM¨ در یW; À%ل ÇrA ،,0 ¨�OP%رش %�Eل د�,EIآ ��f@; د,,اي <-I%ی¨ % rA/rd¨ آ%ر

�r,یstack6آtس ,wA را در .

class stack {

/ * Now, broth stack and tos are private. This means

that they cannot be accidentally or maliciously

altered in a way that would be harmful to the stack.

14- encapsulation. 15- access specifier.

Page 167: Java farsi

* /

private int stack [ ] = new int [10] ;

private int tos ;

/ / Initialize top-of-stack

Stack ( ) {

tos = -1

}

/ / push an item onto the stack

void push (int item) {

if (tos = = 9)

system.out.println (stack is full.");

else.

Stack [++tos] = item ;

}

/ / pop an item from the stack

int pop ( ) {

if (tos <0) {

system.out.println ("stack underflow.") ;

return 0;

}

else

return stack [tos - -] ;

}

}

; �wZt; آ� �A/o ن%Oه] ه ÀI6، ای�Iآstack [Çو ه ،*Çا� �EÇz4 6اريMrA اي,tos �Ç، آ� �Çآ ،

� آ%ر ,د5 ; �Ez4 روي ,�IP ان -%خ�/IP رت/R �ایJ0 . BÇ,ی56Ç- £Ç اprivate 6ÇA-/د،

6یIJ; B%�* آ� 6ون ا�nE%د5 از push ( ) و pop ( )6I-% ¨OA ,��T0 %ی ¨%�Eد� ]%^ .Private

BEخ%�tos در �Ç6اري آÇi; �Ç?MÇz%ي ,�Ç;%A و 6ÇOP ,Ç��T0ي ;6Çiار <ن ,Çrن از دی> ¨%�Eاز د� ،

ö6ود5 <رایm; خ%رج ازstack¨; ي,�o/6، ج�-% 6Iآ.

¨%�EÇرد د�/Ç; دش/Çس خtÇن آ%Oاز ه ¨f�- %OP/;%، ه, �P/ از یÀ آtس %یMI0 6% در ارX0%ط

آ� E/ان ا�P%ی¨ را ای>%د OA/د آ� � MI0%ی¨ و 6ون ارج%ع ا;%، ایB ا;©%ن وج/د دارد . ^,ار �o,د

6I-%,اي ای>%د ای�ÇA/o BÇ اÇ�P% از آ��ÇO آ��6Çي . � �A/OA خ%R¨ از آtس، ^%[ ا�nE%د5 static

6Ç�Iد5 آ%nEا� %MA> £ی,J0 ,g� 6ايE J0,یstatic £Çو^Ç�P ¨ÇE/ي از یÀÇ آtÇس ÇR �Ç/رت . در ا

� <ن �4  از ا ;¨ ¨%�E6ور -/د، د�Çi; ¨Ç- �ÇA/o ,Çع ه%Ç6ون ارجÇی>%د -�f¨ از هO%ن آtÇس، و

Page 168: Java farsi

. خ/اه6 /د � R/رت ه] ;6Eه% و ه] ;�TE,ه% را ; ،6�A0/اstatic Ç; £Çی,J0 �Çآ *Çد، <ن ا�/Ç-

6-% ¨Aاخ/ا,\ ]%^ ¨f�- ,ی6 �4  از ای>%د ه%.

�TE; �A/OAstatic,ه%ی¨ آ� � R/رت Ç; £ی,J0 Ç; ¨;/ÇOP ي%Çه,�TE; tÇOP د/Ç- 6A/Ç- . ¨ÇE^و

,�TE; Àس یtه%ی¨ از آ ¨-static . -/6A ه�¥ A@?� اي از <ن ;�TE, ای>%د Ç- ¨OA/د J0,ی£ ;

.o¡ار6A ی©@%A¨ را � ا-E,اك ;¨staticدر P/ض، O0%م �A/OA ه%ي <ن آtس، ;�TE,ه%ي

:-/6Id ،6Aی6m; Bودی* دارJ0 6A,ی£ ;¨6E;staticه%ی¨ آ� � R/رت

.0/ا6IA \,ا?/ا6IA را ;¨MI0static% �%ی, ;6Eه%ي

% داد5 ه%ي %MI0 6ی%static6IIآ%ر آ .

� ه�¥ IP/ان OA¨ 0/ا6IA از this %ی super 6IIد5 آ%nE6ي ( ا�Çآ�� �ÇOآ�supper ط/Ç,; *Çوراث �Ç

.-/د و در \�[ <0¨ -,ح داد5 -56 ا�* ;¨

,اي 6i; B��J0ار اول�� ;�TE,ه%ي ,oاstaticm; م%<Aا ��/آ¨ را � %�X%ت داری�A ¨; ،6%ز 6�A0/ا

;ÇW%ل . J0,ی£ آ6�I 0% د^�MI0 %i% ی�X0,; À هrI%م %رÇo¡اري اول��Ç آtÇس اجÇ,ا -Ç/د Rstatic/رت

�Ç/ك static ,�TE; 6Id staticده6 آ� ی6E; À زی, آ�t¨ را zA%ن ; Àو ی static) 6ارÇi; اي,Ç

:دارد) ده¨ اول��

/ / Demonstrate static variable, methods, and blocks.

class useStatic {

static int a = 3 ;

static int b;

static void meth (int x) {

system.out.println ("x = " +x)

system.out.println ("a = " + a)

system.out.println ("b = " +b)

}

static {

system.out.println ("static block initialized.");

b = a* 4;

}

Public static void man (string args [ ] ) {

meth (42) ;

}

}

Page 169: Java farsi

ÇÇm; �ÇÇ« ای�ÇÇ©I آtÇÇس UseStaticاري¡ÇÇoر% ١٦¨ÇÇ; د/ÇÇ- . رات%ÇÇXP م%ÇÇO0static¨ÇÇ; ا,ÇÇ6 اجA/ÇÇ- .

�ÇÇ 6ÇÇi; ،*ÇÇ@?A٣ار a ÇÇ; ��ÇÇ�?0 ك/ÇÇ� 3�ÇÇ� ،6ÇÇ staticی% ÇÇ; ا,ÇÇد اج/ÇÇ-)  ی%ÇÇOA را ¨;%ÇÇ�4

� a*4، و <خ, ;6iار R%Z[ )ده6 ;¨ b¨; ���?0 6 ( ) 3��main . ی% Ç; 56Aد، و \,اخ/ا/Ç-

�٢ Çم \,اخ%ÇrIرا ه ¨Aا/meth( ) اي,Ç x Ç; ل%Ç6 ار�ÇIرت . آ%ÇXP �Ç�println ( ) ,Ç�TE; دو ،

static) a و b ( ¨�m; ,�TE; ر/v B�Oو هx¨;  ی%OA 6 راIده.

:خ,وج¨ ,A%;� در ذی[ zA%ن داد5 -56 ا�*

Static block initialized

x = 42

a = 3

b = 12

� 0/ان در خ%رج از آ6E; ¨�tه% و ;�TE,ه%ي ای@E% را ;¨ ¨f�- ,از ه ]iE@; ،6Aی£ -56 ا,J0 آ�

را �Ç4  از Çz;%A%ن ) ٠(,اي اA>%م ایB آ%ر آ%\¨ ا�ÇA *Ç%م آtÇس و ��ÇgiA ,Çr�OP 3�Ç . آ%ر ,د

6�ÇÇ@ی/I . ،6ÇÇ�Aا/??/اه�6ÇÇE; 6ÇÇ ای@EÇÇ%ی¨ را از خÇÇ%رج آtÇÇس خÇÇ/دش \ÇÇ,ا �ÇÇ�A%Id ،ل%ÇÇW; ان/ÇÇIP �ÇÇ

:اA>%م ده�06/ا6�A ایB آ%ر را % ا�nE%د5 از \,م آ�¨ زی, ;¨

Classname.method ( )

)وري �) "رای5 ه�

Ç; زي%Ç� 5رت -¨ء �4%د/R ��5 اي در . -6A/Ç <رای� ه% Çوی *�ÇR/خ� �Çآ *Çا� ]Çدل� B�ÇOه �Ç

Ç@�A 6Ç* از <ن Ç- 6ÇI; 5,ÇM/ی6 �Çد دارد آ/Çوج %Çرای� ه> % �gا6ÇAاز5 هÇ, <رای�Ç ـ ی6ÇJ0 ،¨ÇIJاد . را

،6Aذخ�,5 ا ]O0%م <رای�Ç هÇ% ایÇ�TE; BÇ, . <ن ا�*lengthدر R%IP ,�TE; �A/OA,ي آ� در <رای� ^%

:ده6 ,A%;� زی, ایB خ�/�R* را zA%ن ;¨. را دار6A، و ا6Aاز5 <رای� ه�z�O در <ن خ/اه6 /د

/ / This program demonstrates the length array member.

class Length {

public static void main (string args [ ] ) {

int a1 [ ] = new int [10] ;

int a2 [ ] = {3, 5, 7, 1, 8, 9, 44, -10}

int a3 [ ] = {4, 3, 2, 1} ;

system.out.printl ("length of 1 is " + al.length) ;

system.out.printl ("length of 2 is " + al.length) ;

system.out.printl ("length l of 3 is " + al.length) ;

16- Load.

Page 170: Java farsi

}

}

length of a1 is 10

length of a2 is 8

length of a3 is 4

ه ; �wZt; آ� �A/o ن%O *Ç56 ا�Ç- 5ی  داد%ÇOA %Çاز <رای� ه À6از5 ه, یA6، ا�Iآ . �EÇ-دا ,v%Çخ �Ç

%-�6 آ� ;6iار length6اردA ،6Aي آ� در <رای� وج/د دار,R%IP 6ادJ0 % ¨v%X06ار <ن . ه�¥ ارÇi;

.0/ان در <رای� ذخ�,5 آ,د OA %MI0%ی%6J0 ,rAاد R%IP,ي ا�* آ� ;¨

ه%ي داخ�¨ و 0/در6i; /0;� اي , آtس

ا;©%ن ای>%د یÀ آtس در ه, آtÇس دیÇ\ ,Çr,اه] -56Ç ا�Ç*؛ �Ç ای�ÇA/o BÇ آtÇس هÇ%، آtÇس هÇ%ي

¨; �Eno /06ود ;¨. -/د 0/درm; ،6Aآ� در <ن ^,ار دار ¨�t6ود5 آm; �. -/د ;6mود ایB آtس ه%

ÇÇ,اي J0 B,یÇÇ- £ÇÇ/د، در <ن ÇÇR/رت A و در آtÇÇس Bاز ایBÇÇ رو، اÇÇo, آtÇÇس AÇÇ- 56ÇÇ- �Eخ%I

ه% �Ç اÇ�P%ي آÇ�t¨ آ�Ç در <ن J0,ی56Ç- £Ç ا6ÇA، ایB آtس . خ/اه6 /د، ا;% در خ%رج از <ن خ�,

¨ دار6A، از ج�Ç�O اÇ�P%ي %�Eد�private . �Ç ¨ÇAو,� ¨Ç�tي آ%Ç�Pا �Ç ¨ÇAو,�ا;Ç% در آtÇس

¨ 6Aارد%�Eی£ -56 ا�*، د�,J0 آ� در خ/دش ¨�tي آ%�Pا.

آtÇس هÇ%ي 0/درÇ0/ي ای@EÇ%، آtÇس هÇÇ%ی¨ . ای@EÇ% و _�Ç, ای@EÇ% : رددو ÇA/ع آtÇس 0/درÇ0/ وجÇ/د دا

staticه@6IE آ� از Ç; 5د%nEÇا� %ÇMA> £ی,J0 اي,%ی6Ç از . -Ç/د ،6IEÇ@ه %EÇ@ای %Çس هtÇآ BÇن ای/Çd

Ç; £Çی,J0 آ� در <ن ¨�tي آ%�Pا �%-v 6IÇ,ی} یÀ -¨ء �EÇ-دا ¨%�EÇ6، د�A/Ç- . ¨ÇOA ،¨ÇIJی

ÇÇي <ن آ%ÇÇ�Pا �ÇÇ %O�iEÇÇ@; 6ÇÇIA06/اIÇÇ-% �EÇÇ-دا ¨%�EÇÇس د�t . ]ÇÇدل� �ÇÇ %EÇÇ@ي ای/ÇÇ0ي 0/در%ÇÇس هtÇÇآ

.6m; 6A,�oودی* � 6Aرت ;/رد ا�nE%د5 ^,ار ;¨

%-6I ه@6IE ایB آtس ه%، _�, ای@E% ;¨١٧;EOM,یA B/ع از آtس ه%ي 0/در0/، آtس ه%ي داخ�

¨ دار6A، و ;%�Eس خ%رج¨ خ/د د�t6ه%ي آE; ه% و,�TE; م%O0 �Ç و 6ÇIAص 0/ا%Çن روش خ%ÇOه %

6IÇ-% �EÇ-ع دا%Çارج %ÇMA> �Ç %O�iEÇ@; ،%EÇ@ي _�, ای%�Pدر . ا t;%Çآ ¨Çس داخ�tÇآ ,Çرو، ه BÇاز ای

.;6mود5 آtس در ,56A,�o خ/د ا�*

17- Inner.

Page 171: Java farsi

Ç; ن%ÇzA را ¨Çس داخ�tÇآ ÀÇد5 از ی%nEÇو ا� £Çی,J0 ¨rA/rd ,زی �;%A, 6Çس . دهtÇآOuter ÀÇی

»,�TE; �A/OA « م%A �outer-x Àی ،»�A/OA6E; « م%A �test () م%A � ¨�tدارد و آ Inner در <ن

.-/د J0,ی£ ;¨

/ / Demonstrate an inner class.

class outer {

int outer-x = 100 ;

void test ( ) {

Inner inner= new Inner ( );

inner.display ( ) ;

/ / this is an inner class

Class Inner {

void display ( ) {

system.out.printl ("display: outer-x = " + outer – x) ;

}

}

}

class InnerClassDemo {

public static void main (string args [ ] ) {

outer outer = new outer ( ) ;

outer.test ( );

}

}

display: outer-x = 100

،�;%A, Bم در ای%A �,ایB، . -/د J0,ی£ ;¨outer در ;6mود5 آtس Inner یÀ آtس داخ�¨ %ÇI

� ;Inner¨; ,�TEروB�0 ه%ي آtس %O�iE@; 6IA0/اouter-x6I-% �E-دا ¨%�Eد� .

�Ç�A%Id روI- . ¨ÇI�0%خ�E -56 ا�MI0 outer *Ç% در ;6mود5 آtس M;Inner] ا�* 6ا6�A آ� آtس

OA%ی6، آ%;�%ی�, ج%وا خg%ی¨ را Inner ا^6ام � ای>%د �A/OA اي از آtس outerدر خ%رج از آtس

,6A �;%AارOA .6A%ی  خ/اه6 داد ,R%IP ,ی%� %MI0% در : � v/ر آ�¨، آtس ه%ي 0/درn0 ،/0%و0¨

¨; 56- �Eخ%I- ،6Aی£ -56 ا,J0 6ود5 اي آ� در <نm; 6I-%.

Page 172: Java farsi

¨ دارد، ا;% P©3 ایBÇ ه, آtس داخ�¨ � O0%م ا�P%ي آ�t¨ آ� در %�Eی£ -56 ا�*، د�,J0 ن>

*@�A دق%R u�g; . سt6 و در آA56 ا- �Eخ%I- سtن آ%O6ود5 هm; در %MI0 ¨س داخ�tي آ%�Pا

6IE@�A 5د%nEا� ] .خ%رج¨ ^%

,A%;� ه%ي روز;,5 � آ%ر ,دOA 5¨ -/د، ا;% هrI%م ;6ی,ی* ,Ez�ا�d,o آtس ه%ي 0/در0/ در

.-/6A * ه% وا^6�n; ùJ وا^� ;¨روی6اده% در ا�4

ا�nE%د5 از <MA% از ج%وا . ج%وا ;>%ز XA/د1.0ا�nE%د5 از آtس ه%ي 0/در0/ در ;>z; �P/O?�%ت

. <_%ز -56 ا�*١/١

�String)ر�i آ1س

String Ç; ر%OÇ- �Ç?%�ÇA آtÇس هÇ%ي جÇ%وا %Eس در آtآ Bی,E6اولE; 1%OEZ6 اÇی> . BÇرز ای%Ç ]Çدل�

@�%ر ;OM¨ از ,A%;� �%زي � -O%ر ;¨;u�g <ن ا�*  ? .<ی6I آ� ر-�E ه%

آ6Ç�I، در وا^8�d B�E@?A �Çي آ� %ی6 در%ر5 ر-�E ه% 6ا6�A، <ن ا�* آ� ه, ر-�E اي آ� ای>%د ;

� IP/ان ;W%ل در . <یEZ 6I¨ ث%ME%ي ر-* ه%ي ه] -¨ء � -O%ر ;¨. ا�*f�-String¨ از آtس

XP%رت زی,،

System.out.println ("This is a string, too");

öE-ر"This is a string, too"¨; ر%O- �خ/-�A%E?X، روش ;6ی,ی* . <یP/A 6¨ ث%* ر-�E اي

«ث%ME%ي ر-�E اي در جÇ%وا هÇ�O/ن ;6Çی,ی* ر-�EÇ هÇ%ي در ز%ÇMA%ي آÇ%;��/0,ي دیÇOJ; « ,Çr/ل

,ایB از ایB جA ¨�©z; *M?/اه�] دا-*%I .ا�*،

�g; B�ÇÇ;ع دو/ÇÇA ءه%ي¨ÇÇ- �ÇÇآ *ÇÇ6 <ن ا�ÇÇI6ای %ÇÇه �EÇÇ-ر5 ر%ÇÇ%ی6ÇÇ در �ÇÇآ ¨ÇÇXString ,ی¡ÇÇ4%A ,ÇÇ��T0 ،

6IEÇÇ@ءه%ي . ه¨ÇÇ- د%ÇÇ<3 از ایÇÇ4 ¨ÇÇIJیStringد/ÇÇ 6ÇÇاه/?A ,ÇÇ��T0 ]ÇÇ%^ %ÇÇMA> اي/ÇÇEm; ، . BÇÇای �ÇÇd,oا

*@�A �A/o Bدو دل�[ ای � :;/�/ع ;B©O ا�* ;6mودی* ج6ي � wA, <ی6، ا;%

ا�A ,o%ز � ��T0, ر-�E اي � Ç; �Çz�O6، ه�Ç-% �EÇ-دا BÇ�E; �Ç6 آÇ�Iد آ%Ç<6ي ایÇج6ی �ÇA/OA 6Ç�A0/ا

6-% ,wA ات ;/رد,��T0.

� ,�wA ¨�tآ String م%A � StringBuffer %ه �E-ر ,��T0 ی£ -56 ا�* آ� ا;©%ن,J0 در ج%وا

,ایO0 B%م آ%رهÇ%ي Ç4,دازش ;,Ç/ط �Ç ر-�EÇ هÇ% هÇI/ز در جÇ%وا ^%Ç[ اÇ<A%م را \,ه] ;%I�%زد،

). در ?  دوم آE%ب ,ر�¨ -56 ا�*6IE)StringBufeer ه@

Page 173: Java farsi

,اي ای>%د ر-�EÇ هÇ% وجÇ/د دارد ¨A/o%A/o ن . روش ه%ي/Çd ¨0ر%ÇXP د5 از%nEÇروش، ا� Bی,EA%Ç�>

:;W%ل زی, ا�*

String mystring = this is a test" ;

;>%ز ا�*، � 0/ا�A] در ه, -,ایg¨ آ� آ%ر,د ر-�E ه% ، <ن را ;¨34String از ای>%د یÀ -¨ء

.آ%ر ,ی6

,r�OP "+" ع/A اي -¨ءه%ي,از <ن Ç,اي اد_Ç%م دو ر-J0 . �EÇ,ی£ -56 ا�String *Çدر ج%وا

� IP/ان ;W%ل، XP �<�EA%رت زی,،. -/د ا�nE%د5 ;¨

String my string = "I" + "like" + "Java" ;

.-/د ;¨MyString در "I like Java"ذخ�,5 -6ن

% ا�nE%د5 از equals ()¨; 6Ç�Iآ ¨Çر�,Ç% \,اخÇ/ا6ÇE; ¨A . 0/ا6�A 0@%وي دو ر-�EÇ را length ()

� د�* <وری6 ;¨ �E-ر Àل ی/v 6�Aد5 از . 0/ا%nEا� %charAt ()¨; [د در ه/Çج/; ,E6 آ%راآ�A0/ا

:-©[ آ�¨ ای6E; �� B در ذی[ zA%ن داد5 -56 ا�*. ;/^�J* ;/رد wA, در ر-�E را � د�* <وری6

boolean equals (String object)

in length ( )

char charAt (in index)

ا��A�د� از "ر*� �ن ه�ي &? 2) �ن

,اي <ن ار�%ل آo [�I%ه¨ او^%ت 1زم ;¨ �;%A, Àم اج,اي ی%rI0¨ را ه%Ptvد آ� ا/- . %ایB آ%ر

� ١٨ا�nE%د5 از ار�%ل <رo/;%ن ه%ي خb \,;%ن main ()¨; م%<Aر . -/د ا/ÇwI; bÇن خ%Ç;/oاز <ر

�EÇ-/A ن%Ç;,\ bÇدر خ �Ç;%A,\,;%ن، اPtv%0¨ ا�* آ� هrI%م اج,اي ,O�iE@; ،�;%A% 34 از ÇA%م

¨ÇÇ; 6A/ÇÇ- . BÇÇـ ای *ÇÇن ا�%ÇÇ�> t;%ÇÇوا آ%ÇÇي ج%ÇÇه �ÇÇ;%A,�ÇÇ <رÇÇ;/o%ن هÇÇ%ي خÇÇ;,\ bÇÇ%ن در ¨%�EÇÇد�

öاي در <رای �E-رت ر/R � .-/6MrA 6Aاري ;¨() main ار�%ل¨ � StringاPtv%ت

Varargs :(-t� "ر*� �ن ه�ي �� �8ل

18- Command-line.

Page 174: Java farsi

J2SE 5¨; 56ه%ی¨ را �%دE; ج%وا ا\8ود5 ا�* آ� ای>%د �آ6I آ� �A%ز � 6J0اد ، وی�o¨ ج6ی6ي را

6Aن دار%;/oي <ر,�TE; . ،¨o� 56Ç- 56Ç�;%A variable-length ا�Ç* و از آ�ÇO%ت varargsایB وی

arguments*56 ا�- �E\,o .;/o6اد <رJ0 6ي آ�E; 6E; ،*ا� ,�TE;  ن ه%ی%variable-arity %ی

6E; %\,Rvarargs¨; 56�;%A د/-.

%-OJ; ,�_ ،6/ل � -O%ر ; ,�TE; 6E; Àن ه%ي ی%;/o6اد <رJ0 آ� ¨g6 -,ایIل، . <ی%ÇW; ان/IP �

Ç; ر%Çآ � *A,EIای �رود، ÇA%م آÇ%ر,ي، آ�ÇXP �ÇO/ر، ÇA%م \%یÇ[، 4,وÇ©0[ و ;6Eي آ� %ري ا�0%ل

_�Ç,5 ر Ç; %ÇÇMA> از ¨ÇÇخ, B�;¯Ç0 6مÇÇP رت/ÇÇR در %ÇÇ;ا ،*Ç-6 داÇÇز خ/اه%ÇÇ�A ا  �ÇÇ4 ,دی%ÇÇi; 6 ازÇÇ�A0/ا

6ÇÇ�Iد5 آ%nEÇÇض ا�,ÇÇ\ .¨ÇÇ; ¨gای,ÇÇ- B�ÇÇId ض در در,ÇÇ\  �ÇÇ4 ,دی%ÇÇi; �ÇÇی¨ آ%ÇÇن ه%ÇÇ;/oر> %ÇÇMI0 6ÇÇ�A0/ا

[ ا�nE%د6IE@�A 5 را ار�%ل OA/د%^ %MA> خ�/ص.

ö�,P 0% �4  ازJ2SE 5ن ه%;/oاي ;6ی,ی* <ر,%ي % v/ل ;�TE, وج/د دا-* آ�Ç ، دو روش

/د 6Iخ/-%ی %MA> د، . ه��©6ام از/Ç �?Çz; و ÀÇd/آ %Çن ه%;/o6اد <رJ0 ,W6اآZ ,oا ،�©Iای *@?A

ÇÇR �ÇÇ/رت 6ÇÇE; از ¨ÇÇn�E?; ي%MÇÇ-ر%rA رت/ÇÇR در <نoverload 1ت%ÇÇZ از ÀÇÇی ,ÇÇري ه%ÇÇ 56ÇÇ-

. -6 \,اخ/ا6E; ¨A ای>%د ; 0%Ç��OP bای,Ç- از ¨Çخ,Ç,اي ا�d,o ایB روش ,اي %ÇMI0 %Ç;د، ا/Ç

@�%ر ;6mودي آ%ر,د دا-* bای,-.

Ç; 5د%nEÇي ا�,Çrد، از روش دی/Ç B�J;%A %ی ,Eo8ر. -6Ç در -,ایb آ� 6Zاآ6J0 ,Wاد <رo/;%ن ه%،

.-6A6- 6 و ��3 <رای� � ;6E ار�%ل ;¨ در <ن روش، <رo/;%ن ه% در <رای� اي 6MrAاري ;¨

�giA �� � ,�TE; ل/v % .-/z; 6A?� ;¨(...) <رo/;%ن ه%

¨ÇÇ; 6ÇÇE; ,ÇÇي ه%ÇÇه,E;6 4%راÇÇAر\¨«0/ا%ÇÇJE; « 6ÇÇ-% �EÇÇ-دا ,ÇÇ�TE; ل/ÇÇv %ÇÇ ,E;را%ÇÇ4 ÀÇÇی %ÇÇا;ÇÇ% . هÇÇO,ا5

6Ç-% ,E;را%Ç4 B6، <خ,یE; £ی,J0 م%rIی6 ه% ,�TE; ل/v % ,E;4%را . ,Çزی £Çی,J0 ،ل%ÇW; ان/ÇIP �Ç

[ ^X/ل ا�*%^ t;%آ:

int doIt (int a, int b, double c, int … vals) {

%-�6 آ� �E-دا ,v%خ �varargs6-% ,E;4%را Bی6 <خ,ی% .

6�-% 5%o> ن> � *X@A 6ی% ;>Ç%ز ÇMI0varargs% یÇ4 ÀÇ%را;6m; : ,Eودی* دیr,ي 8�A وج/د دارد آ�

� IP/ان ;W%ل، XP%رت زی, A%در�* ا�*. ا�*:

int doIt (int a, int b, double c, int … vals, double … morevals)

{ / / Error!

,E;ی£ 4%را,J0Varargs*دوم _�, ;>%ز ا� .

Page 175: Java farsi

Overload ه�ي%� Varargs آ)دن

Ç; 8Ç�A 6 راAدار ,�TE; ل/v %ÇIP �Ç/ان ;ÇW%ل، در . ÇOA/د 0Overload/ا6E; 6ÇAه%ی¨ آ� <رo/;%ن

6E; ،,زی �;%A,vaTest() �X0,; �� Overload*56 ا�- :

/ / varargs and overloading

class varArgs3 {

Static void vaTest (int… v) {

System.out.print ("vaTest (int …): " +

" Number of args: " + v/length +

" Contents: " );

for (int x : v)

system.out.print (x + " ");

system.out.println ( ) :

}

static void vaTest (boolean …v) {

system.out.print ("vaTest (boolean …) " +

" Number of args: " + length +

" Contents: " ) ;

for (boolean x : v)

system.out.print (x + " ");

system.out.print ( ) ;

}

Static void vaTest (String msg, int … v) {

system.out.print ("vaTest (String, in …) : " +

" msg + v.length +

" Contents: ") ;

for (int x : v)

system.out.print (x + " ");

system.out.print ( );

}

public static void main (staring args [ ] )

{

vaTest (1, 2, 3) ;

vaTest (" Testing: ', 10, 20) ;

Page 176: Java farsi

vaTest (true, false, false);

}

}

vaTest (int …): Number of arags: 3 contents: 1 2 3

vaTest (string, int …): Testing:: 2 contents: 10 20

vaTest (int …): Number of arags: 3 contents: true false false

,A%;� ه, دو روش ا Bیoverload 6ه%يE; آ,دن varargs Ç@?A* ایÇA ،�Ç©I/ع . ده6Ç را zA%ن ;

,E;داد5 ه%ي 4%راvarargs 6Ç-% £Ç�E?; *Çا� B©O; . 6ه%يÇE; ص/Çدر خ�vaTest (int …) و

vaTest (Boolean …)*ا� �A/o B�O6 آ� وج/د . ه�-% �E-دا ,v%خ � "..."¨; uX� %Ç0 د/Ç-

R � ,E;4%را %,خ/رد -/د 56- �?z; ع/A رت <رای� اي از/.

.، ا\8ودن یÀ 4%را;OJ; ,E/ل¨ ا�*varargs آ,دن ;6Eه%ي overloadروش دوم ,اي

Page 177: Java farsi

وراث=

Inheritance

G>� وی� ای���.:

;A%X¨ وراث*

superآ%ر,د آ��O آ��6ي

Multilevel

¨Aز;%ن \,اخ/اConstructor%ه

Override%6هE; آ,دن

;6Eه% 4/ی%ي (dispatch) 0/زی�

؟ ل6E; 56- /Tه%يd,ا

(abstract) ;>,د از آM�t%ي ا�nE%د5

% وراث* Final از ا�nE%د5

Objectآtس

Ali
Highlight
Ali
Highlight
Ali
Typewriter
bb
Ali
Arrow
Page 178: Java farsi

I%ه%ي از �ûI را ی©¨ وراث* �;%A,6IیM%ي ای>%د ا;©%ن، زی,ا o,ا�*-¨ A/ی@¨ �iXv ��@��

ÇX0ا,; Ç; د/Çج/Ç% ا�nEÇ%د5 . <ورد را *Çاز وراث Ç; ، 6Ç�A0/ا ÀÇس یtÇآ ;/ÇOP �Çزی6 آ%Ç@

6Jا آtس ایOA .B%یbX0,; 6 را J0,ی£ M] ا^tم ;>�P/O یEz; À,ك وی�M�o%يB©O; *ا� b�/0

%رث %M�tد5 �%ی, آ,n,د خ/دش آ�را 8�dه%ی¨ ,56A ارث و ه, آtس -56 ,�mI; � 6-%

در روش. OA%ی6Ç ا�Ç%\� <ن Ç�%I- Ç�tوا ، آ%Çج �Çرث آ%ÇÇ,د5 Ç; سtÇد را آ/Ç- 1%Ç

(superclass) ¨; 6I;%A .¨�tآ� آ ]OP ي ارث, را زی, آtس ا�* ,د5 و ارث داد5 را اA>%م

(subclass) ¨; 6I;%A . Bای,%I Àس " ، یt0, و ; 0?��¨ روای* " زی, آ�?z À0, از ی "

زی, آtس ، آ��� ;�TE,ه%ي �A/OA و رو-M%ي bÇ�/0 56Ç- £�R/0 آtÇس Ç%1 . ا�*" %1 آtس

n,د خ/د را 8�A ا�%\� ;¨ آ6I را ,�mI; د5 و,%رث .

i��� وراث=

,دن ارث ,اي Àس از یtی£ آ%\�@* �%د5 ، خ��¨ آ,J0 Àس یtد5 آ%nEا� % آ��6ي واژ5 از را

extends سtي در آ,rاي. ^,ار ده�6 دی, [M\ ];%آ Bای uÇ�g; ل%ÇW; ، د5 اي%Ç� ن را%ÇzA Ç;

6Jي ,A%;�. ده�] Àس یtآ *m0 1%� ;/�/م زی, آtس و یA A À%م B 6 ;¨ ای>%دÇIآ . *Ç^د

. ای>%د -/د A از زی, آtس یÀ 0% -56 ا�nE%دextends 5 آ��6ي از واژ�A/rd 5 آ6�I آ�

// A simple example of inheritance.

// Create a superclass.

class A {

int i, j;

void showij )({

System.out.println("i and j :" + i + " " + j);

}

}

// Create a subclass by extending class A.

class B extends A {

int k;

void showk )({

System.out.println("k :" + k);

}

Page 179: Java farsi

void sum )({

System.out.println("j+j+k :" +( i+j+k));

}

}

class SimpleInheritance {

public static void main(String args[] ){

A superOb = new A)(;

B subOb = new B)(;

// The superclass may be used by itself.

superOb.i = 10;

superOb.j = 20;

System.out.println("Contents of superOb :");

superOb.showij)(;

System.out.println)(;

/* The subclass has access to all public members of

its superclass .*/

subOb.i = 7;

subOb.j = 8;

subOb.k = 9;

System.out.println("Contents of subOb :");

subOb.showj)(;

subOb.showk)(;

System.out.println)(;

System.out.println("Sum of i/ j and k in subOb:");

subOb.sum)(;

}

}

i,ار زی, ;¨ ,A%;� ایB خ,وج¨ ، 6-% :

Contents of superOb:

i and j :10 20

Contents of subOb:

i and j :7 8

k :9

Page 180: Java farsi

Sum of i/ j and k in subOb:

i+j+k :24

%1ي آtسا�P% آ��� در,B 56A,�o زی, آtس�6�I ، ;¨ هgA%O/ری©� �v/,; ¨IJی A *ا� .

B�OM� ;¨ subob آ� ا�* دل�[ 6A0/ا iو j¨�,Eد� �E-و دا showij() ¨A6 را \,اخ/اÇی%OA .

B�I�Oداخ[ ه ()sum ¨; 0/ان [�iE@; ر/g iو jو �A/rA%Oآ� ه tX^¨z?/د6ÇA ، ارجÇ%ع B از

%1ي آtس A اOA . �d,o/د B ¨; ن%I�O6 ، ا;% ه-% Àس یtآ t;%آ "]iE@; ¨©E; د و/? ا�*

/دن آtس . 1%,اي Àس یt6ان زی, آ ¨IJ; *@�A آ� ¨OA س خ/د <ن 0/انtی¨ آ%MIE%1 را

tJو5. ^,ار داد ;/رد ا�nE%د5 Àس ، یtس ;¨ زی, آt6 آA1ي 0/ا% Àس یt6 زی, آ-% ,rدی.

]©- ¨;/OP Pناt Àی class آ� Àس از یt1 ارث آ% : زی, ا�* ,د ، �/رت ;¨

class subclass-name extends superclass-name {

// body of class

}

,اي ¨�tای>%د ;¨ آ� ه, زی, آ Àی bi\ ، 6�Iس آt1 ;¨ آ% ج%وا از اiEA%ل .آ6�I 0/اJ0 6�A,ی£

� آtس 6IdیB وراث* 1% Àس یtد آ,nI;¨A%X�Ez4 ¨OA 6Iاز. ( آ Bای % ;nE%وت ++wA C, ج%وا

از ;,اu0 ��@�� 0/ا6�A یÀ ;¨ آ� tX^[�Eno (. 4¡ی, ا�* ا;©%ن 6Id آ��t وراث* در <ن آ� ا�*

%1ي ، آtس آtس زی, یÀ در <ن ای>%د آ6�I آ� وراث* ÀÇس یtÇآ ,Ç6 زیÇ-% ,Çrدی . ¥�Çه ، %Ç;ا

¨�tآ ¨OA سt6 آA1ي 0/ا%%-6 دشخ/ .

i�(� و وراث=ا.b� �5 د�

�d,oا Àس یt56 زی, آA,�o,%-6، ا;% E�OA/ا6A خ/د ;¨ %1ي اt©U%�Pس آ��� در � اÇ�P%ی

IJ/ان %1 آ� از آtس private نtÇPا Ç�,E6 ، د�ÇA56 اÇ- �EÇ-6 داÇ-% ، ��@ÇW; ��Ç%ل ÇIJ/ان .

u0س �%د5 ;,اtی6 آ,�r ,wA زی, را در :

/* In a class hierarchy/ private members remain

private to their class.

This program contains an error and will not

compile.

*/

Page 181: Java farsi

// Create a superclass.

class A {

int i; // public by default

private int j; // private to A

void setij(int x/ int y ){

i = x;

j = y;

}

}

// A's j is not accessible here.

class B extends A {

int total;

void sum )({

total = i + j; // ERROR/ j is not accessible here

}

}

class Access {

public static void main(String args[] ){

B subOb = new B)(;

subOb.setij(10/ 12);

subOb.sum)(;

System.out.println("Total is " + subOb.total);

}

}

Bای �;%A, iA« ر �BuX در()sum روش داخ[ A j?/اه6 -6 زی,ا ارج%ع � آ%;�%ی[ Ç�,Eد�

IJ/ان j از <A>%ی�©�. خ/اه6 -6 private نtPئ ا%�Pی, ا%� b�/0 bi\ ، 56- سtخ/دش آ ]%^

¨�,Eا�* د� �A/rه�� %M�tو زی, آ ¨�,Eد� � .6A6ارA <ن

IJ/ان آ� �P/ آtس یÀ : ی%د<وري private نtPاي -56 ا, خ/اه6 اخR%�E¨ خ/دش آtس

ÇÇÇ/د .BÇÇÇاي ای,ÇÇÇ /ÇÇÇ�P 6ه%يÇÇÇرج آ%ÇÇÇخ  ÇÇÇ�tاز آ �ÇÇÇ�Oاز ج ]ÇÇÇ%^ ، %MÇÇÇ�tآ ,ÇÇÇزی

¨�,Eد د�/ . A?/اه6

fل ی�� i,�. (ت

Page 182: Java farsi

�ÇÇ اجÇ%ز5 6Çده� ÀÇÇل ی%ÇÇW; ¨ÇÇ�OP [دازی,ÇÇ� ,ÇÇ0 �ÇÇ6رت آÇÇ^ ¨ÇÇJ^وا *ÇÇن وراث%ÇÇzA 6خ/ راÇÇاه

ÇÇMd ,ÇÇ�IP%رم ÇÇ0% یÀÇÇ ی%\EÇÇ@o �ÇÇE,ش ÇÇmI/ي Box آtÇÇس ÇÇMA%ی¨ در ایÇÇ<I% ، روایÇÇ*. داد

*Çm0 م%ÇA weight د,Ç�o,6ÇیB . را در uÇ�0,0 سtÇآ ، ];%Ç- 6Çج6ی width ،height، depth

. خ/اه6 /د box ویweightÀ و

// This program uses inheritance to extend Box.

class Box {

double width;

double height;

double depth;

// construct clone of an object

Box(Box ob ){ // pass object to constructor

width = ob.width;

height = ob.height;

depth = ob.depth;

}

// constructor used when all dimensions specified

Box(double w/ double h/ double d ){

width = w;

height = h;

depth = d;

}

// constructor used when all dimensions specified

Box )({

width =- 1; // use- 1 to indicate

height =- 1; // an uninitialized

depth =- 1; // box

}

// compute and return volume

double volume )({

return width * height * depth;

}

}

// Here/ Box is extended to include weight.

class BoxWeight extends Box {

double weight; // weight of box

Page 183: Java farsi

// constructor for BoxWeight

BoxWeight(double w/ double h/ double d/ double m ){

width = w;

height = h;

depth = d;

weight = m;

}

}

class DemoBoxWeight {

public static void main(String args[] ){

Boxweight mybox1 = new BoxWeight(10/ 20/ 15/ 34.3);

Boxweight mybox2 = new BoxWeight(2/ 3/ 4/ 0.076);

double vol;

vol = mybox1.volume)(;

System.out.println("Volume of mybox1 is " + vol);

System.out.println("Weight of mybox1 is " + mybox1.weight);

System.out.println)(;

vol = mybox2.volume)(;

System.out.println("Volume of mybox2 is " + vol);

System.out.println("Weight of mybox2 is " + mybox2.weight);

}

}

%-6 زی, ;¨ �/رت ,A%;� ایB خ,وج¨ :

Volume of mybox1 is 3000

Weight of mybox1 is 34.3

Volume of mybox2 is 24

Weight of mybox2 is 0.076

Boxweight

�Çت آ��%Ç�?z; Box رث%ÇÇ,د5 را �Ç را ا�Ç�IP %ÇMA> weight �\%Ç, و Ç; 6ÇIاي . آ,Ç

Boxweight ¨06ارد آ� �,ورA آ��� uAد در ج/ا/Çج/; Box 6داÇ<; 6 راÇی%OA د%Ç<ای . �Ç©� Ç;

%@ 6A0/ا¨oد Box ري/v ش را,E@o خ/دش خ%ص ده6 0% اه6اف B�;%0 ی6 را%OA.

ÀÇی *Ç56 ;8یÇOP *Çوراث BÇای *Çا� �Çآ *Ç@�\%آ ÀÇر ی%ÇX©ی bÇi\ سtÇآ �Ç6 آÇ�Iد آ%Ç<1 ای%Ç

OA%یÇrA> ، 6Ç%5 از ا-�Ç%ئ را J0,ی�ÇP/O<; £Ç یEÇz; ÀÇ,ك خ�ME�Ç%ي Ç; ان/Ç0 اي از <ن,Ç

Page 184: Java farsi

0/اÇÇ; 6ÇÇA¨ هÇÇ, زیÇÇ, آtÇÇس . ÇÇOA/د ÇÇ0, ا�nEÇÇ%دÇÇz; 5?� ای>ÇÇ%د ه6ÇÇJ0 ,ÇÇاد از زیÇÇ, آMÇÇ�t%ي

%Çi�^د " �ÇiXv %ÇÇ%رث Box ، از 6ÇJي ، آtÇس ;ÇW%ل ÇIJ/ان . ی%ÇÇ�Xg0 6Ç} خÇ/دش 6ÇÇIي

,د5 Àخ��* و ی ûA) رcolor8 در <ن (�A �\%ا�* -56 ا� .

// Here/ Box is extended to include color.

class ColorBox extends Box {

int color; // color of box

ColorBox(double w/ double h/ double d/ double c ){

width = w;

height = h;

depth = d;

color = c;

}

}

�%د <وری6 آ� 5%o,ه Àس یtی�6 آ� آ%OA 1 ای>%د% 0/ان آJ0 ¨; ، 6I,ی£ را-¨ یOP À/;¨ وج/5

,اي آtس از <ن 1% ]�©z0 ي%M�tآ Ç��?0 ارث ,Ç0 د,Ç . ,Çه tÇآ ,Çسزی Çد5 خ��%Ç� bÇi\

ÇÇn,د خÇÇ/دش خ�ME�ÇÇ%ي ,ÇÇ�mI; �\%ÇÇرا ا� ¨ÇÇ; 6ÇÇIآ .BÇÇم ای/ÇÇMn; ¨ÇÇآ� *ÇÇوراث *ÇÇا� .

Àس یtآ ,�TE; ¨; 1% � 6A0/ا Àس-¨ یtی6 زی, آ%OA ارج%ع Àی �Ç ی�TE; ÀÇ, ارجÇ%ع ;,Ç/ط

Ç0 �Ç/ان %1 را ;¨ آtس P%Çارج �Ç ، ÀÇی ,Çي از ه%MÇ�tآ ,Çزی {EÇz; 56Ç- س از <نtÇ1 ، آ%Ç

I;u@E د/OA .ري%�@ ;W%ل IJ/ان . آ%;6�n; t و �/د;6I ا�* از وراث* ج�XI از -,ایb ، ایB در

,wA ی6 ، ;/رد زی, را در,�r :

class RefDemo {

public static void main(String args[] ){

Boxweight weightbox = new BoxWeight(3/ 5/ 7/ 8.37);

Box plainbox = new Box)(;

double vol;

vol = weightbox.volume)(;

System.out.println("Volume of weightbox is " + vol);

System.out.println("Weight of weightbox is " +

weightbox.weight);

System.out.println)(;

// assign BoxWeight reference to Box reference

Page 185: Java farsi

plainbox = weightbox;

vol = plainbox.volume)(; // OK/ volume )(defined in Box

System.out.println("Volume of plainbox is " + vol);

/* The following statement is invalid because plainbox

dose not define a weight member .*/

// System.out.println("Weight of plainbox is " + plainbox.weight

}

}

%<Iدر ای weightbox Àی � ا-�%ئ � ارج%ع یplainbox À و ا�* Boxweight ا-�%ئ ارج%ع

Box *ا� . �Ç©ی�%<A> از Boxweight ÀÇس یtÇآ ,Çاز زی Box *Çا� Ç; ، ان/Ç0 plainbox را

IJ/ان Àی �و A/ع ;�TE, ارج%ع آ� ا�* ایOA . �E©A [M; B/د ;weightbox u@EI -¨ ئ ارج%ع

�A ¨f�- ع/A آ� � یIJ¨. ه@6IE د�E,�¨ ا�P%ئ ^%[ آ6I آ6ام ;¨ B��J0 آ� ا�* ارج%ع -56 <ن

�©�;%rIه Àارج%ع ی �/ط ,; Àس یtئ زی, آ ¨- � ، Àس یtارج%ع آ ,�TE; u@EI; 1% Ç;

bi\ %O- ، د/- �?Mz%ی¨ <ن ¨�,Eس داری6 آ� از -¨ ئ د�tآ b�/0 £Çی,J0 1% 56Ç- 6IÇ-% .

B�OM� plainbox ¨OA آ� *ا� دل�[ 6A0/ا weight ¨�,Eد� �E-دا ¨EZ 6-% ÇE^و �Çآ �Ç ÀÇی

¨-Boxweight ¨; 6 ارج%عIآ .� ,o6 ، <ن <ن ا�Iس \©, آ%@Z6 ;¨ را ا�Iآ ÀÇس زی,ا یtÇآ

XÇ@A �Ç* و ا�Çv%Z اي Ço> 1%Ç%ه �\%Çارد ا�/Ç; 56Ç- �Ç/�Çv اش زیÇ,آtس ,; *Ç-6 داÇاه/?A .

Ç,اي ی�Ç�/0 . ÀǼ رج -56Ç ا�B *Ç خb از آ6 ;/ج/د در ^�X^ �Jg¨ ازB�OM دل�[ ا�* آ� <خ,ی

%-d ، 6,اآ� \��6ي Ç% ایÇA BÇ%م bÇ�/0 د�E,�¨ دا-weight �E ا;©%ن 6Aارد %0 � \��Box 6 ارج%ع

Box*56 ا�zA £ی,J0 .

superآ�ر�)د آ,�5 آ,-%ي

�%زي ، �4%د5 دا-* ا;©%ن �آ و ^6ر6IO0ي آ%رای¨ � Box از -Ez; 56} آM�t%ي ^�X¨ در ;W%لM%ي

6A6ÇzA . ان/ÇIJ Ç� ، Boxweight%زÇW; 56A%ل mی,ÇR ر/Çg و 6Ç��\ width ،heightه%ي

depthو در ()Box ¨6ار دهi; 6 ;¨ اول�� راIآ .Bای �A ,;ا %MI0 س 6�4ا -56 آ6ه%يt1ي در آ%

¨; , زی, آtس یÀ دارد , ایI©� د1ل* ، �©� _�, آ%را�* آ6I آ� <MA% را دو ,ا Ç�,Eی6 د�%

� Bای �E-ئ دا%�P6 ا-%%1 ای>Ç%د آ6Ç�I آ�Ç آtس خ/اه�6 یÀ ;¨ وج/د دار6A آ� -,ایg¨ ا;%.

,اي -,ایb ، راه¨ در ایB. آ6MrA 6Iاري را خ/دش خ/دش �%زي �4%د5 ج�U8%ت Àس یtزی, آ

Page 186: Java farsi

� O�iE@; %0% وج/د 6Aارد Bه%ي ای,�TE; � �Eدا- د�E,�¨ خ/دش ;,/ط و یÇMA> %Ç% را ;6Çiارده

%3Ç4 ، �ÇP ا�* oop اول�� خ��* یÀ �%زي آ�@/ل از <A>%ی�©�. OA%ی6 اول�� uÇ<J0 *Ç@�A �Çآ

جÇÇ%وا را5 ÇÇ�Z اي,ÇÇ BÇÇای ]©ÇÇz; [اه,ÇÇ\ 5د,ÇÇ6 آÇÇ-% . 5%ÇÇo,1زم ه ÀÇÇی %ÇÇ0 6ÇÇ-%

%1ي آtس � زی, آtس ¨�X^ د5 خ/دش%nEÇا� %Ç super آ��6Çي از واژ5 ارج%ع OA%ی6 ، ایÇ©I%ر را

%1 را \,اخ/اA¨ آtس �%ز56A <ن اول�B. دارد OP/;¨ دو -©[super . ده�] ;¨ اA>%م ¨; 6Iآ .

B�;ن دو> ¨�,Eر د�/wIO � Àس یtآ /�P 1 آ�% ÀÇی bÇ�/0 سtÇآ ,Çزی /Ç�P Çn?; 56ÇA%;

. -/د ;¨ ، ا�nE%د5 ا�*

super از ا��A�د�

Àس یt6 روش زی,آAا/E�; 56Aی£ �%ز,J0 6-5 سtÇآ b�/0 1ي%Ç �Çv/ از ایBÇ را %ا�nEÇ%د5 ;,

]©- super ¨Aی6 \,اخ/ا%OA :

super( parameter-list);

%Ç<Iدر ایparameter-list �?Çz; 56ÇIIي آ,E;را%Ç4 ,Çه *Çا� �Ç56 آAز%Ç� bÇ�/0 سtÇدر آ

6ÇÇ-%ÇÇ; 1%ÇÇ/رد ÇÇ�A%ز . super() 5ار/ÇÇO6 هÇÇی% B�ÇÇ56 اولÇÇ- ا,ÇÇر اج/EÇÇد� ]ÇÇداخ ÀÇÇ56 یAز%ÇÇ�

%-t 6سزی, آ.

�ÇÇ6 آÇÇی,rI �ÇÇA/rd از super() 5د%nEÇÇ56 ا�ÇÇ- B�ÇÇI�Oو ه ، BÇÇای *ÇÇروای �JÇÇ�/0 �ÇÇE\%ی

�r,یBoxweight() 6 از آtس ,wA را در :

// BoxWeight now uses super to initialize its Box attributes.

class BoxWeight extends Box {

double weight; // weight of box

// initialize width, height, and depth using super)(

BoxWeight(double w, double h, double d, double m ){

super(w, h, d); // call superclass constructor

weight = m;

}

}

Page 187: Java farsi

%<Iدر ای Boxweight() ¨Aاخ/ا,\ super() ه%ي,E;4%را % و اÇ<A%م d و w ،h را Ç; 6Çده . BÇای

uXÇÇ� ر%ÇÇ56\,اخ/ آÇÇA6ن اÇÇ- 56Aز%ÇÇ� Box() 56ÇÇ- 5د%nEÇÇا� %ÇÇ BÇÇدی, از ای%ÇÇi; width

،heightو، depth¨6ار دهi; 6 ;¨ اول�� و راIآ .,rدی Boxweight خ/دش Bدی, ای%i; را اول��

n,د خ/د ا�* \bi آ%\¨. آ6i; ¨OA 6Iار ده¨ ,�mI; 6ارi; %0 weight¨6ار دهi; ی6 اول�� را%OA

.Bای ]OP Box ¨; رت را <زاد/R ارد 0% در¡o ]ی%O0 Bدی, را ای%i; private زد%@ .

در ;W%ل Ç�X^ ، super() �Ç� %Ç <رÇ;/o%ن Aا/Ç56 \,اخÇ- د/Ç ا�Ç� BÇ©O; *Ç%زo6A%ن ا;Çd %Ç/ن .

�E-%XA6 ، ;¨ اA/- 0/ان super() 5د%nEا� %%1 \,اخ/اb�/0 ¨A آtس -J0 56,ی£ از ه, -©[ را

Ç% آ�Ç ا�Ç* /د ، هA%O¨- اج,ا ;¨ آ� �%ز56A اي. OA/د *Çi%g; %ÇMA%;/oر> �EÇ-6 داÇ-%ÇIJ/ان .

Çv,ق را Ç,اي �Ç%زo6A%ن وجÇ/د دارد آBoxweight �Ç از آ%;Ç� ]Ç%زي Ç�4%د5 ، در ایI>% یW; ÀÇ%ل

\Ç,اه] box ی6Ç- ÀÇن �Ç%خ�E و ;o%ÇA/o BÇ©O/ن Ç; 6Çی%OA . *Çل%Z ,Çدر ه super() 5د%nEÇا� %Çاز

<رÇMA%;/o%ي ÇXی,i0 Aا/Çد \,اخ/Çz�; . Ç^د* �Ç6 آÇ�Iآ width , heightو depth ]Çو داخ Box

�/رت ¨R%�E6 اخAدر<;56 ا.

// A complete implementation of BoxWeight.

class Box {

private double width;

private double heght;

private double deoth;

// construct clone of an object

Box(Box ob ){ // pass object to constructor

width = ob.width;

height = ob.height;

depth = ob.depth;

}

// constructor used when all dimensions specified

Box(double w, double h, double d ){

width = w;

height = h;

depth = d;

}

// constructor used when no dimensions specified

Box (){

width =- 1; // use- 1 to indicate

Page 188: Java farsi

height =- 1; // an uninitialized

depth =- 1; // box

}

// constructor used when cube is created

Box(double len ){

width = height = depth = len;

}

// compute and return volume

double volume (){

return width * height * depth;

}

}

// BoxWeight now fully implements all construtors.

class BoxWeight extends Box {

double weight; // weight of box

// construct clone of an object

BoxWeight(BoxWeight ob ){ // pass object to consructor

super(ob);

weight = ob.weight;

}

// constructor used when all parameters are specified

Box(double w, double h, double d, double m ){

super(w, h, d); // call superclass constructor

weight = m;

}

// default constructor

BoxWeight (){

super();

weight =- 1;

}

// constructor used when cube is created

BoxWeight(double len, double m ){

super(len);

weight = m;

}

}

class DemoSuper {

public static void main(String args[] ){

Page 189: Java farsi

BoxWeight mybox1 = new BoxWeight(10 .20 .15 .34.3);

BoxWeight mybox2 = new BoxWeight(2, 3, 4, 0.076);

BoxWeight mybox3 = new BoxWeight(); // default

BoxWeight mycube = new BoxWeight(3, 2);

BoxWeight myclone = new BoxWeight(mybox1);

double vol;

vol = mybox1.vilume();

System.out.println("Volume of mybox1 is " + vol);

System.out.println("Weight of mybox1 is " + mybox1.weight);

System.out.println();

vol = mybox2.vilume();

System.out.println("Volume of mybox2 is " + vol);

System.out.println("Weight of mybox2 is " + mybox2.weight);

System.out.println();

vol = mybox3.vilume();

System.out.println("Volume of mybox3 is " + vol);

System.out.println("Weight of mybox3 is " + mybox3.weight);

System.out.println();

vol = myclone.vilume();

System.out.println("Volume of myclone is " + vol);

System.out.println("Weight of myclone is " + myclone.weight);

System.out.println();

vol = mycube.vilume();

System.out.println("Volume of mycube is " + vol);

System.out.println("Weight of mycube is " + mycube.weight);

System.out.println();

}

}

Bای �;%A, : آ6I زی, را 0/ل�6 ;¨ خ,وج¨

Volume of mybox1 is 3000

Weight of mybox1 is 34.3

Volume of mybox2 is 24

Weight of mybox2 is 0.076

Volume of mybox3 is- 1

Page 190: Java farsi

Weight of mybox3 is- 1

Volume of myclone is 3000

Weight of myclone is 34.3

Volume of mycube is 27

Weight of mycube is 2

�Ez,ي 0/ج� *X@A � B56 ایAدر �%ز Boxweight() �E-6 دا�-% :

// construct clone of an object

BoxWeight(BoxWeight ob ){ // pass object to constructor

super(ob);

weight = ob.weight;

}

Box از ÇA/ع U ¨- Boxweight �ÇA%ز A/ع % یsuper() À آ6�I آ� 0/ج� Aا/Ç56 \,اخÇ- *Çو ا�

56A8 �%ز�A (Box ob) Box ¨A6 ;¨ را \,اخ/اIری©�. آ/gA%Oذآ, ه tX^ Àس -6 ، یtÇآ ,Ç�TE;

,اي 0/ان %1 را ;¨ �,ایB. ^,ار داد ;/رد ا�nE%د5 آtس از <ن -Ez; ¨- , 56}ه ارج%ع %I ،

Box *XÇ@A bÇi\ �Ç الÇo . �ÇEX¡ر دهÇ� Box [�Ç%ز56A را Ç-Boxweight �Ǩ یÇ^ %; ÀÇ%در Ç/دی]

. دارد <o%ه¨ ا�P%ئ خ/دش

Ç/ط �Ç آ��6Çي ده�n; 6%ه�] اج%ز5,; super() [ی�%ÇOA ور,Ç; را . ÇE^و ÀÇس یtآ,Çزی super() را

%1ي آtس �%ز56A آ6I ، در اR[ ;¨ اA¨\,اخ/ ]Ç�\t Aا/Çد را \,اخ/Çخ Ç; 6ÇIآ . Bای,%ÇI

super()5ار/Oه �%1ي آtس ]�\t �E\,o 1ي ^,ار% -56 \,اخ/ا56A آtس در Ç; ارج%ع ،

6Iآ .Bای ¨EZ ,;ا Àدر ی ��@�� u0ا,; ¨mg� 6Id [دق ه%R *ا� . B�I�Oه super 5ار/Oی6 ه%

Bريد اول�/E� 6 آ�-% . -/د اج,ا ;¨ زی, آtس �%ز56A یÀ داخ[

�- super آ�ر�)د دو

B�;دو ]©- super 6وديZ %0 ��X- this ¨; آ%ر �©I8 ای< ،6Iآ super 5ار/ÇOه �ÇÇ%1ي آtÇس

¨�tد5 در <ن آ� زی, آ%nE6 -/د ، ارج%ع ;¨ ;¨ ا�Iآ .]©- ¨;/OP BÇرت ای/Ç�زیÇ, آÇ%ر,د

: ا�*

Page 191: Java farsi

Super .member

، %<Iدر ایmember B©O; *Çا� ÀÇروش ی ÀÇی %Çی �ÇA/OA ,Ç�TE; 6Ç-% . BÇای B�Ç;دو ]©Ç- super

,اي ¨gد دارد آ� -,ای,را در ا�%;¨ هO%ن %، ا�P% زی, آtس ا�P%ئ یÀ ا�%;¨ در <ن آ%ر

n?; 1%¨ آtس ¨; 6Aز%� .Bای ��@�� u0س �%د5 ;,اtآ ,wA ی6 را در,�r :

// Using super to overcome name hiding.

class A {

int i;

}

// Create a subclass by extending class A.

class B extends A {

int i; // this i hides the in A

B(int a, int b ){

super.i = a; // i in A

i = b; // i in B

}

void show )({

System.out.println("i in superclass :" + super.i);

System.out.println("i in subclass :" + i);

}

}

class UseSuper {

public static void main(String args[] ){

B subOb = new B(1, 2);

subOb.show)(;

}

}

Bای �;%A, : ده6 ;¨ زی, را OA%ی  خ,وج¨

i in superclass :1

i in subclass :2

�d,oا �A/OA ,�TE; iدر B,�TE; ر iدر Aن%MI4 زد ، ا;% ;¨ ر را%� super ا;©%ن ¨�,Eد� � i

در آtس -J0 56,ی£ Ç; د/Çج/ 1%Ç super از ;�ÇE/ان هB�ÇI�O خ/اه�6Ç دی6Ç هgA%O/ری©�Ç . <ورد

,اي ¨Aی¨ \,اخ/ا%M-آ� رو Àی b�/0 سtزی, آ ¨n?; 6A56 ا-.

Page 192: Java farsi

fد ی�I5 ای,�,� cات( i�3� %� (Multilevel) چ

¨; /0��@�� 6�Aا ¨X0زی6 آ� ;,ا%@ ];%- B6یId 6ل?/ا5 وراث* 1ی� 6I-% %O-. ج�/; t;%آ *Çا�

%1ي آtس IJ/ان زی, آtس از یÀ آ� Àس یtد5 آ%nEا� ,rدی [�Iان . آ/IJ آtس اW; �� ,o%ل

A ،B و C�E-دا [�-% 5%rA> C ¨; À6 یAس 0/اtاز زی, آ BÀس و یtاز زی, آ A 6-% . ÇE^و

B�Id ¨gق -,ای%n0س ;¨ اt6 ، ه, زی, آE\ي آ��� ا%MEخ�� �Çس ;/ج/د در آ��tÇي آ%Ç1ه%خÇ/د

,د ;¨ را %رث .Bدر ای ، bای,-C ه%ي آ��� �XIج Bو Aرث%,د ;¨ و را .

�;%A,IJ/ان Boxweight ، زی, آtس 6Jي در Àس یtد5 آ%nE1 ا�% Çm0* آtس 0% زی, -56

ارث � را Box و Boxweight خ��ME%ي آ��� shipment .را ای>%د OA%یIP shipment 6/ان

,د5 Àم و ی%I 6��\ cost ن> � . آ6I ;¨ را 6MrAاري ;Om/ل� یÀ آ�Ez,اA¨ ه8ی�I آ� -56 ا�%\�

// Extend BoxWeight to include shipping costs.

// Start with Box.

class Box {

private double width;

private double height;

private double depth;

// construct clone of an object

Box(Box ob ){ // pass object to constructor

width = ob.width;

height = ob.height;

depth = ob.depth;

}

// constructor used when all dimensions specified

Box(double w, double h, double d ){

width = w;

height = h;

depth = d;

}

// constructor used when no dimensions specified

Box )({

width =- 1; // use- 1 to indicate

Page 193: Java farsi

height =- 1; // an uninitialized

depth =- 1; // box

}

// constructor used when cube is created

Box(double len ){

width = height = depth = len;

}

// compute and return volume

double volume(){

return width * height * depth;

}

}

// Add weight.

class BoxWeight extends Box {

double weight; // weight of box

// construct clone of an object

BoxWeight(BoxWeight ob ){ // pass object to constructor

super(ob);

weight = ob.weight;

}

// constructor used when all parameters are specified

BoxWeight(double w, double h, double d, double m ){

super(w, h, d); // call superclass constructor

weight = m;

}

// default constructor

BoxWeight (){

super)(;

weight =- 1;

}

// constructor used when cube is created

BoxWeight(double len, double m ){

super(len);

weight = m;

}

}

// Add shipping costs

class Shipment extends BoxWeight {

Page 194: Java farsi

double cost;

// construct clone of an object

Shipment(Shipment ob ){ // pass object to constructor

super(ob);

cost = ob.cost;

}

// constructor used when all parameters are specified

BoxWeight(double w, double h, double d, double m, double c ){

super(w, h, d); // call superclass constructor

cost = c;

}

// default constructor

Shipment (){

super();

cost =- 1;

}

// constructor used when cube is created

BoxWeight(double len, double m, double c ){

super(len, m);

cost = c;

}

}

class DemoShipment {

public static void main(String args[] ){

Shipment shipment1 = new Shipment(10, 20, 15, 10, 3.41);

Shipment shipment2 = new Shipment(2, 3, 4, 0.76, 1.28);

double vol;

vol = shipment1.volume();

System.out.println("Volume of shipment1 is " + vol);

System.out.println("Weight of shipment1 is " + shipment1.weight);

System.out.println("Shipping cost :$" + shipment1.cost);

System.out.println();

vol = shipment2.volume();

System.out.println("Volume of shipment2 is " + vol);

System.out.println("Weight of shipment2 is " + shipment2.weight);

System.out.println("Shipping cost :$" + shipment2.cost);

}

}

Page 195: Java farsi

%-6 زی, ;¨ �/رت ,A%;� ایB خ,وج¨ :

Volume of shipment1 is 3000

Weight of shipment1 is 10

Shipping cost :$3.41

Volume of shipment2 is 24

Weight of shipment2 is 0.76

Shipping cost :$1.28

�nE%د5ا Boxweight وJ0 56- ¨�X^ Box,ی£ 0/ا6A از آM�t%ي ;¨ shipment، وراث* 6ل�[

?z¨ ایOA. B%ی�A 6%ز دارد ، ا�%\� خ/دش آ%ر,د خ%ص ,اي آ� ا�%\¨ OA%ی6 و \bi اPtv%ت

¨ ^�X¨ ;>6د از آ6ه%ي ا�nE%د5 ا;©%ن وراث* . ا�* وراث* از ارزش/? . ا�* /ج/د <ورد5 را

Bل ای%W; Àی �E©A [M; ن%zA را ,rده6 ;¨ دی، super() 5ار/Oه � 56Aدر ;/ج/د �%ز Bی,ÇE©8دیA

آtس Ç; 1 ارج%ع% 6ÇIآ . super()در shipment 56Aز%Ç� Boxweight را Aا/Ç6 \,اخÇI©�; .

super()در Boxweight 56Aز%Ç� د در/Çج/; Box Aا/Ç6 را \,اخÇI©�;. ÀÇدر ی ��Ç@�� uÇ0ا,;

%ی6 <ن آ��� �A 1%%ز;6I 4%را;E,ه% %-rA> ،6%5 آtس �%ز56A ، اo, یÀ آtس %M�tه% 4%ر زی, آ,E;ا

r¡را6ÇIA (up the line) خb را %1ي . BÇای ,Ç;ا �Çd ÀÇس یtÇآ ,Çي زی%Çه,E;دش 4%را/Çز خ%Ç�A را

�E-دا �d 6-% �E-6اA ز%�A *mR ، 6-% . خ/اه6 دا-*

�ÇE©A : ل%ÇW; در Ç�X^ ]Çآ ، ��Ç@�� uÇ0س ;,اtÇآ ];%Ç- ، Box ،Boxweight و shipment

¨rOه Àن \%ی[ در ی%zA 56 ;¨ دادA/- .Bل* ای%Z اي, bi\ ¨EZرا *Çا� %O-. ,Çوا ، ه%Çدر ج %Ç;ا

Àس از �� یtي آ%Mی6 در \%ی�%در Çi�iZ* ، . و ج6ا�A%o آ%;�%ی[ -6A/Ç ^,ار �E\,o خ/د-%ن خ%ص

. در ای>%د ��@�� ;,اu0 آ�A*�%M�t یÀ ا�IWE% ا�nE%د5 از \%ی�M%ي ج6ا�A%o یÀ ;¨ و

iن 2)ا&�ا�� ه�Constructorز

¨E^و Àی ���@� u0س ;,اtن ای>%د ;¨ آ%o6Aد ، �%ز/- �Çآ %M�tآ ��Ç@�� uÇ0را ;,ا ]�©Çz0 Ç;

� 6Iده �d ¨X�0,0 ¨A6 ;¨ \,اخ/اA/- ?ان/IJ آtÇس و یA B À%م m0* زی, آtس ، % یW; À%ل

*m0 1% آ� ا�* ایz�; ? ½�%4 B/د، ی% %لJ©3 \,اخ/اB ¨A از �%زA ]X^ 56A ، <ی% �%زA A 56A%م

ÀÇدر ی ��Ç@�� uÇ0س ;,اtÇن آ%o6Aز%Ç� ، uÇ�0,E {EÇz; ن%ÇzA6- سtÇاز آ �Ç 1%Ç زیÇ, آtÇس

Page 196: Java farsi

¨A6 ;¨ \,اخ/اA/- .5وtJ%یd super() 6/ن Bري اول�/E6 آ� د�-% À56 در یAس �%زtزی, آ

هgA%O/ر u�0,0 -/د ، ایB اج,ا ;¨ Ç; µnZ 5ا/Çد ، خ/Ç- super() 5د%nEÇد ا�/ÇzA %Çد ی/Ç- . ,Çoا

super() د%nEد 5ا�/zA 5%rA> 56Aز%�  �Ç4 ض,Ç\ 56Aز%Ç� %Ç6ون یÇ ,Çه ,E;را%Ç4 ÀÇی %MÇ�tآ ,Çاز زی

6I6 اج,ا خ/اه- .�;%A, : -/6A اج,ا ;¨ �%زo6A%ن ز;%�d ¨A ده6 آ� ;¨ zA%ن 6Jي

// Demonstrate when constructors are called.

// Create a super class.

class A {

A (){

System.out.println("Inside A's constructor.")

}

}

// Create a subclass by extending class A.

class B extends A {

B (){

System.out.println("Inside B's constructor.")

}

}

// Create another subclass by extending B.

class C extends B {

C (){

System.out.println("Inside C's constructor.")

}

}

class CallingCons {

public static void main(String args[] ){

C c = new C();

}

}

%-6 زی, ;¨ z,ح ,A%;� ایB خ,وج¨ :

Inside A's constructor

Inside B's constructor

Inside C's constructor

Page 197: Java farsi

u�0,E آ6�I، �%زo6A%ن ;¨ ;z%ه56 هgA%O/ری©� {Ez; ن%zA6- اخ,\¨A6 ;¨ /اA/- .5ر% <ن اo, در

¨; ، 6�Iآ ,©n0 6 آ��OM\ �u�0,E �%ز56A 0/ا {Ez; ن%zA6- ¨; 6 اج,اA/- .ن/d Àس یtÇ1 آ%Ç

*X@A � زی, آM�t%ي 6ÇAارد ، ه�ÇA/o ,Ç خ/د <Ço%ه Ç6ار دهÇi; �Çاول� �Çاي آ,ÇÇ�A%ز اجÇ,ا -6Çن

�E-1 �4  دا%OEZ6، ج6ا از و ا-%اول�� اA>%م -b�/0 56 زی, آtس /د5 ه, 6i; �A/oار ده¨ �A%ز

%ی6 ، Bای,%I . ایB آ%ر اA>%م -/داول و

Override�ه%� آ)دن

Àدر ی ��@�� u0س ;,اtآ ¨E^و ، Àروش ی Àس در یtن زی, آ%Oم ه%A ÀÇع ی/ÇA د روش و/Çج/;

Ç%1ي در آtÇس �EÇ-د را دا/Ç5 خ%ÇrA> ،6Ç-%د در ;/جÇ/ ، روش در زیÇ, آtÇس روش ;�r/ی6ÇI <ن

یÀ از داخ[ -56 لT/ روش یÀ و^OA . ¨E%ی6 ;¨ ج�/�o,ي <ن ی% از z�4,وي %1 را لOA /T/د5 آtس

� -/د ، هO/ار5 ;¨ \,اخ/اA¨ زی, آtس ¨Eس آ� روش از <ن روایtزی, آ b�/0 £ی,J0 ، 56-

¨Eد و روای/OA 6س آ� ارج%ع خ/اهtن آ%O1 از ه%;/رد . خ/اهMI4 ، 6- 6%ن OA/دJ0 5,ی£ روش

�r,ی6 ,wA زی, را در :

// Method overriding.

class A {

int i, j;

A(int a, int b ){

i = a;

j = b;

}

// display i and j

void show (){

System.out.println("i and j :" + i + " " + j);

}

}

class B extends A {

int k;

B(int a, int b, int c ){

super(a, b);

k = c;

Ali
Highlight
Page 198: Java farsi

}

// display k -- this overrides show )(in A

void show (){

System.out.println("k :" + k);

}

}

class Override {

public static void main(String args[] ){

B subOb = new B(1, 2, 3);

subOb.show(); // this calls show )(in B

}

}

]R%Z 56- 60/ل� Bای b�/0 ,�;%A ¨; ,ار زی,i 6-% :

K : 3

¨E^و show() روي ÀÇع ی/ÇA ئ از ¨Ç- B Aا/Çاخ,\ Ç; ÇEد ، روای/Ç- از show �Çآ ]Çداخ B

-56Ç اtPن ، روای*B داخ[ ()show ، روای* آ� یIJ¨. ^,ار ;��r,د ;/رد ا�nE%دJ0 56- 5,ی£

. آ6I را لA ¨; /T در

¨; ,oا �ÇÇ%1ي آtÇس روایÇ* خ/اه�6 ÀÇی �%Ç0 56Ç- /ÇTل Ç�,Eد� �EÇ-دا BÇ6 ، ای�Ç-% %ÇآÇ%ر را

Ç%1ي آtÇس روایB *Ç از روایÇ* ، در ایÇW; BÇ%ل IJ/ان. ده�6 اA>%م super از ا�nE%د5show()

اجÇ%ز�TE; �ÇA/OA 5,ه%ي آ��� ا;, � ایB. خ/اه6 -6 \,اخ/اA¨ زی, آtس ;,/ط � روای* داخ[

. در<ی6I ده6 %0 OI%ی  ;¨

class B extends A {

int k;

B(int a, int b, int c ){

super(a, b);

k = c;

}

void show (){

super.show(); // this calls A's show)(

System.out.println("k :" + k);

}

}

Page 199: Java farsi

Bای ,oاز روای* ا A �;%A, : آ6�I ;¨ زی, را ;z%هOA 56%ی�6، خ,وج¨ ج%ی8rی�X^ B¨ را در

i and j :1 2

k:3

Ç<Iدر ای، %super.show() *Çس روایtÇ1ي آ%Ç show() Aا/Çرا \,اخ Ç; 6ÇIروش . آ /ÇTل bÇi\

¨A%;ق ز%n06 آ� ;¨ اE\ا ;%Çع دو روش ا�/ÇA ن و%Ç@©6 یIÇ-%. ,Çoا B�ÇId 5%ÇrA> ، 6Ç-%XA دو روش

;W%ل -56 اtRح روای* ، ایW; B%ل IJ/ان. خ/اه6- 6I (overioaded) ا�E-%XA �%د5 خ��¨ Ç�X^

,wA ی6را در,�r :

// Methods with differing type signatures are overloaded -- not

// overridden.

class A {

int I, j;

A(int a, int b ){

i = a;

j = b;

}

// display i and j

void show (){

System.out.println("i and j :" + i + " " + j);

}

}

// Create a subclass by extending class A.

class B extends A {

int k;

B(int a, int b, int c ){

super(a, b);

k = c;

}

// overload show)(

void show(String msg ){

System.out.println(msg + k);

}

}

class Override {

public static void main(String args[] ){

Page 200: Java farsi

B subOb = new B(1, 2, 3);

subOb.show("This is k :"); // this calls show )(in B

subOb.show(); // this calls show )(in A

}

}

]R%Z 56- 60/ل� Bای b�/0 �;%A,i,ار زی, ;¨ 6-% :

This is k:3

i and j :1 2

0%ی�6ی� A/ع <ن -6ن ;nE%وت �OP uX[ ای�o .B,د ;¨ 4%را;E, ر-�E اي ر یBÀ در()show روای*

,ایrE-%XA B¨ .-56 ، آ� ه�¥ 4%را;E,ي را �o ¨OA,د A ;/ج/د دراز A/ع %I;?n¨ -6ن ا�] ی%(

(6E\ا ¨OA ق%n0ا .

�%ه� پ�ی�ي (dispatch) ت�زی4

در EM,یOP B[ ایrA> ، B%5 وج/د 6Aا-* A%م ^,ارداد \�%ي \,ا0, از یÀ اo, در لT/ رو-8�d %Mي

z0©�[ لT/ روش . B�Id *@�A ایB ا;%. /د �OP¨ رزشو \%^6 ا آI>©%وي 3Z ، ار�% Z ¨P/A%ل*

56Iه�] ی©¨ ا�%س ده%n; 4,^6رت از ¨IJا�* " روش 4/ی%ي 0/زی�" در ج%وا ی . BÇای ÀÇی [Ç@�A%©;

� \,اخ/اA¨ یb�/0 À <ن آ� ا�* �%0 56- /Tل B�Z ض،اج,ا در/P ز;%ن در ]Çآ%;�%ی ، ,Ç� از

�E\,o ¨; روش 4/ی%ي 0/زی�. -/د [M; *ن ا�/d ¨iی,v *ن آ� ا�> % را در�* 6Id -©�¨ ج%وا

B�Z ی6 ;¨ اج,ا �4%د5 �%زي%OA.

��ÇÇ�/0 ÀÇÇار ی,ÇÇ©0 %ÇÇE�; 1%ÇÇ/اÇÇ�TE; 6ÇÇA, ارجÇÇ%ع آtÇÇس یÇÇ- :ÀÇÇ,وع ;�©ÇÇM; [�ÇÇI] اÇÇR[ را

� Àس یtی6 -¨ ئ زی, آ%OA ارج%ع .Bج%وا از ای *�J^د5 وا%nEآ,د5 ا� ¨Aو \,اخ/ا � رو-M%ي

56- /Tل B�Z د ,ا از �, ;¨اج را,�o .¨E^و À56 روش یÇ- /ÇTل {Çی,v از ÀÇس یtÇع آ%Ç1 ارج%Ç

¨Aا�%س ;¨ \,اخ/ا, اn0%ق \,اخ/اA¨ آ� در ز;%A ¨A/ع -¨ ئ ارج%ع -56 -/د، ج%وا Ç; ، 6ÇE\ا

B��J0 ¨; 6 آ�Iی6 اج,ا -/د از روش روای* آ6ام آ% .

Bای,%ÇI ]ÇOP ، B�Ç�J0 *Çص روای%Çخ ÀÇروش از ی B�ÇZ ، Aا ا,Çم اج%Ç< Ç; د,Ç�o . ÇE^و �ÇاÇA/اع

£Ç�E?; 56Ç- رج%ع%U%�Ç-ي ا%ÇME6، روایÇ-% Çn�E?; ÀÇ56 روش از یÇ- /ÇTل Aا/Ç6 \,اخÇ- 6ÇIخ/اه.

XJ%رت Bای ، ,rع -¨ ئ ارج%ع -56 دی/A *) ا� �A ارج%ع ,�TE; ع/A آ� ( B�Ç�J0 Ç; 6امÇ6 آÇIآ

Page 201: Java farsi

%ی6 اج,ا -/د لT/ -56 از روش روای* .Bای,%I Àی ,oس اt1 آ%56A,�o, لT/ -56 روش یÀ در

Àی b�/0 سt5 زی, آ%rA> ، 6-% ¨A%;آ� ز £�E?; اع/Aی} ا,v ا-�%ئ از Àس یtارج%ع آ ,�TE;

ÇÇ; ار,ÇÇ^ ع%ÇÇرد ارج/ÇÇ; 1%ÇÇ 6ÇÇA,�o ي%ÇÇMEروای £ÇÇ�E?; 6 روش <نÇÇ- 6ÇÇIا خ/اه,ÇÇاج .

:;�6هzA %O- 6%ن را � روش 4/ی%ي 0/زی� ;�©6�I آ� را ;z%ه56 در ایW; %<I%ل¨

// Dynamic Method Dispatch

class A {

void callme (){

System.out.println("Inside A's callme method");

}

}

class B extends A {

// override callme)(

void callme (){

System.out.println("Inside B's callme method");

}

}

class C extends A {

// override callme)(

void callme (){

System.out.println("Inside C's callme method");

}

}

class Dispatch {

public static void main(String args[] ){

A a = new A(); // object of type A

B b = new B(); // object of type B

C c = new C(); // object of type C

A r; // obtain a reference of type A

r = a; // r refers to an A object

r.callme(); // calls A's version of callme

r = b; // r refers to a B object

r.callme(); // calls B's version of callme

r = c; // r refers to a C object

r.callme(); // calls C's version of callme

Page 202: Java farsi

}

}

ایB خ,وج¨�;%A, ¨; ,ار زی,i 6-% :

Inside A's callme method

Inside B's callme method

Inside C's callme method

Bای �;%A, Àس یt1ي آ% *m0 م%ÇA A سtÇآ ,Çن و دو زی> *Çm0 م%ÇA Bو C د%Ç<و را ای Ç; 6ÇIآ .

A در -56Ç اtÇPن ()callme لT/ و �CuX وB زی, آM�t%ي Ç; 6ÇAد,o .روش درون main()

¨U%�-ع ا/A از A، Bو CنtP6 اA56 ا- .B�I�Oه Àع ی/A ارج%ع از A م%I rنtP56 ا- *Çا� .

3�� �;%A, Àی ��از اA/اع ا-�% ه, یÀ ارج%ع r *X@A اي و از <ن داد5 را, \,اخ/اA¨ ارج%ع

callme() 5د%nE6 ;¨ ا�Iری©�. آ/gA%Oه ]R%Z Bای �;%A, ()callme از ده6 ، روایzA ¨; ¨E%ن

، Ç; B�Ç�J0/رد ارجÇ%ع ^Ç,ار �ÇE\,o \,اخ/اA¨ در ز;%ن آ� %ی6 اج,ا -/د A b�/0/ع -�f¨ آ� Ç;

% �� ;�r,\* اA>%م A b�/0 r/ع ;�TE, ارج%ع یB��J0 ¨IJ اo, ایB. -/د %O- ¨Aاخ/ا,\ � روش

callme() �/ط ,; A 6ی6 ;¨ ;/اج�- .

�ÇE©A : A%Ç@آ �Çآ %Ç C++ 0 6IEÇ@ه %IÇ-> ��?Çz Ç; �Ç6 آÇIي ده%MÇ-56 روÇ- /ÇTوا ل%Çدر ج

�%z; � . ه@C++ 6IE در (virtual functions) ;>%زي 0/ا

�%ه�يچ)ا ؟ ��t ش%�

tX^[ه [�Eno ي آ�%M-56 رو- /Tل �6Id . ده6I اج,ا را ;¨ B�Z از A%X�Ez4 ¨�©- 6Id¨ ج%وا اج%ز5

¨�©- � Àاي دل�[ ی, �;%A,� Z%ل* ایB : ا�* -¨ ئ o,ا 1زم A/ی3 Àس یtآ ¨;/OP 5اج%ز

,اي OA%ی6 آ� را ;z?� ده6 0% رو-M%ی¨ ;¨ �Çت آ��%iEÇz; س <نtÇك آ,EÇz; �Ç%-6IÇ ، و ,Çزی

رو-M%ي. OA%ی6I رو-M% را J0,ی£ ی% آ��� ,خ¨ ;z?� �%زیM%ي ده6 0% �4%د5 ;¨ ه% اج%ز5 آtس

56- /Tي را5 ل,rاي دی,ÇIJ/ان را " روش 6یBراb و Id یÀ" 0% ا�* ج%وا Ç©5 ی/Ç6 از وجÇId

. OA%ی6 �%زي �4%د5 -©�¨

¨z? *�i\/; د,%1ه% آtس آ� ا�* �E©A ایB ، درك <;�6Id 8 -©�¨ از آ��6 آ%ر %M�tو زی, آ

Àی ��@�� u0ا,; ]�©z0 6 آ�Iت ;�6ه%�?z; از � ,E©d/آ* آ,Z ,Eo8ر ¨; 6IIس . آtÇآ ,oا

Page 203: Java farsi

¨E6ر� 1% زیÇ, آtÇس یÀÇ آ� اج8اU¨ ���-/د، آ ا�nE%د5 Ç; 6ÇA0/ا [�iEÇ@; ر/ÇgOA%ی6Ç ، ا�nEÇ%د5

خÇ/دش رو-MÇ%ي J0,ی£ اgJA%ف ^%��* زی, آtس ا;, � ایB. آJ0 ¨; 6I,ی£ Ç; را �Ç6 ، آÇده

,ایB . <ورد را /ج/د ;¨ راI; b@>] یÀ هI�O%ن%I ����/ ، uي وراث* 0,آ�%M-رو % 56- /Tل

Àس ، یt1 ;¨ آ% 6A0/ا]©- ¨;/OP ¨ی%M-آ��� را آ� رو b�/0 ي%M�tزی, آ �v/ ا�nE%د5 ;,

.OA%ی6 خ/اه6I -6 را J0,ی£

�©Ç- 6ÇId B�ÇZ و %Ç4/ی Ç©ا ی,Çاج B06,یÇIO0از ^6ر آ�Ç ا�MOÇ@�A%©; *Ç%ی ÇZا,v Çای,o ¨Ç- را

� 8M<; 5د%nE6ي ا�I;/I0 د5 ;>6د و/OA %ا�* آ6ه . B8ار ای?%�ÇA هÇ%ي ^6رت ده56I ا\8ای  ا%Eآ

;/ج/د ,اي آ6ه%ي Aا/Çي \,اخ%MÇ-ي روي رو%Çه �ÇA/OA ي%MÇ�t6ون آÇ 6Çج6ی �Ç آ%;�%یÇ�A ]Ç%ز

%-6 در Z%ل�©� ;>6د ;¨ Àی %Xد و زی,<; b . آ�I] را µnZ 8�A ;¨ را

��t روش ���ر �)دن

6ÇJي ,A%;� . آ�I] آrA ، 6I%5 ;¨ ا�nE%د5 از لT/ روش 0, آ� W; ¨�OP%ل یÀ ده�6 %0 � اج%ز5 ÀÇی

ایB. آ6I ;¨ را ذخ�,5 دو 6Jي ;?�E£ اJ%د ا-�% آ6I آ� را ای>%د ;¨ A Figure%م m0 1%* آtس

�;%A, B�I�Oه Àم روش ی%A % ()area ی£ را,J0 ¨; 6 آ�Iآ *Z%@; Àی �X�%m; را ¨- Ç; 6ÇIآ .

Triangle <ن و دو;�Rectangle B <ن اول�B. آFigure {Ez; ¨; 6I از ,A%;� ، دو زی, آtس

u�0,E ل6II©�; /T آ� را v/ري ()area آM�t% زی, از ایB ه, یÀ . ا�* *Z%@; ÀÇی ]�gEÇ@; و

��W; دان,o, . آ6II را

// Using run-time polymorphism.

class Figure {

double dim1;

double dim2;

Figure(double a, double b ){

dim1 = a;

dim2 = b;

}

double area (){

System.out.println("Area for Figure is undefined.");

return 0;

}

Page 204: Java farsi

}

class Rectangle extends Figure {

Rectangle(double a, double b ){

super(a, b);

}

// override area for rectangle

double area (){

System.out.println("Inside Area for Rectangle.");

return dim1 * dim2;

}

}

class Triangle extends Figure {

Triangle(double a, double b ){

super(a, b);

}

// override area for right triangle

double area (){

System.out.println("Inside Area for Triangle.");

return dim1 * dim2 / 2;

}

}

class FindAreas {

public static void main(String args[] ){

Figure f = new Figure(10, 10);

Rectangle r = new Rectangle(9, 5);

Triangle t = new Triangle(10, 8);

Figure figref;

figref = r;

System.out.println("Area is " + figref.area))(;

figref = t;

System.out.println("Area is " + figref.area))(;

figref = f;

System.out.println("Area is " + figref.area))(;

}

}

]R%Z Bای �;%A,i,ار زی, ا�* :

Page 205: Java farsi

Inside Area for Rectangle.

Area is 45

Inside Area for Triangle.

Area is 40

Area for Figure is undefined.

Area is 0

,اي آ� ;I@>] راb یJ0 À,ی£ ج,ا ، ا;©%نا B�Z و 6Id -©�¨ وراث* دو�A%©; �A%o@] از v,ی}

B6یId £�E?; ع ا-�%ئ/A [M ، اo, از Z%ل* در ایB. دارد -/د ، وج/د ;¨ ;,bX0 ، ا�nE%د5 ، ا;%

Figure Àی {Ez; د ، 34 -¨ ئ/- ¨Aاخ/ا,\ % area() ¨; ان/Ç0 *Z%Ç@; ن> *Ç�6 -Ǩ ئ را

/ط �. <ورد ,; b[ هÇ; ¨Ç�6I/رد ا�nEÇ%د5 ، ه�Çz�O ی©@Ç%ن -wI\,R ©Ç, از A/ع ��OP%ت ایB را

.ا�*

I)د از آ1���ي ا��A�د� )abstract(

¨gوج/د دارد آ� -,ای Àس ;�?/اه�6 یtی£ آ,J0 1% را 6ون ;B�J ا8EAاع �%خE%ر یOA À%ی�6 آ�

Àن از ه, رو-¨ آ%;[ �4%د5 �%زي یtPی6 ، ا%OA .¨IJه¨ ی%o ¨; 6خ/اه� Àس یt6 آÇ�I1 ای>%د آ%

%-E,اك آM�t%ی  زی, b�/0 آ��� آ6I آ� را J0,ی£ -bi\ ]©- ¨;/OP 56 یÀ آ� �E-ا¡o 6Çخ/اه

OP 56MJ/;¨ -©[ ایB ج�U8%ت -6 و 4, آ,دن Àس ه, یtار ;¨ از زی, آ¡oد ه% وا/- .Àی B�Id

¨�tآ *J�Xv ¨ی%M-ی6 آ� رو% %M�tی£ �%زي �4%د5 زی, آ,J0 6 راIی%OA ¨; 6Iآ .Àاي -�/5 ی,

Bو^/ع ای ¨A%;ز bآ� ا�* -,ای Àس یtآ %1 0/اÇA%ی ÀÇد ی%Ç<د5 ای%Ç�4 زي%Ç� ÇIJ; %ÇÇ,اي ÀÇی

ایB . ا�* (place holder) ;©%ن 6MrAار56A یÀ �%د5 خ��¨ J0 ()area,ی£. %-6 را 6Aا-�E روش

?%�A ه%ي هrI%م . دهOA 6¨ و OA%ی  A©,د5 اA/اع -¨ ئ را ;Z%@; �X�%m* روش%Eخ%ص ای>%د آ

J0,یÇ£ ه�Ç¥ روش یÀÇ اÇOJ; ,Ç�_ *Ç@�A ,Ço/ل خÇ/د ، خ/اه�6Ç دی6Ç آ�Ç آtÇس IJ;%Ç BEÇ; در

(context) سt1ي آ% �E-6اA 6 خ/د-% .Bی} ای,v 6و یOA . ÀÇ%ی�6 0/ا6�A ادار5 ;¨ -,ایb را

-,ایb در ,خ¨ روش ایB اOA .�d,o%ی�8o 6ارش (warning) ه6zار �4%م یÀ آ� ا�* ایv B,ی}

ا-Ç©%ل ;ÇW[ خÇ%ص Çزدای (debugging) *Ç6 ا�Ç�n; روش %Ç;ا ، ÇOUدا *Ç@�A . BÇ©O; *Çا�

%-�6 دا-�E رو-M%ی¨ �Çس آtÇآ ,Çزی bÇ�/0 6Çی% �Ç©Iای %Ç0 6A/Ç- /ÇTس <ن لtآ,Çد زی/Çz. ;ÇIJ%دار

Page 206: Java farsi

�r,یTriangle 6 آtس ,wA را در .,oا ()area £ی,J0 Bد، ای/zA سtی¨ ه�¥ آ%IJ; 6اردA .در

Bل* ای%Z %O- ،ل%XA6 ¨راه BfOg; %0 6�E@ه �Çی6 آ/Ç- ÀÇس یtÇآ ,Çزی *Çi�iZ در �Çي آ��%MÇ-رو

. ا�* abstract method ;>,د روش ;z©[ ایB ج%وا ,اي Z[ را5. آ6I ;¨ را لT/ �,وري

¨; �?z; % ، رو-MÇ%ي ÇA abstract/ع آ56II اtRح OA/دن 0/اb�/0 6�A زی, آM�t% و ÇI�J;

�. را لOA /T%ی�6 Bای M-ه¨رو%o % subclasser responsibilty قtvد ا/z�; ، ¥�Çه %ÇMA> زی,ا

6A 1%ار6ÇA در آtس -56 اي ;z?� �%زي �4%د5 . Bای,%ÇI ÀÇس یtآ,Ç6 زیÇی%OA /ÇTرا ل %ÇMA> 6Çی%

@%دd ¨OA ¨o/ن 6Aی£ روای* 0/ا,J0 56- سt1 را در آ% روش یÀ اtPن ,اي. OA%ی6 ا�nE%د5

. OA%ی�6 ی, ا�nE%د5ز OP/;¨ ;>,د ، از -©[

abstract type name( parameter-list);

z; ¨; �A6%ه56 هgA%O/ری©� %<I6 در ای�Iروش آ ¨\,J; 56zA *ا� . Ç�tه, آ �Ç56 آÇA,�o, در

À6 روش یId %ان ی/IJ%ی6 ، 6-%;>,د IJ/ان آtس یÀ اtPن ,اي. o,دد ;>,د اtPن ;>,د

¨oد%@ ا�nEÇ%د5 آtÇس اtÇPن در ا6ÇEاي class آ��6ي واژ5 در ج�/ي abstract آ��6ي از واژ5 ،

,اي. OA%ی�6 ;¨ Àس یtه�¥ ;>,د آ f�Ç- ÇOA ان/Ç0 د/ÇOA د%Ç<ای . ÇIJی ÀÇس یtÇ6 آÇی%XA د,Ç<;

[�iE@; ر/g ,r�OP % new�A/OA ن. -/د �%زي%Id ¨U%�-6ون ا آtس ه@6IE ، زی,ا یÀ ا�nE%د5

هB�ÇI�O . ا�J0 56zA *Ç,ی£ آ%;[ ;>,د g/ر ÇOA ن%o6Aز%Ç� 6Ç�Aي 0/ا%MÇ-رو %Çد ی,Ç<; ي%EÇ@ای

;>Ç,د ;/جÇ/د در رو-MÇ%ي ;>Ç,د %ی6Ç یÇ% آ���Ç آtÇس از یÀÇ ه, زی, آtÇس . OA%ی�6 اtPن ;>,د

IJ/ان OA%ی6 ، و ی% خ/دش �%زي %1 را �4%د5 آtس Àی abstract نtPل . -/د ا%W; %<Iد5 در ای%�

,د ;Çz%ه56 ;> روش % یÀ آtس از یÀ اي Ç; �Ç6 آÇ�I6 از آÇJ <ن آÇ^ �Ç,ار �ÇE\,o آtÇس یÀÇ <ن

: آ6I ;¨ �%زي را �4%د5 روش

// A Simple demonstration of abstract.

abstract class A {

abstract void callme();

// concrete methods are still allowed in abstract classes

void callmetoo (){

System.out.println("This is a concrete method.");

}

}

class B extends A {

Page 207: Java farsi

void callme (){

System.out.println("B's implementetion of callme.");

}

}

class AbstractDemo {

public static void main(String args[] ){

B b = new B();

b.callme();

b.callmetoo();

}

}

-6Ç ، ا;©Ç%ن ذآÇ, هgA%O/ری©� . ا�* 56zA اtPن در ,A �;%A از آtس -�f¨ �¥ه آ6�I آ� 0/ج�

�ÇA/OA زي%Ç� ÀÇس یtÇ6ارد آÇA د/Çد وج,Ç<; . ÀÇی �ÇE©A ,Çrس : دیtÇآ A ÀÇروش ی ÇJ^م وا%ÇA %Ç

callmetoo() 5د%Ç�4 زي را%Ç� Ç; 6ÇIآ . BÇل ای/ÇXi; t;%Çآ ,Ç;ا *Çي .ا�%MÇ�tآ Ç; د,Ç<; 6ÇIA0/ا

%-6I �4%د5 �%زیO %M%ی6I ، در,56A,�oرا u�%I0 A µnZ ;%دا;�©�.

�d,oا ¨OA ي 0/ان%M�tاي از آ,,اي OA/د، ا;% از ا-�%ئ ا�nE%د5 �%زي �A/OA ;>,د %MA> ای>%د

ا�nE%د5 اج,ا از v,ی} 6Id ¨�©- B�Z ج%وا ,اي OA/د زی,ا روش ا�nE%د5 0/ان ;¨-¨ ارج%P%ت

,ایB . خ/اه6 -6 �%زي %1 �4%د5 آtس از ارج%P%ت%I%ی6 ا;©%ن ، Àای>%د ی � آtس یÀ ارج%ع

�E-ری©� ;>,د وج/د دا/g 6-%-ÇOA . %OÇ/د ا-%ر5 زی, آtس-¨ یÀ ارج%ع � از <ن % ا�nE%د5

.خ/اه�6 دی6 6Jي را در ;W%ل ج�XI از ایB ا�nE%د5

ÇÇ% ا�nEÇÇ%د5 ÀÇÇس از یtÇÇآ ¨ÇÇ; ،د,ÇÇ<; سtÇÇ6 آÇÇ�A0/ا Figure �JÇÇ�/0 6 راÇÇن. ده�/ÇÇd ;م/ÇÇMn

Ç,اي ÇIJ; %Ç%ی *Z%Ç@; ÀÇی ]©Ç- 6يÇJ6ÇJي وجÇ/د 6ÇAارد ، روایJ0 56ÇzA *Ç,یÇ£ دو BÇای

�;%A, ()area ان/IJ6Çان ال�ÇEX ایB. آ6I ;¨ اtPن Figure ;>,د داخ[ یÀ را ÇIJ; *Çا� �Çآ

%یFigure 6 از -Ez; 56} آM�t%ي آ��� area() 6Iی%OA /Tرا ل .

// Using abstract methods and classes.

abstract class Figure {

double dim1;

double dim2;

Figure(double a, double b ){

dim1 = a;

dim2 = b;

Page 208: Java farsi

}

// area is now an abstract method

abstruct double area();

}

class Rectangle extends Figure {

Rectangle(duoble a, double b ){

super(a, b);

}

// override area for rectangle

double area (){

System.out.println("Inside Area for Rectangle.");

return dim1 * dim2;

}

}

class Triangle extends Figure {

Triangle(double a, double b ){

super(a, B);

}

// override area for right triangle

double area (){

System.out.println("Inside Area for Teriangle.");

return dim1 * dim2 / 2;

}

}

class AbstractAreas {

public static void main(String args[] ){

// Figure f = new Figure(10, 10); // illegal now

Rectangle r = new Rectanlge(9, 5);

Triangle t = new Triangle(10, 8);

Figure figref; // this is OK/ no object is created

figref = r;

System.out.println("Area is " + figref.area))(;

figref = t;

System.out.println("Area is " + figref.area))(;

}

}

Page 209: Java farsi

Figure ا-�Ç%ئ از ÇA/ع اtÇPن ده6Ç ، دیÇr, ا;©Ç%ن ;¨ zA%ن ()main درون 0/��� هgA%O/ری©�

%یFigure 6Ç زیÇ, آMÇ�t%ي آ��� . ;>,د ا�* �/رت اآI/ن d/ن، 6Aارد وج/د area() /ÇTرا ل

6Iی%OA .اي, ()area آ�Ç ای>Ç%د OA%ی�6Ç زیÇ, آtÇس آ6�I یÀ ا;,، �J¨ ایB اثX%ت ÇOA /ÇT6 را لÇIآ .

%OEZÀي ی%gخ complle-time ]6 ;¨ دری%\* در ز;%ن آ%;�%ی�Iآ.

�d,oا;©%ن ا Àای>%د ی ¨-/A عاز Figure ¨; %;6ارد، اA وج/د ÀÇ6 ی�A0/ا ,Ç�TE; ع/ÇA ع از%Çارج

Figure 6ی�%OA ای>%د . ,�TE;fighrefان/IJ ¨P%ارج � Figure نtP6ان -56 ا و ÇIJ; *Çا�

�Çد5 آ%nEÇا� %Ç از<ن Ç; ان/Ç0 �Ç ÀÇی Ç- سtÇآ ,Çاز ه {EÇz; 56Ç- از Figure د/ÇOA ع%Çارج ، .

%ی6 در ز;%ن اج,ا overrideیI©� آ6ام rA%رش از ;6Eه%ي B��J0 ا، دادی] 0/��� هgA%O/ری©� 56-

. \J%ل -/6A ، از v,ی} ;��TE,ه%ي ارج%ع � \/ق آtس ه% R/رت ;��r,د

�� وراث= Final از ا��A�د�

Ç,اي اول. آÇ%ر,د دارد �final �Ç آ��6ي واژ5 �%Çz; د%Ç<ای ÀÇی *Çدو آÇ%ر,د دیÇr, . دار ا�Ç] ث%

�ÇÇ/ط ,; *Çوراث EÇ@ه Çر�,Ç,اي final از ا�nEÇ%د5 . خ/اه6I 6Ç- 6ÇI و *ÇJA%O; دن,Çآ /ÇTاز ل

^6ر6IO0 ج%وا ا�* از ج�XI ه%ي ی©¨ روش لT/ آ,دن در Z%ل�©� آ�Ç وجÇ/د دار6ÇA ، ا;% ز;%ÇMA%ی

¨; �A%; 6روش خ/اه� /Tدی6 و^/ع ل,o .اي,IJ/ان را final ، روش لT/ یÀ _�, ;>%ز آ,دن

Àی Pدر -,وع ا ,rZtRناt ن> �?z; 6ی�%OA .ي%M-ن روtPان -56 ا/IJ final ÇOA 6ÇIA0/ا

6A/- /Tل .�Jg^ 6يJ : ا�* final دهzA 56I%ن

class A {

final void meth (){

System.out.println("This is a final method.");

}

}

class B extends A {

void meth (){ // ERROR! Can't override.

System.out.println("Illegal!");

}

}

Page 210: Java farsi

IJ/ان ()d meth/ن final نtP56 ا- ¨OA ، را در <ن 0/ان B د/OA /Tل .,oا B�Id ¨-t0 6�I©

�<�EA ، ÀÇي ی%Çgخ complle-time د/Ç 6Çي . خ/اه%MÇ-ن روtÇP56 اÇ- ان/ÇIJ final Ço%ه Ç;

�P% 6IA6 ا\8ای  0/اA/- د,©�OP:

inline \,اخ/اA¨ لA /T?/اه6I -6، آ%;�%ی�, از زی, آtس b�/0 یMA>À% دا6A آ� آ%;�%ی�, ;¨ d/ن

�%0� یÀ و^E¨. -/د <MA% <زاد ;¨ Àd/آ final ¨Aد \,اخ/ا/z�; u�_6 آ6 آ%;�%ی�, ج%وا ;¨ اA0/ا

¨Eی% \,اخ/ا56IA در روش -56 آ6 آ%;�%ی[ (inline)خg¨ درون ;@�iE] زی, روال را ,اي Çآ�

B6ی%�1,یM%ي OA u�0,0%ی6، و �Iا5 4, ه8ی,Oه Àف روش \,اخ/ان ی¡Z ی6 ;¨ را%OA . Inlining

Àی bi\ �I8یo %g/ر J�Xv¨ . ا�* final رو-M%ي ¨Aج%وا \,اخ/ا ، �4/ی% رو-M% را �/رت

<A>%ی�©� ا;% از. late binding ¨; 6I;%Aرا OP[ ایB. آ6I ;¨ و \�[ اج,ا B�Z ]Z ز;%ن و در

و \�ÇZ ]Ç[ آ%;�%یÇ[ در ز;%ن 0/ان را ;¨ \,اخ/اA¨ لOA /T/د ، یÀ 0/ان OA¨را final رو-M%ي

.early binding ¨; 6I;%A را ایOA .B/د

از وراث= /,�*-)ي �)اي final از ا��A�د�

از اtÇPن ^ÇX[ ایÇ©I%ر اÇ<A%م ,اي. z/ی6 آtس ,دن از یÀ ارث ?/اه��A%; 6 ا�* ;o B©O%ه¨

IJ/ان آtس یOA À/دن اtPن. OA%ی�6 ا�nE%دfinal 5 آ��6ي از واژ5 آtس final ¨IO� ر/g آ���

ÇIJ/ان <ن رو-M%ي 8Ç�A را final نtÇP6 اÇI©�; . %ÇOEZ Ç; �Ç6 آÇ�Aن داtÇPا ÀÇس یtÇان آ/ÇIJ [Çه

abstract [و ه final *ن _�, ;>%ز ا�/d Àس یtآ abstract ¨ی%MIE �O©0[ و ,اي XA/د5 آ%;[

%-6 خ/د ;¨ زی,آM�t%ي � �%زیE; %M©¨ �4%د5 . Àی %<Iل در ای%W; سtاز آ final 56ه%z; را ¨;

6�Iآ :

final class A {

//...

}

// The following class is illegal.

class B extends A { // ERROR! Can't subclass A

//...

}

Page 211: Java farsi

�Ç©ری/gA%Oت " از ه%m�Ç�/0 " �?Çz; 56Ç- دن ، ارث,Ç Bاز A Ç<; ,Ç�_ 56 زÇ- ن %ز/Çd A

IJ/ان final نtPا�* -56 ا.

Objectآ1س

.ا�* -b�/0 56 ج%وا J0,ی£ objectیIJ¨ ;?�/ص آtس یThe object class À -¨ آtس

دیÇr, آM�t%ي آ��� %1ي آtس object یIJ¨. ه@object 6IE زی, آM�t%ي دیr, آM�t%ي آ���

6یB .ا�* u�0,0 Àع ی/A ارج%ع ,�TE; object ¨; � 6A0/ا Àس-¨ یtي از ه, آ,rارج%ع دی

ÇIJ/ان ایwA ، �Ç©I,ی� هOA .B�I�O%ی6 %Çه �Çس <رایtÇد5 آ%Ç�4 زي%Ç� Ç; ÀÇ6 ، یA/Ç- ع/ÇA از ,Ç�TE;

object ¨; � 6A6 ه, <رای� اي 0/اÇی%OA ارج%ع .Object ي%MÇ-6ي روÇJ £Çی,J0 را Ç; 6ÇIآ . �Çآ

B6ی u�0,0 �Oه ¨f�- ,در ه %MA> ]%^ ¨�,E6 د�IE@ه .

;�OP 6E©,د

iي/%ی% شi ()object clon ت��-) ش%� آ�% آ5 ایI�د

. شi ا�= ه��ن

boolean equals ( Object object ) "ی� شi �� شi دی�) آ�% آ5 i ت\--�

.ی� �5 ا�= ��وي

;�� 5�� ()void finalize در ا��A�د� شi �%ون یf از ای

I%د �)ار *-)د چ)&5iد ، 2)ا&�ا���- .

�% ا/)ا ���%اري شi را ح-� یf آ1س�- . class get class()

()int hash code را �� اش-�ئ 2)ا&�ان ه�)ا� hash آ%

i �)*)دان %� . آ

()void notify شi ا����ر روي در ح�ل رش�5 یf ا/)اي

�%� 2)ا&�ان� . *-)د را از �) i آ

()void notify All ا����ر روي در ح�ل رش�5 ه�ي آ,-5 ا/)اي

�%� شi ئ 2)ا&�ان� . *-)د را از �) i آ

�%� ت�B-� آ5 رش�5 اي� ()string to string را شi ئ ا�= آ

i . *)دا�% �)

Page 212: Java farsi

��) (thread) �£ یf روي� ()void wait دی�) از ا/)ا

i %�� . void wait ( long milliseconds )

Void wait ( long milliseconds, int nanoseconds)

اtÇPن IP final/ان و �wait و getclass() ،notify() ،()notify All رو-M%ي Ç; 6A/Ç- .

B©O; *ی�6 ا�%OA /Tی, ;/ارد را ل%� .tJ\� : OA%ی�6 د^* دو روش

equals() و . tostring() 6E; equals() ي/Em; ¨- ی©6دو % -¨و اo, دو OA/د5 یi; ,r%ی@� را

o false,دا6A و در _�Ç, ایÇ�I/رت را ,;¨ true روش %-6I ، ایB ه] ;J%دل Ç;,. o,دا6ÇA را

، را ,;¨ -56 \,اخ/اA¨ <ن روي آ� از -¨ n�R/0¨ در,56A,�o آ� ر-�E اي ()to string روش

6Aدا,o . BÇروش ای B�ÇI�O5 ه%Ço,ه ÀÇی ]ÇR%Z ئ ¨Ç- 5د%nEÇاز ا� println() 6Ç-%Çg/ر خ/دآÇ%ر

¨Aري. خ/اه6 -6 \,اخ/ا%�@ %M�tاز آ Bروش ای ¨; /T6 را لIIم . آ%Ç<Aا BÇای �ÇآMÇ�t% <ن آÇ%ر

,اي A/ع -¨ ه%ی¨ آ� ای>%د ;¨ آ6II ، <;%د5 �%ز6Aده6 0% ;¨ ا;©%ن %�?z; را ¨Z,-.

Page 213: Java farsi

�5 ه� و را��3���

G>� وی� ای���.:

+%ر,ده%7 <ن;6ل ز%ن و

%Mg@�E ه% و را

@�E ه% packages

�E@ Àی£ ی,J0

CLASS PATH درك ;Mn/م

¨�,Eد� *w\%m; Access protection

وارد آ,دن @�E ه%

%Mg interfaces را

b J0,ی£ OA/دن یÀ را

%Mg �4%د5 �%زي را

%M�4%د5 �%زی � ¨�,Eد� b از v,ی} ارج%P%ت را

¨X@A �4%د5 �%زي (partial)

%Mg©%ر ,دن را

%Mg ;�TE,ه% در را

Page 214: Java farsi

�5 ه� و را��3���

@�E ه% )packagesاي (,6Iي -6MrA 56اري \�%ه%ي ، ­,و\¨ ,اي آM�t% ه@6IE آ� [�@i0

6A/- ¨; 5د%nEا� %M�tل ،. ا�%;¨ آ%W; ان/IJ %O- � �E@ Àم ی%A % اج%ز5 ;¨ ده6 0% یÀ آtس

list 5د/OA خ/د ذخ�,5 آ� <ن را درای>%د �E@OA%ی�6 6ون rA,اA¨ از ایI©� ایB آtس % یÀ آtس

% A%م ,rدی list 56- 5,6 و ذخ�-% �E-دا ¨^t0 ي,rدر ج%ي دی .¨X0رت ��@�� ;,ا/�@�E ه%

. R,ی� � J0,ی£ آtس ج6ی6 وارد ;¨ -/6A ذخ�,5 -56 و g/ر

راb را از �4%د5 �%زي ، ج%وا � -O% اج%ز5 ;¨ دهinterface %0 6 از واژ5 آ��6ي از v,ی} ا�nE%د5

t;%ن آ> �از رو-M%ی¨ آ� ;¨ 0/ا6�A یinterface �P/O<; À ا�nE%د5 از %. ;>,د OA%ی�6;,/ط

,اي یÀ ی% 6IdیB آtس �4%د5 �%زي 6Aی�6 ^%در%OA �?z; 6 راA/-. خ/د interface ¥ا^� ه�/

OA £ی,J0 ع �4%د5 �%زي را/A6I©� . % �%z; %Mgه@6IE ، ا;% یabstract À آM�t%ي ;>,د اo, را

6Aدار ,Ez� *�\,­ : 6Aس ;¨ 0/اtآ Àی6 ی%OA را �4%د5 �%زي b�  از یÀ را . bi\ سtآ Àا;%، ی

6Aا/E�; سtآ À1ي 0©¨ از ی% . ارث X,د) ;>,د ی% _�,5 (

@�E ه% )packages( %Mg,A%;� ج%وادو (interfaces) P و را Àدر ی ¨�Rا ,�I 6I-% ¨; .

?Mz%ي )آ��� ی%( ;�XI ج%وا ;¨ 0/ا6A در,56A,�o ی©¨ از g/ر آ�¨ ، یÀ \%ی[ �A%oر%Md ¨داخ�

%-6 زی, :

A single package statement ) اخ�E%ري( یÀ د�E/ر @�E اي 0©¨

Any number of import statements ) اخ�E%ري( 6J0اد د�E/رات وارد5 � ه,

A single public class declaration ) اجX%ري ( public آtس 0©¨ IJ/ان یÀ اtPن

� �E@,اي ¨R%�Eي اخ%M�t6اد آJ0 ,ري( ه%�Eاخ(

Any number of classes private to the package

. � ا�*�آtس 0© %0 m%ل در ;W%لM%ي ;z%هbi\ 56- 56 ی©¨ از ایB ;/ارد یIJ¨ اtPن

�5 ه��� packages

tX^م ;?�/ص%A ي%�\ Àس را از یtل¨ از آ%W; ,م ه%A (name space) [�E\,o ¨; . ¨IJی

n,د ا�nE%د5 ;¨ ,�mI; م%A Àی6 ی%,اي ه, آtس %M;%A طtEي -/د -6 0% از اخ,�o/6ون . ج�

Page 215: Java farsi

,اي ;6ی,ی* \�%ي ا�%;¨ u�%I; 5را Àر ی%d34 از ;06¨ د ، t©z; 6ری/X<; 0¨ خ/اه�6 -6 و

ه�A B�I�O%ز;6I راه¨ ه@6�E 0% . آn�R/0 6�I¨ و ;z©�¨ اخ�E%ر ,اي ه, آtس ;nI,د ، ا�%;¨

,اي یÀ آtس اEA?%ب ;BfOg -/ی6 آ� �©�;%A م%A %n,د /د5 و ,�mI; ¨igI; ر/g 6�Iآ ¨;

,A �;%A/ی@%ن �0%دم 6�4ا A?/اه6 آ,د آM�t%ي اEA?%ب -b�/0 56 �%ی, . �A%E?X-/ج%وا خ

6Iي  ?,اي ¨O@�A%©; 0/ج� ];6ی,ی* و ^%[ (chunks) \�%ي A%م آtس � ^Jg%ت ^%

روش r;%A¡اري و ه] @�E ه] یÀ. ا�* �A%©; package@] هO%ن @�E ی% ایB.\,اه] <ورد5 ا�*

[@�A%©; Àل روی* 4¡ی,ي ا�* ی,EIی¨ را. آ%M�t6 آ�Aی£ ;¨ 0/ا,J0 �E@ À6 آ�داخ[ ی�Iآ

6I-%XA ¨�,Eد� ]%^ �E@/���� آ6ه%ي خ%رج از . ¨�tئ آ%�P6 ا�A0/ا ¨; B�I�Oی£ ه,J0 را

�Iآ%�Pض روی* �%ی, ا,J; در bi\ 6 6 آ�I-% �E-ار دا,^ �E@ایB ا;, � آM�t%ي -O% . هO%ن

%-6I ا;©%ن ;¨ ده6 0% یo> À%ه¨ �E-دا ,rاز ی©6ی ¨Aاي درو, دیr,ان ا;% <ن اPtv%ت را

6II©A ي,o%z\ا .

5��� fت\)ی� ی

@�%ر <�%ن ا�* �E@ Àای>%د ی:

IJ/ان اول�package B خ��¨ �%د5 یÀ \,;%ن 6�A%<Irه,آtس اtPن . د�E/ر در \%ی[ ;�XI ج%وا

@z; �E?� -56 داخ[ � یÀ \�%ي A%م را package د�E/ر. -�J0 56} خ/اه6 دا-* <ن \%ی[

ا�%;¨ اo, د�E/ر \/ق را Z¡ف OA%ی�6 ،. داخ[ <ن ذخ�,6A/- ¨; 5 آJ0%M�t,ی£ ;¨ آ6I آ�

�E@@�E �4 . �4  \,ض ^,ار ;¨ 6A,�o، آ� ه�¥ ا�6A ¨Oارد آtس در �d,oاي ا,\,ض

. وا^J¨ آn%ی* OA¨ آ6I آ/0%5 و u�%I; �A/OA ا�* ، ا;% ,اي ,A%;� ه%ي آ%ر,دي ,A%;� ه%ي

�E@ Àاو^%ت ، ی ,Wاآ[�Iی£ ;¨ آ,J0 %O- اي آ6ه%ي,.

�/رت زی, ا�* OP ]©- package/;¨ د�E/ر :

package pkg;

%<Iدر ای pkg *ا� �E@@A *m0 �E%م IJ/ان. A%م À6ي یJ W; Mypackage%ل ، د�E/ر

6Iای>%د ;¨ آ :

package MyPackage;

Page 216: Java farsi

,اي ذخ�,5 �%زي @�E ه% ا�E ج%وا از دای,آE/ریM%ي \%ی[ [E@��6Iد5 ;¨ آ%n . ل%W; ان/IJ

,اي آM�t%ی¨ آ� IJ/ان ?z¨ از .class \%ی�M%ي Mypackage نtPا Àی6 در ی% ، 6�Iآ ¨;

I ج%وا @�%ر Z@%س ا�* ، �%د <وری6 آ�. ذخ�,Mypackage 6A/- 5 دای,آE/ري A *m0%م Bای,%

%i�^ی6 د%i* ا�] دای,آE/ري %g; �E@% ا�] 6-% �E-دا .

Bر ی©@%ن ای/Eد� Àی[ -%;[ ی%\ Àاز ی  � د�E/ر .%-package 6I ا;©%ن وج/د دارد آ�

package آ6ام �@�E خ��¨ �%دz; 5?� ;¨ آ6I آ� آM�t%ي J0,ی£ -56 در یÀ \%ی[ {�J0

6Aدار .�©Iرا از ای ,rي دی%Mي ;/ج/د در \%ی�%M�tر �%ی, آ/Eد� Bای ¨z?از هO%ن @�E اول

OA �I; ، 6I-% 6Iآ ¨ .¨J^ي وا%�Aه%ي د �E@6J0اد زی%دي از \%ی�E@o %M,د5 ;¨ روي @�%ري از

6A/- .

�%د5 ا�] ه, @�E را از ,اي اA>%م ایI©%ر ، خ��¨. @%زی6 ;¨ 0/ا6�A یÀ ��@�� ;,اu0 از @�E ه%

% OP package 6Id/;¨ یÀ د�E/ر -©[. ا�nE%د5 از ی�giA À ج6ا �%زی6 ا�] %1ی¨ اش و

i,ار زی, ¨mg� *ا� :

package pkg1[.pkg2[.pkg3]];

%ی6 �E@ u03 -/د ��@�� ;,ا©JI; ج%وا �J�/0 [E@�� ]ل. در \%ی%W; ان/IJ@�E اtPن -56 Àی

IJ/ان

package java.awt.image;

%ی6 در java/awt/image، java\awt\image %ی java:awt:image ]روي \%ی u�0,E [E@��

unix ،windows ، %ی Macintoshد^*. ذخ�,5 -/د %. اEA?%ب OA%ی�6 ا�] @�E خ/د را خ��¨

6�A0/ا ¨OA ري/Eا�] دای,آ �©Iای ,r; 6ده� ,��T0 را �E@ Àدر <ن ذخ�,5 -56 ا�] ی %M�t6 آ� آAا

. را ��T0, ده�6

CLASS PATH درك ��Aم

@X^ ; �E[ از ایW; �©I%ل¨ ,اي Àد5 از ی%nEا��m;?�E,ي در%رJ ,�TE; 5,\¨ آ�I] ، 1زم ا�*

¨g�m; CLASS PATH [�-% �E-ري از. دا%�@@�E ه% �d,oل ا,EIآ ,wA �giA ت ازt©z;

Page 217: Java farsi

% اخtEط \�%ي A%م را Z[ ;¨ آ6II ، ا;% هrI%م د�E,�¨ و %MA> دن/OA ت آ%;�%ی[ و اج,اt©z;

IJ/ان;z?� زی,ا ;©%ن. u�<P و _,یX¨ ;/اج� ;¨ -/ی6 56- �E\,o ,wA در ��@�� �zری

@b�/0 �E آ%;�%ی�, ج%وا و u0ا,; ����/ CLASS PATH ل ;¨ -/د,EIآ. �Oه %O- ن/I0%آ

@�E �4  \,ض Àرا در ی %M�t6ون ا�] ذخ�,5 ;¨ آ,دی6 آاA>%م ایI©%ر � -O% اج%ز5 .ی©@%ن و

¨oد%@% ا�] ,دن از آtس ج%وا آ�XI; 6 را آ%;�%ی[ OA/د5 و ;n@, ;¨ داد %0 ، �<�EA را روي

¨ آ%ر ;¨ آ,د زی,ا ;@�, ج%ري در Z%ل ایB. خb \,;%ن ، اج,ا OA%ی�6 روي/? ]Zا,;

�/رت �m; ,�TE; CLASS PATH¨ در;OJ/1) ٠(آ%ر و �4  \,ض �EXار دارد آ� ال,^

@�E ه% ;. ج%وا J0,ی£ -56 ا�* �4  \,ض ,اي ��@B�Z [E اج,اي ¨E^6ا;% وA/- ط/�?

. آ%ر B�OM راA ¨EZ?/اه6 /د

% A%م packTest \,ض آ6�I آ� یÀ آtس % A%م �E@ Àدر ی test 6ر . ای>%د آ,د5 ای%Eن �%خ/d

%-6 یÀ دای,آE/ري �E-دا *i%g; %O- ه%ي �E@ %%ی6 %O- ري/Eان دای,آ/IP *m0 test ای>%د

6Jا. �6 را در <ن ^,ار ;¨ ده OA PackTest.java/د5 و 6�Aا/E�; test ري ج%ري ^,ار/Eرا دای,آ

در PackTest.class ایB ا;, �uX ;¨ -/د آ� .را آ%;�%ی[ OA%ی�PackTest.java 6ده�6 و

را اج,ا آn; ، 6�I@, ج%وا یÀ �4%م packTest ;¨ آ6�I 0% و^t0 ¨Eش. ذخ�,5 -/د test دای,آE/ري

�%z; %gخ "can't find class packTest" o 6Iس . 8ارش ;¨ آtن آ/Iدل�[ <ن ا�* آ� اآ

% �E@ Àم \/ق را ی%A test *ان. ذخ�,5 -56 ا�/IJ ¨oد%@ 6�A0/ا ¨OA ,rدی packTest ن> �

@�E <ن ارج%ع OA%ی�6 و ه, @OA .�E%ی�6 ارج%ع u0ب ��@�� ;,ا%@EZا %%ی6 � <ن آtس

6�Iي ج6ا آ,rاز دی �giA Àی % .خ/ا56A ;¨ -/د test.packTest /ن %ی6 % A%مایB آtس اآI. را

� ا�nE%د5 آ6�I ، هI�O%ن test.packTest ا;% اt0 ,oش آ6�I 0% از%z; %g�4%م خ Àی "can't find

class test/ppackTest" د/OA 66 . دری%\* خ/اه�Iدری%\* ;¨ آ %g�4%م خ Àن ی%I�Oه �©Iدل�[ ای

,�TE; در CLASS PATH %O- *ا� �EnMA .د <وری6 آ�%� CLASS PATH ��@�� 1ي% در

: د8�dي -��X زی, را در,;¨ �o, . ;,اu0 آtس ^,ار ;¨ �o,د

. ;C:\java classes

B�ÇZ [EÇ@�� �Ç �Çل آ,ÇEIري را آ%Çر ج%Çل آ%ÇZ ري در/ÇEدای,آ %Ç0 6Çی/o ¨Ç; وا%Çاي ج,Çد5 و اج/ÇOA

B�I�Oه u�A ري/Eدای,آ standard java developers kit ÇEI6 را آÇی%OA ل, . *Çا� BÇای ]©Çz;

Page 218: Java farsi

test در خ/د دای,آE/ري در دای,آE/ري در Z%ل آ%ر ج%ري وج/د 6Aارد زی,ا test دای,آE/ري آ�

: در ای�giA B دو اEA?%ب خ/اه�6 دا-* . ^,ار داری6

�gÇ� Àي ی%Mری/Eدای,آ ,Ç��T0 01, را%Ç را <ز;Ç%ی  آ6Ç�I و یÇ% ایjavatest.packTest �Ç©I داد5 و

%1ي ��@���J�/0 u0ا,; ¨g�m; ,�TE; � <rA%5 ;¨. ا�%\� OA%ی�CLASS PATH 6 آtس را

6�A0/ا packTest javatest وا%Ç6 و جÇار ده�,Ç^ 5د%nEÇرد ا�/Ç; ري/ÇEدای,آ ,Çرا از ه Çدر� ]Çی%\ *

class. د/OA 6خ/د0%ن. را 6�4ا خ/اه �XI; 6روي آ ,oل ، ا%W; ان/IJ ÇA *Çm0%م در یÀ دای,آE/ري

C:mmyjava 5 د%ÇrA> ، 6�Ç-% ;C:\myjava; .روي خÇ/د را CLASS PATH ر ÇZ%ل آÇ%ر

C:\java\classes 6ار ده�,^ .

��ل f5 ی� آ�ت�� از ��

@�E �%د5 B6 ای�A6 ، ;¨ 0/ا�-% �E-دا ,wA را در ¨�X^ �m ,o6 را <ز;%ی  ا�Iآ :

// A simple package

package MyPack;

class Balance {

String name;

double bal;

Balance(String n/ double b ){

name = n;

bal = b;

}

void show (){

if(bal<0)

System.out.print("-->> ");

System.out.println(name + " :$" + bal);

}

}

class AccountBalance {

public static void main(String args[] ){

Balance current[] = new Balance[3];

current[0] = new Balance("K .J .Fielding"/ 123.23);

current[1] = new Balance("Will Tell"/ 157.02);

Page 219: Java farsi

current[2] = new Balance("Tom Jackson"/- 12.33);

for(int i=0; i<3; i++ )current[i].show)(;

}

}

. ^,ار ده�Mypack 6 %مA%;�56 و <ن را در یÀ دای,آE/ري Mypack/java A *m0 ایB \%ی[ را

8�A Mypack در دای,آE/ري.BfOg; class -/ی6 آ� \%ی[ R%Z[. آ%;�%ی[ آ6�I ��3 \%ی[ را

%-6 ^,ار �E\,o .سt3 اج,اي آ�� Account Balance �EX6، ال�Iد5 را <ز;%ی  آ%nEا� %از

خb \,;%ن 6Jي

java MyPack.AccountBalance

%-�6 آ� �E-د دا%� ; ¨E^6، 1زم ا�* 0% درو�Iن را اج,ا آ%;,\ B1ي ¨ خ/اه�6 ای% دای,آE/ري

Mypack ¨g�m; ,�TE; �©I6 و ی% ای�-% CLASS PATH ر/g;X�%I¨ ^,ار داد5 خ/د را

6�-% .

ایB . ا�* Mypack اآI/ن ?z¨ از @Account Balance �EهgA%O/ری©� 0/��� دادی] ،

�/ 6A0/ا ¨OA ا�* آ� ¨IJ; 6انخb \,;%ن ا�nE%د5 یOA ¨IJ¨ 0/ا6�A از ایB. ��� خ/دش اج,ا -/د

. OA%ی�6

Java AccountBalance

i�(� ���2= د� Access protection

tX^/�P Àی � ¨�,E6 آ� د��E@Aدا ¨; private ئ%�Pی, ا%� � bi\ سtآ Àس در یtن آ%Oه

@�E ه% 6J. واo¡ار -56 ا�* ¨�,Eل د�,EIآ �هgA%O/ری©� خ/اه�6 دی6 ، . ;¨ ا\8ای6Iدیr,ي

,اي اج%ز5 آEI,ل خ/ب ج%وا �g/ح 6Idي از *w\%m; 6ي -56 روي روی* 4¡ی,يI �iXv

@�E ه% \,اه] ;¨ OA%ی6 داخ[ آM�t% ، زی, آM�t% و ;�TE,ه% و رو-M%ي .

^�O,و و دو و�%ی�¨ ,اي آ�@/ل �%زي /د5 و در,56A,�o \�%ي A%م آM�t% و @�E ه% ه,

%M-ه% و رو,�TE; 6I-%@�E ه% IJ/ان ­,و\¨ ,اي آM�t% و �%ی,. ;¨ 6IE@ه �J@�E ه%ي %0 .

IJ/ان ­,و %M�t6آI-% در ج%وا آ/E©d,یB وا6Z ;>,د آtس. \¨ ,اي داد5 ه% و آ6ه% ;¨

Page 220: Java farsi

�B آM�t% و @�E ه% ، ج%وا. ا�* ]%iE;  iA ظ%m�6Iي �iXv ر%Md اي روی* 4¡ی,,ي ا�P%ئ

: آtس ;z?� آ,د5 ا�*

�E@ زی, آM�t% در هO%ن

,�_ �E@ زی, آM�t% در هO%ن

£�E?; ه%ي �E@ زی, آM�t% در

. هO%ن @�E و �A در زی, آM�t% ه@6IE آM�t%ی¨ آ� �A در

¨IJی ¨�,Eد� ,r�?z; �� private ،public و protected£�v 56IIاز و \,اه] آ ¨A/o%A/o

5/�-¨�,Eد� �A%o 6Id ح/g� 6ه%ي 0/ل� %M6یI �iXv Bز ای%�A 6 ;/ردIE@ه . Bج6ول زی, ای

.ا�* ارv%X0%ت را ی©>% zA%ن داد5

private Nomodifier protected public

Yes Yes Yes Yes هO%ن آtس

No Yes Yes Yes هO%ن @�E زی, آtس

No Yes Yes Yes هO%ن @�E _�, زی, آtس

@�E ه%ي ;?�E£ زی, آtس No No Yes Yes

@�E ه%ي ;?�E£ _�, زی, آtس No No No Yes

%-6، ا;% ;�E/ان ا�A%©; �d,o@] آEI,ل 56���4 ,wI<ن را �/رت د�E,�¨ در ج%وا ;B©O ا�*

.ج%ی¨ ^%[ د�E,�¨ ا�* اtPن -/د از ه, public ه, 8�dي آ� IJ/ان. o/ی¨ OA/د 6Jي �%د5

[ روی* �A@* اtPن -/د خ%رج از آtس خ/دش IJ private/انه, 8�dي آ� %^ .¨E^و Àی

/�P 6 ، <ن-% B-ی� و رو,R ¨�,Eت د�%�?z; 6^%\ /�P ,و �%ی %M�tاي زی, آ,

[ روی* ا�* %^ �E@خ/اه�6 اo, ;¨. �4  \,ض ا�* ایB د�E,�¨. آM�t%ي ;/ج/د در هO%ن

� bi\ ج%ري و �E@�/رت زی, از آtس -O�iE@;%O% آM�t%ی¨ آ�ی�P À/ ، خ%رج از

[ روی* %-6 ، 34 <ن �P/ را%^ 6Aس در<;56 اtان آ/IJ protected 6ی�%OA نtPا .

آtس و^E¨ یÀ . (public) �4  \,ض و OP/;¨: یÀ آtس \bi دو ��g د�B©O; ¨�,E دارد

IJ/ان public ]آtس د�E,�¨ اo, یÀ. ا�*د�E,�¨ اtPن ;¨ -/د ، b�/0 ه, آ6 دیr,ي ^%

%-b�/0 bi\ ، 6 �%ی, آ6ه%ي �E-�4  \,ض دا ]%^ �E@ . د�E,�¨ خ/اه6 /د داخ[ هO%ن

Page 221: Java farsi

i�(� ��ل از د� fی:

ایW; B%ل . 6Jي آ��� 0,آ�X%ت ;,/ط � اrZtR,ه%ي آEI,ل د�E,�¨ را zA%ن ;¨ دهW; 6%ل

%-�6 آ�. داراي دو @�E و I4¼ آtس ا�* �E-د دا%��;nE%وت ، 1زم دو @�E آM�t%ي ;,/ط

/�v ا-%ن A%م ,د5,; �E@و ذخ�,p2 5 وp1 ایW; B%ل -56 در ا�* در دای,آE/ریM%ی¨ آ� 6Jاز

6A/- ¨; .

6Iی£ ;¨ آ,J0 سtآ �� �E@ .samepackage و �XI;: protection ،Derived اول��

,�TE; ر%Md سtآ Bاول� int از À1 را در ه, ی%Z6Iی£ ;¨ آ,J0 ز%<; £�E?; ت .,�TE; n %

IJ/ان nZ .m-pri%­* �4  \,ض اtPن -56 ا�* private ،n-proان/IJ ، protected و n-

pubان/IJ public 6I-% ¨; .

� ;�TE,ه%ی¨ در ی�A/OA À از یÀ آtس 6Iآ ¨; ¨J� ل%W; B6ي در ایJد�E,�¨ 6�4ا ه, آtس

6Iآ .%لm%ظ ;�6m خv/g¨ آ� 6A/- ¨OA ]آ%;�%ی ، ¨�,Eي د�%MEودی ¨gخ Àد5 از 0/��� ی%nEا�

// 6Aط. از 0/��� خ%رج -56 ا/gخ Bاز ای Àاز ه, ی ]X^ ی¨ را آ�%MA%©; ار دارد آ�,^ ¨m��/0

¨�,Eاج%ز5 د� *­%nZ از �g� Bای %<A> ی6 از%OA ¨; *�,M\ 6 را Derived دو;�B آtس. ;¨ ی%

را � W; Derived%ل د�E,�¨ ایB. ا�* p1 در هO%ن @protection �E یÀ زی, آtس از

,^,ار ;¨ �%زد >�TE; protection 8,ي در n-pri آ� Àی private *ا� .

�A@* ، ا;% در هO%ن @protection �E زی, آtس از یB�;/� Samepackage À آtس

� آ��� Bای,%I . *د�E,�¨ خ/اه6 دا- �TE; n-pri,ه% >8 ^,ار دارد و

package p1;

public class Protection {

int n = 1;

private int n_pri = 2;

protected int n_pro = 3;

public int n_pub = 4;

public Protection (){

System.out.println("base constructor");

System.out.println("n = " + n);

System.out.println("n_pri = " + n_pri);

System.out.println("n_pro = " + n_pro);

System.out.println("n_pub = " + n_pub);

Page 222: Java farsi

}

}

:Derived.java\%ی[

package p1;

class Derived extends Protection {

Derived (){

System.out.println("derived constructor");

System.out.println("n = " + n);

// class only

// System.out.println("n_pri = " + n_pri);

System.out.println("n_pro = " + n_pro);

System.out.println("n_pub = " + n_pub);

}

}

: Samepackage.java\%ی[

package p1;

class SamePackage {

SamePackage (){

Protection p = new Protection)(;

System.out.println("same package constructor");

System.out.println("n = " + p.n);

// class only

// System.out.println("n_pri = " + p.n_pri);

System.out.println("n_pro = " + p.n_pro);

System.out.println("n_pub = " + p.n_pub);

}

}

@�E دیr, یIJ¨ اآI/ن Àی �XI; 6آ p2 Iه56 ;¨ آ%z; ی£ -56. �6را,J0 سtدر دو آ p2 دو

اول�B آtس . داد5 ا�* -,ایg¨ را آ� b�/0 آEI,ل د�m0 ¨�,E* 0%ث�, ^,ار �E\,o ا6A را 4/- 

¨IJی protection 2 سtزی, آ Àی p1.protection *ا� .Bای ¨�,Eس د�tه%ي آ,�TE; آ��� �

�/ط ,; p1.protection �6* ;¨ <ورد _�, از _n و) ا�* private /نn-pri )d را

%-�6 آ� �4  \,ض \bi اج%ز5 �%د دا-�TE; . �E,ي آ� % ;w\%m* �4  \,ض اtPن -56 ا�*

در MA%ی* ، . آtس ه%ي @�E ه%ي ا�%\¨ �A از زی, د�E,�¨ از داخ[ آtس ی% @�E را ;¨ ده6

Page 223: Java farsi

� یotherpackage À آtس bi\ ,�TE; n-pub ان/IJ/د د�E,�¨ اtPن -public 56 آ�

. خ/اه6 دا-*

:Protection2.java\%ی[

package p2;

class Protection2 extends p1.Protection {

Protection2 (){

System.out.println("derived other package constructor");

// class or package only

System.out.println("n = " + n);

// class only

// System.out.println("n_pri = " + n_pri);

System.out.println("n_pro = " + n_pro);

System.out.println("n_pub = " + n_pub);

}

}

:OtherPackage.java\%ی[

package p2;

class OtherPackage {

OtherPackage (){

p1.Protection p = new p1.protection)(;

System.out.println("other package contryctor");

// class or package only

System.out.println("n = " + p.n);

// class only

// System.out.println("n_pri = " + p.n_pri);

// class/ subclass or package only

// System.out.println("n_pro = " + p.n_pro);

System.out.println("n_pub = " + p.n_pub);

}

}

دارد آ� ;Ǩ 0/ا6Ç�A از <ز;%یz¨ وج/د اo, ;%ی��6 0% ایB دو @�E را <ز;%ی  آ6�I ، در ایI>% دو \%ی[

,اي @�E ی©¨ از ایB \%ی�MA> .%M% ا�nE%دOA 5%ی�6 p1 ن داد5 ای] را%zA ,در زی :

Page 224: Java farsi

// Demo package p1.

package p1;

// Instantiate the various classes in p1.

public class Demo {

public static void main(String args[] ){

Protection ob1 = new Protection();

Derived ob2 = new Drived();

SamePackage ob3 = new SamePackage();

}

}

,اي ¨zی[ <ز;%ی%\ p2 6-%i,ار زی, ;¨ :

// Demo package p2.

package p2;

// Instantiate the various classes in p2.

public class Demo {

public static void main(String args[] ){

Protection2 ob1 = new

وارد آ)دن ���5 ه�

¨;OE%ی8 از ,اي ج6ا آ,دن آM�t%ي % ^X/ل ایB ا;, آ� @�E ه% وج/د دا-�E و ;©%�A@] خ/

,ا6�OM\ ¨; ¨EZ آ� 5%rA> ،6IE@ه ,rای©6ی,d ي 0/آ%ر ج%وا%M�tه% ذخ�,5 ;¨ آ��� آ �E@در

6A/- .، م%A 6ونآ��� آM�t%ي . 6Aار6A آM�t%ي ه@�E اي ج%وا وج/د در @�E �4  \,ض

آM�t%ي داخ[ @�E ه% %ی6 آ%;dt/ن . داراي A%م ذخ�,6A/- ¨; 5 ا�6A%Eارد در ,خ¨ @�E ه%ي

از ه] -/B©O; ، 6A ا�* 0%یA Ï%م ;@�, @�E آ� % �giA ا�%;¨ @�E ه%ي خ/د آ��n* ده¨ % A%م ی%

Àاي ه, ی,B�OM دل�[ ، . %-6 آ�t¨ آ� ;%ی��6 ا�nE%دOA 5%ی�6 ، آ%ري آ@[ آ56II ج6ا ;¨ -/د

آM�t%ي ;z?� ی% آ[ @�E ه% ,اي <وردن) وارد آ,دن ( import در,56A,�o د�E/ر ج%وا

6-%% ا�nE%د5 از ا�] <ن آ� ی©X%ر وارد -/ده, آ�t¨ . در ;J,ض روی* ;¨ bi\ ، ر/g

[ ارج%ع ا�*%^ [�iE@; .ر/Eد� import Àی@%ن ی/A �;%A,,اي *Zو���� را ,wA ا�* و از

À0% ی *@�A زي%�A ,rدی ¨©�I©0 د/- �E-/A آ%;[ ج%وا �;%A, .,oس اt6 د5 آId �^�6 داری%0 6

. زی%دي از آ%ر 0%ی�¨ را آ%ه  ;¨ دهimport [<Z 6 رارج%ع OA%ی�6 ، د�E/ در ,A%;� ا0%ن

Page 225: Java farsi

6J از د�E/ر import یÀ \%ی[ ;�XI ج%وا ، د�E/رات در ��R%\t package ),oوج/د ا �E-دا

6-% (6A,�o ¨; س ^,ارtه, آ �i,ار import د�E/ر -©[ OP/;¨. و ^X[ از J0,ی£ ;,/ط

: زی, ا�*

import pkg1[pkg2](.classname |*);

%<Iدر ای pkg1 �1* و% �g� �E@ Àم ی%A pkg2 �E@%0�J داخ[ �E@ Àم ی%A خ%رج¨ ا�* آ�

Àی %@�E وج/د 6Aارد ه�¥ ;6mودی* �OP¨ در خ�/ص �giA .��@�� {OP ج6ا -56 ا�* u0ا,;

R,ی� را MA classname%ی* ، ی% یÀ در. ، >8 ;/اردي آ� b�/0 \%ی[ ��@E] اOP%ل ;¨ -/د

آ%;�%ی�, ج%وا %ی6 آ[ ;¨ آ6�I آ� zA%ن ;¨ ده6 آ� ا�nE%دz; (*)5?� ;¨ آ6�I و ی% از یE� À%ر5

@�E را وارد OA%ی6 .Bآ6 ه, دو -©[ ;¡آ/ر را ای �Jg^ 6ن ;¨ ده%zA :

import java.util.Date;

import java.io.*;

@�E ده6 ?�/ص آ� اo,ا\8ای  را ا�nE%د5 از �E%رB©O; 5 ا�* ز;%ن آ%;�%ی[: ا�EZ%ط B6یId

8رگ را وارد OA%ی�6 .,EMآM�t%ی¨ آ� ;¨ خ/اه�6 ا�nE%د5 ا�* g/ر R,ی� A%م B�OM دل�[

ه�¥ 0%ث�,ي روي �OP©,د B�Z اج,ا ی% ا6Aاز5 آM�t%ي -O% از �E%رOA 5%ی�6 I/ی@�6 ، ا;% ا�nE%د5

@A *m0 �E%مآ��� آM�t%ي ا�6A%Eارد ج%وا داخ[ در ج . A?/اه6 دا-* Àوا در ی% java 5,ذخ� ¨;

6A/- .�E@ Àن در ی%g/ر ;OJ/ل ، . ذخ�,A *m0 java.lang 6A/- ¨; 5%م java 0/ا� ا�R¨ ز

%-�6 وارد خ/اه�6 آ,د �E-ز دا%�A را آ� ¨�tی% آ �E@ا;% d/ن ج%وا 6ون 0/ا� ;/ج/د -O% ه,

g/ر �b�/0 ¨IO خ/د آ%;�%ی�, ,اي آ��� t ا�nE%د5 خ/اه6 /د ، ل¡ا ایjava.lang B در �E@

,A%;� ه% وارد خ/اه6 -6 .Bای %O- ه%ي �;%A,6Jي در %1ي آ��� bدل <ن ا�* آ� خ%J; *ل%Z

: ^,ار �r,د

import java.lang.*;

�E@� آ,د5 ای6 ، ^,ار دا-nE; E%و0¨ آ� % ا�nE%د5 از �E%ر5 وارد اo, یÀ آtس % هO%ن ا�] در دو

آ6�I ی©¨ از <ن آM�t% را ا�nE%دr; ، 6A%; ¨; 5, ایJ� �©I¨ (silent) �%آ* %-6 ، آ%;�%ی�,

g/ر R,ی� ;/اج� -56 و ;>X/ر ;¨ -/یcompile-time %0 6 در<ن Z%ل* ، % یÀ خg%ي. OA%ی�6

�A ، 6%م آtس ا�nE%د5 ;¨ آI ه, ج%ی¨ از یÀ. ذآ, OA%ی�A 6%م آtس هO,ا5 % ;z?�%ت @�E <ن را

Page 226: Java farsi

. در,56A,�o ��@�� ;,اu0 آ%;[ @�E <ن ;¨ %-6 آ�. ا�nE%دOA 5%ی�6 ;¨ 0/ا6�A از A%م % آ��n* آ%;[

IJ/ان ;W%ل Àاز ی ، �Jg^ Bر ای/Eد� import 6Iد5 ;¨ آ%nEا� :

import java.util.*;

class MyDate extends Date {

}

i,ار زی, خ/اه6 /د import هO%ن ;W%ل 6ون د�E/ر :

class MyDate extends java.util.Date {

}

@�E وارد ;�z/د، \bi <ن ا^t;¨ در داخ[ @�E آ� IJ/ان Àی ¨E^و public نtP6 در اA56 ا-

6I-% اo, ;¨ خ/اه�6 آtس IJ/ان ;W%ل . د�E,س _�, زی, آM�t%ي ;/ج/د در آ6 وارد -56 ;¨

Balance�E@,اي آ%ر,ده%ي ای] ، IJ/ان یzA À%ن داد5" آ� ^Mypack tX از ]iE@; سtآ

IJ/ان ، 34 %ی6 <ن را در د�E,س %-OP Mypack 6/;¨ خ%رج از public د5 و <ن را/OA B�Pا

: ^,ار ده�6 در \%ی[ خ/دش ، �/رت زی,

package MyPack;

/* Now/ the Balance class/ its constructor/ and its

show )(method are public .This means that they can

be used by non-subclass code outside their package.

*/

public class Balance {

String name;

double bal;

public Balance(String n/ double b ){

name = n;

bal = b;

}

public void show (){

if(bal<0)

System.out.print("-->> ");

System.out.println(name + " :$" + bal);

}

}

Page 227: Java farsi

%-public ¨; 6 اآI/ن IJ/ان Balance هgA%O/ری©� ;¨ �6�I ، آtس .B�I�Oه B56 ایAز%�

IJ/ان ()show آtس و روش 8�A در <ن public 6I-% ¨; . ¨IJ; 6ان Bای %MA> �Oا�* آ� ه

�E@[ b�/0 Mypack ه, A/ع آ6ي خ%رج از %^ 6IE@ه ¨�,Eد� . %<Iل ، در ای%W; ان/IJ Test

Balance 56IIوارد آ Mypack س ��3 ^%در ا�* از -56 وtآ Balance 6ی%OA 5د%nEا� :

import MyPack.*;

class TestBalance {

public static void main(String args[] ){

/* Because Balance is public/ you may use Balance

class and call its constructor .*/

Balance test = new Balance("J .J .Jaspers"/ 99.88);

test.show(); // you may also call show)(

}

}

,r�?z; ، �,<0 Àان ی/IJ public سtرا از آ Balance � 3�� و �E-دا, J¨ آ6�I ا ,وز

6IIآ ¨;.

Interfaces را��3�

%ا�nE%د5 از واژ5 آ��6ي interfaceb<ن آtس g/ر یÀ آtس را از �4%د5 �%زي ، ;¨ 0/ا6�A را

% ا�nE%د5 از. آ%;[ ;>,د OA%ی�6 ¨IJی interface �?z; 6�Aی6 ;¨ 0/ا%OA%ی�6 یÀ آtس d©%ري

¨rA/rd %;م ده6 ، ا%<Aاه�6 آ,د ا/?A �?z; ا,A> . �%z; /mA ف و,R 6Pا/^ ,wA از %Mgرا

، 6IE@ه %M�tه% آ,�TE; 6^%\ %;ا�A/OA ن ;¨ -/د يtPا �A66ون %MA> ي%M-6 و روIE@در . ه

]OP ا�* آ� ¨IJ; 6ان B�4%د5 ، ای ¨rA/rd 5ر%�%زي ;¨ 0/ا6�A راMg%ی¨ J0,ی£ آ6�I آ� در

;¨ 0/ا6IA <ن ه, %ر آ� راJ0 b,ی£ -/د ، ه, 6J0ادي از آOA .%M�t¨ �%ز6A خ/د \,��� اي

b ه, 6J0اد راMg% را هB�I�O ، یÀ آtس ;¨ 0/ا6A. %ی6Iرا �4%د5 �%زي interfaceOA را

. �4%د5 �%زي OA%ی6

,اي �4%د5 �%زي یÀ راb، آtس %ی6 bرا ای>%د ;>�P/O آ%;[ رو-M%ي J0,ی£ -b�/0 56 را

% ا�nE%د5 از واژOA . 5%ی6 ا�* 0% ج�U8%ت �4%د5 �%زي خ/دش را B��J0 ا;% ، ه, آ�t¨ <زاد. OA%ی6

Page 228: Java farsi

M,5 از ج�XI ، ج%وا � -O% ا;©%ن ;¨ دهinterface %0 6 آ��6ي ,W6اآZ "و b6IdیB روش یÀ را

wIO/ر OZ%ی* از �,�o,ي 4/ی%ي . در 6Id -©�¨ را �6* <وری6" %Mgروش در B�Z اج,ا را

6A/- ¨; ¨Zا,v .ر/g �آtس دیr, \,اخ/اOJ; ¨A/ل ، ,اي ایI©� یÀ روش از یÀ آtس

%-6I، -/د ، ه, دو آtس �E-ر دا/�Z ]ی6 در ز;%ن آ%;�%ی% %MA> 6Aا/Eg/ری©� آ%;�%ی�, ج%وا

� یOA .À%ی6 آEI,ل OA/د5 و �%زo%ري رو-M% را 0%ی�6 را ,<I; ¨ی%MIE;b�m آtس ده¨ ایB ا;,

�J�/0 ]d%I%ر. خ/اه6 -6 ای@E% و _�, ^% ¨OE@�� B�Id Àای¨ در ی,r�OP (functionality) در

;©%�A@] \/ق ، در د�E,س زی, آM�t%ي آtس %01, و %01, ;¨ رود g/ری©� ��u0@�� ;,ا

*\,o 6ي ^,ار خ/اه,Ez� .¨Zا,v %Mg6A/z�; ]OJ 0% از ,وز z; B�Id©�¨ ج�/�o,ي را

6Aی£. <ور,J0 B�;,اu0 وراث* را یÀ روش ی% ;>�P/O اي از رو-M% و ��@�� <�g^ %MA ارX0%ط

6Aج/د ;¨ <ور/,اي <A>%ی�©� راMg% در ��@�� ;,اnE; u0%و0¨ از از. ،6Aا �E\,o ار,^ %M�tآ

ه@6IE ، ا;©%ن �4%د5 �%زي هO%ن راb وج/د آ� , u@Z ��@�� ;,اu0 آtس bX0,;%A آM�t%ی¨

. راMg% را OA%ی%ن ;¨ �%زد ای�giA B اي ا�* آ� ^6رت وا^J¨. دارد

�E©A :

;¨ <ور6A آ� در _�, @�%ري از آ%ر,ده% را /ج/د زم ,ايراMg% ، <ن ;�8ان r�OP,ای¨ 1

� . خ/اه�] -C++ 6 ز%�wA ¨A, وراث* �A%o 6Id در ای�I/رت d%A%ر از ;E/�[ -6ن

ت\)ی� ���دن یf را�?

� یÀ آtس J0,ی£ ;¨ -/د %z; b�/رت زی, ;¨ %-6. یÀ را b :-©[ OP/;¨ یÀ را

access interface name {

return-type method-name1(parameter-list);

return-type method-name2(parameter-list);

type final-varname1 = value;

type final-varname2 = value;

//...

return-type method-nameN(parameter-list);

type final-varnameN = value;

}

Page 229: Java farsi

¨�,Eد� ، %<Iدر ای (access) %ی public tRا�* ی% ا ;r�?z, و^E¨ آ�. ©%ر OA¨ رود

,اي د�E,�¨ را rA> ، [�A%<IrA%5 د�E,�¨ �4  \,ض bi\ b@�E �%ی, ا�P% اOP%ل -56 و را

IJ/ان و^E¨ آ�. د�E,س خ/اه6 /د اي آ� در <ن اtPن اA>%م �E\,o ، در public ن ;¨ -/دtPا

/ددیr,ي ^%[ ا�nE%د5 خ/اه6 ، راb�/0 ، b ه, آ6 . name ,ي <ن ه%<هO%ن A%م راb ا�* و

��%I- د,اMEA%ي . 6IE@�A آ6�I آ� رو-M%ي اtPن -56 داراي �A6 0/ج�. ;XEJ,ي را ;¨ 0/ان ©%ر

6Jاز %MA> parameter-list Àور0%) ;(ی,� %MA> د و,�r�; 6 ^,ارIE@ي ;>,د ه%M-رو : B©O;

,اي رو-M%ي ; ا�* ه�¥ �4%د5 �%زي ¨�,\  �456- �?z 6-% �E-6اA وج/د b. داخ[ یÀ را

%ی6 ه, آ�t¨ آ� ، 6-% b;�TE,ه% را ;¨ . آ��� رو-M% را �4%د5 �%زي OA%ی6 در,56A,�o یÀ را

، bg/ر �IO¨. اtPن OA/د 0/ان داخ[ اAtP%ت را %MA> final و static6IE@آ� . ه ¨IJ; B6ی

b�/0 %MA> @�A ,��T0 ]%ی6 % ی6i; Àار ث%* ، . 6IEآtس �4%د5 �%زي ^% B�I�Oه %MA> ¨6ار دهi;

6A/- خ/دش. اول�� bIJ/ان یÀ اo, را public 6 ، آ���-%رو-M% و ;�TE,ه% g/ر اtPن -56

¨IO� public د/ 6Iخ/اه .

J0,ی£ ;¨ آ6I آ� ایW; B%ل یÀ راb �%د5 را. راb را ;z%ه56 ;¨ آ6�I اآI/ن ;W%ل¨ از یJ0 À,ی£

. 6Pد ��mR را ;¨ �o,د ا�* آ� یÀ 4%را;callback ¨©0 ,E() رو-¨ A *m0%م ,56A,�oدر

interface Callback {

void callback(int param);

}

پ-�د� ��زي را��3�

Àی�6 ، ی%OA £ی,J0 را ¨g. �4%د5 �%زي OA%ی6I ی% 6IdیB آtس ;¨ 0/ا6IA <ن راb را ه, %ر را

Àاي �4%د5 �%زي ی,آtس 6�A%<Ir و ��3 رو-M%ي را در J0,ی£ implements اb ، ج��Oر

b�/0 56- £ی,J0 6ی�%OA را ای>%د b یÀ آtس آ� در,56A,�o جOP ]©- ��O/;¨. را

implements ، *6 ا�-%� ;/رد زی, ;¨ %z; :

access class classname [extends superclass]

[implements interface [/interface...]] {

Page 230: Java farsi

// class-body

}

%<Iدر ای (access) %ی public tRد" ا�* ی% ا/- ¨OA 5د%nEا� . �را از یÀ راb اo, یÀ آtس

یÀ آtس دو راb اo,. ;¨ آ�I] �4%د5 �%زي OA%ی6 ، راMg% را % یtP À;* آ%;% از ی©6یr, ج6ا

<ن روش ی©@%ن b�/0 �,ویOA ،5%rA> 3%ی6 را آ� روش ی©@%A¨ را اtPن ;¨ آ6II ، �4%د5 �%زي

%ی6 رو-M%ی¨. -o6A,�o 6%ن ه, یÀ از راMg% ا�nE%د5 خ/اه6 6IIرا �4%د5 �%زي ;¨ آ bآ� یÀ را

IJ/ان public 6A/- نtP0%ی�6 .ا B�I�Oه %i�^ی6 د%% 0%ی�A 6/ع ;A �?z/ع روش �4%د5 �%زي

%-interface6 -56 در J0,ی£ �E-ري دا%oو �%ز *i%g; . س �%د5 ايtل از آ%W; Àی %<Iدر ای

b : �4%د5 �%زي ;¨ OA%ی6 را z; callback%ه56 ;¨ آ6�I آ� را

class Client implements Callback {

// Implement Callback's interface

public void callback(int p ){

System.out.println("callback called with " + p);

}

}

�E-6 آ�د^* دا�-% callback() % ¨�,Eد� ,r�?z; د5 از%nEا� public 56- نtPا�* ا.

IJ/ان و^E¨ آ� یÀ: ی%د<وري ، 6�Iرا �4%د5 �%زي ;¨ آ b . خ/اه6 -6 اtPن public روش را

ا�%\¨ ا�P% آM�t%ی¨ آ� راMg% را �4%د5 �%زي ;¨ آ6II ، ه] ;>%ز و ه] رای¼ ا�* آ� ,اي

,اي خ/د-%ن J0,ی£ 6Iی%OA .6ي ازJIJ/ان ;W%ل ، روای* client 5زي �4%د%� callback را

: را ا�%\� ;¨ OA%یnonIfaceMeth() 6 اA>%م داد5 و روش

class Client implements Callback {

// Implement Callback's interface

public void callback(int p ){

System.out.println("callback called with " + p);

}

void nonIfaceMeth (){

System.out.println("Classes that implement interfaces " +

"may also define other members/ too.");

}

Page 231: Java farsi

}

از 8)ی� ار/�.�ت را�? د��)�i �5 پ-�د� ��زی��

6�Aت -¨;¨ 0/ا%P%ان ارج/IJاز یÀ راb سآ� >%ي یA À/ع آt اtPن آ�TE;6�I,ه%ی¨ را

6Iی%OA 5د%nEا� .b 0/ان در ;¨ آ6I را ;¨ اtPن -56 را �4%د5 �%زي ه, �A/OA اي از آ�t¨ آ� را

ایB ارج%P%ت \,اخ/اA¨ ;¨ آ6�I ، یÀ روش را از v,ی} ی©¨ از و^Id .¨E%ن ;�TE,ي ذخ�,OA 5/د

,ا�%س ��mR *ن روای> �ایB ی©¨ . اه6 -6ارج%ع -56 ، \,اخ/اA¨ خ/ �A/OA وا^J¨ راg¨ آ�

�XIاز ج *�%Mg%ی6 اج,ا -/د در B�Z اج,ا �/رت 4/ی% ;/رد ج@E>/ رو-¨ آ�. ه%ي آ��6ي را

%M�tآ �\,اخ/ا6I©�; ¨A، اج%ز5 ;¨ ده6 0% دی,0, از آ6ي آ� رو-M% را روي <ن ^,ار ;¨ �o,د و

6A/- 6ون .ای>%د b� داBE@A در%ر5ای�A �©I%زي آ6 \,اخ/ا56IA ;¨ 0/ا6A از v,ی} یÀ را

"callee"6ی%OA 6، 0/زی�-% �E-4,دازش. دا Bس ایtارج%ع آ Àد5 از ی%nEا� �%z;

¨- Àی � ¨�,Eاي د�, 1% . زی, آtس ا�*

;OJ/ل در d/ن ج@E>/ي 4/ی% XA6%ل یÀ روش در B�Z اج,ا، در ;i%ی@� % ا�Z%ر روش: ا�EZ%ط

%�1,ي ج%وا ]OmE; ، (over head) 8رu^ی6 ;,ا%g/ر %-�o 6¨ ;¨ -/د ، %Mg0% از را

را از W; ()callback%ل 6Jي روش . ا�nE%دperformance-critical 6�I©A 5 اn0%^¨ در آ6ه%ي

6I©�; ¨Aاخ/ا,\ ،b :v,ی} ی�TE; À, ارج%ع را

class TestIface {

public static void main(String args[] ){

Callback c = new Client();

c.callback(42);

}

}

6-%i,ار زی, ;¨ �;%A, Bای ]R%Z :

callback called with 42

,�TE; 6 آ��Iد^* آ C ري/v b%-J0 callback 6,ی£ -56 آ� از A/ع را .Bای % �A/OA Àوج/د ی

� client از 6- u@EI; 0/ان از. <ن ¨; �d,oا C � ¨�,Eاي د�,ا�nE%دcallback() 5 روش

Page 232: Java farsi

Aد/O سtئ آ%�Pاز ا Àه��� � 6A0/ا ¨OA %;ا ، client 6-% �E-دا ¨�,Eد� .,�TE; Àارج%ع ی

6یOA ، u�0,0 B¨ . خ/د ، <o%ه¨ داردinterface راbi\ b از رو-M%ي اtPن -b�/0 56 اtPن

� C 0/ان از ¨�,Eاي د�, nonIfaceMeth() ن/d د/OA 5د%nEا� b�/0 client b�/0 �A و

callback 56- £ی,J0 *ا�.

g/ر ;©%�A©¨ درZ%ل�©� ;W%ل ^zA ¨�X%ن ، �A/rd b� یÀ ;�6ه6 آ� ی�TE; À, ارج%ع را 6A0/ا ¨;

%-6 ، ا;% ^6رت 6Id -©�¨ یB�Id À �4%د5 �%زي �E-دا ¨�,Eئ د� ¨- ¨OA  ی%OA را ¨P%ارج

,اي ;z%ه56 ایB آ%ر,د ، ا6Eا دو;�B �4%د5 �%زي . ده6 Callback رت زی, ، ای>%درا/�

: OA%ی�6

// Another implementation of Callback.

class AnotherClient implements Callback {

// Implement Callback's interface

public void callback(int p ){

System.out.println("Another version of callback");

System.out.println("p squared is " +( p*p));

}

}

6�Iن آ%mE;6ي را اJ : اآI/ن آtس

class TestIface2 {

public static void main(String args[] ){

Callback c = new Client)(;

AnotherClient ob = new AnotherClient)(;

c.callback(42);

c = ob; // c now refers to AnotherClient object

c.callback(42);

}

}

]R%Z 6-%i,ار زی, ;¨ �;%A, Bای :

callback called with 42

Another version of callback

p squared is 1764

Page 233: Java farsi

� <ن C آ� \,اخ/اA b�/0 56- ¨A/ع -�f¨ آ� ()callback هgA%O/ری©� ;¨ �6�I ، روایE¨ از

¨; B��J0 ، 6Iاج,ا ارج%ع ;¨ آ B�Z د در/- .,�OP �;%A¨ @�%را�d,o ایW; B%ل Àد5 ا�* ، ی%�

.خ/اه�OA 6/د 0, و آ/0%هE, را ;z%ه56

i��� زي�� �پ-�د (partial)

À56 یA,�o,%-6 ، ا;% روش J0,ی£ -b�/0 56 <ن راb را اo, یÀ آtس در b �4%د5 آ%;t را

5%rA> ، 6I©A ان �%زي/IJ : ;W%ل IJ/ان. اtPن -/د abstract <ن آtس %ی6

abstract class Incomplete implements Callback {

int a, b;

void show (){

System.out.println(a + " " + b);

}

//...

}

6I©�OA abstract و %ی6 IJ/ان را �4%د5 �%زي ()callback روش Incomplete در ایI>% آtس

را �4%د5 �%زي ()callback ش%ی6 ی% رو ارث ;�X,د Incompleteه, آ�t¨ آ� از. اtPن -/د

. -/د اtPن OA abstract%ی6 و ی% خ/دش IJ/ان

���ر �)دن را��3�

Àی ��,دازی] ,اي درك ^6رت راMg% ، اج%ز5 ده�%0 6 ,0 ¨�OP ل%W; .tX^ � یÀ آtس ;/�/م

stack Àدادی] آ� ی �J�/0 را را *ا;% ، راهM%ي . �4%د5 �%زي ;¨ آ,د �Ez4 �%د5 و % ا6Aاز5 ث%

IJ/ان ;W%ل ، یB©O; �Ez4 À ا�* داراي ا6Aاز5 . �4%د5 �%زي ی�Ez4 À وج/د دارد ;6JEدي ,اي

6-% . ث%* و ی% ^%[ E@o,ش

*�,M\ Àرای� ، ی> Àرا در ی �Ez4 0/ان ¨; B�I�O6ي هA/�4 (kinded list)*درخ Àی ،

� �A/rd �Ez4 �4%د5 �%زي ;¨ -/د�A [M; �Ez4@* آ�. دودوU¨ و ا;W%ل6MrA [Mاري OA/د bرا

6A%; ¨; ي. ی©@%ن%M-رو ¨IJی push() و pop()�Ez4 � bه@6IE و ایB راJ; %Mg,ف را

Page 234: Java farsi

%-iE@; 6I[ از ج�U8%ت �4%د5 �%زي ;¨ .�Ez4 Àی � bاز �4%د5 �%زي <ن ج6ا ;¨ %-d ، 6/ن را

�Ez4 Àی bزي ;z?�%ت خ%ص خ/د را J0,ی£ خ/اه6 �4%د5 �% خ��¨ �%د5 ا�* ، و ه, J0,ی£ را

� دو. آ,د 6�I5 آ%rA ل%W; . را ��mR 6دP �Ez4 Àوج/د دارد آ� ی ¨g اول ایI©� در ایI>% را

6Iی£ ;¨ آ,J0 . م%A *m0 ]ی%\ Àن را در ی> IntStack.java 6ار ده�,^ .bb�/0 ه, دو ایB را

. �4%د5 �%زي �Ez4 ا�nE%د5 خ/اهA 6- 6/ع

// Define an integer stack interface.

interface IntStack {

void push(int item); // store an item

int pop)(; // retrieve an item

6Jي یÀ آtس A *m0%م �;%A, FixedStack ¨; 6 ای>%دI+:

// An implementation of IntStack that uses fixed storage.

class FixedStack implements IntStack {

private int stck[];

private int tos;

// allocate and initialize stack

FixedStack(int size ){

stck = new int[size];

tos =- 1;

}

// Push an item onto the stack

public void push(int item ){

if(tos==stck.length-1 )// use lenggth member

System.out.println("Stack is full.");

else

stck[++tos] = item;

}

// Pop an item from the stack

public int pop (){

if(tos < 0 ){

System.out.println("Stack underflow.");

return 0;

}

else

Page 235: Java farsi

return stck[tos--];

}

}

class IFTest {

public static void main(String args[] ){

FixedStack mystack1 = new FixedStack(5);

FixedStack mystack2 = new FixedStack(8);

// push some numbers onto the stack

for(int i=0; i<5; i++ )mystack1.push(i);

for(int i=0; i<8; i++ )mystack2.push(i);

// pop those numbers off the stack

System.out.println("Stack in mystack1:");

for(int i=0; i<5; i++)

System.out.println(mystack1.pop) ();

System.out.println("Stack in mystack2:");

for(int i=0; i<8; i++)

System.out.println(mystack2.pop) ();

}

}

Àاز در زی, ی ,r�4%د5 �%زي دی IntStack 5د%nEا� % از هO%ن J0,ی£ وج/د دارد آ� �Ez4 4/ی%

Interface 6Iل. ای>%د ;¨ آ/v Àی % �Ez4 ,�4%د5 �%زي ، ه Bدر ای �Eد ٢اول�� �%خ/- ¨; . ,oا

ه, %ر اv%ق �Ez,ي �A%ز . ا\8ای  ;¨ ی%6 ایv B/ل اول�� 0>%وز -/د، <�Ez4 5%rA از wA, ا6Aاز5

%-6 ، ا6Aاز�Ez4 5 دو ,ا, خ/اه6 6- .

// Implement a "growable" stack.

class DynStack implements IntStack {

private int stck[];

private int tos;

// allocate and initialize stack

DynStack(int size ){

stck = new int[size];

tos =- 1;

}

// Push an item onto the stack

public void push(int item ){

// if stack is full/ allocate a larger stack

Page 236: Java farsi

if(tos==stck.length-1 ){

int temp[] = new int(stck.length * 2]; // duble size

for(int i=0; i + stck = temp;

stck[++tos] = item;

}

else

stck[++tos] = item;

}

// Pop an item from the stack

public int pop (){

if(tos < 0 ){

System.out.println("Stack underflow.");

return 0;

}

else

return stck[tos--];

}

}

class IFTest2 {

public static void main(String args[] ){

DynStack mystack1 = new FixedStack(5);

DynStack mystack2 = new FixedStack(8);

// these loops cause each stack to grow

for(int i=0; i<12; i++ )mystack1.push(i);

for(int i=0; i<20; i++ )mystack2.push(i);

System.out.println("Stack in mystack1:");

for(int i=0; i<12; i++)

System.out.println(mystack1.pop) ();

System.out.println("Stack in mystack2:");

for(int i=0; i<20; i++)

System.out.println(mystack2.pop) ();

}

}

ایB آtس . ا�nE%د5 ;¨ آDynStack 6I و ه] از FixedStack از �4%د5 �%زي آtس 6Jي ه]

6ان ;IJ¨ ا�*. را v,ی} J0,ی£ یÀ ارج%ع راb اA>%م ;¨ ده6 ایI©%ر Bه%ي ای ¨Aآ� \,اخ/ا

push() و pop() اج,ا B�Z ي ز;%ن آ%;�%ی[ ( در%< (�E\,o,� خ/اه6 -6 از.

Page 237: Java farsi

/* Create an interface variable and

access stacks through it.

*/

class IFTest3 {

public static void main(String args[] ){

IntStack mystack; // create an interface reference variable

DynStack ds = new DynStack(5);

FixedStack fs = new FixedStack(8);

mystack = ds; // load dynamic stack

// push some numbers onto the stack

for(int i=0; i<12; i++ )mystack.push(i);

mystack = fs; // load fixed stack

for(int i=0; i<8; i++ )mystack.push(i);

mystak = ds;

System.out.println("Values in dynamic stack:");

for(int i=0; i<12; i++)

System.out.println(mystack.pop) ();

mystak = fs;

System.out.println("Values in fixed stack:");

for(int i=0; i<8; i++)

System.out.println(mystack.pop) ();

}

}

,A%;� ، در Bایmystack b� <ن 6یu�0,0 B ، ه,IntStack. 5%o یÀ ارج%ع ا�* � را ds

ا�nE%دJ0 DynStack 5,ی£ -56 /���� �4%د5 �%زي ()pop و ()6I©�; push، از روایME%يارج%ع

6Iآ ¨; .� FixedStack آ� /���� ()pop و ()push ارج%ع ;¨ آ6I ، از روایME%ي fs و^E¨ آ�

6Iد5 ;¨ آ%nEی£ -56 ، ا�,J0 .���/0 �©ری/gA%O6 هIIآ B��J0 Bم ا�%O0 ، [اج,ا دادی B�Z در %M�o

�. A>%م ;¨ 6A,�oا ¨�,Eد� b�4%د5 �%زیM%ي �A%o6Id از یÀ راb از v,ی} ی�TE; À, ارج%ع را

. ^6ر6IO0 ج%وا ,اي ر��6ن � 6Id -©�¨ در B�Z اج,ا ;¨ %-6آ%;t ی©¨ از -�/5 ه%ي

�t-)ه� در را��3�

,اي وارد آ,دن ث%ME%ي %-E,اك %Mg� آt ;¨ 0/ا6�A از را 56- �E-ا¡oي%M� ¨oد%@ �A%o 6Id

Page 238: Java farsi

56A,�o,دل?/ا6i; 5ارده¨ اول�� -56 %-�TE; ،6I,ه%ی¨ %-6 آ� % ;i%دی, از اtPن یÀ راb آ� در

یIJ¨ و^E¨ آ� راb را �4%د5 �%زي( آtس ;¨ 6�A%<Io و^E¨ آ� <ن راb را در یÀ . ا�nE%دOA 5%ی�6

6�Iه% در ^ آ��� ا�%;¨ <ن) ;¨ آ */د ;�TE,ه% IJ/ان ث% 6Iو خ/اه,O� .آ%ر Bد5 از ای%nEا� �%z;

const و % اAtP%ت defined# ر ,اي ای>%د یÀ ر^] 8رگ از ث%ME%يC++/Cدرfeader \%ی[

6-% ¨; .،6-%XA ¨-56 ه�¥ روA,�o, <rA%5 ه, آ�t¨ آ� در,56A,�o اo, یÀ راb در

6Iآ ¨OA 8ي را �4%د5 �%زي�d �^6 در وا-% b;�TE,ه%ي ث%* W[ ایB ا�* آ� <ن آtس; . <ن را

. وارد ;¨ آ,د5 ا�* final را � \�%ي ا�] آtس IJ/ان ;�TE,ه%ي

[�O�0 Àاي �4%د5 �%زي ی, À�I©0 B6ي از ایJ (56A,�o automated خ/دآ%ر ;W%ل

(decision maker *د5 ا�/OA 5د%nEا� .

import java.Random;

interface SharedConstants {

int NO = 0;

int YES = 1;

int MAYBE = 2;

int LATER = 3;

int SOON = 4;

int NEVER = 5;

}

class Questionimplements SharedConstants {

Random rand = new Random)(;

int ask (){

int prob =( int( )100 * rand.nextDouble))(;

if( prob < 30)

return NO; // 30%

else if( prob < 60)

return YES; // 30%

else if( prob < 75)

return LATER; // 15%

else if( prob < 98)

return SOON; // 13%

else

return NEVER; // 2%

}

Page 239: Java farsi

}

class AskMe implements SharedConstante {

static void answer(int result ){

switch(result ){

case NO:

System.out.println("No");

break;

case YES;

System.out.println("Yes");

break;

case MAYBE:

System.out.println("Maybe");

break;

case LATER:

System.out.println("Later");

break;

case SOON:

System.out.println("Soon");

break;

case NEVER:

System.out.println("Never");

break;

}

}

public static void main(String args[] ){

Question q = new Question)(;

answer(q.ask) ();

answer(q.ask) ();

answer(q.ask) ();

answer(q.ask) ();

}

}

,A%;� از B6 آ� ای�-% �E-د^* دا ¨IJ6ارد ج%وا یA%Eي ا�%M�tی©¨ ازآ Random 6I©�; 5د%nEا� .

56IIس \,اه] آtآ B�0%د\¨ ا�* ای �X- 6ادP56. اA,�o,6IdیB روش ا�* آ� � ایB آtس در

در ایW; B%ل ، از. <ن را ;¨ ده6MrA 6اري ار^%م �0%د\¨ در -©[ ;/رد �A%ز ,O- �;%A% ا;©%ن

Page 240: Java farsi

را ا٠¾0١% ٠¾٠ا6Pاد �0%د\¨ در ;6mود5 ایB روش. ا�nE%د5 -56 ا�* ()nextDouble روش

6Aدا,o ¨;, .

%A, Bسدر ایtدو آ �A/OA �; Questionو AskMebرا SharedConstants و ه, دو را

و NEVER و No ،Yes ،MAYBE ،SOON ،LATER �4%د5 �%زي ;¨ آ6II ، ج%ی¨ آ�

آtس g/ری©� o/ی% ه, داخ[ ه, یÀ آtس ، آ6 � ایB ث%* ه% ;,اج�J ;¨ آ6I. -56 اJ0 6A,ی£

ایR%Z %<I[ یÀ اج,اي در. ,د5 ا�* از <MA% ارث@O�iE% ی% ;<MA% را g/ر ;@J0 [�iE,ی£ OA/د5

6�Iه56 ;¨ آ%z; را �;%A, Bاز ای �A/OA . 6 آ��Iد د^* آ/ . EA%ی¼ در ه, %ر اج,ا ;nE%وت خ/اه6

Later

Soon

No

Yes

�)ش داد را��3� را i ت�ان�*

% ا�nE%د5 از واژ5 آ��6ي b%ن د�E/ر ز. X,د ارث دیr,;¨ 0/ا6A از یÀ راextends b یÀ را

� آM�t%ي ارث ,56A ا�*%z; .را ¨g;¨ آ6I آ� از راb �4%د5 �%زي و^E¨ یÀ آtس را

-56 داخ[ زA>�,5 وراث* را رو-M%ي J0,ی£ دیr,ي ارث ,د5 ا�* ، %ی6 �4%د5 �%زیM%ي آ���

: ;W%ل¨ را ;z%ه56 ;¨ آ6�I. \,اه] OA%ی6

// One interface can extend another.

interface A {

void meth1();

void meth2();

}

// B now includes meth1 )(and meth2 -- )(it adds meth3.)(

interface B extends A {

void meth3();

}

// This class must implement all of A and B

class MyClass implements B {

public void meth1 (){

Page 241: Java farsi

System.out.println("Implement meth1.)(");

}

public void meth2 (){

System.out.println("Implement meth2.)(");

}

public void meth3 (){

System.out.println("Implement meth3.)(");

}

}

class IFExtend {

public static void main(String args[] ){

MyClass ob = new MyClass();

ob.meth1();

ob.meth2();

ob.meth3();

}

}

� ;B©O ا�* ?/اه�J� 6¨ آ6�I 0% �4%د5 �%زي,<0 Àان ی/IJ ()meth1 س را درtآ Myclass

,وز خg%ي. ج%>% OA%ی�6 uX� ]OP Bای comile-time 6- 6خ/اه . tX^ �©ری/gA%Oه, ه ، [�Eno

6Iرا �4%د5 �%زي ;¨ آ bرو-M%ي J0,ی£ -b�/0 56 <ن راb -%;[ ه, %ی6 آ��� آ�t¨ آ� یÀ را

. �4%د5 �%زي OA%ی6 ,د5 ا6A را آ6ام آ� از �%ی, راMg% ارث

b�m; از ¨OM;  ?@�E ه% و راMg% ه, دو 6IE@ی@¨ ج%وا ه/A �;%A,.

Page 242: Java farsi

cآ( ا��اع داد�

پ-�د� ��زي ا��اع ��&���ن داد� ه�

G>� وی� ای���.:

-�E ه%ر

<رای� ه%

\%ی[ ه%

% mA/5 �4%د5 �%زي اA/اع �%خOE%ن دادI-> 5% خ/اه�6 -6 ]�\ Bدر ای.

Page 243: Java farsi

رش�5 ه�

6I`�OA LA%X�Ez4 %اع داد5 ه/Aاز ا L`ان ی/IP �داد5 ه%7 ر-�E ا7 ج%وا +� .ج%وا از ر-�E ه%

String ، 6A/- L; 56�;%A اع داد5 ه/Aاز ا L`6 %7 یIی> LOA ر%O- �و هv B�O/ر 4%ی� و �%د5

6Iی> LOA ر%O- � 8�A %ه,E+6 .<رای� ا7 از +%راI-%X�; �- ض/P در �`�.

هL; B�I�O 0/ان <رای� ه% . ,اJ0 7,ی£ +,دن ;�TE, ه%7 ر-�E ا7 ا�nE%دL; 5 -/دStringاز

6A/z را ;�E/ان � ث%* ه%7 ر-�E ا7 +� �iA [UtP B[ ^/ل �E-/A ;�. ر-�E اJ0 7,ی£ +,د

را ;�E/ان � �%ی, ;�TE, هA 7%/ع �TE;String,هA 7%/ع . 0?��� داد�TE;String,هA 7%/ع

Stringل . 0?��� داد%W; ان/IP �

String str=”this is a test”

System.out.println(str);

str ع/A از Lf�- %<Iدر ای string �E-ا�* +� ر “this is a test” ن> � 6ایL; ���?0. B ی%

� و���� XP%رت �E-رprintln()د/- L; 5ی  داد%OA . ع/A 7%ه �-string ه% و Lo� وی

6Aز%� L; 6 و <�%نIO0ر ^6ر%�@ .خ�/�R%ت وی�5 زی%د7 دارMA> �+ 6A% را

string6ی> L; ر%O- �?%t+ �Aس ه%7 ج%وا %E+ س درt+ B6اول 0,یE; . ن> u�g; Bرز ای%دل�[

@�%ر ;LOM از ,A%;� �%ز7 � -O%ر ;L <ی6ا�* +�  ? .ر-�E ه%

6�A6ا%ی6 در%ر5 ر-�E ه% �+ 78�d B�E@?A , �^6 در وا�I+ L; ا7 +� ای>%د �E-ن ا�* +� ه, ر>

� IP/ان ;W%ل در .LEZ ث%* ه%7 ر-�E ا7 ه] -�� � -O%ر ;L <ی6I. ا�*Lf�-string از +tس

XP%رت زی,

System.out.println(“this is a string,too”);

�E-ر“this is a string,too”6ی> L; ر%O- �روش ;6ی,ی* ث%* هLP/A . 7% ث%* ر-�E ا7

.ر-ME%7 در ج%وا ه�O/ن ;6ی,ی* ر-�E هOJ; 7%/لL در ز%ن ه%7 +%;��/7,0 دیr, ا�*

%ی6 در%ر5 ر-�E ه% 6ا6�A ان ا�* +� -�� هA 7%/ع �+ LX�g; B�;دوstring ,4¡ی%A,��T0

6IE@34 از ای>%د -�� ه%7 .ه LIJیstringد/ا�d,o ایEm; . B/ا7 <ن ه% ^%[ A ,��T0?/اه6

:ا;% � دو دل�[ ای�A �A/rI@*, ;/�/ع ;B`O ا�* ;6mودی* ج76 � wA, <ی6

١_6�-% �E-ا7 دا �E-ر ,��T0 �هL; �z�O 0/ا�A/OA 6�A ج6ی76 ای>%د +BO�E; �+ 6�I , ا�A ,o%ز

��T06-% ,wA ات ;/رد,.

Page 244: Java farsi

٢_ ,�wA L�t+string م%A � StringBuffer %ه �E-ر ,��T0 ی£ -56 ا�* +� ا;`%ن,J0 در ج%وا

, ایO0 B%م +%ره%7 4,دازش ;,/ط � ر-�E ه% هI/ز در ج%وا ^%[ اA>%م , را \,اه] ;L �%زد%I

6IE@ه.

,ا7 ای>%د ر-�E ه% وج/د دارد LA/o%A/o 7%ر. روش ه Bی,EA%�> ن ,وش/d L0ر%XP د5 از%nEا�

:;W%ل زی, ا�*

String mystring = “this is a test”;

� ,34 از ای>%د ی� -�� \6Miل <ن را ;L 0/ا6�A در ه, -,ایLg +� +%ر,د ر-�E ه% ;>%ز ا�*

.+%ر ,ی6

� IP/ان ;W%ل XP%رت زی, mystring 6ده L;  ی%OA را :

System.out.println(my string);

OP ,r� "+" ع/A 7%ا7 -�� ه,از <ن ,ا7 اد_%م دو ر-J0 . �E,ی£ -56 ا�*Stringدر ج%وا

� IP/ان ;W%ل XP �<�EA%رت زی, .ا�nE%دz�; 5/د

String mystring = “I” + “like” + “java. “;

. ;L -/دmystring در “ .I like java“ذخ�,5 -6ن

6,خL از <MA% در. 6Idی6E; B داردt+stringس A56 ا- Lر�, %<Iد5 از . ای%nEا� %equals() L;

6�I+ Lر�,% \,اخ/ا6E; LA .0/ا6�A 0@%و7 دو ر-�E را length() � ;L 0/اv 6�A/ل ی� ر-�E را

% ا�nE%د5 از .د�* <وری6charAt() �E-در ر ,wA رد/; *�J^/; ج/د در/; ,E+6+%را�A0/ا L; [ه

: ذی[ zA%ن داد5 -56 ا�*-`[ +�L ای6E; �� B در.را �6* <وری6

Boolean equals(String object)

Int length()

Char charAt(int index)

6�I+ 5د%nEاع <رای� ه% ا�/Aن �%ی, ا/�O6 ه�A0/ا L; 8�A 7ا �E-از <رای� ه%7 ر �EXل.ال%W; ان/IP �:

Class stringdemo3{

Public static void main(string args[]){

String str[] = {“one”,”two”,”three”};

For (int i=0;i<str.length;i++)

System.out.println(“str[“+i+”]:”+str[i]);

}

}

Lخ,وج :

Ali
Highlight
Page 245: Java farsi

Str[0]:one

Str[1]:two

Str[2]:three

�4%د5 �%ز7 ر-�E ه% � R/رت -�� ه%7 0/+%ر ایB ا;`%ن را ,ا7 ج%وا \,اه] �%خ�E ا�* %0

%�Eه%7 زی%د7 در اخ Lo�� IP/ان ;W%ل .ر0%ن r¡ارد +� ;6ی,ی* ر-�E ه% را ا�%ن ;L �%ز6A وی

�E-ی@� دو ر%i; 7ا, L6 ه%یE; ج%وا,�E-7 ی� زی, ر/<E@ج, Lo8ر ,��T0 و �E-اد_%م دو ر

را % 6Id روش ;L 0/ان ای>%د StringهB�I�O -�� ه%7 .و+/Z L`d,وف ه, ر-�E دارد

, ایB ای>%د ر-�E ه% � هrI%م.OA/د%I ای>%د Stringو^LE ی� -�� A/ع . �A%ز <�%ن ;L -/د

[�I`�;,د/ stringیLIJ 34 ازای>%د-Lءه%7 .ر-�E ا7 ای>%د ;L -/د +� ^%[ A ,��T0?/اه6

ایB ا;, در B`O; *@?A 5%rA ا�* LP/A . +%را+E,هz0 7%`�[ دهMA> 56I% راLOA 0/ا��T0 6�A,ده�6

A �A/o Bای %J^ر <ی6 ا;% وا%O- �%ز ه] ;�E/اO0 6�A%م اA/اع ��OP%ت ;,/ط � ر-6m;*@�. �Eودی*

n0%وت +%ر در ان ا�* +� ه, %ر �A%ز � rA%رش ��T0, ی%\�E ا7 از ه, ر-�E .ه% را اA>%م ده�6

��- 6-%ر-�E اول�� ��T0, . ج6ی76 ای>%د ;L -/د +� ;��T0 BO�E,ات خ/اه6 /دg;String,ح

6A%; L; L^% �E\%�A .5د%nEو دل�[ ا� * از ایB روی� <ن ا�* +� �4%د5 �%ز7 ر-�E ه%7 ث%

� ر-�E ه7% ^%[ ��T0, +%ر<;06, خ/اه6 /د *X@A ,4¡ی%A,��T0. �E-ر �ج%وا ,ا7 ;/ا^�A �+ LJ%ز

ه, دو ;/رد StringBuffer,StringBuilder:هA ,��T0 7%%4¡ی, %-6 دو 8oی�I \,اه] +,د5 ا�*

,ا6MrA 7ار7 ر-�E ه 6IA0/ا L;6A,��T0 ]`%ر رو6A +� 34 از ای>%د ^% Lی%.

از ایB رو . J0,ی£ -56 اjava.lang6A درt+String,StringBuffer,StringBuilderس ه7%

finalه, �� <ن ه% � v/ر خ/د+%ر در اخ�E%ر O0%م ,A%;� ه% ^,ار دار6A ه, �� � R/رت

6ان ;IJ%�* +� ه�¥ +tس دیr,7 را B6 وایAی£ -56 ا,J0د/OA {Ez; %ان از <ن ه/E�OA. ,;ا Bای

�uX 4%ر5 ا7 �I�M �%ز7 -56 ا�* +� ;/جu ا\8ای  +%رای��OP L%ت ;6Eاول ;,/ط -56 اO0 6A%م

b . را �4%د5 �%زt+CharSequence6II`�; 7س ه7% ;8/ر را

[ ��T0, ه@BEnoString6IE ایI`� ر-�E ه%7 ;/ج/د در -�� هA 7%/ع %^ ,�_ ,*�%IJ; B6ی �+

� R/رت LA%zA . را E�OA/ان 34 از ای>%د ��T0, داد Em;String/ا�A/OA 7 ه7% �+ 7,�TE; %;ا

String ��- � 6A0/ا L; �wmد در ه, ل/- L; £ی,J0 %هString6-% �E-7 ارج%ع دا,rدی .

Constructor 1س' String

Ali
Highlight
Page 246: Java farsi

خ%لL ای>%د string ی� ,ا7 <ن +�. constructor 6I+ L; LA%X�Ez4 از t+String 6Idس

6�I+,constructor6�Aا/?� IP/ان ;W%ل XP%رت زی, �uX ای>%د �A/OA ا7 از . �4  \,ض را \,ا

Stringد/- L; در <ن ,E+را%+ �A/o ,6ون ه .

String s=new String();

% ;6iار اول�� خ/اه6 دا-* Lه%ی �E-ای>%د ر �ه%7 �%زt+String , 56Aس .ا_�u او^%ت �A%ز

,ا7 اA>%م ایB +%ر \,اه] +,د5 ا�* Ln�E?;. ا7 <ن +� ی�,String رای� ا7 از> % ای>%د و

:+%را+E,ه% ;6iارده6�I+ L از �%ز56A زی, ا�nE%دOA 5%ی�6

String(char chars[])

6�I+ ل زی, 0/ج�%W; �:

Char chars[]={ ‘a’,’b’,’c’};

String s = new string(chars);

1% 56A6ار اول�� �%زi; “abc” � . L; ���?0 دهs6 را

% ا�nE%د5 از constructor �?z; 6ار اول��i; ان/IP �?Lz از ی� <رای� را 6�A0/ا L; ]ذی

6�I+:

String(char chars[],int startindex,int numchars)

Startindex3+6I56 ایII+ �?z; و ,wA ه%7 ;/رد,E+ز+%ر%_> ]m; numchars[ن ه%zA

6A/- 5د,� ;W%ل زی, 0/ج� +6�I.ده6J0 56Iاد +%را+E,ه%یL ا�* +� %ی6 � +%ر :

Char chars[] = { ‘a’,’b’,’c’,’d’,’e’,’f’};

String s = new string (char,2,3);

. 0?��� ;�6هs6 را � ”XP“cde%رت 6i; 1%ار اول��

�- 6�Aا/E�; ,56 زیAد5 از �%ز%nEا� %String76ار ی� -� اi; % String6�I+ ای>%د ,rدی .

String(String strObj)

strObj ع/A �- String*ی6. ا�,�r ,wA ل زی, را در%W;:

//construct one string from another.

Class Makestring{

Public static void main(String args[]){

Char c[] ={‘j’,’a’,’v’,’a’};

String s1 = new String(c);

Page 247: Java farsi

String s2 = new String(s1);

System.out.println(s1);

System.out.println(s2);

}

}

,A%;� در ذی[ zA%ن داد5 -56 ا�* Lخ,وج:

Java

Java

. وج/د داردs1 ,s2ه�I+ L; �wZt; �+ �A/rA%O] ر-�E ی`@%LA در

,اzA 7%ن داد�١ در ج%وا از charا+, �d داد5 هA 7%/ع *� 6+ LA/ه%7 ی,E+را%+ �P/O<; ن

LEی%�LE ٨ا�nE%د6II+ L; 5 ا;% در \,;* ر-�E ه%7 ;/رد ا�nE%د5 در ایA,EI* از <رای� ه7%

%-6I d٨/ن ر-�E ه%7 ا�`zE;. L`[ از ;>�P/O +%را+E, ا�`L ا�nE%دz�; 5/د L; 6اولE; LE�

;/ا^� ا�nE%د5 ازی� <رای� A/ع ه] �%ز56A ه%یL را ,ا6i; 7ار دهL ر-�E ه%7 درt+Stringس

byte*ا� �Eن داد5 -56 ا�*. \,اه] �%خ%zA ,در زی %MA> م,\:

String(byte askiichars[])

String(byte askiichars[],int startindex,int numchars)

Asciichars*ی* ه% ا�%\,م دوم 8�A ا;`%ن ;z?� +,دن ?Lz از . ;56II+ �?z <رای�

% ا�nE%د5 از روش .رای� را \,اه] ;L �%زد+%را+E, ه7% < 1%6X0ی[ %ی* � +%را+E, در ه, دو \,م

,A%;� زی, از ایB �%ز56A ه% ا�nE%د6I`�; 5.ر;o 8¡ار7 �4  \,ض ;b�m ج%ر7 اA>%م ;L -/د:

//construct string from subset of char array.

Class substringcons{

Public static void main (String args[]){

Byte ascii[]={65,66,67,68,69,70};

String s1=new string(ascii);

System.out.println(s1);

String s2=new String(ascii,2,3);

System.out.println(s2);

}

}

:خ,وجR%Z L[ از اج,ا7 ,A%;� در ذی[ zA%ن داد5 -56 ا�*

Abcdef

Page 248: Java farsi

Cde

%ی* � ر-J0 8�A �E,ی£ -56 ا6A +� در <L; %MA 0/ا6�A روش rA%ر-M%7 دیr,7 از �%ز56A ه 7%

ر;8o 8ار6X0 7ی[ %ی* ه% � +%را+E, ه% را 6�I+ B��J0 ا;% �Ez, او^%ت EM, از روش �4  \,ض

.;b�m ج%ر7 ا�nE%دOA 5% ی�6

. از رو7 <رای� ا7 ای>%د ;Em; [�I+ L/ا7 <رای� � <ن +�z�; L/دStringو^LE ی� -� :0/ج�

%^String6A%; L; LاEm; ,o/ا7 <رای� را 34 از ای>%د ر-��T0 �E, ده�6 �E\%�A ,��T0 .

% ا�nE%د5 از �%ز56A زی, ;�E/ا6�A ی� String 7از رو StringBuffer6ی�%OA ای>%د .

String(StringBuffer strBufObj)

Constructor 7 و���� � �+ Lه%ی J2SE 5 6Aا\8ود5 -56 ا .

� و���� دو 56Aز%�J2SE 5 � String 6Aن داد5 -56 . ا\8ود5 -56 ا%zA ]رد +� در ذی/; B�E@?A

6I+ L; LA%X�Ez4 �E\%ش ی,E@o 6+ LA/ه%7 ی ,E+را%+ �P/O<; ا�* از.

String(int codePoints[],int startindex,int numchars)

codePoints *6 ا�+ LA/6ود5 ا7 +� از . <رای� ا7 ا�* +� -%;[ +6 ه%7 یm; از ]R%Z �E-ر

startindex ز -56 و%_> numCharsد/- L; ]�`z0 *ا� ,E+را%+ .

\,م +�L <ن در زی, zA%ن دادStringBuilder 6I+ L; LA%X�Ez4 . 5دو;�B �%ز56A ج6ی6 از +tس

: -56 ا�*

String(StringBuilder strBuilderObj)

1% 6E;String سt+ ا7 ازStringBuilder در Lار�%ل strBuilderObj6I+ L; ای>%د .

�8ل رش�5 ه�

,ا7 � د�* <وردن ای6i; Bار ;L 0/ان . v/ل ه, ر-6J0 �Eاد +%را+E, ه%7 ;/ج/د در <ن ا�*

6E;length() 6�Aا/? ا�* d,ا +� �� +%را+E, در XP ]R%Z٣%رات زی,: را � R/رت زی, \,ا

�E-رsوج/د دارد .

Char chars[] = {‘a’,’b’,’c’};

Page 249: Java farsi

String s = new String(chars);

System.out.println(s.length());

.�,-�ت وی§� رش�5 ه�

از <A>%یL +� ر-�E ه% ?  ;6Eاول و;LOM از ,A%;� �%ز7 % ج%وا � -O%ر ;L <ی6I ج%وا

6A%<Io ن%ایB .5 ا�*ا;`%A%ت وی58 ا7 ,ا��OP 7%ت ;,/ط � ر-�E ه% در �%خE%ر o,ا;,7 ز

اد_%م 6IdیB , از رو7 ل�E,ال ه%7 ر-�E ا��OPString7%ت -%;[ ای>%د خ/د+%ر �A/OA ه%7 ج6ی6

�-String,r�OP د5 از%nEا� % "+"6-% L; %ه �E-ر �,rاع داد5 ه%7 دی/A6ی[ اX06 ه%7 .وE;

A, *�\%n-  ا7 ا\8ای,,ا7 اA>%م O0%م ای��OP B%ت وج/د دارد ا;% ج%وا L8ای<; LEZه% و را �;%

,A%;� �%ز7 ایB +%ره% را � v/ر خ/د+%ر اA>%م ;L ده6.

�)ال ه�! رش�5 ا! -�

را از <رای� ا7 از Stringدر ;W%ل هzA B�z�4 7%%ن دادL; �A/rd �+ 6- 5 0/ان �A/OA ه7%

,r�OP د5 از%nEا� %,ا7 اA>%م ایB +%ر وج/د. ای>%د OA/دnew+%را+E,ه% 7,EA%�> دارد ا;% روش

را � v/ر Stringج%وا ,ا7 ه, ل�E,ال ر-�E ا7 در ,A%;� 0%ن ی� -� .ا�nE%د5 از ل�E,ال ه%,

� IP/ان ;W%ل XP%رات زی, دو ر-J; �E%دل را ای>%د ;6II+ L.خ/د+%ر ;L �%زد:

Char chars[] = {‘a’,’b’,’c’};

String s1 = new String(chars);

String s2 = “abc”;//use string literal

,ا7 ه, ی� از ل�E,ال ه%7 ر-�E ا7 ای>%د ;L -/د ه, ج% +� -� هdString 7%/ن ی� -�

String6ی�%OA 5د%nEال ه% ا�,E6 از ل��A0/ا L; 6I-%� IP/ان ;W%ل هO%ن �A/o +� در . ^%[ ا�nE%د5

B� �+ Lه%ی �E-ا7 ر, %O�iE@; 6�Aا/E�; 6ه% راE; *ن داد5 -56 ا�%zA ,ل زی%W; ل/^ ]iA [UtP

6A/- L; �E-/A \,ا ?/ا6�A در�* ه�O/ن \,ا خ/اLA <ن ه% % ;��TE,ه%7 ارج%ع � -� ه7%

String ,ل زی%W; در length() �E-ا7 ر, “abc”  ی%OA ن> �<�EA �+ د/z�; 56Aا�*٣ \,ا خ/ا .

System.out.println(“abc”.length());

Page 250: Java farsi

اد>�م رش�5 ه�

MI0% ا�IWE% ایB . را \,اه] LOA �%زدStringن اOP%ل r�OP,ه% � -� ه%7 ج%وا � v/ر +�L ا;`%

,r�OP ن ی� -� "+" ;/�/ع> �<�EA 6 وI+ L; را اد_%م �E-ا�* +� دو رstring *ا� . Bای

%� IP/ان ;W%ل �� ر-�E در XP%رات .را \,اه] ;L �%زد"+" ا;, ا;`%ن ا�nE%دOP 6Id 5[ اد_%م

.6A/- Lزی, % ی`6یr, اد_%م ;

String age=”9”;

String s = “he is “+age+”years old”;

System.out.println(s);

ی`L از +%ر,د ه%7 اد_%م ر-�E ه% هrI%م . ا�* ”XP �<�EA”he is 9 years old%رت OA 1%%ی 

,A%;� . ای>%د ر-�E ه7% @�%ر OA LA1/v%ی%ن ;�z/د BE; در LA1/v 7%ه �E-ج%7 <ن +� ر �

6J ادا;� ی%L; 6I 0/ا6�A <ن ه% را � i0 *O@^ 6Id@�] و% ه ,g� واز �E@`- ن%Eاد_%م "+" %ی

6�I+.6�I+ ل ه%7 زی, 0/ج�%W; �:

//using concatentionto prevent long lines.

Class concat{

Public static void main(String args[]){

String longstr=”this coud have been”+

“a very long line that would have “+

“wrapped around.but string concatenation”+

“prevent this.”;

System.out.println(longstr);

}

}

اد>�م رش�5 ه� �� ا��اع داد� ه�! دی�)

6�I+ اد_%م ,rاع داد5 ه%7 دی/Aا % 6�A0/ا L; ه% را �E-ر.L0و%nE; %EX@A رش%rA ل%W; ان/IP � از

6�I+ ل �4  0/ج�%W;:

Int age = 9;

String s = “he is”+age+”years old.”;

System.out.println(s);

Page 251: Java farsi

Age ع/A از ,��TE; ل%W; Bدر ای int*ل �4  ا�%W; ن/�Oه ]R%Z Lا�* ا;% خ,وج .

� v/ر خ/د+%ر � ر-J; �E%دل  6X0ی[ ;�z/دage ;/ج/د در intزی,ا ;6iار .

�)ه�ا��<)اج '�را'

charAt()

,ا7 <ن +� +%را+E, وا76Z را از ی� String 6E; د5 از%nEا� % 6�I+ اج,?Eا� charAt 6�Aا/E�;

6�I+ �?z; را ,wA رد/; ,E+را%+ %O�iE@;.*رت زی, ا�/R � :\,م +�L <ن

Char charAt(int where)

Where*ا� ,wA رد/; ,E+6+3 +%راI6ار . ایi;wherez; و LnI; ,�_ 6ی%?� +L�m; 56II از

6-% �E-ر.charAt() ل%W; ان/IP � 6Aدا,r�; , +%را+m; ,E[ ;/رد wA, را

Char ch;

Ch=”abc”.charAt(1);

. L; ���?0 دهch6 را � ”6i;“bار

GetChars()

6�-% �E-دا ,E+از ی� +%را  � ا�nE%دE�;GetChars() 5/ا6�A از ;6E ,ا�A ,o%ز � ا�E?,اج

: +�L <ن � R/رت زی, ا�*\,م.OA%ی�6

Void GetChars(int sourceStart,int sourceEnd,char target[],int

targetStart)

targetStart�E-6ا7 زی, رEه] ;56II+ �?z ایsourceEnd 34 3+6Iو,;56II+ �?z ای6I+3 ا

,ه%7 زی, ر-�E ;/رد BO�E;,wA +%را+E,از ایB رو.از<خ,یB +%را+E, زی, ر-�E ;/رد wA, ا�*

targetStart%0 sourceEnd-1د/ .خ/اه6

� و���� 6A,�o L; ه% در <ن ^,ار ,E+رای� ا7 +� +%را>target د/- L; �?z; . ط/,; 3+6Iای

�target 8 در�A �E-دن زی, ر,+ L�+ *Mج targetStart6- 6د +� . ار�%ل خ/اه/OA *^ی6 د%

,ا7 ذخ�,5 �%زtarget7<رای� L\%+ 56ازAا �%ی6 ,wA رد/; �E-ه%7 ;/ج/د در زی, ر ,E+را%+

6-%8رگ .

Page 252: Java farsi

,A%;� زی, �OP`,د GetChars()6ده L; ن%zA را :

Class getcharsDemo{

Public static void main(String args[]){

String s=”this is a demo of the getchars method.”;

Int start=10;

Int end=14;

Char buf[]=new char[end-start];

s. getChars(start,end,buf,0);

System.out.println(buf);

}

}

,A%;� در ذی[ zA%ن داد5 -56 ا�* Lخ,وج:

Demo

:�ی�5 رش�5 ه�

. 6Idی6E; B دارد +� ر-�E ه% ی% زی, ر-�E ه% را ;i%ی@� ;�`t+String 6IIس

equalsIgnoreCase(),equals()

�E-ا7 <ن +� 0@%و7 دو ر,\,م +�L <ن � R/رت زی, .ا�nE%دequals(6�I+ 5( را ,ر�6�I+ L از

:ا�*

Bolean equals(Object str)

Str �- string �- %��A%Id +%را+E, هJ\ . 7%%ل +i; 6E; 56II%ی@� ;�z/د String ا7 ا�* +�

LAاخ/ا,\ ]R%Z 6-%%-6I و u�0,0 -%ن 8�A ی`@%ن , خ/اهtrue6;/ج/د در ر-�E ه% ,ا

/د. 6E; ]R%Z رت/R Bدر _�, ایfalse د/Z,وف 8رگ و +/�d در i; B�Z%ی@� . خ/اه6

6A/- LOA Li�0 ی`@%ن.

6E; 6A/- Li�0 ی@� ی`@%ن%i; B�Z در �d/+8رگ و,ا7 <ن +� Z,وف

equalsIgnoreCase()6�Aا/? ی`@%ن a-z L; Li�0 هrI%م ;i%ی@� % ZA-Z,وف . را \,ا

6A/-. 6E; L�+ رت زی, ا�*\,م/R �:

Bolean equalsIgnoreCase(String str)

Page 253: Java farsi

Str �- String �- %R%Z[ ای8�A 6E; B در . \J%ل +i; 6E; 56II%ی@� ;L -/د stringا7 ا�* +�

.خ/اه6 /دfalse ودر _�, ایR B/رت Rtrue/رت ی`@%ن /دن +%را+E, ه% و zX�0,0%ن

Equals();��: = =در

; �+ 6�A6اهO%ن �A/o +� .دو nE; ]OP%وت اA>%م ;L ده6I "= =" و6Eequals() ,r�OP 1زم ا�*

6E; 6- 5ح داد,- B�4  از ای equals() �- ه%7 ;/ج/د در,E+را%+String �@ی%i; را ,wA رد/;

6I+ L;. ,r�OP "= =" از LA%@`ی �A/OA �دو LA%zA را ;i%ی@� ;�`z; %0 6I?� -/د +� ه, دو

.خ�,ی� -� ارج%ع دار6A ی%

compareTo()

� ه@6IEE ی% خ�,%z; �E-دور �`Iای BE@Aاو^%ت دا u�_6.اI+ LOA *ی%n+ . u0,; 7%ه �;%A,,ا7

. �%ز7 %ی6 E/ان z0?�� داد +� +6ام +%را+E`d/+ ,E, ;@%و7 ی% 8رEo, از;/رد 76J ا�*

L�4  از<ن ج%ی u�0,0,wAد+� از/z�; Li�0,rد ی �E-ازی� ر ,E`d/+ 7ا �E-6ر-% �E-دا.

ور-�E ا7 8رEo,ازی� ر-�E دیz�; Li�0 ,r/د+� ازu�0,0,wA 34 از<ن ج7%

�r,د.6E;compareTo() سt+string6م ;�6ه%<Aرراا%+ Bن داد5 -56 .ای%zA ]ن درذی> L�+ م,\

:ا�*

Int compraeto(string str)

Str ن%Oه string %i; �<�EA%ی@� ,o,دا56A .-/د \J%ل +i; 6E; 7 56II%ی@� ;string L ا7 ا�* +�

:-56 و� R/رت زی,L;,�@n0 -/د

,nRاز,E`d/+ :از,E`d/+ 6E; 56II+ ل%J\ �E-رstr*ا� .

,nRاز,Eo8ر8رEo,از: 6E; 56II+ ل%J\ �E-رstr*ا� .

,nR :6IE@ه,,ا �E-دور.

Compareto()د,�o L;,wAی@� در%i;وف را,Z L`d/+ و Lo8ر .�O�+ �\%ن ا�> � ا7 +�

.-56 ا�* % ی� Z,ف 8رگ -,وع -56 ا�*

6A/- �E-%rAدی56 ا%A �E-ی@� دور%i; م%rIوف ه,Z L`d/+و Lo8راز .اL; ,o خ/اه�6

comparetoIgnoreCase()6�I+ 5د%nEا� .

Page 254: Java farsi

Int compareToIgnoreCase(String str)

+� Z,وف 8رگ و+/�d ی`@%ن ا�* % ایn0 B%وت ()R%ZcompareTo[ ای6E; B ه�O/ن

6A/z�; Li�0.

��I! رش�5 ه��/

دو ;6E در اخ�E%ر0%ن ;o L¡ارد +� % ا�nE%د5 از <ن ه% ;L 0/ا6�A ه, ر-�E را ,اt+String 7س

6�I+ /<E@ج ,wA ه%7 ;/رد ,E+ی% +%را ,E+را%+:

indexOf() : I+ L; /<E@را ج �E-ی% زی, ر ,E+از ی� +%را �A/OA B�E@?A6.

lastIndexOf() : 6I+ L; /<E@را ج �E-ی% زی, ر ,E+از ی� +%را �A/OA Bخ,ی>.

£�E?; 6 روشId � 6E; دو Bایoverload6Aی% . -56 ا ,E+ز +%را%_> ]m; 3+6Iم ;/ارد ای%O0 در

. در R/رت 6Pم ;/\o,XE�i,داL; 56A -/د1-زی, ر-�E در R/رت ;/\�i* و

,ا7 ای�A/OA B�E@?A �`I از ی� 6�I+ /<E@را ج ,E+ی�6, +%را%OA 5د%nEاز \,م زی, ا�:

Int indexOf(int ch)

6�I+ /<E@را ج ,E+از ی� +%را �A/OA Bا7 <ن +� <خ,ی, :از \,م زی, ا�nE%دOA 5%ی�6,

Int lastIndexOf(int ch)

Chد/- L; /<E@7 ا�* +� ج,E+را%+ .

6,ا7 <ن +� B�E@?A ی% <خ,ی�A/OA B از ی� زی, ر-�E ر�I+ /<E@د5 , ا ج%nEاز \,م ه%7 زی, ا�

:OA%ی�6

Int indexOf(String str)

Int lastIndexOf(String str)

Str*ا� ,wA رد/; �E-56 زی, رII+ �?z; .

6�I+ �?z; را /<E@ز ج%_> �giA 6�A0/ا L; ,د5 از \,م ه%7 زی%nEا� %:

Int indexOf(int ch,int startIndex)

Int lastIndexOf(int ch,int startIndex)

Int indexOf(String str,int startIndex)

Int lastIndexOf(String str,int startIndex)

Page 255: Java farsi

startIndex*ا� /<E@ز ج%_> ]m; 3+6I56 ایII+ �?z; . 6E; در /<E@جindexOf() Bاز ای

6 <_%ز ;8�A startIndex L ج@E>/ از ()lastIndexOfدر ;6E .ای6I+3 0% اخ, ر-�E ادا;� ;L ی%

.-/د

//Demonstrate indexOf() and lastIndexOf()

Class indexofdemo{

Public static void main(String args[]){

String s=”now is the time for all good men “+

“to come to the aid of their country.”;

System.out.println(s);

System.out.println(“indexOf(t)=”+s.indexOf(‘t’));

System.out.println(“indexOf(the)=”+s.indexOf(“the”));

System.out.println(“lastIndexOf(the)=”+s.lastIndexOf(“the”));

System.out.println(“indexOf(t,10)=”+s.indexOf(‘t’,10));

System.out.println(“lastIndexOf(t,60)=”+s.lastIndexOf(‘t’,60));

System.out.println(“indexOf(the,10)=”+s.indexOf(“the”,10));

System.out.println(“lastIndexOf(the,60)=”+s.lastIndexOf(“the”,60));

}

}

:خ,وجR%Z L[ از اج,ا7 ,A%;� در زی, zA%ن داد5 -56 ا�*

Now is the time for all good men to come to the aid of their country.

indexOf(t)=7

lastIndexOf(t)=65

indexOf(the)=7

last indexOf(the)=55

indexOf(t,10)=11

lastIndexOf(t,60)=55

indexOf(the,10)=44

lastIndexOf(the,60)=55

تt--)رش�5 ه�

?/اه�6 ی�dstring/ن -� ه7% 5%o,6 هIE@4¡ی,ه%A ,��T0 stringA> *@ی%X�; 6ده� ,���T0 ا را,

�StringBuffer %ی StringBuilder6�I+ 5د%nE6ه%7 زی, ا�E;از L`6 وی% از ی�I+ L�+

Page 256: Java farsi

Substring

:\,م A?@*.ای6E; B دو \,م دارد.ا�nE%د5 ازایL; 6E; B 0/ا6�A ی� زی,ر-�E را ا�E?,اج OA%ی��6�

String substring(int startIndex)

startIndex ; را �E-وع زی,ر,- ]m; 3+6I6 ایI`�; �?z. 7ا �EÇ-6زی,رE;م از,\ Bای ]R%Z

]m; ا�* +� ازstartIndex6 . <_%زو0%اMEA%7 ر-�E ادا;� ;��%

.\,م دوم 8�A ا;`%ن ;z?� +,دن ای6I+3 ا6EاواMEA%7 زی,ر-�E را \,اه] ;�@%زد

Strng substring(int startIndex,int endIndex)

startIndex6ا وE . ;�giA 56II+ �?z اMEA%یL ا�*56II+ �?z; endIndex ای6I+3 ا

ÇÇ% یsubstring �ÇÇدر ,�ÇÇ;%A زیÇÇ, از �EÇÇ-زی,ر �ÇÇ7 ی%ÇÇه �ÇÇA/OA م%ÇÇO0 دن,ÇÇ+ B8یrی%ÇÇا7 ج,ÇÇ

.زی,ر-�E دیr,ا�nE%دL; 5 -/د

//substring replacement.

Class stringreplace{

Public static void main(string args[]){

String org = "This is atest.This is,too.";

string search = "is";

string sub = "was";

string result = " ";

int I;

do {

System.out.println(org);

I = org.indexof(search);

if(I != -1)

{

result = org.substring(0,I) ;

result = result + sub;

result = result + org.substring(I + search.length());

Org = result;

}

}

While (I != -1);

}

Page 257: Java farsi

}

Lخ,وج:

This is a test.This is,too.

Thwas is a test.This is,too.

Thwas is a test.This is,too.

Thwas is a test.Thwas is,too.

Thwas is a test.Thwas is,too.

Concat()

6�A0/ا L; دو �O+ � . ای6E; B اد_%م +6�Iر-�E را

String concat(string str)

�Ç <ن strایuX� 6E; B ای>%د -� ج6یL; 76 -/د+� Z%و7 ر-J\ �E%ل +6E; 56II ا�* +ÇEm; �Ç/ا7

ÇIP �Ç/ان ;ÇW%ل ÇXP%رت زیuXÇ� ,Ç ذخ�Ç,5 .رااA>%م ;L دهconcat() ]OP " + " 6.ا�%\� ;L -/د

. ;L -/دs2در" onetwo"-6ن

String s1 = "one"

String s2 = s1.cotcat("two");

Replace()

6E; Bدو \,م دارد ای

*@?A م,\ : L; B8یrج%ی,r7 دی,E+را%+ % 6E; 56II+ ل%J\ �E-در ر ,E+ه%7 ی� +%را �A/OA م%O0

6A/-.

String replace(char original,char replacement)

Original %ÇÇÇ �ÇÇÇ+ د/ÇÇÇ- B8یrی%ÇÇÇ7 ج,E+را%ÇÇÇ+ ���ÇÇÇ�/ 6ÇÇÇی% �ÇÇÇ+ *ÇÇÇ7 ا�,E+را%ÇÇÇ+ 56ÇÇÇII+ �?ÇÇÇz;

replacement د/Ç- LÇÇ; 56ÇAدا,o, ]ÇR%Z �EÇ-در/- LÇ; �?Çz; . ,ÇÇرت زی%ÇXP ل%ÇW; ان/ÇIP �Ç

. ;�z/دsدر " uX�"Heww ذخ�,5

String a = "Hello".replace('1','w');

% ی� �,7 دیr, ج%ی8rیL; B -/د ,E+6 ی� �,7 +%راE; Bای ,rدر \,م دی.

String replace(Charsequense original,Charsequese replacement)

Trim()

Page 258: Java farsi

Lی%ÇMEAوا L6ایÇEایA 6E; B@?� ا7 از ر-J\ �E%ل +56II خÇ/درا ,;o LÇ,داÇO0 �Ç+ 6ÇA%م \%��ÇR هÇ%7 ا

6Aف -56 ا¡Z از<ن.

String trim()

:;W%ل

String s = "Hello world".trim();

�E-ر u�0,0 B6ی "Hello world " درsد,�o L; ار,^ .

()valueofز ت�%ی; داد� ه� �� ا��A�د� ا

6I+ L; ]6یX0 %Aم خ/ا,\ �ای6E; B ی� ;6E ای@E% �* +� .ای6E; Bداد5 ه%را از \,;* داخ�L خ/د-%ن

,ا7 اA/اع داد5 ه�E?; 7%£ ج%وا string در +tس overload � LE6ر� -56 ا�* z;%O0 %0%ن

6I- %[ 6X0ی[ %^ �E-ی� ر.valueofع/A 7ا, object 8�A overload56- ,ا�* 0% -� ه%7 ه

6I-%[ ا�nE%د5 %^ 6E; Bن ای%;/oان <ر/IP � L�t+

6Id \,م ای6E; Bدرزی,zA%ن داد5 -56 ا�*

static String valueOf(double num)

static String valueOf(long num)

static String valueOf(Object ob)

static String valueOf(char chars[])

valueof() rIد ه/- L; 56Aاخ/ا,\ ,rاع داده%7 دی/Aا7 ا �E-ی  ر%OA �ÇIP �Ç/ان ;ÇW%ل -%م �A%ز

% ه, A/ع داد5 ا7 \,ا خ/اÇ- L; 56A/دو ÇR%Z[ .در ��OP Lv%ت اد_%م داد5 ه%�* %O�iE@; 6E; Bای

ÇOA �Ç%ی  ر-�EÇ اÇJ; 7%دل . �A/o <رA%;/o  ا�* string<ن OA 8�A%ی  �Çاع داد5 ه%7 4%ی/Aم ا%O0

-� tostring ار�%ل ;�z/د �EA>� \,اخ/اvalueof 6E; LAه, -� +� � .6X0ی[ ;6A/- Lخ/د-%ن

6Aدا,o L;, را

Valueof() LP/ÇA 6Çده LÇ; ن%ÇzA �Ç+6Aدا,o LÇ;,,ا7 �Ez, <رای� ه% ر-Ç;,; %EXÇ@A �E/ز7 را

%7 ای>%د ;�`Ç- �Ç+ 6I%;[ +%را+E,هstring Ç ی� -� charا;% در ;/رد <رای� هA 7%/ع .<رای� ا�*

. ا�* char;/ج/ددر<رای�

6E; Bای L�+ م,\:

static String valueOf (char chars[],int startIndex,int numchars)

Page 259: Java farsi

chars6ÇÇÇAدر<ن ^,اردار %ÇÇÇه,E+را%+ �ÇÇÇ+ *ÇÇÇ@ای �ÇÇÇرای> startIndex �ÇÇÇ6+3 <رایÇÇÇI56 ایÇÇÇII+ �?ÇÇÇz;

v 8�A/ل ر-�E را numchars+%را+E, ه%یL ا�* +� زی,ر-�E ;/رد wA, از <A>% <_%ز ;L -/دو

6I+ L; �?z;.

5� تt--) '�چp+ و�]ر*+ '�را'�)ه� در ی© رش

6E;tolowercase() 6I+ L; ]6یX0 �d/+ وف,Z � . O0%م Z,وف 8رگ ی� ر-�E را

6E;toUppercase() 6ÇI+ L; ]6یX0 8رگO0 . 7,Ç��T0%م Z,وف +/�d ی� ر-�E را � Z,وف

OA 5داد L\,Z ,�_ 7%ه,E+ددر +%را/- L.

:\,م هL�+ 7% ای6E; Bه%

String tolowerCase()

String toUpperCase()

:در ;W%ل زی, از ه, دو;6Eا�nE%د5 -56 ا�*

//demonstrate toUppercase() and tolowercase().

Class changecase{

Public static void main(string args[]){

String s = "This is a test";

System.out.println( "original: " + s);

String upper = s.toUppercase();

String lower = s.tolowercase();

System.out.println("Uppercase: " + upper);

System.out.println("Lowercase: " + lower);

}

}

Lخ,وج:

Original: This is a test.

Uppercase: THIS IS A TEST.

Lowercase: this is a test.

Page 260: Java farsi

�% دی�) %� string'1س چ

Int codepointAt (int i) *Ç�J^/; 6Ç+ LA/Çی *Ç�A/4 6Ç+ ، i 6ÇAدا,o LÇ;,/����Ç . را J2SE 5

. ا�%\� -56 ا�*

intcodePointBefore (int i) از  �Ç4 *Ç�J^/; 6+ LA/ی *�A/4 6+ ، i 6ÇAدا,o LÇ;,/����Ç . را

J2SE 5*ا�%\� -56 ا� .

Int codepointCount(int start,int end) B� end-1 و6J0 ، startاد +�A/46* ه%7 ;/ج/ددر

6,;o L,داString6Aرادر E; 56II+ ل%J\ ����/J2SE 5*ا�%\� -56 ا� .

Boolean contains(CharSequense ,str) �EÇ-ر �Ç�A%Id ، str د/Ç6 وجÇE; 56ÇII+ ل%ÇJ\ �Ç-در

%-ÇR%Z 6Ç[ <ن �EÇ-دا true ÇR Bای,Ç�_رت ودر/false د/6Çخ/اه . ���Ç�/J2SE 5 56Ç- �\%Çا�

.ا�*

Boolean contentEquals(Charsequense str) �EÇ-ر %Ç 6ÇE; 56ÇII+ ل%J\ �E-ر ��A%Id ، str

6/د falseودر_�Ç,ایÇR B/رت true ی`@%ن %-ÇR%Z 6Ç[ <ن Çخ/اه . ���Ç�/J2SE 5 56Ç- �\%Çا�

.ا�*

StringBuffer

,StringBuffer LÇÇ�t+ ,ÇÇ�wA string ر7 از%�ÇÇ@ �ÇÇ+ *ÇÇا� �ÇÇل%XAرا دارد و د %ÇÇه �EÇÇ-ر *ÇÇ��%^

[ در. +%را+E,ه% % v/ل ث%* ا�* A,��T0%4¡ی,7 از %i;StringBuffer ]Ç OA%یrA%Ç, دXA%ل�Ç ا7 ^%

+%را+E,ه%�* +%را+E,ه% و زی, ر-�EÇ هÇ%یL را ;�ÇE/ان �ÇA%�; �Ç یÇ% اÇMEA%7 ر-6 و ^%[ BE-/A از

StringBuffer د/OA �\%ا�.StringBuffer Bا7 ای, L\%+ 7%�\ %0 6I+ L;6-رخ/د+%رر/v �

�Ç <ن اخÇ�E%ص و �A/o ا�%\%ت \,اه] -/د  �4%Çz�4 6Ç-%�Ç  از<�Ç�A 1زم Lه%ی,E+را%+ u�_ا

6-% �E-ا7 ر-6 وج/د دا, %�\ %0 6@�Ç%ر7 از . ی% %Ç;6 اI+ L; 5د%nEس زی%د ا�t+ ج%وا ازه, دو

% %MI0 ی@%ن/A �;%A, string,r�OPد5 ه% از%nEا� % Ç+ StringBuffer%ر Ç% "+" �,و+%ر دار6A و

� ج%وا واo¡ار ;�`6II درz4* 4,د5 را.

Page 261: Java farsi

StringBuffer��ز�%� ه�!

StringBuffer()

StringBuffer(int size)

StringBuffer(String str)

StringBuffer(CharSequence char)

١�6,ا�7%ز56A �4  \,�`� \%^6 4%را;E, ا�* \�%I`�; 6ون 0?��� ;>6د رزرو. +,ا+E, را

6I`�; �?z; را,\%�L;/Ç <رLA%Ç;/o از ÇA/ع . دو;L ی� <رo/;%ن ازA/ع ��mR دارد+� ا6Aاز5

string ��Ç- �Ç6ار اول�Çi; �+ دارد stringbuffer 7ا,Ç %Ç�\ و �?Çz; 6ون �١ راÇ+Ç%را+E, را

6I`�; درخ. 0?��� ;>6د رزرو,\%,ا7 L�?z; ل/v LE^د و/zA *ا�/stringbuffer %�\

76 �١,ا7ÇIای,\ LA%Ç;ز,wA �giA ا +� 0?��� ;>6د از,d 6I+ L; LI�+%را+E,ا�%\L را �4 

� -O%ر;L <ی6 �I4,ه8ی . LÇ; �Çw\%Z 6نÇ- �Ç`0 6ÇId uXÇر ;`,ر�/Çv �Çه6Ç<; ���?0 B�I�Oد

,ا6Id 7 +%را+E,ا�%\6J0 Lاد 0?��� هstringbuffer 7%-/د %�\ LI�  �4 % Lل%OEZ6د ا<;

�char%زMd 7 56A%رم -�� ای>%د ;ÇZ �Ç+ 6ÇI+ LÇ%و7 ر-56Ç- �?Çz; 7 �EÇ در . را+%ه  ;L ده6

.خ/اه6 /د

Length(),capacity()

و­,\�ÇÇÇA> ]ÇÇÇ;%+ *ÇÇÇ,ا ازv,یlength() {ÇÇÇ را ;�ÇÇÇE/ان %;stringBuffer 6ÇÇÇE هÇÇÇ, ا6ÇÇÇAاز5 جÇÇÇ%ر7

6E;capacity() *رت زی,ا�/R � L�+ �6* <ورد \,م .

int length()

int capacity()

:;W%ل

//stringbuffer length vs.capacity

Class stringBufferDemo{

Public static void main(string args[]){

StringBuffer sb=new stringBuffer("Hello");

System.out.println("buffer = +sb");

System.out.println("length = "+sb.length());

System.out.println("capacity =" + sb.capacity());

}

Page 262: Java farsi

}

,ÇÇzA �ÇÇ;%A%ن LÇÇخ,وج �ÇÇ+ 6ÇÇ6ه�;stringbuffer LÇÇ0> 7%MÇÇ-ا7 4,داز,ÇÇ 7,EÇÇz� 7%ÇÇ�\ �ÇÇA/rd

6I`�; رزرو:

Buffer = Hello

Length = 5

Capacity = 21

d,ا ا�*٢١ا;% ­,\�* <ن. ا�*6i;ÜاردهL; L -/د v/ل <ن"Hello" هrI%م ای>%د % dsb/ن

g/ر خ/د+%ر� <ن ا�%\� ;�z/د�١+� \�% ,ا7 L\%ا�,E+را%+.

ensureCapacity()

Ç,اÇ+ 6ÇId 7%را+E, را 3Ç4 از ای>Ç%د %Ç�\ 6Çاه�/?�; ,oاstringbuffer 6Çده� ��Ç�?0  �4%Çz�4

6ا6ÇJ0 �Ç+ 6Ç�Aاد زیÇ%د7 از ر-�EÇ هÇ%7 . ا�nEÇ%دE�; ensureCapacity() 6Ç�I+ 5/ا6Ç�A از ]ÇX^ از ,Çoا

� +/�d را StringBuffer 6- 66 وا^� خ/اه�n; ,;ا Bا�%\� خ/اه�6 +,دای . �Ç 6E; Bای L�+ م,\

:R/رت زی,ا�*

Void ensureCapacituy(int capacity)

,Capacity6I`�; �?z;را,\% .ا6Aاز5

setLength()

,اA> 7`� ا6Aاز5 %\, -� ه7% StringBuffer6I+ �?z;از راsetLength 6ی�%OA 5د%nEم \ .ا�,

.+�L <ن � R/رت زی,ا�*

Void setLength(int len)

Len6I+ L; �?z; را ,\%%-6. ا6Aاز5 *XW; 6ی% .;6iار<ن

ÇÇ%\, ;/جÇÇ/د ا�ÇÇz�; �\%ÇÇ/د 7%ÇÇMEAا �ÇÇ LÇÇM0 7%ÇÇه,E+6 +%راÇÇ8ای  ;�6ه�ÇÇ\را ا,\%ÇÇ. و^LÇÇE ا6ÇÇAاز5

,oاsetLength() LAاز\,اخ/ا ]R%Z 76ارج%رi;از,E`d/+ 76ارi; % \,ا ?/اlength() 6�A را

,A%;� �%د5 . در <ن R/رت +%ر+E,ه%7 34 ازv/ل ج6ی6 از�B خ/اه6I ر\*setCharAtDemo

,ا7 +/0%5 +,دن ()setLengh در ^@O* زی, از stringBuffer6I`�; 5د%nEا�.

Page 263: Java farsi

charAt(),setCharAt()

Ç�6* <ورد ()charAtرا;L 0/ان ازv,ی} ;stringBuffer 6E � ار+%را+E,ه%7 ی� ;6iاره,ی .

ÇÇ% ا�nEÇÇ%د5 از . ÇÇ% ا�nEÇÇ%د5 از ÇÇ�6* <ورد setCharAt() ,ÇÇرا در ه ,E+6اره,+%راÇÇi; 6ÇÇAا/E�; 8ÇÇ�A

stringBuffer6�I+ B��J0 .*رت زی,ا�/R � :\,م +�L <ن

Char charAt(int where)

Void setCharAt(int where,char ch)

Where 7ا, charAt() ?Çz; را ,ÇwA رد/Ç; ,E+را%Ç+ 3+6I6 و ایÇI+ LÇ; �ch 6Ç6ار ج6یÇi;8�A

6I`�; �?z; را ,E+را%+where ,\%Ç 7%ÇMEA3 ازاÇ4 LÇ�m; 6ی%XA 6 و-% *XW; 6ی% 6E; در ه, دو

6I+ �?z; را.

:;W%ل

//Demonstrate charAt() and setCharAt().

Class setCharAtDemo{

Public static void main(String args[]){

StringBuffer sb=new StringBuffer("Hello");

System.out.println("buffer before = " + sb);

System.out.println("charAt(1) before= " + sb.charAt(1));

Sb.setCharAt(1,'i');

Sb.setLength(2);

System.out.println("buffer after = " + sb);

System.out.println("charAt(1) after= " + sb.charAt(1));

}

}

Lخ,وج:

Buffer before = Hello

charAt (1) before = e

buffer after = Hi

charAt (1)after = i

getchars()

ÇÇ,ا7 �ÇÇا7 از ی �EÇÇ-زی,ر �ÇÇ`A>stringBuffer 6ÇÇE; 6 ازÇÇ�I+ LÇÇ�+ 7ا �ÇÇرای> �ÇÇ ()getChrs را

:ا�nE%د6�I+ 5 \,م +�L <ن � R/رت زی, ا�*

Page 264: Java farsi

Void getChars(int sourceStart,int sourceEnd,char target[],int

targetStart)

sourceStart 6 وÇÇÇI+ LÇÇÇ; �?ÇÇÇz; را �EÇÇÇ-ر ,ÇÇÇ6ا7 زیÇÇÇE 8ÇÇÇ�A ایsourceEnd LÇÇÇ@+6I ای6ÇÇÇI+3 ا

�  از اMEA%7 زی,ر-�E ;/ردwA,ا�* 6Z6از5 ی� واAا � �+ 6I`�; �?z;را . �EÇ-ر ,Çزی LIJی

<رای� ا7 +� +%را+E,ه% . ر , خ/اهo 6,\* را دsourceStart %0 sourceEnd-1از+%را+E,ه7%

���ÇÇ�/ 6A/ÇÇ- LÇÇ; LÇÇ�+ ن> �Çtarget د/ÇÇ- LÇÇ; �?ÇÇz; . در �EÇÇ-ر ,ÇÇ6ن زیÇÇ- LÇÇ�+ ]ÇÇm; 3+6ÇIای

target {ی,v 8 از�A targetStart د/Ç- LÇ; ل%Çار� . �Çرای> �Ç+ د/ÇOA *Ç^6 دÇی%target 7ا,Ç 6Çی%

6-% �E-دا L\%+ 7%�\,wA ه%7 ;/رد,E+6اد +%راJ0 5,ذخ�.

Append()

6ÇÇE; append دل%ÇÇJ; �EÇÇ-ر ��ÇÇ- 7%ÇÇMEAا �ÇÇ\ÇÇJ%ل +stringBuffer 6ÇÇE; 56ÇÇII ه,ÇÇA/ع داد5 دیr,را

6I+ L; �\%رش . ا�%rA B6یId 6E; Bایoverload56 دارد- .

StringBuffer append(String str)

Stringbuffer append(int num)

StringBuffer append(Object obj)

String.valueOf() 7ا, *Ç�6 ی`%ی� 4%را;E,ه% \,اخ/اL; 56A -/د J; %0%دل ر-�E اÇMA> 7% را

خ/د ()O0append%م rA%ر-M%7 . ج%ر7 ا�%\� ;�z/د�EAStringBuffer>� ایB +%ر � -� . <ورد

6IAدا,o L;,6 ;8/ر� v/رزA>�,5 ا7 ه�O/ن . %\, را E; 7%M�Aد 0% \,اخ/ا/- L; uX� ,;ا Bای

:;W%ل زی, اA>%م -/د

//Demonstrate append().

Class appendDemo{

Public static void main(string args[]){

string s;

int a=42;

stringBuffer sb = new stringBuffer(40);

s = sb.append("a = ").append(a).append("i").tostring();

System.out.println(s);

}

Page 265: Java farsi

Lخ,وج:

a = 42!

6E;append() ,Ez� ,Çr�OP د5 از%nEÇم ا�%ÇrI7 "+" او^%ت ه%Çه �Ç- 7ا,Çstring LÇ; 56ÇAاخ/ا,\

� درstring �ÇA/OAج%وا ��T0,ات ;,/ط � �A/OA ه%7 ه, . -/د%Çz; ت%��OP � را g/ر خ/د+%ر

Ç,اÇ��T0 append() �Ç- 7, ;�6ه6Ç از ایBÇ رو ÇOP[ اد_Ç%م �ÇJ\ uXÇ%ل -6Çن stringBufferه7%

StringBuffer د/ÇÇz�; .ی%ÇÇ�;%+ 6ÇÇE; م%ÇÇ_اد ]ÇÇOP م%ÇÇ<A34 ازا,�tostring() ,ÇÇrدی �ÇÇX0,; �ÇÇرا ی

%0 6Aخ/ا L;ا,\StringBuffer * . 6X0ی[ +String 6I را � ی� ث%

� wA,ر�6 56���4 Lل/iJ;,�_ ]`- �% dstring,ا XA%ی6 ی� +tس . O0%م ایB +%ره% ;B`O ا�*

;b�Çm ز;Ç%ن اجÇ,ا7 جÇ%وا Ç� . %Ç* دا-*؟ 4%�½ ایÇ+  Ç�,4 B%رایL ا StringBufferهO%ن ر\E%ر

, A ,��T0%4¡ی, /دن -� ه7% [�Pstring6م ده%<A6 اA0/ا L; 7ز7 ه%7 زی%د%� �I�M .

Insert()

6E;insert() 6I+ L; درج ,rدی �E-را در ر �E-6 . ی� رE; Bایoverload ,Ç -56Ç ا�tÇP %EEÇو5

string ، %ه object و %Çه Charsequense Çاع داد5 ه/ÇAا %Çی,د ه¡Ç� 8Ç�A را �Ç8 . %7 4%یÇ�A 6ÇE; BÇای

ÇÇÇ% <ن ()append() String.valueOf,هÇÇÇ�O/ن �ÇÇÇ+ 7ا �EÇÇÇ-دل ر%ÇÇÇJ; وردن> *ÇÇÇ�6 را ÇÇÇ,ا7

6Aخ/ا L;56 -56 ا�* \,اAاخ/ا,\.

:ای6Id 6E; BیB \,م ;?�E£ دارد. درج ;L -/دStringBufferایB ر-�E ��3 در-�

StringBuffer insert(int index,String str)

StringBuffer insert(int index,char ch)

StringBuffer insert(int index,Object obj)

. ا�* +� ر-�E در <ن درج ;L -/دStringBufferایL�m; 56II+ �?z; 3+6I از -�

,A%;� زی,"like " B� :درج ;Java " 6I+ L"و" I"را

//Demonstrate insert().

Class insertDemo {

Public static void main(String args[]) {

StringBuffer sb = new StringBuffer("I Java!");

Sb.insert(2,"like");

System.out.println(sb);

Page 266: Java farsi

}

}

Lخ,وج:

I like Java!

Reverse()

: را;J`/س +E�;StringBuffer6�I/ا6�A +%را+E,ه%7 ه,-� ()reverse از % ا�nE%د5

StringBuffer reverse()

*ÇÇ56 ا�ÇÇ- ل%ÇÇار� LAا/ÇÇم \,اخ%ÇÇrIه �ÇÇ+ 6ÇÇAدا,r�;,,�ÇÇ;%A . ایÇÇ`J; �ÇÇ- 6ÇÇE; BÇÇ/س -56ÇÇ ا7 را

:زی,+%ر,د ای6E; B را zA%ن ;�6ه6

//Using reverse() to reverse astringBuffer.

Class ReverseDemo{

Public static void main(String args[]){

StringBuffer s = new StringBuffer("abcdef");

System.out.println(s);

s.reverse();

System.out.println(s);

}

}

Lخ,وج:

abcdef

fedcba

delete( ),deleteCharAt

%ا�nE%د5 ازایB دو ;E�; 6E/ا6�A +%را+E,ه7% StringBuffer6�I+ ف¡Zرا .

StringBuffer delete(int startIndex,int endIndex)

StringBuffer deleteCharAt(int loc)

6ÇÇE;delete() 6ÇÇI+ LÇÇ; ف¡ÇÇZ ان/ÇÇاخ,\ �ÇÇ-را از,E+را%ÇÇ+ 7,ÇÇ@`ی .startIndex 56ÇÇII+ �?ÇÇz;

56II+ �?z; 8�A ایendIndex �giA 3+6IایB�E@?A 3+6I +%را+E,7 ا�* +� %یZ 6¡ف -/د و

Page 267: Java farsi

%یÇÇÇZ 6ÇÇÇ¡ف -ÇÇÇ/د �ÇÇÇ+ *ÇÇÇ7 ا�,E+را%ÇÇÇ+ Bی,ÇÇÇ3 از <خÇÇÇ4 . 7%ÇÇÇه,E+رو +%را BÇÇÇاز ایstartIndex %ÇÇÇ0

startIndex-16A/z�; ف¡Z . �-StreingBufferد/- L; 56Aدا,o, ]R%Z .

6ÇÇE;deleteCharAt() *ÇÇ�J^/; د در/ÇÇÇج/; ,E+را%ÇÇÇ+ loc6ÇÇÇI+ LÇÇÇ; ف¡ÇÇÇZرا . �ÇÇÇ- 8ÇÇÇ�A 6ÇÇÇE; BÇÇای

StringBuffer6Aدا,o L;, . R%Z[ را

:;W%ل

//Demonstrate delete() and deletecharAt()

Class deleteDemo {

Public static void main(String args[]){

StringBuffer sb = new stringBuffer("This is a test");

Sb.delete(4,7);

System.out.println("After delete: " + sb);

}

}

Lخ,وج:

After delete: This is a test

After deletecharAt: his a test

Replace()

\ % 6E; LAاخ/ا,replace() /O<; 6�A0/ا L; �Ç- �Çرا در ی%Çه,E+ا7 از +%را �PStringBuffer

6�I` 7,rدی �P/O<; B8یrج%ی.

StringBuffer replace(int startIndex,int endIndex,String str)

� و����Ç ای6ÇI+3 هÇ%7 زی,ر-�E ا7 +� ج%ی8rیÇ- L; B/د startIndex,endIndex LÇ; �?Çz;

ادا;� دارد جÇ%ی8rی56endIndex-1 B و0% <_%ز - startIndex-/د از ایB رو زی,ر-�E ا7 +� از

,o,داstringbuffer L; 56A-� . ار�%ل ;L -/دstr ر-�E ج%ی8rیB ه] در. ;L -/د 8�A ]R%Z

.-/د

//Demonstrate replace()

Class replaceDemo{

Public static void main(String args[]){

stringbuffer sb = new stringbuffer("This is a test");

sb.replace(5,7,"was");

System.out.println("After replace: " + sb);

Page 268: Java farsi

}

}

Lخ,وج:

After replace: This was a test

Substring()

LAاخ/ا,\ %substring(),از ه LEO@^ 6�A0/ا L; stringBuffer6�6* <وریای6E; B در دو . را

:\,م ^%[ ا�nE%د5 ا�*

String substring (int startIndex)

Sting substring ( int startIndex,int endIndex)

BÇÇاز ای �ÇÇ+ 6ÇÇAدا,o LÇÇ;, <_%ز-56ÇÇ و ÇÇ0% اÇÇ\startIndex �ÇÇ- 7%ÇÇMEA,م ÇÇ@?A* زی,ر-�EÇÇ ا7 را

StringBuffer 6 startIndex\,م دوم 8Ç�A زیÇ, ر-�EÇ ا7 را o LÇ; ,Ç,دا�Ç+ 6ÇA از . ادا;� ;L ی%

%ÇÇ0 56 وÇÇ-ز%_>endIndex-16 ادÇÇÇÇ,ا7 . ا;LÇÇ; �ÇÇ ی% 56ÇÇ- £ÇÇی,J0 ارد/ÇÇ; ن/ÇÇ�Oه %ÇÇi�^6ه% دÇÇE; BÇÇای

string 6II+ L;ر%+ .

�% دی�) %� چ

stringbuffer ���Çو� �Ç %MA> از Lخ, tPو5 , ;6Eه7% ,ر�6E; 56- Lه%7 دی8�A 7,r دارد+�

J2SE6Aا\8ود5 -56 ا .

stringbuffer appendCodePoint(int ch) Ç� ا�Ç- 7%ÇMEA ا��A/4 6+ ، LÇ; �\%Ç* ی/LA +6را

6I+ . د/- LO6هAدا,o, �- LA%zA. و���� �J2SE 5*ا�%\� -56 ا� .

Int codePointAt(int i) ]m;6Ç+ LA/Çی *Ç�A/4 6Ç+ ، i 6ÇAدا,r�;,�Ç و����Ç . راJ2SE 5 �\%Çا�

.-56 ا�*

Int codepointBeffor (int start ,int end) B�Ç 7%ÇME�A/4 6Ç+ 6ادÇJ0 ، startوend-1 ر �Ç- ا

6Aدا,o L;,� و���� J2SE 5*ا�%\� -56 ا� .

Int indexOf(String str) ، StringBuffer از �ÇA/OA B�EÇ@?A BE\%Çا7 ی, ج@str LÇ; /<EÇ را

6I+. %6�4ا-56 وی ,E+6+3 +%راI16-ایAدا,o L; , *�i\/; 6مP رت/Rرادر .

Page 269: Java farsi

Int indexOf(String str,int startIndex)، StringBuffer را از startIndex-1 BE\%ا7 ی,

, 1-ای6I+3 +%را+E, 6�4ا-56 وی% . ج@�A/OA B�E@?Astr 6I+ L; /<E از *�i\/; 6مP رت/Rرادر

6Aدا,o L;.

Int lastIndexOf(String str) ، StringBuffer از �ÇA/OA Bی,Çخ> BE\%Çا7 ی,Ç ج@str /<EÇ را

6I+ L;. %6�4ا-56 وی ,E+6+3 +%راI1-ای�i\/; 6مP رت/R6 رادرAدا,o L; , *.

Int lastIndexOf(String str,int startIndex) ، StringBuffer را از startIndex-1 7ا,

را در ÇR/رت 6ÇPم 1-ایÇ+ 3+6I%را+6Ç�4 ,Eا -56Ç و یÇ% . ج@str 6I+ L; /<Eی%\BE <خ,ی�A/OA B از

6Aدا,o L; , *�i\/;.

Int offsetByCodepoints(int start,int num) 3+6Iای ، LÇ; ,;L�m از ر-�E \,اخ/ان را

�+ 6Aدا,onum 3+6I6 34 از ای+ start و���� � . ا�%\� -56 ا�* J2SE 5 ^,ار دارد

CharSequense subsequense(int startIndex,int stopIndex) �EÇÇ-ازر �EÇÇ-زی,ر ،

,;o LÇÇÇÇ,داstartIndex %ÇÇÇÇ0 stopIndex 6ÇÇÇÇA\,اخÇÇÇÇ/ان رااز . b ای6ÇÇÇÇE; BÇÇÇÇ;/رد ÇÇÇÇ�A%زرا

Charsequence ����/ �Iا�* +� ای StringBuffer*�4%د5 �%ز7 -56 ا� .

Void trimTosize()

. ا6Aاز5 Ç%\, +%را+E,هÇ% را Ç,ا�Ç- 7 \,اخÇ/ان +Ç%ه  ;LÇ ده6Çi; %Ç0 6Çار جÇ%ر7 در<ن جÇ�o 7%Ç,د

����/J2SE 5*ا�%\� -56 ا� .

Ç�_ �Ç,از subSequense() bÇÇ�4%دÇ� 5%ز6ÇI`�; 7 را Ç; 6ÇE; �Ç+ Charsequense/رد Ç�A%ز را

. \,اه] ;L �%زstringbuffer6A را ,ا6E;string 7ه%7 دیr, ا;`%ن ج@�A/OA 7/<E ا7 از ی�

6E; د دو,,A%;� زی, +%رindexOf()و lastIndexOf()6ن ;�6ه%zA را :

Class IndexOfDemo{

Static void main (String args[]){

stringBuffer sb = new StringBuffer (" one two one");

int I;

I = sb.indexof("one");

System.out.println("First indrx:" + 1);

I = sb.lastindexof("one");

System.out.println("Last indrx:" + 1);

Page 270: Java farsi

}

}

Lخ,وج:

First index: 0

Last index: 8

StringBuilder

J2SE 56 جIO0ه%7 ج%ر7 ^6ر *��%^ �%وا ,ا7 ;6ی,ی* ر-�E ه% ا\8ود5 ا�t+ *Çس ج6ی76 را

� . A%م دارد StringBuilderایt+ Bس ج6ی6 %z; سt+ BایStringBuffer وت%Çn0 ا�* ا;% ی�

;8یtÇÇÇ+ *ÇÇÇس . OÇÇÇ- �ÇÇÇ%ر LÇÇÇOA <یIÇÇÇ�safe" -"thread 6ÇÇÇ`,ون -56ÇÇÇ ا�ÇÇÇ* یÇÇÇM; : LÇÇÇIJ] دارد

StringBuilder *ا� ,Ez� Lاز . +%ر<ی �Ç+ 7ارد/Ç; ا;% درmultithreading 6Ç�I+ LÇ; 5د%nEÇا�

%ی@* � ج7% L;StringBuilderاز StringBuffer6�I+ 5د%nEا� .

Page 271: Java farsi

"رای5

در ج%وا ه, <رای� ا7 +� ای>%د ;�z/د ی� \��6 داد5 ا7 . <رای� در ج%وا % +tس �4%د5 �%زL; 7 -/د

� A%م lengthMrA 6از5 <رای� راA6 +� ا� v/ر خ/د +%ر L; ���?0 ی% 6I+ L; 7در <رای� . 6ار

,اv B��J0 7/ل <رای� از \��6 76Jایb�/0 6��\ B ج%وا ,ا7 -� . ا�nE%دL; 5 -/دlengthی�

,اv B��J0 7/ل و . <رای� ;wI/ر ;o L,دد 6��\ B�O0/ان از ه L; 8�A 76Jدر <رای� ه%7 دو

:د�E/ر زی, را P .6�I�X,ض <رای� ا�nE%د5 +,د

Int [] [] x = new int [4] [5];

• x.length 6I+ L; �?z; ه% را ,g� 6ادJ0 ،

• x[i].length,g� 7%ن ه/E� 6ادJ0 ، i 6I+ L; �?z; ام را ) ,g� 7%ن ه/E� 6ادJ0

6-%,ا, ال�EX در ایW; B%ل ی`@%ن و ، هL; £�E?; 7% 0/اnE; 6A%وت Ü*ا� (.

,A%;� ه%7 ج%وا � v/ر خ/د+%ر ا�%\� ^,ار دارد t+java.langس <رای� در 4`�¼ �Oدر ه �+

ا;% ,ا7 اA>%م +%ره%7 ا�%\L رو7 <رای� ه% ;L 0/ان از +tس ه%7 دی8�A 7,r ا�nE%دz�; . 5/د

.+,د

Arrays'1س

u0,; ]W; 6I+ L; [رو7 <رای� ه% \,اه ,ایt+ Bس ;LX�%I; ]m را ,ا7 اA>%م +%ره6E; 7%اول

,ر�L ;@%و7 /دن ;Em/ی%ت دو 4, +,دن R%IP, <رای� % ی� ;6iار ،�%زR %IP 7, <رای� ،

.ج@E>/ ی� ;6iار در <رای� و <رای�

^,ار دارد ، ,ا7 ا�nE%د5 از <ن XP%رت زی, � ا6Eا7 ,java.util �;%A در t+Arrays ¼�`4س

%ی6 ا�%\� -/د:

Import java.util.*;

.ه] ;6I+ L +� هrI%م +%ر % <رای� ه% ;6�n وا^� ;6E; 6A/- LهLA/o%A/o 7% را \,اt+Arraysس

Page 272: Java farsi

�% ه� :

• binarySearch(): 5د%nE56 ا�- �?z; 6ارi; ا7 6�4ا +,دن, L7 دودوی/<E@از ی� ج

6I+ L;.رود L; ر%+ � 56- u0,; 7%ا7 <رای� ه, 6E; Bرت زی, . ای/R �\,م +�L <ن

:ا�*

Static int binarySearch(type[] array,type key)

array ، د/- /<E@ی6 ج% ی� از 6i; typeار7 ا�* +� %ی6 6�4ا -/د ، key <رای� ا7 ا�* +�

[ ;i%ی@� %-��A%Idarray 6 . اA/اع داد5 اول�� ی% ا8EAاLP ا�*%^ ,�_ ,R%IP 7و%Z

)]W;StringBuffer ( ع/A %یkey ,R%IP ع/A % array� ,<I; 6E; LA6 \,اخ/ا-%XA ر%oز%�

7%IWEا�ClassCastException د/- L; . ��A%Idkey ,�IP 3+6I6 ای-% در <رای� ;/ج/د

,o,داL; 56A -/د �v/,;.

• equals(): 6I-%,o,داtrue L; 56Aدو <رای� را ;i%ی@� ;��A%Id 6I+ L دو <رای� ;J%دل

:\,م +�L <ن � R/رت زی, ا�*. -/د

Static Boolean equals(type array1[],type array2)

• fill(): 6ده L; ���?0 ج/د در <رای�/; ,R%IP م%O0 �\,م +�L <ن � دو .;6iار7 را

:R/رت زی, ا�*

static void fill(type array[],type value)

value ج/د در/; ,R%IP م%O0 � array6 . L; ���?0 ی%

static void fill(type array[],int from,int to,type value)

?Lz از <رای� را از ا6Aی3 from%0 to 6ارi; % value6I`�; ,4 .

• Sort() : 6I+ L; u0,; 7د/JR u�0,0 � :+� دو \,م دارد.ی� <رای� را

Static void sort(type array[])

Static void sort(type array[],int start,int end)

6I+ L; u0,; م دوم <ن د. \,م اول +[ <رای� را,\,R%IP از �E�array 56ودm; در �+ start %0

end-16I+ L; u0,; 6Aار دار,^ .

Page 273: Java farsi

Vector'1س

Vector6I+ L; 7در . ی� <رای� 4/ی% را �4%د5 �%ز �`� *@�A دار,در ,دار �A%ز � B��J0 ا6Aاز5

,ا7 ا\8ودن ، . R/رت ل8وم +/�d ی% 8رگ ;L -/د �+ 6Aس وج/د دارt+ Bدر ای L6ه%یE;

Lد%�E� , 6Iی> L; ر%+ � ^,ار java.util در t+Vector ¼�`4س . Z¡ف ودرج R%IP, در ,دار

%ی6 ا�%\� -/د,دارد �;%A,,ا7 ا�nE%د5 از <ن XP%رت زی, � ا6Eا7 :

Import java.util.*;

Vectorدارد Ln�E?; 7%56 هAز%� :

Vector()

Vector(int size)

Vector(int size,int incr)

,دار L�,\  �4 ای>%د ;6I+ L +� ا6Aاز5 اول�� <ن \, *@?A دار7 ای>%د . ا�*١٠م,\,م دوم

,دار7 ای>%د ;6I+ L +� \,م �/م . ;L; �?z -/د6I`�;size +� ا6Aاز5 اول�� <ن � و����

%;6iار 6I+ L; �?z; /OA +� ه, %ر . ;L; �?z -/دOAincr/ <ن % وsizeا6Aاز5 اول�� <ن

,دار 0?��� داد5 -/د� ه � ,�IP 6ادJ0 �d 56ازAم ا\8ای  ا%rI. L; را ,R%IP ع/A �EXال

�%ن +,د 1% 56Aز%� �� % :0/ان

Vector<type>()

Vector<type> (int size)

Vector<type> (int size,int incr)

�% ه�

• Void addElement(type element)

,دار ا�%\� ;�z/د ;element L; �?z-� ا7 +� � و���� � .-/د

• Int capacity()

6Aدا,o L;, .ا6Aاز5 ,دار را

• Boolean contains(Object element)

��A%Idelement 6-%,;o L,داtrue6A در ,دار .

• Type elementAt(int index)

6Aدا,o L; , .�IP, ;/ج/د در ;/^�J* ای6I+3 را

• Boolean isEmpty()

Lدار خ%ل, ��A%Id 6-% true6Aدا,o L; , .

Page 274: Java farsi

• Void removeAllElements()

6I+ L; Lدار را خ%ل, .34 از اج,ا6E; 7 ا6Aاز5 ,دار L; ,nR -/د .

• Boolean removeElement(Object element)

Element *�i\/; رت/R 6 درI+ L; ف¡Z دار,, ;o L,داtrue6A را از .

Stack'1س

Stack از L�t+ ,زیVectorا �Ez4 ی� �+ *�LIFO6I+ L; 76ارد را �4%د5 �%زA%Eا� . �

:R/رت زی, J0,ی£ ;L -/د

Class Stack<E>

Eد/- L; 5,ذخ� �Ez4 7 ا�* +� در,�IP ع/A 56II+ �?z; . Stack �+ L6 ه%یE; , tPو5

. J0,ی£ -56 ا6E; 6A ه%7 خ%ص خ/د را 8�A داردVectorدر

�%ه�

• Boolean empty()

4 ��A%Id 6-% Lخ%ل �Eztrue6Aدا,o L; , .

• E peek()

6I+ LOA ف¡Z 6ا;% <ن راAدا,o L;,�z4 71% را ,�IP.

• E pop()

6I+ L; ف¡Z 6و <ن راAدا,o L;,�z4 71% را ,�IP.

• E push(E element)

Element6I+ L; �\%ا� �Ez4 � . را

• Int search(Object element)

Element�; /<E@ج �Ez4 رادر L; 56Aدا,o, �Ez4 71% � *X@A 6�4ا -/د ا\@* <ن ��A%Id 6I`

, ;o L,دا16A-در _�, ایR B/رت . -/د .

Page 275: Java farsi

,ا7 �4%د5 �%ز7 اA/اع �%خOE%ن داد5 ه% دارد Ln�E?; 7%س هt+ ج%وا.

• ArrayList

• LinkedList

• HashSet

• LinkedHashSet

• TreeSet

• PriorityQueue

• …

Page 276: Java farsi

ه�2�ی;

&)و/+/ورود!

6IE@�A BE; , LIEX; Lل/@I+ 7%ه �;%A,,A%;� ه%7 +%ر,د7 وا^LJ ج%وا ,Ez��`� در P/ض .

, ,,ا7 ,^,ار7 ارX0%ط % +%ر �+ 6IE@ه Lای,o ��\ا,o 7%ه �;%A,AWT(Abstract

Window Toolkit) %ی Swing6Aج%وا ا0`% دار .,, ;BE از +%ر LIEX; 7%ه �;%A, [M; 7%ده

6Iی> LOA ر%O- � LJ^ج%وا از . ج%وا در+%ره%7 وا LA%X�Ez4I/O د5 از%nEد5 وا�/ +I@/ل6m; Lود

, ;BE در LEZI/O در ,A%;� ه�A/OA 7% �%د5 .<ن 8�A ^6رz; 7`[ �%ز ا�* LIEX; Lل/@I+

*@�A [M; 6انId ز7 ج%وا%� �;%A,.`X-ی[ ه% و%\ % �g� ه% ا;`%A%ت ا;% در Z B�P%ل ج%وا در را

. ج%وا LrE�/�4 LP/A و ی`�%رLrd داردE@��I/O] . داردI/O^/7 و اgJA%ف 4¡ی,7 ,ا7

ا��)ی� ه�

,A%;� ه%7 ج%وا ��OP%ت I/O6Iم ;�6ه%<Aی] ه% ا,Eی} ا�,v را از . Lmg� [ی,Eر از ا�/wI;

6I`�; ت را 0/ل�6 ی% ;�,ف%Ptvا�* +� ا LP8اEAا. [E@�� و���� � ج%وا � ی� I/Oه, ا�E,ی]

O0%م ا�E,ی] ه% � ی� -`[ LEZ 6II+ L; ]OP اo,و�%ی[ \�8ی`L .و���� z�; bX0,; L+8�\ 7/د

6I-%% <nE; %MA%وت bX0,;. 7%6هE;س ه% وt+ رو Bاز ایI/O ع/A ,ا7 ه, ی`@%LA را ;�E/ان

� ایIJ; B%�* +� ه, ا�E,ی] ورودE�; 7/ا6A اA/اع ;?�E£.و���� � +%ر,د Bزی%د7 از ورود7 ای

هv B�O/ر ه, .�mnR +��6 ی% �/+LE از -X`�,\%ی�L از ی� دی@� :ه% را از ی� دیr,;>8ا �%زد

6-% bX0,; �`X- از ی� دی@� ی% ا�0%ل Lل \%ی�/@I+ %ا�E,ی] .ا�E,ی] خ,وجB`O; 8�A L ا�*

,ا7 ;6ی,ی* L\%n- ه% روشI/O*O@^ از Lه%o> �� -O%ر;L <ی6Iو دی�A ,r%ز7 £�E?; 7%ه

*@�A �`X- 6 و��+ �mnR ی� B�� n0%وت *X@A �;%A,ج%وا ا�E,ی] ه% را در +tس ه7% .

. �4%د5 �%زJ0java.io6I+ L; 7,ی£ -56 در 4`�¼

!(� ا��)ی� ه�! ��ی�+ و '�را'

Page 277: Java farsi

ا�E,ی] ه7% %یLE روش ;LX�%I را .%یLE و +%را+E,7: دو A/ع ا�E,ی] در ج%وا J0,ی£ -56 ا�*

� IP/ان ;W%ل از ایB ا�E,ی] ه% ,ا7 خ/ا6Aن ی% . داد5 ه7% %یLE \,اه] ;�@%زدI/O ;6ی,ی* ,ا7

,ا7 ;6ی,ی* . BE-/A داد5 ه7% %یI,7 ا�nE%دL; 5 -/د LX�%I; 7 روش,E+ی] ه%7 +%را,Eا�I/O

6Aا �Eه% \,اه] �%خ,E+0/ا. +%را L; Bای,%I,ا7 ایB ا��E] ه% از ی/LA +6 ا�nE%د6II+ L; 5 و 6IA

6A,�o د5 ^,ار%nEرد ا�/; L��Oال B�ایB ا�E,ی] ه% در ,خL از ;/ارد +%را;6 0, .اA/اع ز%ن ه7%

6IE@ه LEی% .از ا�E,ی] ه7%

/د6A و از ایB رو O0%م ��OP%ت (1.0)ا�E,ی] ه%7 +%را+E,7 در rA%رش A?@* ج%وا 56zA £ی,J0

I/O6Aد/� ج. %ی* o,ا 7,E+ی] ه%7 +%را,Eس 1.1%واا�t+ 6 ه% وE; از Lخ, ا\8ود6A6- 5 و

6A6- �E-ا¡o ر%I+ ا,o *ی%� هB�O دل�[ ا�* +� ,A%;� ه%7 ^6یLO +� از ا�E,ی] ه%7 .ه7%

6A/- 56A%روز ر� �%ی@* جM* ا�nE%د5 از <ن ه% L; 6II+ LOA 5د%nE7 ا�,E+را%+.

�5 دی�)p� : ت%��OP م%O0I/O �g� B0,ی Bز ه] در 4%ی�/I6 هIE@ا ه,o *ی%. , LIEX; 7%ی] ه,Eا�

.+%را+R ,E,\% روش ;u�%I و +%را;76 ,ا7 ;6ی,ی* +%را+E, ه% \,اه] ;L �%زد

+� '1س ه�! ا��)ی� ه�! ��ی

6Aی£ -56 ا,J0 %س هt+ LX0ر ��@�� ;,ا%Eو���� دو -%خ� از �%خ � LEی%دو +tس .ا�E,ی] ه7%

ه, ی� . Outputstream,Inputstream:% ^,ار دار6Aا8EAاLP در %1 0,ی�g� B ایt+ Bس ه

;?�E£ از جI/O ��Oاز ایt+ Bس ه%7 ا8EAا6Id LPیB زی, +tس دارn0 �+ 6A%وت ه7% �B و�%ی[

%\,ه�w\%Z 7% را ;6ی,ی* ;6II+ L, \%ی[ ه%7 رو7 دی@� ه% LEZو �`X- از .ا�0%1ت Lخ,

L; ار,^ Lر�,,ا7 ا�nE%د5 از .6A,�oایt+ Bس ه% در ایO@^ B* ;/رد �+ 6�-% �E-دا ,v%خ �

. را وارد +t+java.io6�Iس ه%7 ا�E,ی] ه% %ی6 4`�¼

LP8اEAس اt+ در دو Outputstream,Inputstream � �+6Aی£ -56 ا,J0 76��+ 6E; B6یId

6A/- L; 7�4%د5 �%ز ,rس ه%7 دیt+ 6 ه% .و����E; Bای Bی,EOM;وread(),write() 6IE@ه �+

6A/- L; 5د,%ی* ه%یL از داد5 ه% � +%ر BE-/A 6ن وAا7 خ/ا,. LP8اEAرت ا/R � 6E; ه, دو

ای6E; B ه% � و���� زی, +tس ه% . J0,ی£ -56 اOutputstream,Inputstream 6Aدر

override6A/- L; .

Page 278: Java farsi

+� :'1س ه�! ا��)ی� ه�! ��ی

BufferedInputStream : 56- ,\% .ا�E,ی] ورود7

BufferedOutputStream : 56- ,\% Lی] خ,وج,Eا�.

ByteArrayInputStream: 6Aخ/ا L; LEی% .ا�E,ی] ورود7 +� از ی� <رای�

ByteArrayOutputStream : 6@ی/A L; در ی� <رای� �+ Lی] خ,وج,Eا�.

DataInputStream : %6ارد جA%Eاع داد5 ه%7 ا�/A6ن اAا7 خ/ا, L6ه%یE; �+ 7ی] ورود,Eوا ا�

.دارد

DataOutputStream : 6ارد ج%واA%Eاع داد5 ه%7 ا�/Aا BE-/A 7ا, L6ه%یE; �+ Lی] خ,وج,Eا�

.دارد

FileInputStream: 6Aخ/ا L; ]ی] ورود7 +� از ی� \%ی,Eا�.

FileOutputStream: 6@ی/A L; ]در ی� \%ی �+ Lی] خ,وج,Eا�.

FilterInputStream : InputstreamL; 76 را �4%د5 �%زI+ .

FilterOutputStream :Outputstream6I+ L; 7را �4%د5 �%ز .

InputStream : 6I+ L; ی�,z0 ی] ورود7 را,Eا� �+ LP8اEAس اt+.

ObjectInputStream : %ا7 -� ه, .ا�E,ی] ورود7

ObjectOutputStream : %ا7 -� ه, Lی] خ,وج,Eا�.

OutputStream: Lی] خ,وج,Eا� �+ LP8اEAس اt+6I+ L; ی�,z0 را.

PipedInputStream: 7ورود Ï4%ی.

PipedOutputStream : Lخ,وج Ï4%ی.

PrintStream : BO�E; Lی] خ,وج,Eا�print(),println().

PushbackInputStream : ی] ورود7 +� از,Eا�unget6I+ L; LA%X�Ez4 LEی%ی� %ی* . �0

6Aدا,o L; , .را � ا�E,ی] ورود7

RandomAccessFile: ازI/O6I+ L; LA%X�Ez4 ]در \%ی L\�0%د .

SequenceInputStream : ر/v �ا�E,ی] ورودLX�+,0 �+ 7 از دو ا�E,ی] ورود7 ا�* +�

6A/- L; 56A7 خ/ا,r34 از دی L`و ی Lال/E;.

Page 279: Java farsi

!(� '1س ه�! ا��)ی� ه�! '�را'

� و���� دو -%خ� از ��@�� ;,اt+ LX0س ه% 7,E+ی] ه%7 +%را,E6ا�Aی£ -56 ا,J0. سt+ دو

6Aس ه% ^,ار دارt+ Bای �g� B01,ی%ایt+ Bس ه%7 ا8EAاReader,Writer. LP:ا8EAاLP در

ا�E,ی] ه%7 +%را+E,7 ی/LA +6 را ;6ی,ی* ;6Id6II+ LیB زی, +tس از ه, ی� از ایB دو +tس

6A56 ا- {Ez; 7 در زی, ذ+, -56 ا .در ج%وا,E+ی] ه%7 +%را,Eس ه%7 ا�t+6A. 76��+ 6E; B6یId

LP8اEAس اt+ در دوReader,Writer 7�4%د5 �%ز ,rس ه%7 دیt+ و���� � �+ 6Aی£ -56 ا,J0

6A/z�;. %6 هE; Bای Bی,EOM;وread(),write() از Lه%ی ,E+را%+ BE-/A 6ن وAا7 خ/ا, �+ 6IE@ه

6A/- L; 5د, . ;override6A/- Lای6E; B ه% � و���� زی, +tس ه% .داد5 ه% � +%ر

ا��)ی� '�را'�)!I/O'1س ه�!

BuffereReader : 56- ,\% .ا�E,ی] +%را+E,7 ورود7

BufferedWriter : 56- ,\% L7 خ,وج,E+ی] +%را,Eا�.

CharArrayReader: 6Aخ/ا L; 7,E+ی] ورود7 +� از ی� <رای� +%را,Eا�.

CharArrayWriter : در ی� <رای� �+ Lی] خ,وج,Eی@6+%را ا�/A L; 7,E+.

FileReader: 6Aخ/ا L; ]ی] ورود7 +� از ی� \%ی,Eا�.

FileWriter: 6@ی/A L; ]در ی� \%ی �+ Lی] خ,وج,Eا�.

FilterReader : 56- ,E��\ 7ی] ورود,Eا�.

FilterWriter :56- ,E��\ Lی] خ,وج,Eا�.

InputStreamReader : ]6یX0 %ه ,E+را%+ � . ;6I+ Lا�E,ی] ورود7 +� %ی* ه% را

LineNumberreader: 6I+ L; رش%O- ه% را ,g� �+ 7ی] ورود,Eا�.

OutputStreamWriter: :6I+ L; ]6یX0 %ی* ه% .ا�E,ی] خ,وجL +� +%را+E,ه% را

PipedReader: 7ورود Ï4%ی.

PipedWriter : Lخ,وج Ï4%ی.

PrintWriter : BO�E; Lی] خ,وج,Eا�print(),println().

PushbackReader : ی] ورود7 را,Eا� �ا�E,ی] ورود7 +� ا;`%ن %زo,دا6Aن +%را+E, ه%

.\,اه] ;L �%زد

Page 280: Java farsi

Reader: 6I+ L; £ی,J0 7 را,E+ی] ه%7 ورود7 +%را,Eا� �+ LP8اEAس اt+.

StringReader : 6Aخ/ا L; �E-ی] ورود7 +� از ی� ر,Eا�.

StringWriter : : 6@ی/A L; �E-در ی� ر �+ Lی] خ,وج,Eا�.

Writer: 6I+ L; £ی,J0 7 را,E+را%+ Lی] ه%7 خ,وج,Eا� �+ LP8اEAس اt+.

ا��)ی� ه�! از پ-G ت\)ی� ش%�

را � v/ر خ/د +%ر وارد ;java.lang LهO%ن L; �+ �A/o داO0 6�A%م ,A%;� ه%7 ج%وا 4`�¼

6II+. م%A � L�t+ ¼�`4 Bدر ایSystemاز Ln�E?; 7%ه �XIی£ -56 ا�* +� ج,J0 ز;%ن b�m;

6I+ L; ن%MA 6 ز;%ن . اج,ا را�A0/ا L; سt+ B6 ه%7 ایE; از Lخ,� IP/ان ;W%ل % ا�nE%د5 از

�� ;��TE, ا�E,ی] از �4  .ج%ر7 و O�wI0%ت خ�/�R%ت ;,/ط � ��@E] را � د�* <وری6

ایB \��6 ه% � R/رت ای@E% و .err,out,in: وج/د داردJ0System,ی£ -8�A 56 در +tس

. J0,ی£ -56 اL;/OPSystem6A در

System.out6ارد ارج%ع داردA%Eا� Lی] خ,وج,Eا� �ایB ا�E,ی] Xv} �4  \,ض هO%ن +I@/ل .

� ورود7 ا�6A%Eارد ارج%ع دارد +� Xv} �4  \,ض System.in 6��+ �mnR.ا�* 8�A

ض +I@/ل ه] � ا�E,ی] خg%ه%7 ا�6A%Eارد ارج%ع دارد +� System.err,\  �4 {Xv.ا�*

. �%زo%ر دیr,7 ه6ای* OA/دI/Oا;% ایB ا�E,ی] ه% را ;L 0/ان � ه, و���� .ا�*

System.in ع/A ا7 از �- InputStream*ا� .System.out,System.err از L8 -� ه%ی�A

,ا7 خ/ا6Aن. ه@APrintSystem 6IE/ع %;/OP %ی] ه,Eا� Bای �d,o/�در /BE-/A +%را+E,ه%

L; 5د%nEل ا�/@I+ 6Iی> L; ر%O- � LEی%هO%ن �A/o +� خ/اه�6 دی6 در .-/د ا;% ا�E,ی] ه7%

6�A%-/�,E+را%+ , LIEX; 7%ی] ه,E6 <ن ه% را در ا��A0/ا L; ز%�A رت/R.

&�ا�%ن ورود! ه�! '���ل

/د از ایB روی� MI01.0% روش خ/ا6Aن ورود7 هI+ 7%@/ل در ج%وا LEی% ا�nE%د5 از ی� ا�E,ی]

,ا7 خ/ا6Aن .] در ,A%;� ه%7 ^6ی6E; ,0 LOاول ا�*هI/ز ه LEی%ا;,وز5 ا�nE%د5 از ا�E,ی] ه7%

روش از .ورود7 هI+ 7%@/ل هI/ز ه] از LI\ ,wA ;�@, ا�* ا;% اA>%م ایB +%ر LOA ��R/0 -/د

Page 281: Java farsi

J0  �4,ی£ -56 ,ا7 خ/ا6Aن ورود7 هI+ 7%@/ل ا�nE%د5 از ا�E,ی] +%را+o,E,ا ا�* +� ا�nE%د5

.ن ه% �rA دا-* و �B الL��O +,دن ,A%;� ه% را <�%ن 0, �%خ�E ا�*از ا

,ا7 . اA>%م ;L -/دSystem.inخ/ا6Aن ورود7 هI+ 7%@/ل در ج%وا از v,ی} خ/ا6Aن از

%ی@* L; ل/@I+ % bX0,; ,E+را%+ , LIEX; 7%ی] ه,E6ن ا�Aخ/اSystem.in را در -� ا7 از

�/-%ABufferReader6�A/ع .BufferReader 6I+ L; LA%X�Ez4 56- ,\% از ا�E,ی] ورود7

. B6اول 0,یE;Constructor*زی, ا� ]`- � : ;/رد ا�nE%د5

BufferReader(Reader inputReader)

inputReader ا7 از �A/OA % bX0,; [ی,Eا� BufferReader د/z�; ا�* +� ای>%د .Reader

%ی* ه% . ا�* InputStreamReaderه%7 <ن ی`L از زی, +tس .t+ LP/Aس ا8EAاLP ا�* �+

6I`�; ]6یX0 ,E+را%+ �,ا7 ای>%د -� ا7 از A/ع .را InputStreamReader% �+ System.in

%-6 از bX0,;constructor6�I+ 5د%nEذی[ ا� :

InputStreamReader(InputStream inputStream)

� -� ا7 از A/ع dStream.in/ن InputStreamی] ار,Eا7 ا�,ج%ع دارد از <ن ;�E/ان

ای>%د ;L -/د +� � BufferReader ]�E; 6��+ �mnRدر �g, زی, ی� . ورود7 ا�nE%دOA 5/د

: ;�z/د

BufferReader br= new BufferReader (new InputStreamReader (System.in));

1% ,g� 734 از اج,اbr+ د/, +%را+E, خ/اه6 LIEX; [ی,Eی} ی� ا�,v از �System.in %

.+I@/ل ;,bX0 ا�*

&�ا�%ن '�را'�) ه�

,ا7 <ن +� +%را+E,7 را از ی� BufferReader 6 از�Aا/? Read()6�I+ 5د%nEاز . ا� L-ر%rA

Read()*رت زی, ا�/R �� +%ر خ/اه�] ,د �+ :

Read()throws IOExeption int

را از ا�E,ی] ورودL; 7 خ/ا6A و <ن را � \,اخ/اL; 56A -/د +%را+Read()7,Eه, %ر +�

6Aدا,r�; , ��mR 6ارi; رت ی�/R. [ی,E7 ا�%MEAا � ��A%Id١- 6Aدا,r�; , هO%ن �A/o . را

Page 282: Java farsi

7%IWE6 ا��I+ L; �wZt; �+ioexeption6I+ 0,46%بA0/ا L; 8�A را .

,A%;� ذی[ روش ا�nE%د5 از read()A ل/@I+ ه% از ,E+6ن +%راAخ/ا %ایB +%ر را .z%ن ;L ده6 را

: \z%ر داد5 -/د”6iA>“qر ادا;� ;L دهZ 6��+ %0 6,ف

//use a BufferedReader to read characters from the console.

Import java.io.*;

Class BRRead{

Public static void main(String args[]) throws IOExeption

{

Char c;

BufferedReader br=new BufferReader(new InputstreamReader(System.in));

System.out.println(“Enter charactors,’q’ to quit.”);

//read characters

Do{

C=(char)br.read();

System.out.println(c);

}while(c!=’q’);

}

}

,A%;� در ذی[ zA%ن داد5 -56 ا�* Lا7 از خ,وج �A/OA:

Enter charactors,’q’ to quit.

123abcq

1

2

3

A

B

C

Q

%-d 6,ا +� �E-وت دا%n0 7رش را داری6 ^6ر%wEAا ��A> %B`O; 1% ا�* Lخ,وجsystem.in

6Aخ/ا L; 56- ,\ %6یIJ; B%�* +� 0% و^Xv. 6��+ LE} �4  \,ض �g, را � R/رت Bای

enter 6A/z�OA ار�%ل �;%A, � %Mد ورودی/zA 5زد ./z�; uX� ,;ا Bد 0% ایread() *\%ا7 دری,

6-%XA 6IO-6ان ارزId ل/@I+ از %Mورودی.

&�ا�%ن رش�5 ه�

Page 283: Java farsi

?/ا6�Aاز 6��+ �mnR ا7 رااز �E-ر �`A> 7ا,readline() سt+ 7 از/�P �+ 6�I+ 5د%nEا�

bufferedreader*رت زی, ا�*. ا�/R � .\,م +�L <ن

String readline() throws loexception

. ا�* R %Z 6�I+ L; �wZt; �+ �A/ostring[ ان ی� -�� هO%ن

,A%;� زی, �OP`,د bufferedreader 6E;و readline() ه%را<ن,g� �;%A, Bن ;�6ه6 ای%zA را

7 �O�+%06ده L;  ی%OA6 وAخ/ا L; ی� � : را0%یword6�I+ Ï^6ر ی�

//read a string from console using a bufferedreader.

Import java . io .*;

Class breadlines {

Public static void main (string args[] )

Throws ioexception

{

//create a bufferedreader using system. In

Bufferedreader br = new bufferedeader (new inputsteamreader( system.in

);

String str;

System .out. println( enter lines of text. );

system .out. println(enter `stop` to quit.``);

do {

str =br .readline();

system.out. println(str);

} while(!str.equals (``stop``);

}

}

ای>%د string<رای� ا7 از -�� ه%7 .در ,A%;� زی, ی� وی,ا�E%ر ;LIE �%د5 ای>%د -56 ا�*

6Aه% خ/ا,g� 3دو��/z�; 5,در <رای� ذخ�,g� ,5 -56 وه. ,W+6اZد١٠٠/- L; 56Aخ/ا,g� . %ی

7 �O�+ �`Iای``stop``6�I+ Ïل . را 0%ی/@I+ 6ن ازAا7 خ/ا,BufferRead*د5 -56 ا�%nEا� :

//A tiny editor

Page 284: Java farsi

Import java.io.*;

Class TinyEdit{

Public static void main(String args[])throws IOException{

//creat a bufferreader using System.in

BufferedReader br = new BufferedReader(new

InputstreamReader(System.in));

String str[] = new String[100];

System.out. println(“enter lines of text.”);

System.out. println(“enter ‘stop’ to quit.”);

For(int i=0;i<100;i++){

Str[i]=br.readLine();

If(str[i].equals(“stop”))break;

}

System.out. println(“\nHere is your file:”);

//display the lines

For(int i=0;i<100;i++){

If(str[i].equals(“stop”))break;

System.out. println(str[i]);

}

}

}

,A%;� در ذی[ zA%ن داد5 -56 ا�* Lا7 از خ,وج �A/OA:

Enter lines of text.

Enter ‘stop’ to quit.

This is line one.

This is line two.

Java makes working with strings easy.

Just creat String objects.

Stop

Here is your file:

This is line one.

This is line two.

Java makes working with strings easy.

Just creat String objects.

��ش�� &)و/+ '���ل

Page 285: Java farsi

% 6A0/ا L; ل/@I+ Lخ,وجprint(),println()م -/د%<Aس . اt+ و���� �ای6E; B ه%

PrintStream) �+ �- LP/A System.outن ارج%ع دارد> � (6A%ی£ -6ه,J0. �d,oا

System.outP/A ],A%;� ا7 �%د5 هI/ز ^% Lا7 خ,وج,L ا�E,ی] %یLE ا�* ا;% ا�nE%د5 از <ن

.4¡ی,ش ا�*

;Ez} -56 ا�* ;LP/A OutputStream 6E ا�E,ی] خ,وجL ا�* +� از dPrintStream/ن

B4%ی� �g�write()6I+ L; 78 �4%د5 �%ز�A رو از . را Bاز ایwrite() در BE-/A 7ا, ;L 0/ان

� و���� ()�write%د5 0,یB \,م . OA/د+I@/ل ا�nE%د5 �+ PrintSystem � J0,ی£ -56 ا�*

6-% L; ,رت زی/R:

Void write (int byteval)

% 56- �?z; *ی% 6E; Bایbyteval6@ی/A L; [ی,Eدر ا� . �d ,oاbyteval 6دP ان/IP �

6A/- L; �E-/A *را� *O� *� *zه %MI0 %;ی£ -56 ا�* ا,J0 ��mR.W; ل +/0%5 زی, از در%

write,E+را%+ BE-/A 7ا, A*د5 -56 ا�%nE6 ا�J ,g� � : و��3 +%را+E, اiEA%ل

//Demonstrate System.out.write()

Class WriteDemo{

Public static void main(String args[]){

Int b;

B=’A’;

System.out.write(b);

System.out.write(‘\n’);

}

}

ا�nE%دLOA 5 -/د d,ا +� ا�nE%د5 از ()writeوجL هI+ 7%@/ل ا_�u از ,ا7 اA>%م خ,

print(),println()*ن 0, ا�%�> .

PrintWriter'1س

,اBE-/A 7 در +I@/ل ^%[ 4¡ی,ش ا�* ا;% ا�nE%د5 از <ن System.out %06OPا�d ,o ا�nE%د5 از

; ��R/0 5ه%7 �%د �;%A, �A/OA %ی L6 ا-`%ل زدایR%iOای,رو-L +� در ,A%;� هL . 7% -/د

,اBE-/A 7 در +I@/ل L; ��R/0 -/د از v,ی} ا�E,ی] LJ^واPrintWriter*ا� .

Page 286: Java farsi

PrintWriter*ا� ,E+را%+ , LIEX; 7%س هt+ از L`ی . ,E+را%+ , LIEX; سt+ د5 از%nEا�

6I+ L; ,0 ه% را <�%ن �;%A, BEخ%� L��Oال B� .جBE-/A *M خ,وجL ه% در +I@/ل

:ی`L از ای6E; B ه% � R/رت زی, ا�*. J0,ی£ -56 ا�*6Id PrintWriter �%ز56A در

PrintWriter(OutputStream outputstream,Boolean flushOneNewLine)

Outputstream ع/A ا7 از �- OutputStream ا�* و flushOneNewLine L; �?z;

LAم \,اخ/ا%rIر ه%6i; ��A%Idار <ن . 0?��� -/د ی% خ�,()6I+println +� ا�E,ی] خ,وجL ه,

trueد/- L; م%<Aر خ/د+%ر ا/v � ���?0 ]OP 6-%%-6 ایB +%ر � v/ر falseا;% ا6i; ,oار <ن .

.خ/د+%ر اA>%م A?/اه6 -6

�`A> 7ا, PrintWriterا7 از از �A/OA ,زی ,v6ی�%OA 5د%nEل ا�/@I+ در BE-/A 7ا,

System.outی] خ,Eا7 ا�, 6�I+ ���?0 6ج6ی ,g� ,ی] را 34 از ه,Eی�6و ا�%OA 5د%nEا� Lوج,. �

: را ای>%د و % +I@/ل خ,وجIPPrintWriter6I+ L; bX0,; L/ان ;W%ل

PrintWriter pw= new PrintWriter(System.out ,true);

,A%;� زی, zA%ن ;L ده�A/rd �+ 6 از PrintWriter%nEا� Lل خ,وج/@I+ *ا7 ;6ی,ی,د5

:;�z/د

//demonstrate PrintWriter

Import java.io.*;

Public class PrintWriterdemo{

Public static void main(String args[]){

PrintWriter pw = new PrintWriter(System.out ,true);

Pw.println(“this is a string”);

Int I =-7;

Pw.println(i);

Double d=4.5e-7;

Pw.println(d);

}

}

� R/رت زی, ا�* �;%A, Lخ,وج:

This is a string

-7

Page 287: Java farsi

4.5e-7

��ش�� در 2�ی; ه�/&�ا�%ن از

O0%م \%ی[ ه% در .BE-/A در \%ی[ ه% \,اه] +,د5 ا�*/ج%وا 6Idیt+ Bس و;6E را ,ا7 خ/ا6Aن از

%ی* ه% از /ج%وا %ی* o,ا ه@6IEو ج%وا ;6E ه%یL را ,ا7 خ/ا6Aن BE-/A / �Eی[ ه% \,اه] �%خ%\ �

, .ا�* LIEX; 7%ا7 \%ی[ ه% را در -� ه,o *ی%% ایB وج/د ج%وا ا;`%ن 6A%-/4ن ا�E,ی] ه7%

.+%را+E, \,اه] �%خ�E ا�*

6A,�o L; د5 ^,ار%nEرد ا�/; ,Ez� �+ Lس ه%یt+ دو ;/رد ازFileOutputStream,

FileInputStream0,; LEی%% \%ی] ه% را ای>%د ;6II+ L ه@6IE +� ا�E,ی[ ه7% bX. �+ ا7 <ن,

\%ی�L را %ز +L\%+ 6�I ا�* -� ا7 از ایA B/ع +tس ه% را ای>%د و A%م \%ی[ را � IP/ان <رo/;%ن

-override L; LA%X�Ez4 56ا�d ,o ه, دو +tس از �%ز56A ه%7 ا�%\L .�%زOA �?z; 56A%ی�6

L; ���/0 دو \,م زی, را bi\ %; %;6 اII+[ده�:

FileInputStream(String fileName)throws FileNotFoundEXeption

FileOutputStream(String fileName)throws FileNotFoundEXeption

filenameز -/د%%ی6 �+ 6I+ L; �?z; را Lم \%ی�%A . 6�I+ L; ی] ورود7 ای>%د,Eی� ا� LE^و

7%IWEرت ا�/R 6 در <ن-%XA ی[ ;/ج/د%\ ��A%Id FileNotFoundEXeption L; 0,4%ب

,ا7 ا�E,ی] ه%7 خ,وج8�A L,-/د 7%IWEرت ا�/R 6 در <ن-%XA ی[ ;/ج/د%\ ��A%Id

FileNotFoundEXeptionد/- L; 0,4%ب .

LAا خ/ا,\ %%ی@* <ن را L; 64%ی%ن ر�� � Lی�%\ %ه, دو +tس . 6IXیclose()6و^LE +%ر0%ن

FileOutputStream, FileInputStream6Aی£ +,د5 ا,J0 ن را> :

Void close() throws IOException

,ا7 خ/ا6Aن از ه, \%ی[ ;L 0/ا6�A از ی`L از rA%رش ه7% read() سt+ 6 +� در�I+ 5د%nEا�

FileInputStream*رت زی, ا�/R � : J0,ی£ -56 ا�* ی`L از ایrA B%رش ه%

Int read() throws IOException

Page 288: Java farsi

Bر +� ای% ;6E \,ا خ/اL; 56A -/د ی� %ی* وا6Z را از \%ی[ ;L خ/ا6A و<ن را � R/رت ی� ه,

6Aدا,o L; , ��mR 6دP. 8�A ]7 \%ی%MEAا �در R/رت . ,o,داL; 56A -/د1-34 از ر��6ن

7%IWE8 ا��A %gخ �A/o ,وز ه,IOExceptionد/- L; 0,4%ب .

,ا7 خ/ا6Aن ورود7 ه% ا()readدر ,A%;� زی, از L; 5ی  داد%OA ]ا7 \%ی/Em; د5 -56 و%nE�

� +%ر,د �/� هA. 7%%م \%ی[ � IP/ان <رo/;%ن در خb \,;%ن ;L; �?z -/د.-/د try/catch

6�I+ 6 0/ج�Iی%�  �4 �;%A,خg%7 6�4ا -,ا7 ;6ی,ی* دو خg%یB`O; �+ L ا�* در B�Z اج,ا 7

% \,ا;/ش +,دن 0%یA Ï%م \%ی[ ,wA 6ن \%ی[ ;/ردzAن%;,\ bدر خ. �z�O0/ان ه L; روی� Bاز ای

.هrI%م ا�nE%د5 از <رo/;%ن ه%7 خb \,;%ن ا�nE%دOA 5%ی�6

/*display a text file.

To use this program ,specify the name

Of the file that you want to see.

For example to see a file called TEST.TXT,

Use the following command line:

Java showFile TEST.TXT

*/

Import java.io.*;

Class showFile{

Public static void main(String args[])throws IOException{

Int I;

FileInputStream fin;

Try{

Fin = new FileInputStream(args[0]);

}catch(FileNotFoundException e){

System.out. println(“file not found”);

Return;

}catch(ArrayIndexoutOfBoundsException e){

System.out. println(“usage: showfile file”);

Return;

}

//read charactors until EOF is encountered

Do{

I=fin.read();

Page 289: Java farsi

If( I != -1)System.out.print((char)i);

}while(I != -1);

Fin.close();

}

}

,ا7 6E; 6 از�A0/ا L; 8�A ]در \%ی BE-/Awrite() سt+ و���� � �+ FileOutputStream

6�I+ 5د%nEی£ -56 ا�* ا�,J0.*رت زی, ا�/R � :�%د5 0,یB \,م <ن

Void write(int byteval) throws IOException

% 56- �?z; *ی%bytevalد/- L; �E-/A ]در \%ی . �d,oاbyteval رت/R � intJ0 £ی,

6A/- L; �E-/A ]را�* در \%ی *O� *� *zه %MI0 %;56 ا�* ا-. �A/o ,وز ه,در R/رت

7%IWE8 ا��A %gخIOExceptionد/- L; ل زی, از . 0,4%ب%W; درwrite() دن ی�,+ L�+ 7ا,

.\%ی[ ;LIE ا�nE%د5 -56 ا�*

/*copy a text file.

To use this program specify the name of

The source file and the destination file.

For example to copy a file called EIRST.TXT

To a file called SECOND.TXT ,use the following

Command line.

Java CopyFile FIRST.TXT SECOND.TXT

*/

Import java.io.*;

Class CopyFile{

Public static void main(String args[])throws IOException{

Int I;

FileInputStream fin;

FileOutputStream fout;

Try{

//open input file

Try{

Fin=new FileInputStream(arg[0]);

}catch(FileNotFoundException e){

System.out. println(“file not found”);

Page 290: Java farsi

Return;

}

//open output file

Try{

Fout =new FileOutputStream(arg[1]);

}catch(FileNotFoundException e){

System.out. println(“error opening output file”);

Return;

}

}catch(ArrayIndexoutOfBoundsException e){

System.out. println(“usage: CopyFile from to”);

Return;

}

//copy file

Try{

Do{

I=fin.read();

If(I != -1)fout.write(i);

}while(I != -1);

}catch(IOException e){

System.out. println(“file error”);

}

Fin.close();

Fout.close();

}

}

��Oن ه%7 +%;��/7,0 از ج% +� از +6 خg% ه% ,ا8o 7ارش ++c,cج%وا , خtف �%ی, ز

6II+ L; 5د%nEه%7 \%ی[ ه% ا�%gخ,WE6ی,ی* ا�; [@�A%`; 6ازI`�Oده%nEه% ا�%I. uX� %MI0 �A ,;ا Bای

��B خg%ه%7 ر��6ن LA%�> �� ج%وا ا;`%ن ;L ده%0 6 �`�-n%\�* ;6ی,ی* \%ی[ ه% ;�z/د

@�%ر7 از ++c,cدر دو ز%ن .اMEA%7 \%ی[ و خg%ه%7 در B�Z خ/ا6Aن از \%ی[ O0%یU%^ 8[ -/د

ن � اMEA%7 \%ی[ +6ه%7 ی`@%LA را ,;L 0/ا� هrI%م ,وز خg% در B�Z خ/ا6Aن و هrI%م ر��6

6IAدا,o) ط,- LIJیEOF در C/C++د/- L; مtP6ن اA7 خ/ا%g6ار خi; ن%Oه % u�_ا .( Bای

z; %0 6A%<Ir?� -/د �;%A,,A%;� �%ز %یXP 6%رات �Ez,7 در �+ *�%IJ; B6ی 1/OJ;,;ا

,A%;� ه%یE%ن خg% ه% در ز%ن ج%وا .+� +6ام روی6اد وا^J% �4  <;56 ا�* �از v,ی} ا�IWE% ه%

Page 291: Java farsi

�+ Lی} +6ه%ی,v از �A 6 وA/- L; مtPاread()6Aدا,o L; , . LE^رو و Bاز ایread 6ارi; -1

*�J6 ا�* و�Zوا �z�O7 <ن ه%IJ;6Aدا,o L; , . �4  <;56 ا�*EOFرا

رo/;%ن %ی6 � IP/ان <SECOND.TXT و AFIRST.TXT%م \%ی[ ه%7 ;/رد W; ,wA[ :0/ج�

6E;main()�� ()main در خb \,;%ن %-6و 1% �;%A,,ا7 اج,ا7 LIJار�%ل -/د ی

[�I`�; مtPن ا%;,\ bرت زی, در خ/R:

Java CopyFile FIRST.TXT SECOND.TXT

Page 292: Java farsi

%ی)ی= ح�5�2

G>� وی� ای���.:

;6ری* �w\%Z در ج%وا

,`�OP 5/mA دgarbage collector

Page 293: Java farsi

%ی)ی= ح�5�2 در Java

% ز%Java ]W; LAی`L از n0%وت ه7% cو c ++*ن ا�> �w\%Z *6ی,ی; LrA/rd . *6ی,ی;

� �A/o ا7 ا�* +� ایB ز%ن �A%ز7 � ا-%ر6A ,o 5ارد�w\%ZJava در . B�-%; در وا^� خ/د

�E\,o 56MP و ایZ ]OP B@%س و خ@56II+ �E را از ، +%ر % ا-%رo 5,ه% را � Java;>%ز7

، JavaهB�I�O ی`L از ;EOM,یB ;8ای%7 ;6ی,ی* �w\%Z در .اخ�E%ر +%ر, خ%رج +,د5 ا�*

B+ �Oل ج%T->)garbage collector (*ن ه%7 . <ن ا�%% ز ,oاc و c ++ 6�-%+%ر +,د5

% �w\%Z ���?0 4/ی% <-I%یL داری6 %IfOg; . LJ^ی% در ;/ا ��- � �w\%Z ���?0 �;>X/ر

,د5 ای6 B�. �%خE%ر خ/د -56، در ,A%;� خ/د از ایB -�� ا�nE%د5 +,د5، و ��3 <ن را از

�w\%Z 6ی,ی* <ن; �n8 و­��A ده�6، خ/د L; ص%�Eاخ Lf�- �ی% (ه�w\%Z �+ L;%rI ا7 را

�w\%Z در هrI%م زی%د -6ن OP[ ;6ی,ی*.و %زo,دا6Aن <ن � ��@E] را, 56MP داری�w\%Z (6 ه%

@�%ر خ@56II+ �E و د-/ار ا�*) ;tW در ل�@* ه76A/�4 7%(ایB ا-�%ء L�OP . �+ L;%rIه

8�A دارد L�,Eن د�> �LJ را +� %I; L;%O0 �+ 6�I+ *^ی6 د%�w\%Z ی� -�� را ;�o L,ی6،

6�I+ د^* زی%. <زاد �/د5 و �A%ز 56II+ �E@ر خ%�@ ]OP Bای %O�@;در . د7 داردJava 6�A0/ا L;

�6ی�A u�0,0 B%زrA �+ *@�A 7,ان . ;m/ل +garbage collector ) gc (6�IایB اOP%ل را

6�-%,A%;� خ/د L\,�; ��;%Iدی �w\%Z .gc را از �w\%Z BE\,o ]OP ،��0%;/0ر ا/v �

�A/o B دا�OP L�+ ]`- �+ *@A`,د <ن را ;L 0/ان 6ی. ا-�%ء _�, ^%[ د�E,س اA>%م ;L ده6

%-�]، <ن -�� _�, ^%[ ;�,ف در �E\,o ,wA -56 و �E-6اA Lf�- � LJXI; ¥ه� �+ L;%rIه

,o,داL; 56A -/د [E@�� �� v/ر وا�� و . �w\%Z <ن <زاد -56 و �+ *@�A 7ز%�A 34

6IA%; �?z;c++[ی,X B� در thread �+ *\,o ,wA را ;L 0/ان ی� gc. ، ی� -�� را از

,A%;� اج,ا -56 و ا-�%ء ای>%د -b�/0 56 <ن را ردی%L و +EI,ل ;6I+ L و در %� v/ر ;/از7

6Aدا,o L; , [E@�� � . ;/^� ل8وم، �w\%Z را از <�E\,o %MA و

���garbage collector� p,�.)د

� \`, Javaا6اع +o6II%ن �+ 6Aد/XA 7ا\,اد Bاول� ،gc6Aد%E\ن خ/د ا%,ا7 ز . L; �^در وا

� ده� ه7% �4  %ز ;o L,دد ]OP Bای �+ *no ن ه%7 . 0/ان% و LispهL;%rI +� �%زo6A%ن ز

Page 294: Java farsi

Small Talk �;%A, ;E/ج� -�w\%Z BE\,o �+ 6A6 از ��@6IA%; 8�A [E 0?��� <ن در هrI%م

, 56MP خ [E@�� Lی%A6م 0/اP *�P � ،[M; ]OP Bد5 و ای/ [M; ر 4, ارزش و%�@ ،L@ی/A د/

6-% L; 3ی/A �;%A, . ه% ای>%د و +%ر , روMA> 7% اA>%م -gc6از <ن هrI%م /د +� .

,ا7 ه, -�� ا�*gcی`L از �%د5 0,یB رو-M% در 56Aر%O- ر . ه%7 اول��، ای>%د ی�%% ه,

�XI; ص%�Eاخ )reference ( از L`ن، ی> BE\,o ر%� <ن ا�%\� و % ه, L`ی� -��، ی �

+ 56Aر%O-[�I+ L; [ . ,nR 6ار <نi; �+ L;%rI6، ه-%اO- ,o%ر56A از ا6Eا دارا6i; 7ار ی�

� <ن �A%ز6A 7اری] ,r56 و دی- �E\,o از <ن �%I; L;%O0 LIJ34 . -6، یgc را �w\%Z 6A0/ا L;

6J از ه, %ر +%ه  <ن . از <ن �r,د 56Aر%O- 6ارi; Lر�,MI0% +%ر7 +� %ی6 اA>%م ده�]،

� هO,ا5 داردای. ا�* 8�A L0t`z; ،*�%M-رو Bاز �%د5 0,ی L`روش +� ی B . LO+ *ا� L\%+

LEzoز%� ;�TE, ه7% ,A%;� و 6J0اد <�TE; 6IA%; %MA,هL�m; 7%، <رo/;%ن ه%7 0/ا�، ;i%دی,

%ره% ایB اOP%ل اA>%م ;�I+ ,`\ .6A/- L]... 0/ا� و ،�;%A, Lo6Aاز دوران ز �wmدر ه, ل .

, ,oا L\%ا� �Oی� ج �و ی� n0,ی}، ) در EM,یZ B%ل*(ا7 ه, +6ام از ای�TE; B,ه% �A%ز

�w\%Z BE\,o و Lر�,%-�]) در 06,یZ B%ل*( �E-دا. ,�0/ر +6J0 �d �+ 6�Iاد OP[ ا�%\�

,A%;� خ/د ^,ار داد5 ای] 56MP .*ر +] <ن ا�%�@ *P,� ،روش Bای u�P Bی,EOM; �^در وا . �

[ ا�nE%د5 /د6Aهvgc/ر7 +� %^ ,�_ ،6Aد,+ L; 5د%nEروش ا� B7 اول�� +� از ای% . Lول

,ا7 ,v,ف +,دن ایz; B`[ ارا�U -56 ا�* 7,rر دی%�@ . خ/-�A%E?X روش ه7%

\,ض +LEO@^ 6�I از . داری]،;O@^ ]`z* -6ن �w\%Z ا�*gcی`L دیr, از ;L0t`z +� در

� ا-�%ء ,A%;� اخ�E%ص دا ،[E@�� �w\%Z6Aرا 4%� . د5 -56 ا LU%�-ا %; *O@^ Bل در ای%Z

[�I+ ض,\ Lرا خ%ل %MA> 7%�\ [�A0/ا L; د5 ای] و,+ . Bای �+ *@�A �A/o B6ی �z�Oه %IfOg;

6I-% ,rر ی`6ی%I+ در Lه%7 خ%ل%�\ . [E@�� اه6 در/?8رگ �w\%Z %ا+I/ن اo, ی� -��

Lی%MI0 � Lا�* ی� \�%7 خ%ل B`O; ،د,�o ار,^[�-% �E-6اA ع \�%ه%7 .,ا7 <ن/O<; Lول

6-% L\%+ 8�A ع/A از <ن ��- B6یId 7ا, LEZ ،%; L34 . خ%لgc BE\,o ,%یtP 6و5 %;

6I+ *8 ;6ی,ی�A را L6 \�%ه%7 خ%لAا/Eو ;tW <ن ه% را در +I%ر . �w\%Z از ا-�%ء _�, 1زم،

LJ +� از <ن -�� داری]، در ��T0, ;`%ن -��، %ی6 0/ج� +�I. ی`6یr, ^,ار ده6%I; ¨;%O0 �+ [

6II+ 5ن ج6ی6 -�� ا-%ر%`; � . <درس خ/د را ��T0, داد5 و

L;%O0 ایJava B در gcخ/-�A%E?X . ا�*gc;/ارد ذ+, -MI0 ، 56% ;/ارد7 �%د5 از و­%ی£

;/از7 در هrI%م اج,ا7 ,A%;�، اج,ا ;L -/د وthread;/ارد را در �E\,o ,wA و ;%6IA ی�

Page 295: Java farsi

� �A/o ا7 +� +%ر, ;E/ج� LOA -/د، ا-�%ء و �w\%Z ه%7 _�, د�E,س را در ی� ز;%ن +] و

6I+ L; 7ور> �Oاي خ/د، ج, [+ �w\%Z ���?0 %� �A/o ا7 +� ه�¥ E; 5%o/ج� �Z/ر <ن .

. LOA -/ی]

X,ی] �d £��`0@*؟ ایgc ]OP BولL اo, خ/د ;% ?/اه�] ^X[ از �Z/ر B� ی� -�� را از

%� راLEZ و [�A0/ا L; راnull ��- دن <ن,+ )myobject=null ( LAو ��3 \,اخ/اgc

6E; b�/0system.gc ()[م ده�%<Aا.

Java memory model

main stack frame

g

Greeting instance

stack

new

heap

text

“hello, world” “Hello, world”

String instance

Implicit pointer semantics new, no delete (garbage collection)

s

getText stack frame

Page 296: Java farsi

ا p���ت وی§�

G>� وی� ای���.:

;6ل ز%ن و +%ر,ده%7 <ن

applets اR/ل ری8,A%;� ه%

56- ¨zآ ½A 6Id ¨@ی/A �;%A,

Multithreaded programming

¨�Rا ½A The Main Thread

½A Àای>%د ی

Runnable �4%د5 �%زي

½A b@

�A%o6Id ه%ي ½A ای>%د

()join و ()isAlive ا�nE%د5 از

()resume و ()suspend ا�nE%د5 از

M;6i0½A ي%

Page 297: Java farsi

applets ا�Bل ری]�)�� 5 ه�

¨A%X�Ez4 از I/o ه%ي �A%?%Eآ �E@ه% از ه �;%A, آ��6ي �A از واژ5 ج%وا A%-¨ -56 اAPI 6A و ری8

. ایB ز%ن

\bi یÀ آtس از ا;% ,A%;� ه%. ج%وا /د6A (applications) آ��� ;W%لM%ي ^�X¨ از ,A%;� ه%ي

,A%;� ه%ي ج%وا ;¨ 6I-% .�;%A, ,rع دی/A applet 8ن ری%Oا�* ی% ه �;%A, .tX^ �©ری/gA%Oه

,A%;� ه%ي آ/d©¨" ری8 ,A%;� ه% " ا-%ر5 -56 ، ، 56Iوی3 ده,� À6 آ� روي یIE@ه *A,EIای

]iA و ]OZ �©X- ,�%0,� د5 و/[ د�E,س %^ ¨; u�A ر خ/دآ%ر/g-/6A و IJ/ان -56 و

6?z¨ از ی6I� À وب اج,اA/- ¨; .

� دارد روي �,ویapplet 3 ی©X%ر آ�%I; �g/ری©� 56A,�o ;¨ ر�6 ، د�6m; ¨�,Eود -56 اي

bای>%د ری@À وی,و�M% ی% آ%ر, 6Id ر�%�A اي دل?/ا5 را ای>%د OA/د5 و 6ون ;¨ 0/ا6A یÀ را

»iA 6ی%OA ت 56���4 را اج,ا%X�%m; %داد5 ه *�;%O0 . �;%A,�/رت زی, �%د5اج%ز5 ده�6 % ری8

[�Iوع آ,- :

import java.awt.*;

import java.applet.*;

public class SimpleApplet extends Applet {

public void paint(Graphics g ){

g.drawString("A Simple Applet"/ 20/ 20);

}

}

% د �;%A, I4>,5 ا8ار �M%ي ج�XJاول�B د�E/ر آt. <_%ز ;¨ -/د import و د�E/ر ایB ری8

% آ%ر,-%ن AWT ری8,A%;� ه% از v,ی}. را وارد ;¨ آAWT 6I ;>,د ی% 6Aل دار%JnAو ا ]J\

,;IX%ي آI@/ل �A I/o از v,ی} آM�t%ي . AWT 56A,�o,,اي در ¨A%X�Ez4 5 اي,<I4 b یÀ را

%-�6 ، اwEA%ر هgA%O/ری©� ;B©O ا�* . و o,ا\�©¨ ا�* �E-دا Bای JجX� 8ار@�%ر 8رگ ا

. 56���4 ا�* و

�A%E?X-/6ودي از خm; ر%�@ import د�E/ر 6Jي. دارد AWT ایB ری8 ,A%;� �%د5 ا�nE%د5

�E@ Applet 6Iس. را وارد ;¨ آt56 آA,�o,@�E در Bای applet *اي آ� ه, ری8. ا� �;%A,

%ی6 زی, آ�t¨ از 6�I0/ل�6 ;¨ آ Applet 6-% .

Page 298: Java farsi

b6ي درخJ,A%;� ، آtس Simple Applet 6Iن ;¨ آtPان. را ا/IJ public ایB آtس %ی6

6-%[ د�E,س %^ 8�A �;%A, ()paint روش . اtPن -/د ، d/ن %یb�/0 6 آ6ه%ي خ%رج از

%یb�/0 6 ری8 و J0,ی£ -AWT 56 ایB روش b�/0. اtPن -56 ا�* SimpleApplet درون

�E-%XAا �;%A,%ی6 خ,وج¨ اش را. -/د �;%A, paint()دو%رOA 5%ی  ده6 ، ه,o%5 آ� ری8

IJ/ان ;W%ل ، روي I4>,5 اي . اn0%ق �6En ایB -,ایB©O; b ا�* � 6Id دل�[. \,اخ/اA¨ ;¨ -/د

;B©O ا�* I4 b�/0>,5 دیr,ي �E-/A -/د و ��3 آ� ری8 ,A%;� داخ[ <ن در Z%ل اج,ا�*

6mا^[ ر��56 و ��3 ذخ�,5 -/د ;¨ applet ی% I4>,5. <-©%ر -/د 6A0/ا . �;%A,و^E¨ آ� ری8

%-6 ، ه, و^* ری8 ,8�A .�;%A \,اخ/اA¨ ;¨ -/د ()paint، ;¨ آ6I اج,ا را -,وع �d ,دل�[ ه

�یpaint() À روش. \,اخ/اA¨ ;¨ -/د() OA paint%ی  ;>6د خ,وج¨ خ/د %-X<; ، 6/ر

,E;ع 4%را/A از Graphics ا\�©¨ ا�* آ�. دارد,o BE; 56A,�o, o,ا\�©¨ آ� ;b�m ایB 4%را;E, در

applet 6Iآ ¨; £�R/0 ل اج,ا�* را%Z در <ن در .

درون .�A%ز %-6 ، ایBE; B ;/رد ا�nE%د5 ^,ار ;¨ �o,د ;/ردapplet خ,وج¨ ه, o%5 آ�

paint() � ¨Aاخ/ا,\ Àی drawstring() سtي ازآ/�P وج/د دارد آ� Graphics *ا� . Bای

OP/;¨ <ن -©[. و ;z?� را خ%رج ;¨ آx6I وy یÀ ر-�E -,وع -56 در ;©%MA%ي روش

: زی, ا�* �/رت

Void drawstring( string message, int x, inty )

%<Iدر ای message اي ا�* آ� در �E-ر yو xی6 خ%رج -/د%I4>,5 ج%وا در یÀ. و -,وع -56 و

%1ی¨ Ïd *O� �-/o ،ن%©; oو o *و ا� .¨Aاخ/ا,\ drawstring() در ¨; uX� �;%A,ری8

د^* آ6�I آ� ری8 . -/د<_%ز ٢٠ و ٢٠OI%ی  در<ی6 و در A simple Applet" �giA" -/د �4%م

,A%;� \%^6 روش main() *ا� .�;%A,,A%;� ه% اج,اي خ/د را در ه%ي ج%وا ، ری8 ,خtف

main() 6IIآ ¨OA وع,- .Z در، *i�i %ه �;%A,در . ه] 6AارEZ main() 6A¨ یÀ روش اآW, ری8

%ج,ا ;¨ آ6I ه,P 5%o/ض ، یÀ ری8 ,A%;� -,وع �;%A, آ� A%م آtس <ن � یz; À%هo 56, ری8

(applet viewer) �©X- ,oور,; Àر داد5 -/د ی% ی¡o . �XI; 6آ �©I6از ایJ SimpleApplet را

. آ%;�%ی[ ;¨ آ6�I را آ%;�%ی[ ;¨ آ6�I، ری8 ,A%;� ه% را آ� ,A%;� ه%وارد آ,د5 ای6، OM%ن رو-¨

�À ، دو را5 ,اي اج,ای در i�iZ*. -%;[ یÀ 4,دازش ;nE%وت ا�* SimpleApplet ا;% اج,اي

:دارد ری8 ,A%;� وج/د

Page 299: Java farsi

% وب �%زo%ر ;,ورo, یÀ داخ[ applet اج,اOA/دن ,�wAج%واNetscape NAvigator

یIJ¨ ا�6A%Eارد �wAJDK, ا8ار (applet viewer) ری8,z; �;%A%هo 56, یÀ ازا�nE%د5

appletviewer .Àی ، �;%A,. اج,ا ;¨ آI4 6I>,5 ری8 ,O- �;%A% را در یz; À%هo 56, ری8

Bروش ای %;/OP5را Bی,EA%�> و Bی,EJاي <ز;/ن �,ی, ه, اج%ز5 ده�6. ا�* ری8,A%;� ه%

Bر�¨ رو آ6ام ای,,اي اج,اي یOA . À%ی�] -M% را applet ، وب ,oدر ;,ور Àی[1زم ا�* ی%\

¨IE; HTML 5%0/ی@�6 آ� آ/I در ایI>% \%ی[. %-APPLET u�%I; 6 در,56A,�o دXA%ل�

HTML را آ� Simple Applet 6ی�%OA ¨; 56ه%z; ، 6Iرا اج,ا ;¨ آ .

<html>

<body>

<applet code=YOURFILENAME.class width=200 height=200>

</applet>

</body>

</html>

,A%;� و ;z?� آ��Z%A 56II -,وع OA%یz¨ ه@6IE آ� b�/0 ریheight8 وwidth د�E/رات

ایI©� زا 6J .یr, ا�* در,6Id 56A,�oی8o BیAPPLET �I دXA%ل�. ;/رد ا�nE%د5 ^,ار ;¨ �o,د

و ��3 ایB \%ی[ را %ر o¡اري آ6�I اج,ا OA/د5 رo,0%ن را;¨ 0/ا6�A ;,و ، ایB \%ی[ را ای>%د آ,دی6

,اي اج,اي . اج,ا -/دSimpleApplet اA>%م ایI©%ر %�P ;¨ -/د آ�. SimpleApplet %

,B©O; ، �;%A ا�* هB�I�O \%ی[ یz; À%هo 56, ری8 HTML 6ی�%OA را اج,ا ¨�X^ . ، ل%W; ان/IJ

,oی[ ا%\ HTML را ¨�X^ RunApp.html ، 6يJ?/اrA> ، [�A%5 خb \,;%ن SimpleApplet

6Iرا اج,ا ;¨ آ :

C:\>appletviewer Runnapp.html

در %1ي \%ی[ ا;% ، یÀ روش @�%ر راZ* 0, وج/د دارد آ� �,P* <ز;%ی  را ا\8ای  ;¨ ده6

���/0 Àج%واي خ/د ی �XI; 6آ (comment) 6 آ��A%<Ir6% APPLE در,56A,�o دXA%ل� - . B6ی

% یÀ الr/ي د�E/رات %O- 6آ ، u�0,0 HTML 86 ری�A6 �%زي ;¨ -/د و ;¨ 0/اIE@; وري,�

�;%A,رد خ/د ;/ % \%ی[ آ�XI; 6 ج%وايری8,z; �;%A%هo 56, آ%;�%ی[ -56 خ/د را % -,وع

ی, i,ار ز Simple Applet ایB روش ا�nE%د5 ;¨ آ6�I ، \%ی[ ;�XI اo, از. <ز;%ی  ^,ار ده�6

: خ/اه6 /د

Page 300: Java farsi

import java.awt.*;

import java.applet.*;

public class SimpleApplet extends Applet {

public void paint(Graphics g ){

g.drwString:"A Simple Applet"/ 20 .20);

}

}

��Z,; �� Bد5 از ای%nEا� % �;%A, ر را اج,ا0©,ا @,P* در آ[ ;¨ 0/ا6�A از v,ی} �J�/0 ری8

: OA%ی�6

(iterate) : 1 6ی�%OA  ج%وا وی,ای �XI; ]ی%\ Àی.

٢: 6�Iا0%ن را آ%;�%ی[ آ �;%A,.

. ;OA �?z%ی�6 \%ی[ ;�XI ری8,A%;� ا0%ن را ;z%هo 56, ری8,A%;� را اج,ا OA/دA %0 ، 5%م :٣

% دXA%ل� ;z%هo 56, ری8 ,A%;� ، داخ[ 0/��� APPLET را اج,ا ری ;/اج� -56 و %O- �;%A, 8

زی,,z;�;%A%هgA> ، b�/0 ,o 56/ری©� SimpleApplet 0/ل�I4 b�/0 56- 6>,5. خ/اهOA 6/د

OI%ی  6-% : در<;56 �/رت زی, ;¨

|

>< |< | _ |_ ...| pplet Viewer SSimp

| Applet |

| A Simple Applet |

| |

| |

| |

| Applet started .|

%-�XP ، 6%ر6I0 ازA©%ت ا�R¨ آ� �E-د دا%�%ی6 در ایB ;/�/ع :

ری8 ,A%;� ه% %یm0 6* یz; À%هo 56, ری8 ,6A .�;%Aار�A ()main 6A%زي � روش ری8 ,A%;� ه%

(applet viewer) À6 ی% یA/- ج%وا اج,ا %% آM�t%ي. ;,ورo, �%زo%ر ,ج,ی%ن ج%وا I/o ار

.� ه%در P/ض ، ری8 ,A%;. اج,ا OA¨ -/د

Page 301: Java farsi

5 ��ی�i چ�% �£ آ�i ش%���(� Multithreaded programming

,خtف �%ی, 6Id ¨@ی/A �;%A, A½ آz¨ -56 را ز%MA%ي آ%;��/0,ي ، ج%وا ، A%X�Ez4¨ 0/آ%ر از

6I56. \,اه] ;¨ آ- ¨zآ ½A 6Id �;%A, Àی (multithreaded) %56 دو یA,�o,?  ا�* در 6Id

�/رت 6IA6 آ� ;¨ 0/اA/- 8;%ن اج,اOرن و ه%iE; .B�Id از  ?,A%;� اي را یA À½ ی% ه,

thread ,�@; À6 یA0/ا ¨; ½A ,6 آ� هI;%A ¨; از �A%oی6 ج6ا%OA £ی,J0 اج,ا . ½A 6Id ، Bای,%I

% .ا�* (multitasking) و­��n اي هO%ن 6Id آz¨ -56 یÀ -©[ 0?��¨ 0, از [EZ ر/g

از ایB ;/�/ع A%X�Ez4¨ ;¨ زی,ا آ��� ��@E] ه%ي P%;[ ;6رن @Mn;، 6�E/م 6Id و­��n اي <-I% ه

6IIآ.

:6Id و­��n اي وج/د دارد دو A/ع ;>8ا از

,n0%وت 1زم ا�* آ� . (thread-based) و , ;IX%ي IX; (process-based) ½A%ي 4,دازش

,A%;� در Z% یÀ 4,دازش از. �B ایB دو را درك OA%ی�6 Àی ¨;/Mn; ,wAاج,ا ا�* ل . B6ی

,A%;� را 4,دازش � آ%;��/O- ,0% ا;©%ن 6Id ، u�0,0 و­��n اي , ;IX%ي 6Id %ده6 0% دو ی ¨;

6Id و­��n اي , ;IX%ي 4,دازش � -O% ا;©%ن IJ/ان ;W%ل. ه8O;%ن اج,ا OA%ی6 g/ر ;iE%ون و

8�A ا�nE%د5 ز یÀ وی,ایBE; ,rzج%وا و در هO%ن ز;%ن E/ا6�A ا ده6 0% در B�Z اج,اي آ%;�%ی�, ;¨

,A%;� ، آ/E©d,یB در OA .6Id%ی�6 Àي 4,دازش ، ی%IX; ,وا6Z آ6ي ا�* آ� b�/0 و­��n اي

6IXA%;ز(scheduler) 0/زی� ;¨ -/د (dispatched).

ایA . B½ ا�* ی6Id b�m; À و­��n اي , ;IX%ي A½ ، آ/E©d,یB وا6Z آ6 ^%[ 0/زی� ، هO%ن در

,nI; �;%A,د ;¨ 0/ا6A دو ی% 6IdیB و­��n رادر <ن6ان ; Àا�* آ� ی ¨IJ 6م ده%<A6 اZان . وا/IJ

¨A%;ن ز%O6 در هA0/ا ¨; BE; ,rzوی,ای Àی ، �A/OA آ� *;,\ � ;Tz/ل d%پ BE\,o ا�* ،

�,دازد ، ال�EX ;%دا;�©� 8�A BE; Àآ,دن ی Bای b�/0 ]OP 6 دوA/- اج,ا �A%oج6ا ½A دو .B6ی

�, و آ%ر دارد در Z%ل�©� 6Id" گ�0%وی, 8ر" 4,دازش % �6Id ، u و­��n اي , ;IX%ي0,0

½A ي%IX; , A½ ه%ي 6Id و­��n آ8�E@; 56IIم اrE-%XA¨ ج�U8%ت آ%ره% را ادار5 ;¨ آ6I و­��n اي

6Id ي%M-4,داز %�I�rI¨ 4,داز-M% در اR[ و­%ی£. و­��n آ56II ه@6IE آEO,ي در ;i%ی@�

6IE@6 \�%ه%يهI;ز%�A 6 آ�I-%�B 4,داز-¨ ارv%X0%ت. <درس ج6ا�A%o خ%ص خ/د-%ن ;¨

(Interprocess) u�_6ود ا�* اm; و �Iو را5 4, ه8ی ¨o6 آ%رId BE; ¨I8یo (context

switching) 4,دازش �. ÀX� %M ه@6IE در P/ض A? .دی8�A ,r 4, ه8ی�I ا�* از یÀ 4,دازش

Page 302: Java farsi

;z%رآE¨ هO%ن 4,دازش % و­��n س را� ا-E,اك o¡ا-�E و �/رت<MA% یÀ \�%ي ی©@%ن <در

ارزان ا�* و را8o 5یI¨ (Interthread) ه% ارv%X0%ت �o ¨; .½A B¡ارB�rI� 6A را � ا-E,اك

� A½ دیr, آ] ه8ی�I ا�* ;BE از ½A Àاي .ی �n6 و­�Id ي%Mg�m; ه%ي ج%وا از �;%A, �d,oا ,

. آEI,ل ج%وا �A@* آ6II ، ا;% 6Id و­��n اي , ;IX%ي 4,دازش IX; ¨;*m0%ي 4,دازش ه] ا�nE%د5

6Id %;د ا,�o ¨; ل ^,ار,EIآ *m0 56- ¨zآ ½A 6Id اي �nو­� . %O- �اج%زA 6Id 5½ آz¨ آ,دن

I/ی@�6 آ� 6ZاآW, ا�nE%د5 از ;¨ ده6 %0 ,A%;� ه%ی¨ @�%ر ;/ث, و آ%را cpu ، 6I-% �E-را دا

ایB ا;, ?�/ص در ;b�m . ;¨ ده6I را � 6Zا^[ ;B©O آ%ه  idle time ل¨زی,ا <MA% ز;%ن خ%

آ%ر ;¨ آ8U%Z 6I اه�O* ا�* ، زی,ا در ایX- �A/o B©� اي -56 اي آ� ج%وا در <ن \J[ و اJnA%ل¨ و

IJ/ان ;W%ل ، A,خ اiEA%ل داد5 روي یX- À©�. ا�* ;b�m ه% ز;%ن خ%ل¨ @�%ر زی%د %در ;i%ی@�

� \%ی�M%ي ��@E]. آ%;��/0, @�%ر آ06I, ا�* A,خ 4,دازش%I; ¨EZ � *X@A ي,EOآ *P,� %

��A> cpu 6A/z�; �E-/A 56 وAی6، خ/ا%OA در ا�* 4,دازش%^ ,8�A خ��¨ و ال�EX ، ورودي آ%ر

*\,o 6م خ/اه%<A06, اIآ .À0 ¨EI� b�m; Àاز در ی ]X^ %O- �;%A, ، ¨?A �nف و­�,g Z,آ*

EZ 6A%O¨ اwEI; ,o, اO0%م اج,اي6Jي ;>X/ر ا�* ¨�X^ £و­%ی cpu %EX@A زی%دي را " ز;%ن

6-%�©%ر .¨zآ ½A 6Id Bاج%ز5 ;�6ه6 0% ای %O- � �©%ري را m0* آEI,ل �E\,o و از<نز;%ن

¨/�g; /mI%0m%ل ,اي ��@E] ه%ي �wA ¨�;%P, اo,. ا�nE%دOA 5%ی�6 windows 95%ی

windows NT¨@ی/A �;%A,%-�OEZ 34 ، 6% آ,د5 6�E@ه %I-> ¨zآ ½A 6Id ¨@ی/A �;%A, % .

Bص ای/�?آ� ج%وا A½ ه% را ;6ی,ی* ;¨ آA 6Id ،6I½ آz¨ آ,دن را <�%ن ;¨ i�iZ* ا;%

6A/- زد، زی,ا%� .

i,Bا £� The Main Thread

Àی ¨E^و�;%A, %OEZ ، ازج%وا -,وع ;¨ -/د ]X^ ل اج,ا%Z در ½A Àج/د داردو <ن ، ی .½A Bای

1/OJ; ی%را ¨�Rا ½A main thread 6I;%A ¨; %O- �;%A,,O- �;%A% ;¨ خ/اه6زی . ¨E^و ,

. ا�* -,وع -/د ، ایA B½ اج,ا -56 ¨�Rا ½Aا�*� دو [M; ر%�@ایB هO%ن A?¨ ا�* آ� .دل�[

% .از <ن 6A/- ¨; ,�W©0 (child) \,ز6A �%ی, A½ ه%ي ¨?A Bی6 <خ,ی% ½A Bم -6 آ� اج,ا راای%O0

6Iآ ¨; .¨�Rا ½A آ� ¨E^خ/اه6 ی%\* و �O0%8 خ�A %O- �;%A, .;E/^£ ;¨ -/د ،

Page 303: Java farsi

g/ر خ/دآ%ر ای>%د ¨�Rا ½A ، 6�Iا0%ن را <_%ز ;¨ آ �;%A, �©�;%rIه �d,oد ، ا;% ;¨ ا/- ¨;

¨- Àی} ی,v 0/ان <ن را ازThread /OA ل,EIم. دآ%<Aاي ا, اA¨ روشایI©%ر ، %ی6 % \,اخ/

currentthread() /�P Àآ� ی public static از thread�6* <وری6ا. �* ، یÀ ارج%ع � <ن

6-% : -©[ OP/;¨ <ن �/رت زی, ;¨

staticThreadcurrentThread()

6Aدا,o ¨; ,� ه,%رآ�. ایB روش یÀ ارج%ع � A?¨ آ� در <ن \,اخ/اA¨ -56 ا�* را ¨P%ارج

6�Iای>%د آ ¨�Rا ½Aل,EIآ *m0 ي,rدی ½A ,ه ]W; 6 <ن را�Aدر<وری6 ، ;¨ 0/ا. Àی %اج%ز5 ده�6

[�Iل -,وع آ%W; :

// Controlling the main Thread.

class CurrentThreadDemo {

public static void main(String args[] ){

Thread t = Thread.CurrentThread();

System.out.println("Current thread :" + t);

// change the name of the thread

t.setName("My Thread");

System.out.println("After name change :" + t);

try {

for(int n = 5; n > 0; n-- ) {

System.out.println(n);

Thread.sleep(1000);

}

} catch( InterruptedException e ){

System.out.println("Main thread interrupted");

}

}

}

,A%;� ، یÀ ارج%ع � A½ ج%ري Bدر ای ) ¨�Rا ½A ن%Oل* ، ه%Z Bدر ای (����/ ¨Aراخ/ا

currentThread () ¨�m; ,�TE; �6* <;56 و در t 3�� ر5 ذخ�,5 ;¨ -/د%,A%;� اPtv%ت در

,A .5%rA> �;%A½ را OA%ی  ;¨ ده6 etName() ¨A6 0 را \,اخ/اIی« ;¨ آ/J0 را ½A ¨م داخ�%A %

OI%ی  دراPtv%ت در%رA 5½ ;>6دا. OA6%ی 6I6د . ;¨ <یP از �i�Z Àس 3��٥ ، ی/©J; رش%O-

6Iآ ¨; �©OM�A%ث Àی bه, دو خ B� .اA>%م ;¨ -/د ()sleep ;©� \/ق b�/0 روش. ;¨ آ6I و

Page 304: Java farsi

� * آ6�I آ� �/كد^. ;z?� آ56II دور5 0%خ�, ,u@Z ;��¨ ث%��A ا�* ()sleep <رo/;%ن

try/catch Bآ,د5 ا�* ای �v%Zرا ا �i�Z. روش sleep()در ThreadÀا�* ی B©O;

InterruptedException 6ی%OA را 0,4%ب. B6 در ایIاه/? ,rه%ي دی ½A خ¨ از, ,oق ا/J; ½A

¨Eل%Z B�Id ،6Iی%OA لtE6 -56 اخE\ق ;¨ ا%n0ا .�n^ر و%dد ,oل ا%W; B�4%م را ای Àپ ;¨ -/د ، ی%d

6Iآ .Àر در ی/v ل* را%Z Bی6 ای% ، ¨J^وا �;%A,b�/0 خ,وج¨ 0/ل�6 -56. دیr,ي ادارOA 5%ی�6

6-%i,ار زی, ;¨ �;%A, Bای :

Current thread :Thread[main/5/main]

After name change :Thread[My Thread/5/main]

5

4

3

2

1

¨E^6 آ� و�Iد^* آ t IJ/ان یÀ <رo/;%ن � println () ¨د5 ;¨ -/د ، خ,وج%nE0/ل�6 ;¨ -/د ا� .

:ایB خ,وج¨ u�0,E ;/ارد 6Jي را OA%ی  ;¨ ده6

{Z ، ½A م%A ن> �v/g/ر �4  \,ض ، A%م A½ ا6i0 .¨�Rم <ن ، و A%م o,و5 ;, main *6م. ا�i0

6ان ;�JE} ا�* آ� ;6iاري �4  \,ض ;¨ %-6 ، هA B�I�O%م o,وه¨ از A½ ه% آ� ای٥X?A B<ن

%-main 6 ا�* ، هO%ن ¨; .½A 5و,o Àی Threadgroup ر%Eع �%خ/A Àی Àل* ی%Z داد5 ا�* آ�

;B�Z b�m اج,اي خ%R¨ ;6ی,ی* ایB 4,دازش. A½ ه% را g/ر آ�¨ آEI,ل ;¨ آ�P/O<;6I از

6J از. ایI>% ;/رد ,ر�¨ ^,ار �o ¨OA,د-56 و در ، 6 R%Z[ ;>6دا tایA �©I%م ��T0 ½A, ;¨ ی%

OI%ی  در;¨ <ی6 در ایB ز;%ن ، A%م ج6ی6. ;¨ -/د ½A . ي%M-رو �اج%ز5 ده�rA 6%ه¨ د^�} 0,

b�/0 56- £ی,J0 Thread �;%A,%-�] آ� در �E-6، داAد5 -56 ا%nEروش. ا� sleep() uX�

g/ر ;/^ A?¨ آ� از <ن \,اخ/اz�; ¨A/د %0 ��A%از ;��¨ ث ¨�?z; اي ;6ت, *-56 ، اج,ا را

: <ن �/رت زی, ا�* -©[ OA £^/E; .¨;/OP%ی6

static void sleep( long miliseconds )Throws InterruptedException

�?z; ��A%ث ¨��; u@Z ,ایB روش . ;¨ -/د 6J0اد ;��¨ ث%��A ه%ی¨ آ� %ی��J0 6} اA>%م �o,د

Àا�* ی B©O; InterruptedException 6ی%OA روش .را 0,4%بsleep () À[ دوم ه] دارد ی©-

Page 305: Java farsi

u@Z nanoseconds ;��¨ ث%��A و 0% ;6ت ز;%ن را , zA%ن ;�6ه�] و � -O% اج%ز5 ;�6ه66Jاآ�

. ;OA �?z%ی6

static void sleep( long miliseconds/ int nanoseconds )Throws Interupt

Exception

,اي ;Mg�m%ی¨ ;u�%I ا�* آ� ا;©%ن ز;% bi\ دوم ]©- B6ي دور5ایIXA ¨A%;را ه%ي ز u@Z ,

nanoseconds 6Aدار. % 6�Aن ;¨ ده6 ، ;¨ 0/ا%zA ¨�X^ �;%A, ا�nE%د5 از هgA%O/ری©�

setName() م%A6�Iآ B��J0 را ½A Àی .¨Aاخ/ا,\ % getName()¨; *�6 0/اA 6�A%م یA À½ را

آtسا�P% ایB رو-M%). �* داد56zA 5 ا ا;% 0/ج� آ6�I آ� ایB روی� در ,zA �;%A%ن( <وری6

Thread 6A/- ¨; نtPرت زی, ا/� : ه@6IE و

final void setName( string ThreadName)

final string getName

£� fد ی�Iای

% �A/OA �%زي یÀ -¨ز%ن خ��¨ %O- ، 5ع�%د/A از Thread 6�Aرا ;¨ 0/ا ½A Àج/د <وری6 ی/ .

Iم ای%<Aاي ا,را �4%د5 �%زي Runnable راb ;¨ 0/ا6�A : ©%ر J0,ی£ ;�OI%ی6ج%وا دو -�/5

ه, آ6ام از -�/5 ه%ي \/ق را ,ر�¨ ;¨ . را @b ده�Thread 6 ;¨ 0/ا6�A خ/د آtس.OA%ی�6

[�Iآ .

Runnable پ-�د� ��زي

b . OA%ی6 را �4%د5 �%زي EA%�> Runnable,یB -�/5 ای>%د یA À½ ای>%د یÀ آtس ا�* آ� را

Runnable 6Iواج6 از آ6 اج,ای¨ را ;>,د ;¨ آ Àی .¨f�- ,6 روي ه�Aآ� ;¨ 0/ا Runnable

@%زی6 ½A Àی6 ، ی%OA ¨; اي �4%د5 �%زي. را �4%د5 �%زي, Runnable *1زم ا� bi\ سtآ Àی

� : �4%د5 �%زي OA%ی6 را آ� �/رت زی, اtPن -run() 56 یÀ روش 0©¨ ;/�/م

public abstract void run()

Page 306: Java farsi

;¨ 0/اM; run() 6A] ا�* 6ا6�A آ�. J0,ی£ OA%ی�run() 6 آ6ي آ� A½ ج6ی6 را ;¨ �%زی6 را داخ[

OA%ی6 و ;�TE,ه%ی¨ در�* ;A ]W½ �%ی, رو-M% را \,اخ/اA¨ آ6I ، هB�I�O از �%ی, آM�t% ا�nE%د5

دیr, ه8O;%ن �giA ورودي ,اي n0 %MI0 run () ½A%وت در ایB ا�* آ�. ا�R¨ را اtPن OA%ی6

6Iآ ¨; *�XW0 را %O- �;%A,6J از . ,;¨ o,دد ، 4%ی%ن ;¨ �o,د ()run ایA B½ و^*. اج,ا داخ[

Thread یÀ -¨ از A/ع را �4%د5 �%زي ;¨ آ6I، ای>%د OA/دی6، %یRunnable 6 ایI©� یÀ آtس آ�

از <MA% ی©¨. آ6I را J0,ی£ ;¨ 6IdیB �%زThread 56A . داخ[ هO%ن آtس �A/OA �%زي آ6�I از

�/رت زی, ا�* �E\,o د5 ;% ^,ار%nEآ� ;/رد ا� :

Thread( Runnable threadOb/ string threadName)

، 56Aز%� BدرایthreadOb b;¨ آ6I را �4%د5 �%زي Runnable ی�A/OA À از آtس ا�* آ� را

ج6ی6 /���� %م J0 ، .A½A,ی£ ;¨ آ6IایB �%ز56A ، ج%ی¨ را آ� A½ -,وع خ/اه6 -6 .

ThreadName د/- ¨; �?z; .�©�A%;ج6ی6 34 از ای>%د -6ن 0% ز ½A روش start() ن را آ�>

یstart() Àاز wA, ذا0¨ ،. آ6I -56 ، \,اخ/ا6�I©A ¨A ، -,وع %ج,ا OA¨ اtPن Thread داخ[

¨Aاخ/ا,\ � run() 6Iروش. را اج,ا ;¨ آ start() [ن داد5 ای%zA ,را در زی :

synchronized void start()

: ;¨ آ6I در ایW; %<I%ل¨ وج/د دارد آ� یA À½ ج6ی6 ای>%د OA/د5 و اج,اي <ن را -,وع

// Create a second thread.

class NewThread implements Runnable {

Thread t;

NewThread (){

// Create a new/ second thread

t = new Thread(this/ "Demo Thread");

System.out.println("Child thread :" + t);

t.start)(; // Start the thread

}

// This is the entry point for the second thread.

public void run (){

try {

for(int i = 5; i > 0; i )--{

System.out.println("Child Thread :" + i);

Page 307: Java farsi

Thread.sleep(500);

}

} catch( InterruptedException e ){

System.out.println("Child interrupted.");

}

System.out.println("Exiting child thread.");

}

}

class ThreadDemo {

public static void main(String args[] ){

new NewThread)(; // create a new thread

try {

for(int i = 5; i > 0; i )--{

System.out.println("Main Thread :" + i);

Thread.sleep(1000);

}

} catch( InterruptedException e ){

System.out.println("Main thread interrupted.");

}

System.out.println("Main thread exiting.");

}

}

56Aدرون �%ز New Thread ¨- ÀیThread د5 از%nEا� % : -56 ا�* د�E/ر 6Jي ای>%دج6ی6

t = new Thread(this/ "Demo Thread");

را ()run روش IJ/ان اول�B <رo/;%ن zA%ن ;¨ ده6 آ� -O% ;¨ خ/اه�A 6½ ج6یo this 6¡ر دادن

را اج,اي -,وع آ%ر A½ ، آ� \,اخ/اA¨ ;¨ -/د ()start ��3. \,اخ/اOA ¨A%یthis 6 روي -¨

%�P ;¨ -/د آ� �i�Z. ¨ آ6I<_%ز ; ()run در روش Bای for ½A 6 <_%ز -/دA6 از. \,زJ

¨Aاخ/ا,\ start() �/ط ,; 56Aز%� ، New Thread � main()دد,o ¨;, . ¨�R%?A آ� ¨E^و

�i�Z ، د/- ¨; �E\,o ,� از for 6 خ/د را واردI6 ، . ;¨ آIاج,ا را ادا;� ;¨ ده ½A ه, دوcpu

%i,ار . �i�Z ه%یz%ن 4%ی%ن 6A,�o ایE-�©I,اك o¡ا-�E 0% را �;%A, Bای b�/0 56- 6خ,وج¨ 0/ل�

: زی, ا�*

Child thread :Thread[Demo Thread/5/main]

Main Thread :5

Page 308: Java farsi

Child Thread :5

Child Thread :4

Main Thread :4

Child Thread :3

Child Thread :2

Main Thread :3

Child Thread :1

Exiting child thread.

Main Thread :2

Main Thread :1

Main thread exiting.

Bی6 <خ,ی% ¨�Rا ½A ، 56- ¨zآ ½A 6Id �;%A, Àدر ی ، [�Eno tX^ �©ری/gA%O6 آ� اج,ا ه-% ¨?A

آ%;[ -/د ، 4%ی%ن �o,د ، <B©O; 5%rA اA ,o½ اX^ ¨�R[ از ایI©� یA À½ \,ز6A. را 4%ی%ن ;¨ ده6

[E@�� *ل*ا�%m,�X^ �;%A¨ اI�Ov%ن ;¨ ده6 آ� A½ ا�R¨ . در<یB�Z "hang" 6 اج,اي ج%وا

,اي <خ,یA B?¨ ا�* آ� 4%ی%ن ;¨ �o,د ¨�Rا ½A ق ;¨ ١٠٠٠زی,ا/J; %0©,اره B� ��A%ث ¨��;

½A �©ل�%Z 6 درA%; bi\ 6A٥٠٠6\,زA%; ¨; ق/J; ��A%6 . ;��¨ ثAز,\ ½A د آ�/- ¨; �P% Bای

ه�O ا�R¨ <خ, از خ�Rt ، را5 EM,ي ,اي اI�Ov%ن از ای�R .½A �©I¨ 4%ی%ن �o,دA½ ا زود0, از

.خ/اه�6 ی%\* 4%ی%ن �o,د

£� ?��

ی�A/OA À ��3 را @b داد5 و Thread دو;�B -�/5 ای>%د یA À½ ، ای>%د یÀ آtس ج6ی6 ا�* آ�

6Iس ای>%د ;¨ آtن آ%Oی6 روش. از ه% 56Iده b@ OA%ی6 ، آ� �giA ;6خ[ /را لrun T() آtس

(entry) *ج6ی6 ا� ½A اي,%ی6. B�I�Oس هtآ Bای ()start 6ج6ی ½A 6 0% اج,ايIآ ¨Aرا \,اخ/ا

,�X^ �;%A¨ را. را <_%ز OA%ی6 %<Iد5 ای] 0% در ای/OA ¨@ی/A �;%A, . را @b دهThread 6 دو%ر5

// Create a second thread by extending Thread.

class NewThread extends Thread {

NewThread (){

// Create a new/ second thread

super("Demo Thread");

Page 309: Java farsi

System.out.println("Child thread :" + this);

start)(; // Start the thread

}

// This is the entry point for the second thread.

public void run (){

try {

for(int i = 5; i > 0; i )--{

System.out.println("Child Thread :" + i);

Thread.sleep(500);

}

} catch( InterruptedException e ){

System.out.println("Child interrupted.");

}

System.out.println("Exiting child thread.");

}

}

class ExtendThread {

public static void main(String args[] ){

new NewThread(); // create a new thread

try {

for(int i = 5; i > 0; i )--{

System.out.println("Main Thread :" + i);

Thread.sleep(1000);

}

} catch( InterruptedException e ){

System.out.println("Main thread interrupted.");

}

System.out.println("Main thread exiting.");

}

}

Bن خ, ای%Oه �;%A,6Iرا 0/ل�6 ;¨ آ ¨�X^ �;%A,/���� A½ \,ز6A هgA%O/ری©� ;¨ �6�I. وج¨

¨- Àزي ی%� �A/OANewThread آ� از Thread 56 ، ای>%د- {Ez; د/- ¨; .¨Aاخ/ا,\ �

super () ]داخ NewThread 6ی�%OA *^6ي �%. دJ را \J%ل ;¨ آTrhead6I ز56AایB ا;, -©[

.

public thread( string threadName)

Page 310: Java farsi

%<Iدر ای Thread Name 6Iآ ¨; �?z; را ½A م%A ، .5/�- Àب ی%?EA6 ا�Iآ u<J0 *ا� B©O;

Thread آtس. آ6ام -�/5 EM, ا�* d,ا ج%وا دو -�/5 ,اي ای>%د A½ \,ز6A دارد و ایI©� آ�

6Iی£ ;¨ آ,J0 روش را B6یIdسtآ Àی ����/از ایB رو-Ez; 6A/- . %M} -56 ;¨ 0/ا6IA لT/ آ�

bi\ د/- /Tی6 ل% �©A> ، run() *ن. ا�%Oه �EXروش ال Bای %O- ¨E^رو-¨ ا�* آ� و Runnable

6�I©�; ري از. 1زم ا�* را �4%د5 �%زي%�@ %M�t6 آ� <ن آIIس ;¨ آ%@Zی@%ن ج%وا ا/A �;%A,

¨E^و bi\ %ل ا\8ای  ی%Z 6ا درI%ی6 @b ی% ، 6IE@ح -6ن هtR .6خ/اه� ¨OA ,oا Bای,%I Àه���

EM, ا�* خ��¨ �%د5 @rE¨ داردرا لOA /T%ی�6 ، اthread 1%OEZ رو-M%ي از �%ی, .

5��*%� ایI�د �£ ه�ي چ

� ا;% ، ,A .�;%A½ \,زA 6A½ ا�R¨ و: %0 m%ل \bi دو A½ را ا�nE%دOA 5/د5 ای6 6A0/ا ¨; %O- 6ادJ0

IJ/ان ;W%ل ، ,6JXM;%Aي �� A½ \,ز6A ای>%د ;¨ آ6I . ;/رد �A%ز از A½ ه% OA ,�W©0%ی6 :

// Create multiple threads.

class NewThread implements Runnable {

String name; // name of thread

Thread t;

NewThread(String threadname ){

name = threadname;

t = new Thread(this/ name);

System.out.println("New thread :" + t);

t.start(); // Start the thread

}

// This is the entry point for thread.

public void run (){

try {

for(int i = 5; i > 0; i )--{

System.out.println(name + " :" + i);

Thread.sleep(1000);

}

} catch( InterruptdException e ){

System.out.println(name + " Interrupted.");

}

Page 311: Java farsi

System.out.println(name + " exiting.");

}

}

class MultiThreadDemo {

public static void main(String args[] ){

new NewThread("One"); // start threads

new NewThread("Two");

new NewThread("Three");

try {

// wait for other threads to end

Thread.sleep(10000);

} catch( InterruptedException e ){

System.out.println("Main thread Interrupted");

}

System.out.println("Main thread exiting.");

}

}

i,ار زی, ;¨ %-6 خ,وج¨ �;%A, Bاز ای ]R%Z :

New thread :Thread[One/5/main]

New thread :Thread[Two/5/main]

New thread :Thread[Three/5/main]

One :5

Two :5

Three :5

One :4

Two :4

Three :4

One :3

Three :3

Two :3

One :2

Three :2

Two :2

One :1

Three :1

Two :1

Page 312: Java farsi

One exiting.

Two exiting.

Three exiting.

Main thread exiting.

½A �� ,6 ، هA/- ر آ� <_%ز% ا-E,اك ;¨ o¡ار6A را � cpu\,ز6A ، هgA%O/ری©� ;¨ �6�I ، ه,

¨Aاخ/ا,\ � ١٠٠٠٠ sleepدر main*^ی�6 ر د%OA .�P% Bاي ای, ¨�Rا ½A د آ�/- ¨;

. ده6 آ� <خ, از ه�O ی%ن ;¨ ی%6 ث%J; ��A/ق ;%56A و اI�Ov%ن ;¨١٠

join() و isAlive() ا��A�د� از

¨?A Bی6 <خ,ی% ¨�Rا ½A ، 6- ,ری©� ذآ/gA%Oد ه,�o ¨; 6 آ� 4%ی%ن-%;W%لM%ي ^�X¨ ، ایI©%ر در.

¨Aاخ/ا,\ %,اي اI�Ov%ن از ایI©� آ��� % یÀ 0%خ�, main 6m() داخ[ sleep() را ¨A1/v ¨\%آ

6Aه%ي \,ز ½A 4%ی%ن ¨�Rا ½A از ]X^ [م دادی%<A6 ، اA,�o ¨; .Xال �A%Ç^ ¨E?Ç@ ]ÇZ 5را ÀÇ BÇای �ÇE

از 4%یÇ%ن �ÇA/rd یÇ; ½ÇA ÀǨ 0/اZ : 6ÇA[ در �BOÇ یÇ� ÀÇ/ال را ,;Ǩ ا8Ç�rAد ایB را5. آ56II ا�*

½A BE\,o 6 bÇ�/0 <ن ;Ǩ 0/ا6Ç�A و���� اي \,اه] OA/د5 آThread �Ç خ/-�A%E?X،دیo> ,r%ه¨ ی%

. <ی% یA À½ 4%ی%ن �E\,o ا�* ی�ÇA %Ç آ�I] آ� دو -�/5 وج/د دارد B��J0 %0 .4%�½ ایB 4,�  را 6ه�6

و J0,یThread 56Ç- £Ç ایBÇ روش bÇ�/0 . \,اخÇ/اA¨ آ6Ç�I را روي isAlive ½ÇA() ;¨ 0/ا6�A اول

6-% : -©[ آ�¨ <ن �/رت زی, ;¨

final boolean isAlive (Throws InterruptedException)

%1ی¨ <A©� \,اخ/اA¨ -56 هÇI�O%ن در ½A ,o6 اÇ-%را 6Çi; trueار ()isAlive ، روشÇZ%ل اجÇ,ا

6Aدا,o ¨;,Ç� 5%ÇrMo/د;isAlive() 6I در Z%ل�©�Ç . را ,;¨ o,داfalse 6ÇA در _�, ای�I/رت.

6�A%O ، رای¼ ;/رد ا�nE%د5 ا�* ، رو-¨ آ� g/ر ,wEI; ½A Àی BE\%اي 4%ی%ن ی, ^,ار ;¨ �o,د %0

join() رت/� : زی, ;¨ %-6 ا�* آ�

final void join (throws InterruptedException)

Page 313: Java farsi

Bد ای,�o 56 4%ی%ن- ¨Aآ� روي <ن \,اخ/ا ¨?A %0 6A%; ¨; ,wEI; ي از. روش,rي دی%M�©- join()

6Iاج%ز5 ;¨ ده %O- �6ZاآW, ز;%A¨ آ� ;¨ خ/اه�6 ,اي 4%ی%ن ی%\BE یÀ 0% هB�I�O وج/د دار6A آ�

. OA%ی�A B��J0 6½ خ%ص XR, آ6�I را

Àی %<Iاز در ای �Çد دارد آ/Çوج ¨Ç�X^ ل%ÇW; ح -56 ازtRروای* ا ()join 5د%nEÇن ا�%ÇI�Ovا %Ç0 5د,Çآ

را isAlive() هB�ÇI�O روش ,A%;� ایB. ده6 آ� A½ ا�R¨ <خ,یA B?¨ ا�* آ� ;E/^£ ;¨ -/د

. zA%ن ;¨ ده6

// Using join )(to wait for threads to finish.

class NewThread implements Runnable {

String name; // name of thread

Thread t;

NewThread(String threadname ){

name = threadname;

t = new Thread(this/ name);

System.out.println("New thread :" + t);

t.start(); // Start the thread

}

// This is the entry point for thread.

public void run (){

try {

for(int i = 5; i > 0; i-- ) {

System.out.println(name + " :" + i);

Thread.sleep(1000);

}

} catch( InterruptdException e ){

System.out.println(name + " Interrupted.");

}

System.out.println(name + " exiting.");

}

}

class DemoJoin {

public static void main(String args[] ){

NewThread ob1 = new NewThread("One");

NewThread ob2 = new NewThread("Two");

NewThread ob3 = new NewThread("Three");

System.out.println("Thread One is alive :" + ob1.t.isAlive))(;

Page 314: Java farsi

System.out.println("Thread Two is alive :" + ob2.t.isAlive))(;

System.out.println("Thread Three is alive :" + ob3.t.isAlive))(;

// wait for threads to finish

try {

System.out.println("Waiting for threads to finish.");

ob1.t.join();

ob2.t.join();

ob3.t.join();

} catch( InterruptedException e ){

System.out.println("Main thread Interrupted");

}

System.out.println("Thread One is alive :" + ob1.t.isAlive))(;

System.out.println("Thread Two is alive :" + ob2.t.isAlive))(;

System.out.println("Thread Three is alive :" + ob3.t.isAlive))(;

System.out.println("Main thread exiting.");

}

}

i,ار زی, ;¨ %-6 خ,وج¨ �;%A, Bاز ای ]R%Z :

New thread :Thread[One/5/main]

New thread :Thread[Two/5/main]

New thread :Thread[Three/5/main]

Thread One is alive :true

Thread Two is alive :true

Thread Three is alive :true

One :5

Two :5

Three :5

One :4

Two :4

Three :4

One :3

Two :3

Three :3

One :2

Two :2

Three :2

Page 315: Java farsi

One :1

Two :1

Three :1

One exiting.

Two exiting.

Three exiting.

One exiting.

Thread One is alive :false

Thread Two is alive :false

Thread Three is alive :false

Main thread exiting.

()resume و ()suspend � ازا��A�د

ج6ا�A%o ;¨ 0/ان IJ/ان ;W%ل % ا�nE%د5 از یo . ½A À%ه¨ 1زم ا�* اج,اي یA À½ را لOA /T%ی�]

/ط � <ن %یO0 6%ی�¨ � ا�nE%د5 از �%6A *Pا-�E اo, آ%ر,. و^* را zA%ن داد,; ½A 34 ، 6-%

%-6 ، لOA /T/دن ی. لT/ -/د �d ,ع <ن ه/�/;À *آ%ر �%د5 اي ا� ½A .BE6اخAر ا%© B�I�Oه

;�6هXP 6I%ر6I0 از رو-M%ی¨ آ� ای6Iو و­��n را اA>%م .ا�* A À½ ل8�A 56- /T آ%ر �%د5 اي;>6د ی

suspend() و resume(). b�/0 %MA> Thread رت/� : زی, ;¨ %-J0 6I,ی£ -56 و

final void resume()

final void suspend()

J �;%A, : 6ي ایB رو-M% را zA%ن ;¨ ده6

// Using suspend ()and resume.()

class NewThread implements Runnable {)

String name; // name of thread

Thread t;

NewThread(String threadname ){

name = threadname;

t = new Thread(this/ name);

System.out.println("New thread :" + t);

Page 316: Java farsi

t.start()// Start the thread

}

// This is the entry point for thread.

public void run (){

try {

for(int i = 5; i > 0; i )--{

System.out.println(name + " :" + i);

Thread.sleep(200);

}

} catch( InterruptdException e ){

System.out.println(name + " Interrupted .");

}

System.out.println(name + " exiting.");

}

}

class SuspendResume {

public static void main(String args[] ){

NewThread ob1 = new NewThread("One");

NewThread ob2 = new NewThread("Two");

try {

Thread.sleep(1000);

ob1.t.suspend)(

System.out.println("Suspending thread One");

Thread.sleep(1000);

ob1.t.resume)(

System.out.println("Resuming thread One");

ob2.t.suspend)(

System.out.println("Suspending thread Two");

Thread.sleep(1000);

ob2.t.resume)(

System.out.println("Resuming thread Two");

} catch( InterruptedException e ){

System.out.println("Main thread Interrupted");

}

// wait for threads to finish

try {

System.out.println("Waiting for threads to finish.");

Page 317: Java farsi

ob1.t.join)(;

ob2.t.join)(;

} catch( InterruptedException e ){

System.out.println("Main thread Interrupted");

}

System.out.println("Main thread exiting.");

}

}

6I6ي را 0/ل�6 ;¨ آJ,A%;� خ,وج¨ Bای :

New thread :Thread[Two/5/main]

One :15

New thread :Thread[Three/5/main]

Two :15

One :14

Two :14

One :13

Two :13

One :12

Two :12

One :11

Two :11

Suspending thread One

Two :10

Two :9

Two :8

Two :7

Two :6

Resuming thread One

Suspending thread Two

One :10

One :9

One :8

One :7

One :6

Resuming thread Two

Waiting for threads to finish.

Page 318: Java farsi

Two :5

One :5

Two :4

One :4

Two :3

One :3

Two :2

One :2

Two :1

One :1

Two exiting.

One exiting.

Main thread exiting.

ت:% ��ي �£

%یM;6i0 6%ي b�/0 ½A ز;%A 6IXA½ ا�nE%د5 ;¨ -/د z; %0?� -/د آ� آ6ام ½A 6ی%OA اج%ز5 اج,ا 6�4ا

.*X@A ,Ez� داراي 6i0م آEO, ، ز;%ن �Ez,ي از � M?A%ي از f0 ,wA/ري ، M?A%ي داراي 6i0م

cpu 6A,�o ¨; 8اند. را�; ، ]OP آ� ر ¨E^از و ½A Àی cpu � ¨rE@;¨ �o,د ، tPو5 , 6i0م

;W%ل ، ای�A/rd �©I ی6Id ];%P [E@�� À و­��n اي را �4%د5 IJ/ان ( . P/ا;[ دیr,ي ه] دارد

6I6 �%زي ;¨ آAز;%ن ;¨ 0/ا � ¨X@A ¨�,Eروي د� cpu 6-% �E-6م. ) 0%ث�, داi0 داراي ½A Àی

,Ez� 6Aی6از ی;¨ 0/ا%OA ¨E�6z�4 ,EO6م آi0 % ½A À .Àی ¨E^و ، �A/OA ان/IJ % ½A

% 6i0م �Ez, از �, �E\,o -/د ½A À6 و ی-%Z%ل* ��J0} ی% از;6i0 ( tWم آEO, در Z%ل اج,ا

% 6i0م ( I/o اwEA%ر روي ½A � ,Ez�% 6i0م ½A Bای ,EO6 آIآ ¨; ¨E�6z�4 .

%ی6 د�J; ¨�,E%دل¨در f0/ري ، A½ ه%ي % 6i0م ,,ا � cpu 6I-% �E-دا . u^ا;% 1زم ا�* ;,ا

6�-%%-�6 آ� ج%وا. �E-د دا%�,خ¨ . ;v %Mg�m,اZ¨ -56 ا�* ,اي آ%ر در �v£ و��J¨ از

�n6 و­�Id ، %Mg�m; از t;%وت از �%ی,اي را آ%nE; 6II�4%د5 �%زي ;¨ آ ، %Mg�m; . ,v%?

½A ، ¨IOه%ی¨ آ� 0 ای�%ی6 ه, o 6Id%5 ی©X%ر آEI,ل -/6i 6Aم ی©@%A¨ را 6Aار¡o ¨; اك,E-ا . Bای

,اي اج,ا -6ن P [E@�� *m0%;[ ا;, اI�Ov%ن ;¨ ده6 *R,\ Àه% ی ½A آ� آ��� � �E@_�, وا

¨E�6z�4 (non-preemptive) *-6 داIدر. را خ/اه ¨EZ ، ]OP در � �E@ ;Mg�m%ي _�, وا

½A ,Wاآ ، ¨E�6z�4، 6A3 اج,ا -6ن دارA%- Àن ی%I�Oر ه% ه%d%I,خ¨ زی,ا اآA ,W½ ه% %

Page 319: Java farsi

�/ك �%زي �wA, اwEA%ر ,اي bای,- l/o 6 -6 ;/اج�Iخ/اه .Bای ¨E^آ� و/� ½A ، 6E\ق ;¨ ا%n0ا

اo, ;¨ خ/اه�6 اج,اي A 6Id?¨ -56 را ا;%. 0/ا6IA اج,ا -/6A -56 لT/ -56 و �%ی, A½ ه% ;¨

I,;¨ اA>%م ده�،6 ¨©E; ]Rا Bی6 روي ای%XA 6�-% . 6Aاع و­%ی£ وج/د دار/Aخ¨ ا, ، B�I�Oه

� آ� o,ای  cpu ن%Id 6Aدار ,%ی6 روي ایA B/ع از A½ ه% ،. �d,5 خ/اهA cpu 6- 6I½ ه%ی¨

%-�6 0% �%ی, A½ ه% E/ا6IA اج,ا -/rMo 6A%5 آEI,ل¨ �E-دا.

Thread ا�nE%دOA 5%ی�6 ، آ� �P/ي از 6i0 B��J0 ()setpriorityم یA À½ ، از روش ,اي

: -©[ OP/;¨ <ن i,ار زی, ا�*. ا�*

final void setpriority( in level)

%<Iدر ای level ��J0 ,rn�R/0*56 ا�IAاي \,اخ/ا,%ی6 داخ[ ;6mود6i; level 5ار. 6i0 Bم ج6ی6

MIN-PRIORITY و MAX-PRIORIT6-% .6I-%X ;�١٠و 1 در Z%ل Z%�,، ایi; B%دی,.

� 6i0م �4  \,ض ، . ½A À6ن یAدا,o,,اي NORM-PRIORITY 6 آ� را�Iآ ¨; �?z;

tJ\ 5 *ه%ي. ا�,�TE; ان/IJ %M;6i0 Bای final ]داخ Thread 6Aی£ -56 ا,J0.

�6* <وری6 ، آ� رThread در()getpriority ;¨ 0/ا6i0 B��J0 6�Aم ج%ري را % \,اخ/اA¨ روش

6�/ر-% : ت زی, ;¨

final int getpriority()

tJ\ر%E\رت -6ی6ي ر/�;nE%وzA ¨0%ن ;¨ �4%د5 �%زي ج%وا ، و^E¨ آ� ز;%6IXAي �4  ;¨ <ی6 ،

�  هgA%O/ری©� اwEA%ر داری6 آ%ر٩٥روای* وی6Iوز . ده6 %O6 آIا;% روای*. ;¨ آ solaries

6Iوت آ%ر ;¨ آ%nE; اي �A/r .oز%�%A ري از%�@%Mه%ی¨ %ری ½A %O- 6 آ�IIوز ;¨ آ, ¨;%rIه

%-�6 آ� >%ي ایI©� ز;%ن �E-دا cpu را �E@� ر\E%ر وا ¨©E; ، 6Iی%OA اآ¨ ;�,ف,E-رت ا/�

6I-% ¨E�4  د� �% ج%واي ا;,وز، %ی6 از ,اي. ¨I�  �4 ]%^ ]%iE; ر ارج%ع%E\ر u@آ

. د�* ,;¨ دارcpu 6A ,ل OA/دنآ6�I آ� g/ر اخ�E%ري از آM?A EI%ی¨ ا�nE%د5

½A 6ي دوJ ذآ, -56 اج,ا % M;6i0%ي ;?�E£ را zA%ن ;¨ ده6، آ� روي دو ;b�m زی,I%ی¨ ;W%ل

6- 6Iاه/?A .56 آ�- B��J0 ¨ل/OJ; 6مi0 01, از% �g� دو ½A Àی ����/ Thread-NORM-

PRIORITY 6مi0 0, از B4%ی� �g� ي دو,rی£ -56 ا�* و دی,J0 /OJ;¨56 ا�* ل- B��J0 . ½A

6Oت ه% <_%ز -56 و ١٠6Aاج%ز5 اج,ا دار ��A%ه,. ث Àی ½A 6ادJ0 6 ، آ�Iرا اج,ا ;¨ آ �i�Z

Page 320: Java farsi

6Iرش ;¨ آ%O- 6 از د5. 0©,اره% راJ ، ��A%6 ثIآ ¨; £^/E; را ½A ه, دو ¨�Rا ½A . 6ادJ0 3��

OI%ی  در ;¨ <ی�i�Z 6 د\J%0¨ آ� ه, A½ از v,ی} ، 56- �Eخ%�.

// Demonstrate thread priorities.

class clicker implements Runnable {

int click = 0;

Thread t;

private boolean running = true;

public clicker(int p ){

t = new Thread(this);

t.setPriority(p);

}

public void run )({

while( running ){

click++;

}

}

public void stop )({

running = false;

}

public void start (){

t.start)(;

}

}

class HiLoPri {

public static void main(String args[] ){

Thread.currentThread.)(setPriority(Thread.MAX_PRIORITY);

clicker hi = new clicker(Thread>NORM_PRIORITY + 2);

clicker lo = new clicker(Thread>NORM_PRIORITY - 2);

lo.start();

hi.start();

try {

Thread.sleep(10000);

} catch( InterruptedException e ){

System.out.println("Main thread interrupted.");

}

lo.start();

Page 321: Java farsi

hi.start();

// Wait for child threads to terminate.

try {

hi.t.join();

lo.t.join();

} catch( InterruptedException e ){

System.out.println("InterruptedException caught");

}

System.out.println("Low-priority thread :" + lo.click);

System.out.println("High-priority thread :" + hi.click);

}

}

,A%;� آ� 6Jا Bخ,وج¨ ای �©�;%rIن داد5 ای] ه%zA 6وزIوی *m0د٩٥/z�; ن ;¨ ده6 آ� اج,ا%zA

g/ر اخ�E%ري از را اA>%م داد5 اEZ ، 6A¨ اo, ه��©6ا;z%ن A context switch½ ه% cpu *د�

�/آ� 6Iz©A l/o 6A/zA و ی% ,اي .

Low-priority thread :434104

High-priority thread :4860791

A, Bای b�/0 56- 6خ,وج¨ د^�} 0/ل� �EXال*P,� � �;% cpu ,6اد �%یJ0 و %O- ل%Z و­%ی£ در

@rE¨ خ/اه6 دا-* [E@�� اج,ا در .

zA%ن ;¨ اج,ا ;¨ -/د solaris ج%وا ، آ� ایXI%ر روي یB�-%; À خ,وج¨ 6Jي از هO%ن آtس

% 6i0م ½A 6 ز;%ن اج,ا -56 ا�* ده6 آ�R 6 درR ,Ez��m%ظ <ن. Bای ,Ez�% 6i0م ½A ا�* آ�

, cpu *56 ا�- b�@; .

Low-priority thread :0

High-priority thread :3062507

� ر\E%ر ,ا�%س ¨rE@@�%ر ;M] ا�* آ� -O% آ6ه%ی¨ آ� ، À8دیA 56 ايIدر در <ی ¨E�4  د�

%-IA ،6I/ی@�6 ٩٥وی6Iوز �E-ي دا,rدی ];%P [E@�� ع/A ,ی% ه .

Page 322: Java farsi

ا��A�د� از چ�% �£ آ�i آ)دن

]W; ,o6 ، 34 درا�-%A 6Id½ آz¨ -6ن در اخ�E%ر دا-A%X�Ez4 BE¨ 0/آ%ر از �%ی, ,A �;%A/ی@%ن

%O- اي,;/ث, از ایA%X�Ez4 B¨ ایB ا�* آ� آ��6 ا�nE%د5. -*0%زo¨ خ/اه6 دا ز%ن ,A �;%A/ی@¨

�/رت " ¨A%;8Oرت" ه/� �A 6ی�%OA ,©n0 ¨داخ[. �,ی%ل [E@�� ,دو زی ¨E^ل ، و%W; ان/IJ

6IAداری6 آ� ;¨ 0/ا �;%A, Àد ی,nI; ه%ي ½A �% ا�nE%دOA [�@i0 .5%ی�6 ه8O;%ن اج,ا -/MA> ، 6A% را

6�Aآ,دن ، ;¨ 0/ا ¨zآ ½A 6Id از �Aآ%را �w\%m; 6�@ی/Iا;% ا6J0 ,oاد .,A%;� ه%ي @�%ر ;/ث,ي

%-�6 آ� ,خ¨ . -uX� 6 ا\* �OP©,د ,A%;� ا0%ن خ/اه�6 زی%دي از A½ ه% ای>%د OA%ی�6، �E-د دا%�

% %M�1,ی% conext switching 6IE@ا5 ه,O5 . ه%rA> ،6�Iه% ای>%د آ ½A 6اد زی%دي ازJ0 ,oو^* ا

cpu ,��T0 ف,R ، 6,اي اج,اي اص ی% �©A> از ,Ez� context 6- 6ه% خ/اه .

Page 323: Java farsi

پ-��=

?  -o ، %O%م � o%م <��A را در Bرت در ای/R � \�[ ه%ي B�z�4 <;/خ�E ای6

*Ç\,o 6آ%ر خ/اه� � ¨�OP . ¨ی%ÇXزی uÇ�%I; ¨ی%Çل ه%ÇW; �ÇUارا %Ç *Ç56 ا�Ç- ¨JÇ�

I6ج%وا را درك آ�.

6�-% {\/;

Page 324: Java farsi

�;%A, ;b�Çm 1زم ,Ç\ �Ç;%A/ق . +� ^�6 0/��� <ن را داری] ، @�%ر �%د5 و ;?Ç�E, ا�Ç* اي

%ی@* اA>%م داد .خg^ b,7 را ای>%د ;OA L%ی6,ا7 ر�] ی� L; ت زی, را%��OP ر/wI; B6ی:

• �;%A,Notepad6�U%OA Ïرا در <ن 0%ی ,wA رد/; �;%A, . را \J%ل و

• 6�U%OA 5,را ذخ� �;%A,.

• %0 �Oی�, ج%وا 0,ج%�O+ د5 از%nEا� % . ی� ا�4* ج%وا ای>%د o,دد ,�E-/A �;%A -56 را

� ر\� <MA% ا^6ام o,دددر R/رت 8oارش • *X@A ، ء%gخ.

. ای>%د و از ا�4* ای>%د -56 در <ن ا�nE%د�mnR Html6�U%OA 5 وب ی� •

• 6�U%OA ا�4* ج%وا را اج,اء .

,A%;� ا-%ر5 -56 �/رت زی, ا�* BE;:

5 ��(� ��

import java.awt.Graphics; public class FirstApplet extends java.applet.Applet { public void paint(Graphics g) { g.drawLine(0, 0, 200, 200); } }

)ح,5 ی© : �;%A, Ï0%ی

wIO/ر ذخ�,OA 5/دن ,A%;� ، \/ل6ر7 % A%م دل?/ا5 ای>%د %0 ,�Ç;%A در <ن ذخ�Ço 5,Ç,دد . �Ç;در ادا

,rzوی,ایNotepad ) �+ 7,rدی LIE; ر/Eب و ی% ه, ادی%JÇzAا %Ç TXT ^%در � ای>%د \%ی[ ه7%

6-% ( Ïق را 0%ی/\ �;%A,,Ç\ �Ç;%A/ق . Paste (6�U%OA و Copyو ی% ( را \J%ل و ÏÇن 0%ی%Ç;در ز

ÇZ %Ç,وف 8Çرگ و +/�Çd د^Ç* 1زم ÇR/رت Ç4¡ی,د �Çg%ی@* در را L; . 1ز �Çgم در ایBÇ را

%i�^د �d/+ 8رگ و� ج6ول \/ق ، 0%یÏ ا�* +� Z,وف %z; 6Aد,o.

ذخ�,5 +,دن \%ی[ : )ح,5 دوم

Page 325: Java farsi

,A%;� 0%یÏ -56 را % A%م \%ی[ FirstApplet.Java 6ی� ای>%د +,د5 ای ��Z,; در \/ل6ر7 +� در

6�U%OA 5,56 . ، ذخ�Iا+� در <ی,d دد,o *^م \%ی[ د%A در �d/+ 8رگ و� ا�nE%د5 از Z,وف *X@A

,o 6ار خ/اه,^ L%�Eم ;/رد د�%A B�Oه % .\* \%ی[

)ح,5 ��م : �;%A, +�O%ی[

5,<I4MS-DOS ر/Eد5 از د�%nEا� % FirstApplet.java ، در \/ل6ر7 +� \%ی[ CD را \J%ل و

6�U%OA Ï56 ، 0%ی- �E-/A �;%A, �Oر 0,ج/wIO :^,ار دارد ، ;@iE, -56 و د�E/ر زی, را

javac FirstApplet.java

% Z,وف 8رگ و +/A 6�U%OA Ï ) �d%م \%ی[ Z%و7 ,A%;� را 6ر�LE 0%ی �g ) د^* 1زم در را

��m�0 ، �Ç و ,v,ف +,دن خg%ء : )ح,5 چ��رم *XÇ@A *Ç@ی% L; ، ء%gرت وج/د خ/R در

.ر\� ا-`%1ت ;/ج/د ا^6ام +,د

�I�ªª5 پª,ح( : �mnÇR �ÇÇد ی%Ç<ایHtml ، �ÇÇ56 ، یÇ- د%ÇÇ<ای *Ç�4د5 از ا%nEÇÇ6ار7 و ا�ÇMrA ر/ÇÇwIO

:اPtv%ت زی, را در <ن ^,ار ده��mnR 6 وب ای>%د و

2Html�ی;

<html> <body> <applet code=FirstApplet.class width=200 height=200> </applet> </body> </html>

� ذخ�,applet.htm6�U%OA 5\%ی[ \/ق را % A%م %z; م%A % . و در \/ل6ر7

)ح,5 ش�� : *Ç�45 ، اج,ا7 ا,Ç<I4MS-DOS ل و%ÇJ\ را *Ç�4ا7 ا,Çر اج/ÇwIO د�EÇ/ر زیÇ, را

6�U%OA Ï0%ی:

appletviewer applet.htm

@O� B�U%4 �-/o *O* را�* را Ïd *O� 71% �-/o 7 از,g^ b34 از اج,ا7 ا�4* ، ی� خ

,A%;� ج%وا �E-/A و اج,اء o,دیz;. 6%ه56 خ/اه�6 +,د Bاول� u�0,0 B6ی .

5 ت�I-9�ت و ت�)ی} �)��

Page 326: Java farsi

�;%A,/A *56 ی� ا�4* �%د5 ج%وا ا�- �E- .*�4ا LÇ; �Ç+ 5د/ ، A/ع خ%LR از ,A%;� ه%7 ج%وا

,�Ç;%A هÇ+ 7%Ç%ر,د7 جÇ%وا . 0/ان <MA% را در ی� ;,ورo, اجÇ,اء +Ç,د ]Ç%i; وا در%Ç7 ج%Çه *Ç�4ا

6Aح -56 ا,g; . �Çرو7 ی ,Ç/دÇ0 LÇ; �Ç+ 5/ان <ÇMA% را LU%ه �;%A,,A%;� ه%7 +%ر,د7 ج%وا ،

m; B�-%; د/OA اج,اء L� . �;%A,,ا�O+ 7%ی[ OA/دن ا�4* از javac *Ç56 ا�Ç- 5د%nEا� . �Ç;در ادا

wIO/ر 6Mr0ار7 ا�4* و \,اه] OA/دن ;b�m 1زم ,ا7 اج,ا7 <ن ، ی� �mnR وب ای>%د و ا *�4

Ç,ا7 اجÇ,ا7 ی�Ç اÇ0 LÇ; *Ç�4/ان از ,�Ç;%A . در �mnR \/ق 6Rا زد5 -56 ا�* appletviewer

. +,د8�A ا�nE%د5

%\,R 56- �E-/A �;%A,,A%;� ا�* bدارا7 د5 خ . L; �+ *ا� LE�4ع ا/A Bق �%د5 0,ی/\ �;%A,

,�Ç;%A . 0/ان ای>%د +,د 7%Çه �Ç�I`0 %Ç *Çق ، 1زم ا�/Ç\ �Ç;%A,ÇwIO/ر -IÇ%خ* +%;Ç`�OP ]Ç,د

6ÇÇ-% �EÇÇ-د دا/ÇÇ1زم وج LU%IÇÇ-> اء,ÇÇo LÇÇ- LÇÇ@ی/A .ÇÇ;%A,6ÇÇیÇÇwI; B/ر ÇÇ, رو7 ی`LÇÇ از خÇÇg/ط �

:;OE,+8 و �OP`,د <ن 0/��� دادL; 5 -/د

g.drawLine(0, 0, 200, 200);

*Çا� �Ç;%A,د�EÇ/ر \Ç/ق ، خÇg^ bÇ,7 را ر�Ç] . خÇ\ b/ق ;@fÇ/ل اÇ<A%م Ç��OP%ت ;Ç/رد ÇwA, در

%-6I. خ/اه6 +,د L; ق/\ L�Rا bخ %% د�E/ر \/ق � +%;��/0, . �%ی, خg/ط ,A%;� در ارX0%ط

�Eno 1% -56 ا�* +� ، خ Ïd *O� �-/o را از Lg ) ,nR و ,nR ت%�E?;( *OÇ� �Ç-/o �Ç

B�U%4 *ت ( را�%�E?;6 ) ٢٠٠ و ٢٠٠I+ [ر� .

*Ç�4ی  ا%ÇOA اج,اء و �/ط ,; 5,<I4 56ازAوب ، ا �mnR در ) ¼IÇ4 �Ç�Z,; د ) در%ÇJ و ٢٠٠�Ç ا

� ( در ,A%;� \/ق از ;z; . 76E?� -56 ا�* ٢٠٠%Ç0( م%ÇA %Ç drawLine Çا� *Ç56 ا�Ç- 5د%nE .

% ا�nE%د5 . )٠،٠،٢٠٠،٢٠٠(رود7 اخ¡ ;OA L%ی6E; 6 \/ق ، Md%ر 4%را;E, را IJ/ان و b7 خ%MEAا

,E+56 ا�* ";"از +%را- �?z; . تtÇO7 ج%ÇMEAدر ا �ÇgiA د5 از%nEا� ,�wA ق/\ ,E+را%+  iA

*ÇÇف . ا�,ÇÇZ %ÇÇ bÇÇ6ا7 خÇÇE66ÇÇی56ÇÇ- �?ÇÇz; uÇÇ�0,0 B ا�ÇÇ- . �ÇÇ+ *ÇÇ,وع -56ÇÇ ا�g . *ÇÇاÇÇ�^

% A%م 76E; LAاخ/ا,\drawLine L- م%A % gوج/د دارد .

*Çر ا�/Eی� د� ,�wA ، 6E; ر . ی�%Ç+ �Çی *Ç@ی% LÇ; �Ç+ 6ÇIی%OA LÇ; مtÇP0, ا/��;%Ç+ �Ç %Ç6 هÇE;

% ;?�E%ت ;drawLine �?z. خ%ص اA>%م �o,د Li\ا Lgی6 +� ، خ%OA L; مtP0, ا/��;%+ � ،

% Ç�E?; ,Ç��T0 . -56 را ر�] OA%ی6 �Çv/;Ç0 LÇ/ان خÇg/ط ) 4drawLine%را;E,ه6ÇE; 7%Ç ( %ت ;,

. ;6JEد و % ا�nE%د5 از ;?�E%ت ;z?� -56 را ر�] OA/د

Page 327: Java farsi

8ÇÇ< 7,ÇÇrدی �ÇÇdrawLine �ÇÇاز �ÇÇd 0/ا �ÇÇ+ *ÇÇر 1زم ا�/ÇÇwI; B6یÇÇ ;ÇÇ0 LÇÇ/ان ا�nEÇÇ%دÇÇ+ 5,د ؟

ا و در ز;Ç%ن Ç�4 b�Çm; uÇ�A%دÇ� 5%ز7 جÇ%و . ;,اجÇo �J,دد 6IE@;Graphiceات ;,/ط � +tس

]ÇÇÇ6 ، \%یÇÇÇ- 6ÇÇÇخ/اه uÇÇÇ�A %OÇÇÇ- [EÇÇÇ@�� 7رو ,ÇÇÇ �ÇÇÇ+ LU%ÇÇÇه ]ÇÇÇاز \%ی LÇÇÇ`ی ، �ÇÇÇv/;@6IEÇÇÇات ;,

java.awt.Graphice.html *س . ا�t+ ی[ \/ق%\Graphic6ی%OA L; ی�,z0 را .drawLine

%\,R " سt+ 7%6هE; از L`یGraphic [Çر ر�/ÇwIO ,r6د دیJE; 7%6هE; �I�;ز Bد5 و در ای/

Id ، ن%O+ ، ط/gخ,��T0 ،LJ�� 6 وج/د دارد ... و.

*Çا� LÇA6ه%7 \,اواÇE; 78 داراÇ�A سtÇ+ ,Çد5 و ه/Ç+tÇس " ;tWÇ . ج%وا داراt+ 7س ه6ÇJE; 7%د

Color *ا� ûAر � SetColor. دارا�P/O<; 7 ا7 از ;6Eه% wIO/ر J0,ی£ و O�wEA%ت ;,/ط

6ه7% ;,/ط � +tس ه%7 ج%وا در ز;%ن ا�nE%د5 ه%ز ه, ی� از ;�A/OA .E ا7 در ایB ز;��I ا�*

% ا�nE%د5 از د�E/ر �;%A,%ی@* در ا6Eا7 L;importن را \,اه] +,د%A> د5 از%nEا� �I�;ز .

اشp�ل زدا�+

[�U%ÇÇOA رد/ÇÇخ,�ÇÇ خg%هÇÇnE; 7%ÇÇ%وت *ÇÇا� BÇÇ`O; ، 7,0/��;%ÇÇ+ 7%ÇÇه �ÇÇ;%A, BEÇÇ-/A ن%ÇÇ;در ز .

7%ÇÇه%gخ ÇÇ�wA L0و%ÇÇnE; اع/ÇÇAدارا7 ا LÇÇ@ی/A �ÇÇ;%A,خo 7%ÇÇg,ا;ÇÇ,7 ، خÇÇg%7 ز;ÇÇ%ن اجÇÇ,اء و : ,

6IÇ-% LÇ; LigI; 7%gل . خ%`Ç-را ، ا �Çv/,; *Çاز ;%ه� ,wI\,ÇR ق/Ç\ 7%Çه%gم خ%ÇO0)Bugs (

LÇÇUل زدا%`ÇÇ-ل را ا%`ÇÇ-دن ا,ÇÇ+ ف,ÇÇv, �ÇÇ. ;o LÇÇ/ی�ÇÇEno)debugging (6ÇÇI و ÇÇ��OP%ت ;,ÇÇ/ط

�ÇÇ;%A, *ÇÇ^د7 از و%ÇÇن زی%ÇÇ;ار5 ز/ÇÇO7,0 ه/��;%ÇÇ+ 7%ÇÇه �ÇÇ;%A, LÇÇUل زدا%`ÇÇ-د ا/ÇÇ?A/ی@ÇÇ%ن را

. اخ�E%ص خ/اه6 داد

% ز%ن �g,A �;%A/ی@L در ز;%ن BE-/A ی� ,A%;� در R/ر�P/O<; �`�0 ^/اB�A ;/ج/د در را

، +�O%ی�, در ز;Ç%ن ) در اMEA%7 جtOت در ج%وا " ;" 6Pم ا�nE%د5 از +%را+tW; ,E( رP%ی* rA,دد

o 7%gی� خ ، �;%A, �Oم 0,جtPو ا ��?z0 ی6,ا;,7 را%OA L;. *Ç@ی% LÇ; 7ارد/; B�Id در

,Çv,ف ÇOA/دن ا-Ç`%ل 8Çoارش داد56Ç- 5 ، ا^6Çام +Ç,د �Ç *XÇ@A ، ,Çr6ام دیÇ^از ه, ا ]X^ . 3 ازÇ4

�;%A,در ز;%ن . ، ,A%;� اج,اء ;o L,دد) 6Pم وج/د خo 7%g,ا;,7 ( 0,ج�i\/; �O* <;�8 ی�

Ço ء ;/اج�%g7 از خ,rع دی/A %خg%هÇ\ 7%Ç/ق را ، خÇg%7 . ,دی] اج,ا7 ی� ,B`O; �;%A ا�*

6I;%A L; اء . ز;%ن اج,اء,Çر +%;[ اج/gدر R/ر�0`� ,A%;� دارا7 خg%7 ز;%ن اج,اء XA%-6 و

6-%XA 56- £ی,J0 �Eخ/ا� % u�%IE; �;%A, b�/0 56- 60/ل� Lا�* خ,وج B`O; ، دد,o . 7%ه%gخ

Page 328: Java farsi

Eد5 در�* از د�%nE6م ا�P *�P �/رات و ی% ا�nE%دuÇ�%I;%A 5 از \/ق را خg%هo LiwI; 7%/ی6I و

6ÇIی> LÇ; د/Çج/ �Ç;%A,,ÇA �Ç;%A . الr/ریE] ه% در ی� *Çارد7 1زم ا�/Ç; B�ÇId در �Ç;%A,/ی3 ،

/�ÇÇv و در ÇÇR/رت ل8ÇÇوم 56ÇÇ- �EÇÇ-/A را ;>6ÇÇدا ,; 7%ÇÇه  ÇÇ?ÇÇ%ز�ÇÇOA LI/د5 و ÇÇ% دÇÇXA%ل ÇÇOA/دن

��?z0 7 ;/ج/د را%gد5 -56 ، خ%nEه%7 ا� [Eری/rر\� <ال � *X@A را ن ا^6ام و ;>6دا و �;%A,

.+�O%ی[ و اج,اء OA%ی6

�t-)ه�

wIO/ر 6MrAار7 ;/^* اPtv%ت از،O0%م ,A%;� ه7% +%;��/7,0 6II+ L; 5د%nEه% ا� ,�TE; .tW;

در R/ر�0`� ,A%;� ا�E-/A 7 -56 ا�* +� 6Pد7 را IJ/ان ورود7 خ/ا56A و ج¡ر <A,ا ;�X�%m و

wIO/ر ذخ�,6P 5د وارد -Ç+ bÇ�/0 56%ر, ا�nEÇ%د5 و 3Ç4 در خ,وجOA L%ی  ده6 ، ,�TE; از ی�

. از ذخ�,5 +,دن 6Pد ;/رد wA, ا;`%ن ��OP%ت دل?/ا5 , رو7 <ن \,اه] خ/اه6 -6

%ی@* ^X[ از ا�nE%دJ0 ، 5,ی£ +,د L; ه% را,�TE; . ع/ÇA *Ç@ی% LÇ; ,Ç�TE; �Çی£ ی,J0 در ز;%ن

rA ار ا�* در <ن,^ �+ LU%6ار7 داد5 هM د,+ �?z; 8�A دد را,o. tW; £ی,J0 7,�TE; 0/ان L;

ÇE/ان در <ن ÇA%م و ÇA%م �Ç+ د,Ç+ £Çی,J0 7 را,rدی ,�TE; %6ار7 -56 و یMrA 6ادPد +� در <ن ، ا,+

%ی@* J0,یÇ£ . خ%A/ادLo را ذخ�,5 +,د L; 5د%nEا� ]X^ %ه,�TE; م%O0 ج%وا L@ی/A �;%A,در ز%ن

/0 L; �+ LU%ع داد5 ه/A 8;%نOد و ه,+ �?z; 8�A دد را,o 76ارMrA %MA> ان در.

ÇAint/ع ;�TE,هÇ\ 7%Ç/ق ، . J0,ی56Ç- £Ç اheight 6ÇA و widthدر ,A%;� زیÇ, ، دو ;W; : ,Ç�TE%ل

) ٣ ، ٢، ١ ;tWÇ ( ر � 6MrAار7 ی� 6Pد ��mÇR ، ^%د intی� ;�TE, از A/ع . J0,ی£ -56 ا�*

. در �E\,o ,wA -56 ا�* ٢٠٠ار ;6iار اول�� ه, ی� از ;�TE,ه%7 \/ق ، ;6i. ا�*

ی`L از . ;o L/ی6i; "6Iار دهL اول�� " � ;�TE,ه% ��OP%ت ;,/ط � X@A* دهL ی� ;6iار اول��

*Çا� %Çه,�TE; اول�� L6ار دهi; 6مP ، 6E\ق ا%n0ه% ا �;%A,. ا-`B`O; �+ L01% ا�* در ,خL از

، ,�TE; ی£ ی�,J0 دد در ز;%ن,o L; ��R/0 Bای,%I ;6iار دهLÇ اول��Ç <ن را اÇ<A%م Ç0% از Ç,وز

,خL خg%ه%7 اOEZ%لL در <یo 7,�rz�4 56I,دد.

ÇA int/ع .'1ªس هª� و ) ) Primitive�ª�د� ;�TE,هÇ%7 : در ز%ن ج%وا دو ÇA/ع ;Ç�TE, وجÇ/د دارد

/د5 و ^%در � 6MrAار7 ی� 6Pد ا�* ��د� . %Ç ;�TE,هÇ� 7%Ç%د5 اÇ<A%م O0%م Ç0 L; �+ L0%��OP/ان

. ;6iار % 0/ج� � A/ع ;�TE, ا�* 6MrAار7 ی�اد ، R,\%د

Page 329: Java farsi

/د5 و % ا�nE%د5 از ;6Eه7% ;,/ط �Ç ه,ی�Ç ، ا;`Ç%ن '1س ه�  ? B6یId دن/ ، ^%در � دارا

. ی� �A/OA از +tس ه%7 \/ق ا�*Rectangle. ا�nE%د5 <�%ن <MA% \,اه] ;o L,دد

5 ��(� ��

import java.awt.Graphics; import java.awt.Color; public class FirstApplet extends java.applet.Applet { public void paint(Graphics g) { int width = 200; int height = 200; g.drawRect(0, 0, width, height); g.drawLine(0, 0, width, height); g.drawLine(width, 0, 0, height); } }

�Uارا �;%A, �4`@[ ، ر�] ٢٠٠ * ٢٠٠د ، هO/ار5 ی� خg^ b,7 در I4>,5 ا7 % اJ% -56 در

\Ç,ض +6P . 6Ç�Iم ا;`%ن 4/ی%LU اJ%د I4>,5 ، ی`L از ;6mودی* ه7% ,A%;� \/ق ا�* . ;o L,دد

LÇI�  �4 �;%A,* -Ç/د اÇJ%د Ç<I4,5 را Ço,دد +�Ç از +Ç%ر, درخ/ا�Ç در ایB را�g ، ا;`%LA در

, . ;OA �?z%ی6 7,g^ bخ ، ,ا�%س اJ%د ارا�U 34 از ;OA �?z/دن اJ%د b�/0 5,<I4 +%ر

� 6IE@; �mnRات ;,Ç/ط tÇ+ �Çس . -56 ، ر�] o,دد �Jاج,; %Graphic ، ) ]Çد در \%ی/Çج/;

java.awt.Graphic.html م%O0 *@ی[ \/ق -%;[ ل�%\ ، *Çا� L`�\ا,o ت%��OP �/ط ,; � 0/ا

( �%0 % ،getClipBounds د,Ç+ [خ/رد خ/اه�, . 6Çان ورود7 اخ/ÇIJ� \Ç/ق Ç4%را;E,7 را %Ç0

,o,داRectangle ];%Ç- ، 56Ç- 56ÇA. را ,;o LÇ,داARectangle 6ÇA`,د5 و ی� ;6Çiار از ÇA/ع

P ل و/v*ا7 ر�] ا�, ,wA 6ود5 ;/ردm; ض, .

�Ç ا�L;%Ç د t+Rectangleس ,Ç�TE; ر%Md 7اراx,y,width,height *Çر . ا�/ÇwIO Bای,%ÇI

% ا�nE%د5 از ، 5,<I4 د%J را اخ¡ و 6m; ، RectangleودgetClipBounds 5ا;`%ن 4/ی% OA/دن ا

�ÇÇ ، <ÇÇMA% را در ;�TE,هRectangle 7%ÇÇ از height و 3ÇÇ4width از ا�EÇÇ?,اج ;ÇÇi%دی, ;,ÇÇ/ط

width و heightL; 5,ذخ� [�U%OA .

Page 330: Java farsi

5 ��(� ��

import java.awt.Graphics; import java.awt.Color; import java.awt.Rectangle; public class FirstApplet extends java.applet.Applet { public void paint(Graphics g) { int width; int height; Rectangle r; r = g.getClipBounds(); width = r.width - 1; height = r.height - 1; g.drawRect(0, 0, width, height); g.drawLine(0, 0, width, height); g.drawLine(width, 0, 0, height); } }

�ÇÇ/رت +%;ÇÇ[ در Rectangle خ/اه3ÇÇ4 �ÇÇ+ 6ÇÇ- 6ÇÇ از اجÇÇ,ا7 ,ÇÇ\ �ÇÇ;%A/ق ، ;ÇÇz%ه56 %ÇÇه,g^ و

*\,o 6Iار خ/اه,^ �v/,ا�%سg^ Rectangle,ه% و 34 از ��T0, ا6Aاز6m; .، 5,<I4 5ود5 ;,

,Ç\ �Ç;%A/ق ، ذ+Ç`A ,Ç%ت زیÇ, . ر�] خ/اهi;6- 6I%دی, ج6ی6 �/رت خ/د+%ر ;>6دا % �gدر را

:�,ور7 ا�*

% 0/ج� � ا�nE%د5 از +tس •Rectangle 1زم ا�* از ، java.awt.Rectangle 5د%nEÇا�

.o,دد

و intاز ÇA/ع ) height و width( دو ;�TE, . £ -56 ا�*در ,A%;� \/ق �� ;J0 ,�TE,ی •

,�TE; ی�)r ( ع/A از ،Rectangle*ا� .

• �%ÇÇÇÇ0getClipBounds %\,ÇÇÇÇR د5 و,ÇÇÇÇ`A ¡ÇÇÇÇان ورود7 اخ/ÇÇÇÇIJیÇÇÇÇ4 ، " �ÇÇÇÇ%را;E,7 را

RectangleÇÇ;, را Rectangle ، یr=g.getClipBounds �ÇÇ: د�EÇÇ/ر . o L,دا6ÇÇA را

,�TE; 56 و <ن را درAدا,o,r6ی%OA L; 5,ذخ� .

• ,ÇÇÇÇÇÇÇÇ�TE;r سtÇÇÇÇÇÇÇÇ+ ع/ÇÇÇÇÇÇÇÇA از ، Rectangle *ÇÇÇÇÇÇÇÇا� ,ÇÇÇÇÇÇÇÇ�TE; ر%ÇÇÇÇÇÇÇÇMd 7د5 و دارا/ÇÇÇÇÇÇÇÇ .

)x,y,width,height( . %ه,�TE;ه, ی� از � L%�Eر د�/wIO �ÇwiA ,Çr�OP ا�nEÇ%د5 ، از

Page 331: Java farsi

%زی%6i; ، width Lار7 % A%م IP ، r/ان ;OA L%ی6 +� در ;o L; . tW;r.width ,�TE,دد

% A%م . ;o L,دد L�m; ,�TE; در ,wA 6ار ;/ردi;widthدد,o L; 5,ذخ� .

/ط � ر�] ، ا�nE%دo L; 5,دد height و widthدر MA%ی* از •,; � . در 0/ا

�TE; از [�EÇÇ@A0/ا LÇÇ; ق/ÇÇ\ �ÇÇ;%A, ا�nEÇÇ%دheight 5 و width,هÇÇ%7 1زم ��ÇÇ�/0 �ÇÇ ا��ÇÇ+ *ÇÇ در

/�v ^,ار داد" را ;@Ar.width - 1 %O�iE`,د5 و ;6iار ,; � .در اخ�E%ر 0/ا

:�� �A/OA رای¼ در ایB ز;�XP �I%ر6I0 از . ج%وا دارا6Id 7یA B/ع ;�TE, �%د5 ا�*

• ��mR ع/A)int (

) A)float/ع اzP%ر7 •

• 7,E+ع +%را/A)char (

در ایB را�E% از . �%دL; 5 0/ان ��OP%ت ;nE; L0%X�%m%وL0 را اA>%م داد, رو7 داد5 هA 7%/ع

,r�OP + ، �Oا7 ج,,اi0 7@�] ا�nE%دo L; 5,دد/ ,ا7 �,ب و * ,اn0 7,ی} ، - . �;%A,

. زی, mA/5 ا�nE%د5 از r�OP,ه%7 \/ق را zA%ن ;L ده6

5 ��(� ��

float diameter = 10; float radius; float volume; radius = diameter / 2.0; volume = 4.0 / 3.0 * 3.14159 * radius * radius * radius;

ح,:5 ه�! تp)ار

، 6ÇÇده LÇÇ; م%ÇÇ<Aا L/ÇÇ? ,0/��;%ÇÇ+ �ÇÇ+ را L0%ÇÇ��OP از LÇÇ`ت ی%XÇÇ�%m; %ÇÇت و ی%ÇÇ��OP م%ÇÇ<Aن ا%ÇÇ`;ا

% BE-/A 5/mA . 0`,ار7 ا�* ]X^ 7%ه  ?در ادا;� I . 5/ÇmA %Ç% -6ی] <-" +6هLX�0,0 7% " در

.0`,ار ;�P/Om ا7 از +6ه% wIO/ر ��OP {im0%ت و ;X�%m%ت 0`,ارI-> 7% خ/اه�] -6

:\,ض +L; 6�I خ/اه�] -`[ زی, b�/0 +%;��/0, ر�] o,دد : ;W%ل

Page 332: Java farsi

�/رت زی, ر�] o,د6A ر ا6Eا و wIO/ر ر�] -`[ \/قد Li\ط ا/gا�* خ u�%I; ، .

، ای>%د ;>�P/O ا7 از +6هLX�0,0 7% ا�* +� ی`3Ç4 L از ی`L از روش ه%7 ر�] خg/ط \/ق

).\bi ی� ;,�X0 . ( اء خ/اه6I -6دیr,7 اج,

5 ��(� ��

import java.awt.Graphics; public class FirstApplet extends java.applet.Applet { public void paint(Graphics g) { int y; y = 10; g.drawLine(10, y, 210, y); y = y + 25; g.drawLine(10, y, 210, y); y = y + 25; g.drawLine(10, y, 210, y); y = y + 25; g.drawLine(10, y, 210, y); y = y + 25; g.drawLine(10, y, 210, y); y = y + 25; g.drawLine(10, y, 210, y); y = y + 25;

Page 333: Java farsi

g.drawLine(10, y, 210, y); y = y + 25; g.drawLine(10, y, 210, y); y = y + 25; g.drawLine(10, y, 210, y); } }

6Aت 0`,ار -56 ا%J\6 �;%A,% ;z%ه56 � خg/ط ,A%;� \/ق ، ;z%هo L; 56,دد +� دو خb در . %

%\,ÇR 56 راA/- 0`,ار b0/ان دو خ L; ه%7 0`,ار �i�Z د5 از%nE6 " ا�ÇIار و \,<ی,Ç`0 �ÇX0,; �Çی

6یu�0,0 B ی� Ç`0 �Çi�Z,ار . 0`,ار ��OP%ت را , �i�Z 56MP 0`,ار ^,ار داد )loop ( LÇ; د%Ç<ای

. o,دد

5 ��(� ��

import java.awt.Graphics; public class FirstApplet extends java.applet.Applet { public void paint(Graphics g) { int y; y = 10; while (y <= 210) { g.drawLine(10, y, 210, y); y = y + 25; } } }

� ا6Aاز5 34 از اج,ا7 ,A%;� \/ق ، �A خb ا\Li +� ه, ی� Lل/v 76 ٢٠٠داراI-% L; ]@`�4

. ر�] خ/اهo 6,دی6 ،

Ç`0 �i�Z,ار ;%دا;�`6Çi; �Çار . %�P ای>%د ی� �i�Z 0`,ار در ز%ن ج%وا ;o L,ددXPwhile%رت

y 7و ی% ;@%و ,E`d/+ 6 ، ادا;� خ/اه6 ی%\* ٢٠٠-% . �Çi�Z 76اÇEدر while-,ط ;/ج/د در ا

,ر�o L; L,دد ،د �X0,; ,6دا هÇ<; �i�Z رات ;/ج/د در/E6 ، د�-%" ر R/ر�0`� -,ط در�*

در R/ر��0 -,ط ;/ج/د در ا6ÇEاo L; . �Çi�Z 7,د56IA) } و { د�E/رات ;�m/ر �B ( 0`,ار

while ر/EÇد� B�Çاول ��ÇR%\t� �i�Z 0`,ار اج,اء 56ÇzA و �v/ ، A%در�* %-6 ، د�E/رات ;,

. 34 از ا�i�Z 7%MEA اج,اء خ/اه6 -6

Page 334: Java farsi

;LÇ Çd٢١٠/ن ;6Çiار دÇEO+ 5, از . ا�* ١٠ ;J%دل yدر ز;%ن اج,ا7 ,A%;� \/ق در ا6Eا ;6iار

، 6-% �ÇgiA از LÇgاء و خ,Çار اج,Ç`0 �Çi�Z د در/Çرات ;/ج/E١٠،١٠( د� ( %Ç0)٢١٠،١٠ ( [Çر�

,ر�Ç- LÇ,ط ( � ا6Eا�Çi�Z 7 -6 5 و ;>6دا ، �L و y¼I4در ادا;� ;6iار . خ/اه6 -6 ( �ÇJاج,;

ÇÇo LÇÇ;6ار . ,ددÇÇi;٣Ü 6دا ٢١٠ ازÇÇ<; د5 و/ÇÇ *ÇÇن در�%ÇÇI�Oط ه,ÇÇ- د5 و/ÇÇ ,E`d/ÇÇ+ " رات/EÇÇد�

6Ç- 6ÇIاء خ/اه,Ç0`,ار ، اج �i�Z 6ار . ;/ج/د درÇi; �Ç`�;ق ;%دا/Ç\ 6ÇIی>,\y از ,EOd/Ç+ ٢١٠ LÇ;

�o ,Ez,دی�i�Z ، 6 0`,ار اج,اء٢١٠ از 34y از ای6i; �`Iار . %-6 ، 0`,ار خ/اه6 -6 56zA و

% 0/ج� rر7 دی/E6م وج/د د�P �*\%خ/اه6 ی �O0%8 خ�A �;%A, ، , .

,ا7 ای>%د خg/ط OP/دL; ، 7 0/ان از ی� �i�Z 0`,ار دیr, ا�nE%د5 +,د .

5 ��(� ��

import java.awt.Graphics; public class FirstApplet extends java.applet.Applet { public void paint(Graphics g) { int x, y; y = 10; while (y <= 210) {

g.drawLine(10, y, 210, y);

y = y + 25;

} x = 10; while (x <= 210) {

g.drawLine(x, 10, x, 210);

x = x + 25;

} } }

nE . �ÇA/OA%دÇ+ 5,د Ç,ا7 ای>Ç%د �Çi�Z هÇ`0 7%Ç,ار 8Ç�A ا�for Çدر ز%ن ج%وا ، ;Ç0 LÇ/ان از ÇXP%رت

�i�Z د5 از%nE5 ا�/mA ,زی �;%A,for �i�Z ]%i; در while6ده L; ن%zA را .

Page 335: Java farsi

Forح,:5 تp)ار �� ا��A�د� از

for (y = 10; y <= 210; y = y + 25) { g.drawLine(10, y, 210, y); }

Whileح,:5 تp)ار �� ا��A�د� از

y = 10; while (y <= 210) { g.drawLine(10, y, 210, y); y = y + 25; }

/د5 و دارا7 ,�%Z ل%Z در L@ی/A �;%A, 7%MA%. \,اواLA ا�* ا;`%A%ت ج%وا ی`L از EM,یB ز

%\,R ل�%i; Bدر ایL;/OP اول�� و LU%I-> د ه6ف/% ز%ن ,A �;%A/ی@L ج%وا . L; 6انI; �^tP

OM,ا5 ج%وا ,ا�O`0 7[ اPtv%ت خÇ/د 56- �U6ات اراIE@; %R/ج/د خ�/; �%I; ,6 از �%یIA0/ا

6Iی%OA 5د%nEا�

Page 336: Java farsi

4���

��P,�% زارع 4/ر: ;E,ج] – ل/رالd ، ¨O%رل8 4,آ�8I –وز ر٢١<;/زش ج%وا در

\,ه%د ^�¨ زادA 5/ري: ;E,ج] – ه,,ت -��6 –ج%وا

�اد... B�P ا–<;/زش o%م � o%م ,A �;%A/ی@L ج%وا A,nJج

wEI; %�,��P,الE; :[U%i,ج] –ج%وا ره�%\o L- LE,ا

�%رش m,یE; :+LI,ج] –�%خOE%ن داد5 ه% و الr/ریE] ه% در ج%وا

Persian Refrence :

www.dev.ir

www.java.schoolnet.ir

www.sarzemine-it.com

www.sohail2d.com/forum

www.paradise19791979.persianblog.com

www.qomcse.com/forum

English Refrence :

Java programming primer.pdf (e-book)

www.cs.umb.edu/~serl/java/ppt/

www.iut-orsay.fr/~fournier/Cork/OOP.pdf

Page 337: Java farsi