0% found this document useful (0 votes)
21 views

ـJava

Uploaded by

eell
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views

ـJava

Uploaded by

eell
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 148

‫ػب‪ٚ‬ا یه ظثبٖ ؾُح ثبال اؾز و‪ ٝ‬زض ؾبَ ‪ 1995‬س‪ٛ‬ؾٍ قطوز ‪ Sun Microsystems‬ث‪ٖٛٙ ٝ‬اٖ ثرف ٔطوعی دّشفطْ

ػب‪ٚ‬ای ایٗ قطوز )‪(java 1.0‬‬


‫س‪ِٛ‬یس قس) ایٗ ظثبٖ ثط ض‪ٚ‬ی دّشفطْ ‪ٞ‬بی ٌ‪٘ٛ‬بٌ‪٘ٛ‬ی ٔظُ ‪ٚ‬ی‪ٙ‬س‪ٚ‬ظ ‪٘ ٚ Mac os ٚ‬ؿر‪ٞ ٝ‬بی ٔرشّف ‪ Linux ٚ Unix‬اػطا ٔی ق‪ٛ‬ز)آذطیٗ ٘ؿر‪ ٝ‬اظ ‪ٚ‬یطایف‬
‫اؾشب٘ساضز ػب‪ٚ‬ا )‪٘(StandardEdition‬ؿر‪ 8 ٝ‬آٖ اؾز) ثب دیكطفز ػب‪ٚ‬ا ‪ٔ ٚ‬ك‪ٟٛ‬ضیز ٌؿشطز‪ ٜ‬آٖ دیىطث‪ٙ‬سی ‪ٞ‬بی ٔشفب‪ٚ‬سی اظ آٖ اضائ‪ ٝ‬قس‪ ٜ‬اؾز و‪ ٝ‬ثش‪ٛ‬ا٘س‬
‫ثطای دّشفطْ ‪ٞ‬بی ٔرشّف ٔ‪ٙ‬بؾت ثبقس ٔب٘‪ٙ‬س ‪ J2EE‬ثطای ثط٘بٔ‪ٞ ٝ‬بی سؼبضی ‪ J2ME ٚ‬ثطای زؾشٍب‪ٞ ٜ‬بی ٔ‪ٛ‬ثبیُ لسیٕی ‪.‬‬

‫ٍیژگی ّای سباى جاٍا‬

‫ضی گزایی ‪ :‬زض ػب‪ٚ‬ا ‪ ٕٝٞ‬چیع یه قی اؾز ‪ ٚ‬اظ والؼ ‪ Object‬اؾز) ػب‪ٚ‬ا ث‪ ٝ‬ذبَط ٔسَ قی ٌطایی ث‪ ٝ‬ضاحشی لبثُ ٌؿشطـ اؾز ‪.‬‬ ‫‪‬‬

‫بِ پلتفزم خاغی ٍابستِ ًیست ‪ 5‬ثطذالف ثؿیبضی اظ ظثبٖ ‪ٞ‬بی ثط٘بٔ‪ٛ٘ ٝ‬یؿی ٔظُ ‪ٚ ،c++ٚ c‬لشی و‪ ٝ‬ػب‪ٚ‬ا وبٔذبیُ قس ثطای یه دّشفطْ ذبل‬ ‫‪‬‬

‫وبٔذبیُ ٘كس‪ ٜ‬اؾز ثّى‪ ٝ‬ثبیز وس س‪ِٛ‬یس قس‪ ٜ‬ثطای ‪ٞ‬ط دّشفطٔی لبثُ اؾشفبز‪ ٜ‬اؾز) ثبیز وس ‪ٕٞ‬بٖ اػعای وبٔذبیُ قس‪ ٜ‬ی ػب‪ٚ‬ا اؾز) وس‪ٞ‬بی ػب‪ٚ‬ا‬
‫س‪ٛ‬ؾٍ ٔبقیٗ ٔؼبظی ػب‪ٚ‬ا )‪ (JVM‬وبٔذبیُ ٔی ق‪٘ٛ‬س‪.‬‬
‫سادگی ‪:‬ػب‪ٚ‬ا ث‪ ٌٝ٘ٛ ٝ‬ای َطاحی قس‪ ٜ‬اؾز و‪ ٝ‬ث‪ ٝ‬ضاحشی لبثُ یبزٌیطی ثبقس) اٌط قٕب ان‪ َٛ‬قی ٌطایی ضا زضن و‪ٙ‬یس ث‪ ٝ‬ضاحشی ٔی س‪ٛ‬ا٘یس زض‬ ‫‪‬‬

‫ػب‪ٚ‬ا دیكطفز و‪ٙ‬یس ‪ ٚ‬آٖ ضا یبز ثٍیطیس ‪.‬‬


‫اهٌیت ‪:‬ثب اؾشفبز‪ ٜ‬اظ ‪ٚ‬یػٌی ‪ٞ‬بی أ‪ٙ‬یشی ػب‪ٚ‬ا قٕب ٔی س‪ٛ‬ا٘یس ثط٘بٔ‪ٞ ٝ‬بی ثس‪ٚ ٖٚ‬یط‪ٚ‬ؼ ‪ ٚ‬ثس‪ ٖٚ‬ػبؾ‪ٛ‬ؼ ثؿبظیس) سى‪ٙ‬یه ‪ٞ‬بی احطاظ ‪ٛٞ‬یز زض‬ ‫‪‬‬

‫ػب‪ٚ‬ا ثط اؾبؼ ضٔعٍ٘بضی ‪ Public Key‬اؾز‪.‬‬


‫خٌثی بَدى در هَرد هعواری پزداسًذُ ‪ :‬وبٔذبیّط ػب‪ٚ‬ا ‪ٞ object file‬بیی س‪ِٛ‬یس ٔی و‪ٙٙ‬س و‪ٚ ٝ‬اثؿشٍی ث‪ٕٗٔ ٝ‬بضی دطزاظ٘س‪ ٜ‬ذبنی ٘ساضز ث‪ٙ‬بثطایٗ‬ ‫‪‬‬

‫ثب اؾشفبز‪ ٜ‬اظ ؾیؿشٓ ‪ runtime‬ػب‪ٚ‬ا‪ ،‬فبیُ ‪ٞ‬بی وبٔذبیُ قس‪ ٜ‬ثطض‪ٚ‬ی ثؿیبضی اظ دطزاظ٘س‪ٞ ٜ‬ب لبثُ اػطا ‪ٞ‬ؿش‪ٙ‬س ‪.‬‬
‫قابل حول ‪ :‬ث‪ّٖ ٝ‬ز ذ‪ٙ‬ضی ث‪ٛ‬زٖ زض ٔ‪ ٛ‬ضز ٕٔٗبضی دطزاظ٘س‪٘ ٚ ٜ‬ساقشٗ ‪ٞ‬یچ ‪ٚ‬اثؿشٍی دیبز‪ ٜ‬ؾبظی ػب‪ٚ‬ا لبثُ حُٕ اؾز) وبٔذبیّط ػب‪ٚ‬ا ثب ظثبٖ‬ ‫‪‬‬

‫‪ٛ٘ANSI C‬قش‪ ٝ‬قس‪ ٜ‬اؾز ‪ ٕٝٞ ٚ‬لبثّیز ‪ٞ‬بی حُٕ زض آٖ ِحبِ قس‪ ٜ‬اؾز ‪.‬‬
‫قابل اعتواد بَدى‪ :‬ػب‪ٚ‬ا سالـ وطز‪ ٜ‬اؾز و‪ٚ ٝ‬يٗیز ‪ٞ‬بیی ضا و‪ٕٔ ٝ‬ىٗ اؾز س‪ِٛ‬یس ذُب و‪ٙ‬س ضا حصف و‪ٙ‬س ‪ ٚ‬سكریم ذُب ضا زض حبِز اػطا ‪ٚ‬‬ ‫‪‬‬

‫وبٔذبیُ ث‪ ٝ‬ث‪ٟ‬شطیٗ قىُ ا٘ؼبْ ز‪ٞ‬س‪.‬‬


‫‪ 5 Multithread‬ثب ‪ٚ‬یػٌی ‪ multithread‬ػب‪ٚ‬ا ٔی س‪ٛ‬ا٘یس ثط٘بٔ‪ٞ ٝ‬بیی س‪ِٛ‬یس و‪ٙ‬یس و‪ٔ ٝ‬ی س‪ٛ‬ا٘‪ٙ‬س اٖٕبَ ٔرشّفی ضا ‪ٕٞ‬عٔبٖ ا٘ؼبْ ز‪ٙٞ‬س) ایٗ‬ ‫‪‬‬

‫‪ٚ‬یػٌی ث‪ ٝ‬ثط٘بٔ‪ٛ٘ ٝ‬یؿبٖ ایٗ أىبٖ ضا ٔی ز‪ٞ‬س و‪ ٝ‬ثط٘بٔ‪ٞ ٝ‬بی فٗبَ ‪ٔ ٚ‬حب‪ٚ‬ض‪ ٜ‬ای ‪ ٚ‬چ‪ٙ‬س ‪ْٚ‬یف‪ ٝ‬ای س‪ِٛ‬یس و‪ٙٙ‬س ‪.‬‬
‫هفسزی‪ :‬ثبیز وس ‪ٞ‬بی ػب‪ٚ‬ا زض ظٔبٖ اػطا ث‪ ٝ‬ظثبٖ ٔبقیٗ سطػٕ‪ٔ ٝ‬ی ق‪٘ٛ‬س ‪ ٚ‬اػطا ٔی ق‪٘ٛ‬س ‪ٞ ٚ‬یچ ػبیی شذیط‪ٕ٘ ٜ‬ی ٌطز٘س) ث‪ٕٞ ٝ‬یٗ ٔ‪ٛٓٙ‬ض‬ ‫‪‬‬

‫ٌفش‪ٔ ٝ‬ی ق‪ٛ‬ز و‪ ٝ‬ظثبٖ ػب‪ٚ‬ا ٔفؿطی اؾز‪.‬‬


‫کارایی باال ‪5 High performance‬چ‪ ٖٛ‬ػب‪ٚ‬ا اظ وبٔذبیّط‪ٞ‬بی ‪ Just-In-Time‬اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬س زاضای وبضایی ثبالیی ٔی ثبقس‪.‬‬ ‫‪‬‬

‫تَسیع ضذگی‪ :‬ػب‪ٚ‬ا ث‪ ٌٝ٘ٛ ٝ‬ای َطاحی قس‪ ٜ‬اؾز و‪ ٝ‬زض ٔحیٍ ‪ٞ‬بی س‪ٛ‬ظیٕ قس‪ ٜ‬ای‪ٙ‬شط٘ز ث‪ٟ‬شطیٗ وبضایی ضا زاقش‪ ٝ‬ثبقس ‪.‬‬ ‫‪‬‬

‫پَیا )‪ (Dynamic‬بَدى‪ :‬ظثبٖ ػب‪ٚ‬ا ثؿیبض د‪ٛ‬یبسط اظ ظثبٖ ‪ٞ‬بی ‪ C ٚ C++‬اؾز) چ‪ ٖٛ‬ایٗ ظثبٖ َطاحی قس‪ ٜ‬اؾز سب ثب ٔحیٍ ‪ٞ‬بی ٌ‪٘ٛ‬بٌ‪ٖٛ‬‬ ‫‪‬‬

‫ذ‪ٛ‬ز ضا ‪ٚ‬فك ز‪ٞ‬س‪.‬‬

‫‪1‬‬
‫خػَغیات بزًاهِ ّای جاٍا‬

‫٘ىبر ثب ا‪ٕٞ‬یشی و‪ ٝ‬زض ٔ‪ٛ‬ضز ظثبٖ ػب‪ٚ‬ا ثبیس ثسا٘یس ٖجبضس‪ٙ‬س اظ‪:‬‬

‫‪ ),‬حؿبؾیز ػب‪ٚ‬ا ث‪ ٝ‬ثعضي ‪ ٚ‬و‪ٛ‬چه ث‪ٛ‬زٖ ٘‪ٛ‬قش‪ٞ ٝ‬ب )‪ (Case Sensitivity‬حؿبؾیز ػب‪ٚ‬ا ث‪ ٝ‬ثعضٌی ‪ ٚ‬و‪ٛ‬چىی حط‪ٚ‬ف ث‪ ٝ‬ایٗ قىُ اؾز و‪ٝ‬‬
‫ػب‪ٚ‬ا ثیٗ وّٕ‪ hello ٚ Hello ٝ‬سفب‪ٚ‬ر لبیُ ٔی ق‪ٛ‬ز ‪ ٚ‬ایٗ ز‪ ٚ‬ضا یىی ٕ٘ی زا٘س‪.‬‬
‫‪ )-‬حطف ا‪٘ َٚ‬بْ والؼ ‪ٞ‬ب زض ػب‪ٚ‬ا ثبیس ثب حط‪ٚ‬ف ثعضي ٘‪ٛ‬قش‪ ٝ‬ق‪٘ٛ‬س ٔب٘‪ٙ‬س ‪ List‬یب‪Array‬‬
‫‪ ).‬ث‪ّٖ ٝ‬ز ایٗ و‪ ٝ‬فبنّ‪ ٝ‬ثیٗ ٘بٔ‪ٟ‬ب ٔؼبظ ٘یؿز ثطای ٔكرم وطزٖ ٘بْ والؼ ‪ٞ‬ب ‪ ٚ‬اقیب ‪ٔ ٚ‬شس ‪ٞ‬ب اٌط اظ چ‪ٙ‬س وّٕ‪ ٝ‬سكىیُ قس‪ ٜ‬اؾز ثبیس حطف‬
‫ا‪ٞ َٚ‬طوّٕ‪ ٝ‬ث‪ ٝ‬ن‪ٛ‬ضر حط‪ٚ‬ف ثعضي ٘‪ٛ‬قش‪ ٝ‬ق‪ٛ‬ز) ایٗ وبض ث‪ ٝ‬ذ‪ٛ‬ا٘بیی وس ثؿیبض وٕه ٔی و‪ٙ‬س) ث‪ٖٛٙ ٝ‬اٖ ٔظبَ ‪ItProFirstClass.‬‬
‫‪٘ )/‬بْ ٔشس‪ٞ‬ب ثب حط‪ٚ‬ف و‪ٛ‬چه قط‪ٔ ٔٚ‬ی ق‪٘ٛ‬س ‪ ٚ‬ثطذالف والؼ ‪ٞ‬ب ٘جبیس حطف ا‪ٔ َٚ‬شس حطف ثعضي ثبقس) اٌط ٘بْ ٔشس اظ چ‪ٙ‬س وّٕ‪ ٝ‬سكىیُ قس‪ٜ‬‬
‫ثبقس ثبیس غیط اظ وّٕ‪ ٝ‬ا‪ َٚ‬ثطای ثمی‪ ٝ‬وّٕ‪ٞ ٝ‬ب حطف ا‪ِٚ‬كبٖ ثعضي ثبقس ‪.‬‬
‫‪ )0‬فبیُ ‪ٞ‬بی ثط٘بٔ‪ ٝ‬و‪ ٝ‬والؼ ٔب زض آٖ لطاض زاض٘س ثبیس زلیمب ثب والؼ زاذُ فبیُ ‪ٕٙٞ‬بْ ثبق‪ٙ‬س) دؿ‪٘ٛ‬س فبیُ ‪ٞ‬بی ثط٘بٔ‪ ٝ‬ػب‪ٚ‬ا ‪ .java‬اؾز‪.‬‬
‫‪ ٕٝٞ‬ثط٘بٔ‪ٞ ٝ‬بی ػب‪ٚ‬ا ثطای اػطا اظ یه ٔشس ث‪٘ ٝ‬بْ ‪ main‬قط‪ٔ ٔٚ‬ی ق‪٘ٛ‬س و‪ ٝ‬ایٗ ٔشس ث‪ ٝ‬قىُ ظیط سٗطیف ٔی ق‪ٛ‬ز‪.‬‬ ‫‪)1‬‬

‫)][‪public static void main(String args‬‬

‫ضزٍع کار با جاٍا‬

‫ػب‪ٚ‬ا یه ٔحیٍ اػطا ثطای ثط٘بٔ‪ٞ ٝ‬بی ٘‪ٛ‬قش‪ ٝ‬قس‪ ٜ‬ث‪ ٝ‬ایٗ ظثبٖ فطا‪ٔ ٓٞ‬ی ؾبظز و‪ ٝ‬ث‪ٛٔ JRE (Java Runtime Environment) ٝ‬ؾ‪ ْٛ‬اؾز) ‪ٕٞ‬چ‪ٙ‬یٗ‬
‫ایٗ ظثبٖ زاضای س‪ٛ‬اثٕ ‪ ٚ‬والؼ ‪ٞ‬بی اظ دیف ٘‪ٛ‬قش‪ ٝ‬اؾز و‪ ٚ Java API ٝ‬زیٍط أىب٘بر آٖ ضا قبُٔ ٔی ق‪ٛ‬ز) ثطای ثط٘بٔ‪ٛ٘ ٝ‬یؿبٖ ‪ ٚ‬س‪ٛ‬ؾٗ‪ ٝ‬ز‪ٙٞ‬سٌبٖ ػب‪ٚ‬ا‬
‫ثؿش‪ ٝ‬ای ٔ‪ٛ‬ؾ‪ ْٛ‬ث‪ JDK(Java Development Kit) ٝ‬اضائ‪ٔ ٝ‬ی ق‪ٛ‬ز و‪ ٝ‬قبُٔ ‪ ٕٝٞ ٚ JRE‬زیٍط ٔ‪ٛ‬اضز ف‪ٛ‬ق اؾز ‪ .‬دؽ ثطای ایٗ و‪ ٝ‬قط‪ ٔٚ‬ث‪ ٝ‬ثط٘بٔ‪ٝ‬‬
‫٘‪ٛ‬یؿی ظثبٖ ػب‪ٚ‬ا ٕ٘بییس‪ ،‬ثبیس لجُ اظ آٖ ثؿش‪٘ ٝ‬طْ افعاضی ‪ JDK‬ضا ض‪ٚ‬ی ؾیؿشٓ ذ‪ٛ‬ز ٘هت وطز‪ ٜ‬ثبقیس) ایٗ ثؿش‪ ٝ‬ثطای اػطا ‪ ٚ‬وبٔذبیُ ثط٘بٔ‪ٞ ٝ‬بی ػب‪ٚ‬ا‬
‫الظْ اؾز ظیطا و‪ٔ ٝ‬بقیٗ ٔؼبظی ػب‪ٚ‬ا ‪ ٚ‬وشبثرب٘‪ٞ ٝ‬بی ػب‪ٚ‬ا زض آٖ لطاض زاز‪ ٜ‬قس‪ ٜ‬اؾز) اٌط قٕب وبضثط ‪ٚ‬ی‪ٙ‬س‪ٚ‬ظ ثبقیس ثب ٘هت ثؿش‪jdk ٝ‬وبض ٘هت ایٗ ثؿش‪ٝ‬‬
‫سٕبْ ٔی ق‪ٛ‬ز ‪ ٚ‬ػب‪ٚ‬ا ثط ض‪ٚ‬ی ؾیؿشٓ قٕب اػطا ذ‪ٛ‬ا‪ٞ‬س قس) دؽ اظ ایٗ و‪ ٝ‬ایٗ ثؿش‪٘ ٝ‬طْ افعاض ٘هت قس ثبیس ٔحیٍ ثط٘بٔ‪ٛ٘ ٝ‬یؿی ػب‪ٚ‬ا ضا ٘هت و‪ٙ‬یٓ) ثطای‬
‫ثط٘بٔ‪ٛ٘ ٝ‬یؿی ػب‪ٚ‬ا ٔی س‪ٛ‬ا٘یس اظ یه ٔحیٍ ٔش‪ٙ‬ی ؾبز‪ٔ ٜ‬ب٘‪ٙ‬س ‪ ٓٞ notepad‬اؾشفبز‪ ٜ‬و‪ٙ‬یس) ‪ِٚ‬ی ٔحیٍ ‪ٞ‬بی ثؿیبض ذ‪ٛ‬ثی ثطای ػب‪ٚ‬ا ‪ٚ‬ػ‪ٛ‬ز زاضز و‪ ٝ‬وبض ثط٘بٔ‪ٝ‬‬
‫٘‪ٛ‬یؿی ضا ثؿیبض آؾبٖ ٔی ٕ٘بیس ‪. IDE‬یب ٔحیٍ ‪ٞ‬بی ٔٗط‪ٚ‬ف ثط٘بٔ‪ٛ٘ ٝ‬یؿی ػب‪ٚ‬ا ٖجبضس‪ٙ‬س اظ ‪:‬‬

‫‪Eclips ),‬‬

‫‪netbeans Ide )-‬‬

‫‪Intellij Idea ).‬‬

‫‪2‬‬
‫‪netbeansٚ eclipse‬ضایٍبٖ ث‪ٛ‬ز‪ٔ ٚ ٜ‬ی س‪ٛ‬ا٘یس ث‪ ٝ‬ضاحشی اظ ای‪ٙ‬شط٘ز زاّ٘‪ٛ‬ز ٘هت ‪ ٚ‬اؾشفبز‪ ٜ‬و‪ٙ‬یس) ‪ِٚ‬ی ٘طْ‬ ‫اظ ٔحیٍ ‪ٞ‬بی ٔٗطفی قس‪٘ ٜ‬طْ افعاض ‪ٞ‬بی‬
‫افعاض ‪intellij Idea‬و‪ٔ ٝ‬حه‪ َٛ‬قطوز ‪jetbrains‬اؾز یه ٘طْ افعاض سؼبضی اؾز و‪ ٝ‬ثطای اؾشفبز‪ ٜ‬ثیف اظ یه ٔب‪ ٜ‬اظ آٖ ثبیس الیؿ‪ٙ‬ؽ آٖ ضا ذطیساضی‬
‫ٕ٘بییس) ‪ِٚ‬ی لبثّیز ‪ٞ‬بی ثؿیبضی ثبٖض ٔی ق‪ٛ‬ز و‪ ٝ‬ایٗ ٘طْ افعاض وبض ضا آؾبٖ سط و‪ٙ‬س ‪.‬‬

‫تَضیحات در جاٍا‬

‫زض ظثبٖ ػب‪ٚ‬ا أىب٘ی ‪ٚ‬ػ‪ٛ‬ز زاضز و‪ ٝ‬زض زاذُ وس ػٕالسی ثطای س‪ٛ‬يیحبر لطاض زاز‪ ٜ‬ق‪ٛ‬ز) ایٗ س‪ٛ‬يیحبر ٔی س‪ٛ‬ا٘س ثطای ف‪ ٟٓ‬ث‪ٟ‬شط وس ٔ‪ٙ‬بؾت ثبقس) ػب‪ٚ‬ا‬
‫‪ ٓٞ‬اظ س‪ٛ‬يیحبر یه ذُی ‪ ٓٞ ٚ‬اظ س‪ٛ‬يیحبر چ‪ٙ‬س ذُی دكشیجب٘ی ٔی و‪ٙ‬س) س‪ٛ‬يیحبر زض ػب‪ٚ‬ا ثؿیبض قجی‪ ٝ‬ث‪ ٝ‬س‪ٛ‬يیحبر زض ظثبٖ ‪ٞ‬بی ‪ٔ c , c++‬ی ثبقس)‬
‫‪ٖ ٕٝٞ‬جبضاسی و‪ ٝ‬زض زاذُ س‪ٛ‬يیحبر ٘‪ٛ‬قش‪ ٝ‬ق‪ٛ‬ز لبثّیز وس ‪ ٚ‬اػطا ٘ساضز ‪ ٚ‬وبٔذبیّط ػب‪ٚ‬ا آ٘‪ٟ‬ب ضا ٘بزیس‪ ٜ‬ذ‪ٛ‬ا‪ٞ‬س ٌطفز) زض وس ظیط س‪ٛ‬يیحبر یه ذُی ‪ٚ‬‬
‫چ‪ٙ‬س ذُی آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز‪.‬‬

‫{‪public class MyFirstJavaProgram‬‬

‫‪/* This is my first java program.‬‬


‫‪This will print 'Hello World' as the output‬‬
‫‪This is an example of multi-line comments.‬‬
‫‪*/‬‬

‫{)‪public static void main(String []args‬‬


‫‪// This is an example of single line comment‬‬
‫‪/* This is also an example of single line comment. */‬‬
‫;)"‪System.out.println("Hello World‬‬
‫}‬
‫}‬

‫‪ٕٞ‬بُ٘‪ٛ‬ض و‪ ٝ‬زض وس ثبال ٘كبٖ زاز‪ ٜ‬قس‪ ٜ‬اؾز اٌط زض لؿٕز اظ وس اظ ز‪ ٚ‬وبضاوشط ** اؾشفبز‪ ٜ‬ق‪ٛ‬ز ٔبثمی آٖ ذٍ ث‪ٖٛٙ ٝ‬اٖ س‪ٛ‬يیحبر زض ٘ٓط ٌطفش‪ٔ ٝ‬ی ق‪ٛ‬ز)‬
‫‪ٕٞ‬چ‪ٙ‬یٗ ثطای قط‪ ٔٚ‬س‪ٛ‬يیحبر چ‪ٙ‬س ذُی اظ ٖالٔز اؾّف ‪ ٚ‬ؾشبض‪ ٍ ٜ‬بزای پایاى تَضیحات چٌذ خطی اس ستارُ ٍ اسلص اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز‪.‬‬

‫کلوات کلیذی در جاٍا‬

‫سه‪ٛ‬یط ظیط ِیؿشی اظ وّٕبر ضظض‪ ٚ‬قس‪ ٜ‬زض ػب‪ٚ‬ا ضا ٘كبٖ ٔی ز‪ٞ‬س) ایٗ وّٕبر ضظض‪ ٚ‬قس‪ ٜ‬ثطای اؾشفبز‪ ٜ‬ث‪ٖٛٙ ٝ‬اٖ ٔشغیط ‪ ٚ‬یب ؾبیط ‪ٞ Identifier‬ب ٔ‪ٛ‬ضز اؾشفبز‪ٜ‬‬
‫لطاض ٌیطز‪.‬‬

‫‪3‬‬
‫لیتزال ّا در جاٍا‬

‫ِیشطاَ لؿٕشی اظ وس اؾز و‪ ٝ‬ثطای ٘كبٖ زازٖ ٔمبزیط طبثز ث‪ ٝ‬وبض ٔی ض‪ٚ‬ز) ٔظال ایٗ و‪ ٝ‬چٍ‪ ٝ٘ٛ‬یه ٖسز یب وبضاوشط ضا زض زاذُ وس ٘كبٖ ثس‪ٞ‬یٓ) ِیشطاَ ‪ٞ‬ب ٔی‬
‫س‪ٛ‬ا٘‪ٙ‬س ث‪َٛ ٝ‬ض ٔؿشمیٓ ث‪ٞ ٝ‬ط ٔشغیط اظ ٘‪ ٔٛ‬زاز‪ ٜ‬انّی ا٘شؿبة زاز‪ ٜ‬ق‪٘ٛ‬س) ثطای ٔظبَ ث‪ ٝ‬وس ظیط س‪ٛ‬ػ‪ ٝ‬و‪ٙ‬یس ‪.‬‬

‫;‪byte a = 68‬‬
‫'‪char a = 'A‬‬

‫ا٘‪ٛ‬أ زاز‪ٔ byte, int, short ٜ‬ی س‪ٛ‬ا٘‪ٙ‬س ثب ٔمبزیط ز‪ٞ‬س‪ٞ‬ی ‪$‬دبی‪ٍٞ ٚ #10 ٝ‬عازؾیٕبَ ‪ٔ$‬ج‪ٙ‬بی ‪ ٚ #16‬یب ا‪ٚ‬وشبَ‪ٔ$‬ج‪ٙ‬بی ‪ٔ #8‬مساضز‪ٞ‬ی ق‪٘ٛ‬س) ثطای ایٗ و‪ٔ ٝ‬كرم‬
‫و‪ٙ‬یٓ ٖسز اظ ٘‪ ٔٛ‬ا‪ٚ‬وشبَ اؾز لجُ اظ ٖسز آٖ یه ٖسز ‪ٔ 0‬ی ٌصاضیٓ ‪ ٚ‬ثطای ایٗ و‪ٔ ٝ‬كرم و‪ٙ‬یٓ و‪ٖ ٝ‬سز ‪ٍٞ‬عازؾیٕبَ اؾز لجُ اظ ٖسز آٖ ا ظ ‪0x‬اؾشفبز‪ٜ‬‬
‫ٔی و‪ٙ‬یٓ) ثطای ٔظبَ‬

‫;‪int decimal = 100‬‬


‫;‪int octal = 0144‬‬
‫;‪int hexa= 0x64‬‬

‫‪4‬‬
‫ِیشطاَ ‪ٞ‬بی ضقش‪ ٝ‬ای زض ػب‪ٚ‬ا ٔب٘‪ٙ‬س ثؿیبضی اظ ظثبٖ ‪ٞ‬ب ثیٗ ز‪ٖ ٚ‬سز و‪ٛ‬سیكٗ لطاض زاز‪ٔ ٜ‬ی ق‪٘ٛ‬س)ثطای ٔظبَ ضقش‪ٞ ٝ‬بی ظیط ٕ٘‪ٞ ٝ٘ٛ‬بیی اظ ِیشطاَ ‪ٞ‬بی ضقش‪ ٝ‬ای‬
‫‪ٞ‬ؿش‪ٙ‬س‪:‬‬

‫"‪"Hello World‬‬
‫"‪"two\nlines‬‬
‫""\‪"\"This is in quotes‬‬

‫٘‪ ٔٛ‬زاز‪ٞ ٜ‬بی ‪ٔ String ٚ char‬ی س‪ٛ‬ا٘‪ٙ‬س ‪ٞ‬ط وبضاوشط ی‪٘ٛ‬یىس ضا زاذُ ذ‪ٛ‬ز زاقش‪ ٝ‬ثبق‪ٙ‬س) ثطای ٔظبَ ‪:‬‬

‫;'‪char a = '\u0001‬‬
‫;"‪String a = "\u0001‬‬

‫زض زاذُ ضقش‪ٞ ٝ‬ب ثًٗی وبضاوشط ‪ٞ‬ب ٔٗ‪ٙ‬ی ‪ٔ ٚ‬ف‪ ْٟٛ‬ذبنی زاض٘س) ث‪ ٝ‬ایٗ ٔٗ‪ٙ‬ی و‪ ٝ‬وبٔذبیّط ػب‪ٚ‬ا آ٘‪ٟ‬ب ضا ث‪ٖٛٙ ٝ‬اٖ ضقش‪ِٕٛٗٔ ٝ‬ی زض ٘ٓط ٕ٘ی ٌیطز ‪ ٚ‬ثطای‬
‫وبٔذبیّط ٔٗ‪ٙ‬ی ذبنی زاض٘س) ػس‪ َٚ‬ایٗ وبضاوشط ‪ٞ‬ب زض قىُ ظیط آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز و‪ٙٗٔ ٝ‬ی ‪ٞ‬طوساْ ضا س‪ٛ‬يیح ٔی ز‪ٞ‬س ‪.‬‬

‫‪ٕٞ‬بُ٘‪ٛ‬ض و‪ ٝ‬زض ػس‪ٔ َٚ‬كب‪ٞ‬س‪ٔ ٜ‬ی ٕ٘بییس وبضاوشط ‪ backslash‬زض ‪ٔ ٕٝٞ‬كشطن اؾز ثطای ایٗ و‪ ٝ‬زض ٔشٗ یه وبضاوشط ‪ backslash‬لطاض ثس‪ٞ‬یس ثبیس ز‪ٚ‬ثبض‬
‫ایٗ وبضاوشط ضا سىطاض و‪ٙ‬یس)‬

‫‪5‬‬
‫هتغیزّا‬

‫ٔشغیط‪ٞ‬ب ٔحُ ‪ٞ‬بیی اظ حبفٓ‪ ٝ‬وبٔذی‪ٛ‬سط )‪ٞ (Ram‬ؿش‪ٙ‬س و‪ ٝ‬ثطای ٍ٘‪ٟ‬ساضی ٔمبزیط زض ٘ٓط ٌطفش‪ ٝ‬قس‪ ٜ‬ا٘س) ایٗ ث‪ ٝ‬ایٗ ٔٗ‪ٙ‬ی اؾز و‪ٚ ٝ‬لشی قٕب ٔشغیطی ضا‬
‫) ثب س‪ٛ‬ػ‪ ٝ‬ث‪ ٔٛ٘ ٝ‬زاز‪ ٜ‬ای و‪ ٝ‬قٕب اظ آٖ ٔشغیط ٔی ؾبظیس ؾیؿشٓ ٖبُٔ ٔمساض‬ ‫ٔٗطفی ٔی و‪ٙ‬یس یه ٔحُ اظ حبفٓ‪ ٝ‬ضا ضظض‪ٔ ٚ‬ی و‪ٙ‬یس سب اظ آٖ اؾشفبز‪ ٜ‬و‪ٙ‬یس‬
‫ذبنی فًب ث‪ ٝ‬قٕب اذشهبنٕی ز‪ٞ‬س) ‪ٕٞ‬چ‪ٙ‬یٗ ثب اؾشفبز‪ ٜ‬اظ ٘‪ ٔٛ‬زاز‪ٔ ٜ‬كرم قس‪ ٜ‬سهٕیٓ ٌطفش‪ٔ ٝ‬ی ق‪ٛ‬ز و‪ ٝ‬زض ٔحُ ٔ‪ٛ‬ضز ٘ٓط اظ حبفٓ‪ ٝ‬چ‪ٔ ٝ‬مبزیطی‬
‫شذیط‪ ٜ‬ق‪ٛ‬ز) ث‪ٙ‬بثطایٗ ا٘‪ٛ‬أ زاز‪ ٜ‬زض ظثبٖ ػب‪ٚ‬ا ثؿیبض ٔ‪ٞ ٟٓ‬ؿش‪ٙ‬س) یىی اظ زالیُ ایٗ ا٘‪ٛ‬أ زاز‪ ٜ‬ایٗ اؾز و‪ ٝ‬اٌط قٕب یه ٔشغیط ٔٗطفی وطز‪ ٜ‬ثبقیس و‪ ٝ‬فمٍ زض‬
‫آٖ ٖسز نحیح شذیط‪ ٜ‬و‪ٙ‬یس ث‪ ٝ‬قٕب ایٗ اػبظ‪ ٜ‬زاز‪ٕ٘ ٜ‬ی ق‪ٛ‬ز و‪ ٝ‬ثش‪ٛ‬ا٘یس زض آٖ ٔشغیط ٔشٗ یب ظٔبٖ شذیط‪ ٜ‬و‪ٙ‬یس) ا٘‪ٛ‬أ زاز‪ ٜ‬ز‪ ٚ‬زؾش‪ٞ ٝ‬ؿش‪ٙ‬س و‪ ٝ‬زض ازأ‪ ٝ‬آٔس‪ ٜ‬ا٘س ‪.‬‬

‫‪ ٔٛ٘ ),‬زاز‪ ٜ‬انّی‬


‫‪ ٔٛ٘ )-‬زاز‪ ٜ‬اضػبٖی یب قیئی‬

‫ًَع دادُ اغلی‬

‫زض ظثبٖ ػب‪ٚ‬ا ‪ ٔٛ٘ 8‬زاز‪ ٜ‬انّی ‪ٚ‬ػ‪ٛ‬ز زاضز) ا٘‪ٛ‬أ زاز‪ ٜ‬انّی زض ظثبٖ ػب‪ٚ‬ا اظ لجُ سٗطیف قس‪ ٜ‬ا٘س ‪ ٚ‬لبثُ ٌؿشطـ ٘یؿش‪ٙ‬س) ث‪ٖ ٝ‬جبضر زیٍط ا٘‪ٛ‬أ زاز‪ ٜ‬انّی‬
‫ث‪ٖٛٙ ٝ‬اٖ دبی‪ ٝ‬ا٘‪ٛ‬أ زاز‪ٞ ٜ‬بی زیٍط ٔی ثبقس) ا٘‪ٛ‬أ زاز‪ ٜ‬انّی زاضای ٘بْ ‪ٞ‬بیی ‪ٞ‬ؿش‪ٙ‬س و‪ ٝ‬ایٗ ٘بْ ‪ٞ‬ب ػعء وّٕبر وّیسی اؾز) زض ازأ‪ ٝ‬ث‪ٗٔ ٝ‬طفی ایٗ ا٘‪ٛ‬أ‬
‫زاز‪ٔ ٜ‬ی دطزاظیٓ ‪ ٚ‬آ٘‪ٟ‬ب ضا قطح ذ‪ٛ‬ا‪ٞ‬یٓ زاز‪.‬‬

‫‪byte‬‬
‫٘‪ ٔٛ‬زاز‪ byte ٜ‬زاضای ذ‪ٛ‬ال ظیط اؾز‪.‬‬

‫٘‪ ٔٛ‬زاز‪ 8 ، byte ٜ‬ثیز حبفٓ‪ ٝ‬الظْ زاضز‬ ‫‪‬‬

‫فمٍ ٔی س‪ٛ‬اٖ ٖسز ثس‪ٕٔ ٖٚ‬یع زض ایٗ ٘‪ ٔٛ‬زاز‪ ٜ‬شذیط‪ ٜ‬وطز‬ ‫‪‬‬

‫ایٗ ٘‪ ٔٛ‬زاز‪ ٜ‬و‪ٛ‬چىشطیٗ ٖسزی ضا و‪ٔ ٝ‬ی س‪ٛ‬ا٘س زض ذ‪ٛ‬ز ٍ٘‪ ٝ‬زاضز (‪ 128‬اؾز‬ ‫‪‬‬

‫ثعضٌشطیٗ ٖسزی و‪ ٝ‬ایٗ ٘‪ ٔٛ‬زاز‪ٔ ٜ‬ی س‪ٛ‬ا٘س زض ذ‪ٛ‬ز ٍ٘‪ ٝ‬زاضز ‪ٔ 127‬ی ثبقس‪.‬‬ ‫‪‬‬

‫ٔمساض دیكفطو ایٗ ٘‪ ٔٛ‬زاز‪ 0 ٜ‬اؾز) ث‪ ٝ‬ایٗ ٔٗ‪ٙ‬ی و‪ٚ ٝ‬لشی و‪ ٝ‬یه ٔشغیط اظ ٘‪ byte ٔٛ‬سٗطیف ٔی و‪ٙ‬یٓ وبٔذبیّط ٔمساض آٖ ضا ‪ 0‬لطاض ٔی ز‪ٞ‬س‪.‬‬ ‫‪‬‬

‫اٌط اٖساز قٕب زض ثط٘بٔ‪ٛ٘ ٝ‬یؿی ظیبز ثعضي ٘یؿز ‪ ٚ‬اظ ٕٔیع ‪ ٓٞ‬اؾشفبز‪ٕ٘ ٜ‬ی و‪ٙ‬یس ٔی س‪ٛ‬ا٘یس اظ ایٗ ٘‪ ٔٛ‬زاز‪ ٜ‬اؾشفبز‪ ٜ‬و‪ٙ‬یس ظیطا و‪ ٝ‬زض حبفٓ‪ ٝ‬نطف‪ٝ‬‬ ‫‪‬‬

‫ػ‪ٛ‬یی ٔی و‪ٙ‬س) ظیطا ایٗ ٘‪ ٔٛ‬زاز‪ ٜ‬یه چ‪ٟ‬بضْ ٘‪ ٔٛ‬زاز‪ int ٜ‬فًب الظْ زاضز) وس ظیط ٔظبِی اظ سٗطیف ٔشغیط اظ ٘‪ ٔٛ‬زاز‪ byte ٜ‬اؾز‪.‬‬

‫;‪byte a=100‬‬
‫;‪byte b=-43‬‬

‫‪6‬‬
‫‪short‬‬
‫ایٗ ٘‪ ٔٛ‬زاز‪ ٜ‬اٖساز ثس‪ٕٔ ٖٚ‬یع ضا زض ذ‪ٛ‬ز ٍ٘‪ٟ‬ساضی ٔی ٕ٘بیس‪.‬‬

‫٘‪ ٔٛ‬زاز‪ short ٜ‬یه ٘‪ ٔٛ‬زاز‪ٖ ٜ‬الٔز زاض ‪ 16‬ثیشی اؾز‪.‬‬ ‫‪‬‬

‫و‪ٛ‬چىشطیٗ ٔمساضی و‪ ٝ‬ایٗ ٘‪ ٔٛ‬زاز‪ٔ ٜ‬ی س‪ٛ‬ا٘س زض ذ‪ٛ‬ز ٍ٘‪ٟ‬ساضی ٕ٘بیس ‪ٔ (32768‬ی ثبقس‪.‬‬ ‫‪‬‬

‫ثعضٌشطیٗ ٔمساضی و‪ ٝ‬ایٗ ٘‪ ٔٛ‬زاز‪ٔ ٜ‬ی س‪ٛ‬ا٘س زض ذ‪ٛ‬ز ٍ٘‪ٟ‬ساضی ٕ٘بیس ‪ٔ 32767‬ی ثبقس‪.‬‬ ‫‪‬‬

‫ٔمساض دیكفطو ایٗ ٘‪ ٔٛ‬زاز‪ 0 ٜ‬اؾز‪.‬‬ ‫‪‬‬

‫حبفٓ‪ٔ ٝ‬هطفی ایٗ ٘‪ ٔٛ‬زاز‪٘ ٜ‬هف ٘‪ ٔٛ‬زاز‪ int ٜ‬اؾز‪.‬‬ ‫‪‬‬

‫ٔظبَ سٗطیف ٔشغیط اظ ٘‪short :ٔٛ‬‬

‫;‪short s=10000‬‬
‫‪short r=-3400‬‬

‫‪int‬‬
‫٘‪ ٔٛ‬زاز‪ int ٜ‬یه ٘‪ ٔٛ‬زاز‪ٖ ٜ‬سزی ٖالٔز زاض ‪ 32‬ثیشی اؾز‪.‬‬ ‫‪‬‬

‫و‪ٛ‬چىشطیٗ ٖسزی و‪ ٝ‬ایٗ ٘‪ ٔٛ‬زاز‪ٔ ٜ‬ی س‪ٛ‬ا٘س زض ذ‪ٛ‬ز ٍ٘‪ٟ‬ساضی ٕ٘بیس‪ٔ( 2147483648‬ی ثبقس‪.‬‬ ‫‪‬‬

‫ثعضٌشطیٗ ٖسزی و‪ ٝ‬ایٗ ٘‪ ٔٛ‬زاز‪ٔ ٜ‬ی س‪ٛ‬ا٘س زض ذ‪ٛ‬ز ٍ٘‪ٟ‬ساضی و‪ٙ‬س ‪ٔ 2147483647‬ی ثبقس‪.‬‬ ‫‪‬‬

‫ٖٕ‪ٔٛ‬ب ثطای ٔشغیط‪ٞ‬بی اٖساز نحیح اظ ایٗ ٘‪ ٔٛ‬زاز‪ ٜ‬اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز ‪ِٚ‬ی ثطای اؾشفبز‪ ٜ‬ث‪ٟ‬ی‪ ٝٙ‬سط اظ حبفٓ‪ٔ ٝ‬ی س‪ٛ‬اٖ اظ ا٘‪ٛ‬أ زاز‪ ٜ‬لجّی ‪ ٓٞ‬اؾشفبز‪ٜ‬‬ ‫‪‬‬

‫وطز) ‪ِٚ‬ی أط‪ٚ‬ظ‪ ٜ‬ث‪ّٖ ٝ‬ز ثبال ث‪ٛ‬زٖ حؼٓ حبفٓ‪ٞ ٝ‬ب نطف‪ ٝ‬ػ‪ٛ‬یی زض حبفٓ‪ٔ ٝ‬ؿئّ‪ ٝ‬حبزی ٘یؿز ‪.‬‬
‫ٔمساض دیكفطو ایٗ ٘‪ ٔٛ‬زاز‪ 0 ٜ‬اؾز‪.‬‬ ‫‪‬‬

‫زض ظیط ٔظبِی اظ ایٗ ٘‪ ٔٛ‬زاز‪ ٜ‬آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز‪:‬‬

‫;‪int m=60‬‬
‫;‪int c=-200000‬‬
‫;‪int h=800000‬‬

‫‪long‬‬
‫٘‪ ٔٛ‬زاز‪ long ٜ‬یه ٘‪ ٔٛ‬زاز‪ ٜ‬ثطای ٍ٘‪ٟ‬ساضی اٖساز نحیح ٖالٔز زاض اؾز و‪ 64 ٝ‬ثیز حبفٓ‪ ٝ‬اقغبَ ٔی و‪ٙ‬س‪.‬‬ ‫‪‬‬

‫و‪ٛ‬چىشطیٗ ٖسزی و‪ ٝ‬ایٗ ٘‪ ٔٛ‬زاز‪ٔ ٜ‬ی س‪ٛ‬ا٘س زض ذ‪ٛ‬ز ٍ٘‪ٟ‬ساضی و‪ٙ‬س ‪( 9223372036854775808‬اؾز‬ ‫‪‬‬

‫ثعضٌشطیٗ ٖسزی و‪ ٝ‬ایٗ ٘‪ ٔٛ‬زاز‪ٔ ٜ‬ی س‪ٛ‬ا٘س زض ذ‪ٛ‬ز ٍ٘‪ٟ‬ساضی و‪ٙ‬س ٖسز ‪ٔ 9223372036854775807‬ی ثبقس‪.‬‬ ‫‪‬‬

‫ایٗ ٘‪ ٔٛ‬زاز‪ ٜ‬ظٔب٘ی اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز و‪ ٝ‬ثر‪ٛ‬ا‪ٞ‬یٓ ثب اٖساز نحیح ثؿیبض ثعضي وبض و‪ٙ‬یٓ ‪.‬‬ ‫‪‬‬

‫ٔمساض دیكفطو ایٗ ٘‪ ٔٛ‬زاز‪L 0 ٜ‬اؾز‪.‬‬ ‫‪‬‬

‫‪7‬‬
‫زض ظیط ٔظبِی اظ ایٗ ٘‪ ٔٛ‬زاز‪ ٜ‬آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز‪.‬‬

‫;‪long a=1000000L‬‬

‫‪float‬‬
‫٘‪ ٔٛ‬زاز‪ float ٜ‬ثطای ٍ٘‪ٟ‬ساضی اٖساز ٕٔیع زاض ثب ‪32‬ثیز اؾز‪.‬‬ ‫‪‬‬

‫ایٗ ٘‪ ٔٛ‬زاز‪ ٜ‬ثط اؾبؼ اؾشب٘ساضز ٕٔیع ق‪ٙ‬ب‪ٚ‬ض ‪ IEEE 754‬وبض ٔی و‪ٙ‬س‪.‬‬ ‫‪‬‬

‫ٔمساض دیكفطو ایٗ ٘‪ ٔٛ‬زاز‪0.0 f ٜ‬اؾز‬ ‫‪‬‬

‫ایٗ ٘‪ ٔٛ‬زاز‪ ٜ‬ثطای ػب‪ٞ‬بیی و‪ ٝ‬زلز ثؿیبض ٔ‪ ٟٓ‬اؾز ٔ‪ٛ‬ضز اؾشفبز‪ ٜ‬لطاض ٕ٘ی ٌیطز) ٔظال ثطای ٍ٘‪ٟ‬ساقشٗ ‪ٚ‬احس‪ٞ‬بی د‪ِٛ‬ی اظ ایٗ ٘‪ ٔٛ‬زاز‪ ٜ‬اؾشفبز‪ٜ‬‬ ‫‪‬‬

‫ٕ٘ی ق‪ٛ‬ز چ‪ ٖٛ‬زلیك ٘یؿز‪.‬‬

‫ٔظبَ سٗطیف ٔشغیط اظ ایٗ ٘‪ ٔٛ‬زاز‪ ٜ‬ث‪ ٝ‬قىُ ظیط اؾز‪:‬‬

‫;‪float f1=234.5f‬‬

‫‪double‬‬
‫ایٗ ٘‪ ٔٛ‬زاز‪ ٜ‬یه ٘‪ ٔٛ‬زاز‪ 64 ٜ‬ثیشی زلیك اؾز‪.‬‬ ‫‪‬‬

‫ایٗ ٘‪ ٔٛ‬زاز‪ ٜ‬اظ اؾشب٘ساضز ٕٔیع ق‪ٙ‬ب‪ٚ‬ض ‪ IEEE 754‬اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬س‪.‬‬ ‫‪‬‬

‫ایٗ ٘‪ ٔٛ‬زاز‪ ٔٛ٘ ٜ‬زاز‪ ٜ‬دیكفطو ثطای اٖساز ٕٔیعی ٔی ثبقس‪.‬‬ ‫‪‬‬

‫ایٗ ٘‪ ٔٛ‬زاز‪ ٜ‬ثب ایٗ و‪ ٝ‬اظ ‪ float‬زلیك سط اؾز ‪ِٚ‬ی ‪ٛٙٞ‬ظ ذُب زاضز ‪٘ ٚ‬جبیس ثطای ٔمبزیط د‪ِٛ‬ی ٔ‪ٛ‬ضز اؾشفبز‪ ٜ‬لطاض ٌیطز ‪.‬‬ ‫‪‬‬

‫ٔمساض دیف فطو ایٗ ٘‪ ٔٛ‬زاز‪ٔ0.0d ٜ‬ی ثبقس‪.‬‬ ‫‪‬‬

‫ٔظبَ ایٗ ٘‪ ٔٛ‬زاز‪ ٜ‬زض وس ظیط آٔس‪ ٜ‬اؾز‪.‬‬

‫;‪doubel d1=123.4‬‬

‫‪boolean‬‬
‫ایٗ ٘‪ ٔٛ‬زاز‪ ٜ‬فمٍ ز‪ٔ ٚ‬مساض ث‪ ٝ‬ذ‪ٛ‬ز ٔیٍیطز‪true,false‬‬ ‫‪‬‬

‫ایٗ ٘‪ ٔٛ‬فمٍ ثطای ٍ٘‪ٟ‬ساضی ٘شبیغ ٖجبضار قطَی ٔ‪ٛ‬ضز اؾشفبز‪ ٜ‬لطاض ٔی ٌیطز ‪.‬‬ ‫‪‬‬

‫ٔمساض دیكفطو ایٗ ٘‪ ٔٛ‬زاز‪ false ٜ‬اؾز‪.‬‬ ‫‪‬‬

‫ٔظبِی اظ سٗطیف ٔشغیط اظ ایٗ ٘‪ ٔٛ‬زاز‪ ٜ‬زض وس ظیط آٔس‪ ٜ‬اؾز‪.‬‬

‫‪8‬‬
‫;‪boolean one=true‬‬

‫‪char‬‬
‫ایٗ ٘‪ ٔٛ‬زاز‪ ٜ‬ثطای ٍ٘‪ٟ‬ساضی وبضاوشط ‪ٞ‬بی ی‪٘ٛ‬یىس ٔی ثبقس ‪.‬‬ ‫‪‬‬

‫ایٗ ٘‪ ٔٛ‬زاز‪16 ٜ‬ثیز فًب اظ حبفٓ‪ ٝ‬ثطای ذ‪ٛ‬ز ٔی ٌیطز ‪.‬‬ ‫‪‬‬

‫ٔظبِی اظ ایٗ ٘‪ ٔٛ‬زاز‪ ٜ‬ث‪ ٝ‬قىُ ظیط اؾز ‪:‬‬

‫;'‪char letter='a‬‬

‫اًَاع دادُ ارجاعی‬

‫ا٘‪ٛ‬أ زاز‪ٞ ٜ‬بی اضػبٖی اظ والؼ ‪ٞ‬بی سٗطیف قس‪ ٜ‬ؾبذش‪ٔ ٝ‬ی ق‪٘ٛ‬س) ٔشغیط‪ٞ‬بیی و‪ ٝ‬اظ ایٗ ٘‪ ٔٛ‬ؾبذش‪ٔ ٝ‬ی ق‪٘ٛ‬س ثطای زؾشطؾی ث‪ ٝ‬اقیب ؾبذش‪ٝ‬‬ ‫‪‬‬

‫قس‪ ٜ‬اظ والؼ ‪ٞ‬ؿش‪ٙ‬س‪.‬‬


‫آضای‪ٞ ٝ‬ب ‪ ٚ‬اقیب اظ ایٗ ٘‪ٞ ٔٛ‬ؿش‪ٙ‬س ‪ ٚ‬زض زؾش‪ ٝ‬ا٘‪ٛ‬أ زاز‪ ٜ‬اضػبٖی لطاض ٔیٍیط٘س ‪.‬‬ ‫‪‬‬

‫ٔمساض دیكفطو ایٗ ٘‪ ٔٛ‬زاز‪ٞ ٜ‬ب ‪ null‬اؾز‪.‬‬ ‫‪‬‬

‫یه ٔشغیط اظ ٘‪ ٔٛ‬اضػبٖی ٔی س‪ٛ‬ا٘س ث‪ٞ ٝ‬ط ٘‪ٖٛ‬ی و‪ ٝ‬ثب ٘‪ ٔٛ‬ذ‪ٛ‬زـ ؾبظٌبض ثبقس ا٘شؿبة زاقش‪ ٝ‬ثبقس ‪.‬‬ ‫‪‬‬

‫ٔظبِی اظ ایٗ ٘‪ ٔٛ‬زاز‪ ٜ‬زض وس ظیط آٔس‪ ٜ‬اؾز‪.‬‬

‫;)"‪Animal anim=new Animal("rabbit‬‬

‫آضای‪ٞ ٝ‬ب‬

‫زض ثط٘بٔ‪ٛ٘ ٝ‬یؿی ثؿیبضی اظ ٔ‪ٛ‬الٕ دیف ٔی آیس و‪ ٝ‬یه ٔؼٕ‪ ٖٝٛ‬ای اظ زاز‪ٞ ٜ‬ب ‪ٚ‬ػ‪ٛ‬ز زاضز و‪ ٕٝٞ ٝ‬اظ یه ٘‪ ٔٛ‬یب یه والؼ ٔی ثبق‪ٙ‬س) اٌط ثر‪ٛ‬ا‪ٞ‬یٓ ‪ٞ‬طوساْ‬
‫اظ ایٗ زاز‪ٞ ٜ‬ب ضا زض یه ٔشغیط شذیط‪ ٜ‬و‪ٙ‬یٓ ٕٔىٗ اؾز و‪ ٝ‬چ‪ٙ‬سنس ٔشغیط زاقش‪ ٝ‬ثبقیٓ و‪ ٕٝٞ ٝ‬اظ یه ٘‪ٔ ٔٛ‬ی ثبق‪ٙ‬س) زض ایٗ حبِز ثب ا٘ج‪ٞٛ‬ی اظ ٔشغیط‪ٞ‬ب‬
‫ٔ‪ٛ‬اػ‪ٞ ٝ‬ؿشیٓ و‪ ٝ‬ث‪ّٖ ٝ‬ز ظیبز ث‪ٛ‬زٖ وبض ثب آ٘‪ٟ‬ب ثؿیبض ٔكىُ ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز) ثطای حُ ایٗ ٔكىُ زض ظثبٖ ‪ٞ‬بی ثط٘بٔ‪ٛ٘ ٝ‬یؿی یه ؾبذشبض زاز‪ ٜ‬ث‪٘ ٝ‬بْ آضای‪ٝ‬‬
‫‪ٚ‬ػ‪ٛ‬ز زاضز) آضای‪ ٝ‬یه ٔؼٕ‪ ٖٝٛ‬ای اظ زاز‪ٞ ٜ‬بی ‪ٔ ٔٛ٘ ٓٞ‬ی ثبقس و‪ ٝ‬زاز‪ٞ ٜ‬ب ضا زض حبفٓ‪ ٝ‬دكز ؾط‪ ٓٞ‬شذیط‪ٔ ٜ‬ی و‪ٙ‬س) آضای‪ ٝ‬یه ٘بْ زاضز ‪ٞ ٚ‬طوساْ اظ زاز‪ٜ‬‬
‫‪ٞ‬ب ضا زض یه ذب٘‪ ٝ‬شذیط‪ٔ ٜ‬ی و‪ٙ‬س و‪ ٝ‬ایٗ ذب٘‪ ٝ‬ثب یه ا٘سیؽ ٔكرم ٔی ق‪ٛ‬ز) ا٘ساظ‪ ٜ‬آضای‪ ٝ‬زض ػب‪ٚ‬ا طبثز اؾز) ثطای ٔظبَ ثطای شذیط‪ٖ 100 ٜ‬سز ثبیس ‪100‬‬
‫ٖسز ٔشغیط سٗطیف وطز ٔب٘‪ٙ‬س ‪ num1, num2, …..,num100‬زض حبِی و‪ٚ ٝ‬لشی اظ آضای‪ ٝ‬اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬یٓ ٔی س‪ٛ‬ا٘یٓ یه آضای‪ 100 ٝ‬سبیی ٔٗطفی و‪ٙ‬یٓ ‪ ٚ‬ثطای‬
‫زؾشطؾی ث‪ٞ ٝ‬طوساْ اظ ا٘سیؽ آٖ اؾشفبز‪ ٜ‬و‪ٙ‬یٓ ٔظُ ‪num[0], num[1], num[2],….,num[99].‬زلز زاقش‪ ٝ‬ثبقیس و‪ ٝ‬ا‪ِٚ‬یٗ ذب٘‪ ٝ‬آضای‪ ٝ‬اظ ‪ 0‬قط‪ٔ ٔٚ‬ی ق‪ٛ‬ز‬
‫‪ ٚ‬ثطای یه آضای‪ 100 ٝ‬سبیی ذب٘‪ ٝ‬آذط ذب٘‪ 99 ٝ‬اؾز یٗ‪ٙ‬ی یىی وٕشط‪.‬‬

‫‪9‬‬
‫هعزفی آرایِ‬

‫ثطای اؾشفبز‪ ٜ‬اظ یه آضای‪ ٝ‬ثبیس آٖ ضا اثشسا ٔٗطفی وطز) زض ‪ٍٙٞ‬بْ ٔٗطفی آضای‪ ٔٛ٘ ٝ‬آضای‪ ٚ ٝ‬ا٘ساظ‪ ٜ‬آٖ ٔكرم ٔی ق‪ٛ‬ز) زض قىُ ظیط ٘ح‪ٗٔ ٜٛ‬طفی آضای‪٘ ٝ‬كبٖ‬
‫زاز‪ ٜ‬قس‪ ٜ‬اؾز‪:‬‬

‫;‪dataType[] arrayRefVar‬‬ ‫ض‪ٚ‬ـ س‪ٛ‬نی‪ ٝ‬قس‪// ٜ‬‬


‫‪or‬‬
‫;][‪dataTypearrayRefVar‬‬ ‫‪//‬‬ ‫وبض ٔی و‪ٙ‬س ‪ِٚ‬ی س‪ٛ‬نی‪ٕ٘ ٝ‬ی ق‪ٛ‬ز‬

‫زض ض‪ٚ‬ـ ‪ٞ‬بی ٌفش‪ ٝ‬قس‪ ٜ‬زض ثبال ض‪ٚ‬ـ س‪ٛ‬نی‪ ٝ‬قس‪ ٜ‬ض‪ٚ‬ـ ذ‪ٛ‬ز ػب‪ٚ‬ا اؾز ‪ ٚ‬ض‪ٚ‬قی و‪ ٝ‬س‪ٛ‬نی‪ٕ٘ ٝ‬ی ق‪ٛ‬ز ض‪ٚ‬قی اؾز و‪ ٝ‬زض ظثبٖ ‪ٞ‬بی ٔب٘‪ٙ‬س ‪ٛٔ c , c++‬ضز‬
‫‪c++‬ؾبذش‪ ٝ‬قس‪ ٜ‬اؾز ایٗ ض‪ٚ‬ـ ٘‪ٛ‬قشبضی ٘یع زض ػب‪ٚ‬ا آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز و‪ ٝ‬ثطای‬ ‫اؾشفبز‪ ٜ‬لطاض ٔی ٌیطز ‪ ٚ‬اظ آ٘ؼب و‪ ٝ‬ؾی‪ٙ‬شىؽ ػب‪ٚ‬ا ثطدبی‪ ٝ‬ؾی‪ٙ‬شىؽ‬
‫وبضثطاٖ‪٘c++‬یع لبثُ اؾشفبز‪ ٜ‬ثبقس)‪ٍٙٞ‬بْ سٗطیف ثبیس زض لؿٕز ‪ ٔٛ٘ datatype‬زاز‪ ٜ‬یب والؾی و‪ٔ ٝ‬ی ذ‪ٛ‬ا‪ٞ‬یٓ اظ آٖ آضای‪ ٝ‬ثؿبظیٓ ضای ٔی آ‪ٚ‬ضیٓ ‪ٕٞ ٚ‬چ‪ٙ‬یٗ‬
‫ث‪ ٝ‬ػبی‪٘arrayRefVar‬یع ثبیس ٘بْ آضای‪ ٝ‬ضا لطاض زاز) ٔب٘‪ٙ‬س وس ظیط‪:‬‬

‫;‪double[] myArray‬‬ ‫ض‪ٚ‬ـ س‪ٛ‬نی‪ ٝ‬قس‪// ٜ‬‬


‫‪or‬‬
‫;][‪double myArray‬‬ ‫وبض ٔی و‪ٙ‬س ‪ِٚ‬ی س‪ٛ‬نی‪ٕ٘ ٝ‬ی ق‪ٛ‬ز ‪//‬‬

‫ساخت آرایِ‬

‫ثب اؾشفبز‪ ٜ‬اظ وّٕ‪ ٝ‬وّیسی ‪ٔ new‬ی س‪ٛ‬اٖ یه آضای‪ ٝ‬ػسیس ؾبذز) قىُ وّی ؾبذز آضای‪ٔ ٝ‬ب٘‪ٙ‬س ظیط اؾز ‪:‬‬

‫;]‪arrayRefVar = new dataType[arraySize‬‬

‫ٔی س‪ٛ‬اٖ ٔٗطفی وطزٖ ‪ ٚ‬ؾبذشٗ یه آضای‪ ٝ‬ػسیس ضازض یه ذٍ ثب‪ ٓٞ‬ا٘ؼبْ زاز و‪ ٝ‬وس آٖ ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز ‪:‬‬

‫;]‪dataType[] arrayRefVar = new dataType[arraySize‬‬

‫ض‪ٚ‬ـ زیٍطی و‪ ٝ‬ثطای ٔٗطفی ‪ ٚ‬ؾبذز آضای‪ٛٔ ٝ‬ضز اؾشفبز‪ ٜ‬لطاض ٔی ٌیطز ث‪ ٝ‬ایٗ قىُ اؾز و‪ٔ ٝ‬مبزیطی ضا و‪ ٝ‬لطاض اؾز زاذُ آضای‪ ٝ‬شذیط‪ٌ ٜ‬طزز زض ‪ٕٞ‬بٖ‬
‫ظٔبٖ ؾبذز آضای‪ ٝ‬زض‪ ٖٚ‬آٖ لطاض ز‪ٞ‬یٓ و‪ ٝ‬ایٗ ض‪ٚ‬ـ زض وس ظیط آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز ‪.‬‬

‫;}‪dataType[] arrayRefVar = {value0, value1, ..., valuek‬‬

‫ٖ‪ٙ‬بنط آضای‪ٕٞ ٝ‬بُ٘‪ٛ‬ض و‪ٌ ٝ‬فش‪ ٝ‬قس ثب اؾشفبز‪ ٜ‬اظ ا٘سیؽ لبثُ زؾشطؼ ‪ٞ‬ؿش‪ٙ‬س و‪ ٝ‬ا٘سیؽ اظ ‪ 0‬قط‪ٔ ٔٚ‬ی ق‪ٛ‬ز‪.‬‬

‫زض وس ظیط یه آضای‪ double ٝ‬ث‪٘ ٝ‬بْ‪myList‬ؾبذش‪ ٝ‬قس‪ ٜ‬اؾز و‪ 10 ٝ‬ذب٘‪ ٝ‬زاضز‪.‬‬

‫‪10‬‬
double[] myList = new double[10];

.‫ اؾز‬ٜ‫ قس‬ٝ‫ زض زاذُ آٖ ضیرش‬double ‫ ٔمبزیط‬ٝ‫س و‬ٞ‫ضا ٘كبٖ ٔی ز‬myListٝ‫قىُ ظیط ؾبذشبض آضای‬

‫پزداسش آرایِ ّا‬

ٜ‫ ا٘ساظ‬ٚ ‫ اظ لجُ ٔكرم اؾز‬ٝ‫ آضای‬ٜ‫ ا٘ساظ‬ٝ‫ز) ظیطا و‬ٛ‫ ٔی ق‬ٜ‫ اؾشفبز‬foreach ٚ for ‫بی‬ٞ ٝ‫ اظ حّم‬ٝ‫بی آضای‬ٞ ٝ٘‫طوساْ اظ ذب‬ٞ ‫ دطزاظـ‬ٚ ٝ‫ثطای دیٕبیف آضای‬
: ‫ ٕ٘بییس‬ٝ‫ػ‬ٛ‫ آٖ س‬ٝ‫ اؾز ث‬ٜ‫ قس‬ٜ‫ضز‬ٚ‫ آ‬ٝ‫ دطزاظـ آضای‬ٚ ٜ‫ اؾشفبز‬ٚ ‫ ضا ٔی زا٘یٓ) زض وس ظیط ٔظبِی ثطای ؾبذز‬ٝ‫آضای‬

public class TestArray {

public static void main(String[] args) {


double[] myList = {1.9, 2.9, 3.4, 3.5};

// Print all the array elements


for (int i = 0; i<myList.length; i++) {
System.out.println(myList[i] + " ");
}
// Summing all elements
double total = 0;
for (int i = 0; i<myList.length; i++) {
total += myList[i];
}
System.out.println("Total is " + total);
// Finding the largest element
double max = myList[0];
for (int i = 1; i<myList.length; i++) {
if (myList[i] > max) max = myList[i];
}
System.out.println("Max is " + max);
}
}

:‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی وس ثبال ث‬ٚ‫ذط‬

1.9
2.9
3.4
3.5
Total is 11.7
ax is 3.5

foreachِ‫حلق‬

‫ب ضا زا٘ؿز‬ٞ ‫ ا٘سیؽ‬ٝ‫ٖ ایٗ و‬ٚ‫ ضا ثس‬ٝ‫اٖ وُ آضای‬ٛ‫ ٔی س‬ٝ‫ٔ اظ حّم‬ٛ٘ ٗ‫س) زض ای‬ٞ‫ز ز‬ٛ‫ج‬ٟ‫ ضا ث‬for ٝ‫ا٘س حّم‬ٛ‫ ٔٗطفی قس سب ثش‬foreach ٝ‫حّم‬jdk 1.5 ٖ‫زض ظٔب‬
:‫ ٕ٘بییس‬ٝ‫ػ‬ٛ‫ وس ظیط س‬ٝ‫دیٕبیف وطز) ثطای ٔظبَ ث‬
11
‫{ ‪public class TestArray‬‬

‫{ )‪public static void main(String[] args‬‬


‫;}‪double[] myList = {1.9, 2.9, 3.4, 3.5‬‬

‫‪// Print all the array elements‬‬


‫{ )‪for (double element: myList‬‬
‫;)‪System.out.println(element‬‬
‫}‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪1.9‬‬
‫‪2.9‬‬
‫‪3.4‬‬
‫‪3.5‬‬

‫ارسال آرایِ بِ هتذّا‬

‫‪ٕٞ‬بٍ٘‪ ٝ٘ٛ‬و‪ٔ ٝ‬ی س‪ٛ‬اٖ ا٘‪ٛ‬أ ا‪ِٚ‬ی‪ ٝ‬زاز‪ ٜ‬ضا ث‪ٖٛٙ ٝ‬اٖ آضٌ‪ٔٛ‬بٖ ‪ٚ‬ض‪ٚ‬زی ث‪ٔ ٝ‬شس ‪ٞ‬ب فطؾشبز ٔی س‪ٛ‬اٖ آضای‪ ٝ‬ضا ٘یع ث‪ٖٛٙ ٝ‬اٖ آضٌ‪ٔٛ‬بٖ ث‪ٔ ٝ‬شس‪ٞ‬ب اضؾبَ ٕ٘‪ٛ‬ز) ثطای ٔظبَ‬
‫ٔشس ظیط ٖ‪ٙ‬بنط ٔ‪ٛ‬ػ‪ٛ‬ز زض آضای‪ ٝ‬ضا زض ذط‪ٚ‬ػی چبح ٔی ٕ٘بیس ‪.‬‬

‫{ )‪public static void printArray(int[] array‬‬


‫{ )‪for (int i = 0; i<array.length; i++‬‬
‫;)" " ‪System.out.print(array[i] +‬‬
‫}‬
‫}‬

‫ثب اؾشفبز‪ ٜ‬اظ سبثٕ ثبال قٕب ٔی س‪ٛ‬ا٘یس ٖ‪ٙ‬بنط ‪ٞ‬ط آضای‪ ٝ‬ای ضا و‪ ٝ‬اظ ٘‪ int ٔٛ‬ؾبذش‪ ٝ‬قس‪ ٜ‬اؾز ضا ث‪ٔ ٝ‬شس اضؾبَ وطز‪ٔ ٚ ٜ‬شس ٖ‪ٙ‬بنط آٖ ضا چبح ٔی و‪ٙ‬س ‪.‬‬

‫باسگزداًذى آرایِ بِ عٌَاى هقذار باسگطتی هتذ‬

‫یه ٔشس ٕٔىٗ اؾز و‪ ٝ‬یه آضای‪ ٝ‬ضا ث‪ٖٛٙ ٝ‬اٖ ذط‪ٚ‬ػی ثبظٌطزا٘س) ثطای ٔظبَ ٔشسی و‪ ٝ‬زض وس ظیط آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز یه آضای‪ ٝ‬ضا و‪ ٝ‬ثطٖىؽ قس‪ ٜ‬آضای‪ٝ‬‬
‫‪ٚ‬ض‪ٚ‬زی اؾز ضا ثبظٔی ٌطزا٘س‪.‬‬

‫{ )‪public static int[] reverse(int[] list‬‬


‫;]‪int[] result = new int[list.length‬‬

‫{ )‪for (int i = 0, j = result.length - 1; i<list.length; i++, j--‬‬


‫;]‪result[j] = list[i‬‬
‫‪12‬‬
‫}‬
‫;‪return result‬‬
‫}‬

‫کالس‪Array‬‬

‫ایٗ والؼ زض دىیغ ‪java.util‬لطاض زاضز و‪ ٝ‬قبُٔ ٔشس‪ٞ‬بی ثطای ٔطست ؾبظی آضای‪ ٚ ٝ‬یب ػؿشؼ‪ٔ ٚ ٛ‬مبیؿ‪ ٝ‬آضای‪ٞ ٝ‬ب ‪ ٚ‬دط وطزٖ ذب٘‪ٞ ٝ‬بی آضای‪ٔ ٝ‬ی ثبقس) ایٗ‬
‫ٔشس‪ٞ‬ب ثطای ا٘‪ٛ‬أ زاز‪ٞ ٜ‬بی انّی ٔی س‪ٛ‬ا٘س لبثُ اٖٕبَ ثبقس) زض ازأ‪ ٝ‬ث‪ ٝ‬چ‪ٙ‬س ٖسز اظ ٔ‪ٕٟ‬شطیٗ ایٗ ٔشس‪ٞ‬ب دطزاذش‪ ٝ‬ایٓ‬

‫هتذ ‪ 5binarySearch‬یه اضای‪ٔ ٝ‬ی ٌیطز ‪ ٚ‬یه ٔمساض ‪ٔ ٚ‬مساض ٔ‪ٛ‬ضز ٘ٓط ضا ث‪ ٝ‬ض‪ٚ‬ـ ػؿشؼ‪ٛ‬ی ز‪ٚ‬ز‪ٚ‬یی زض زاذُ آضای‪ ٝ‬ػؿشؼ‪ٔ ٛ‬ی و‪ٙ‬س ‪ ٚ‬اٌط دیسا ق‪ٛ‬ز‬
‫ٔحُ لطاضٌیطی آضای‪ ٝ‬ضا ثطٔی ٌطزا٘س) ثطای ایٗ ٔشس آضای‪ ٝ‬ثبیس اظ لجُ ٔطست قس‪ ٜ‬ثبقس) قىُ ٘‪ٛ‬قشبضی ایٗ اضای‪ ٝ‬ث‪ ٝ‬قىُ ظیط اؾز‬

‫)‪public static int binarySearch(Object[] a, Object key‬‬

‫هتذ ‪ equals‬ایٗ ٔشس ز‪ ٚ‬آضای‪ ٝ‬ضا ثب یىسیٍط ٔمبیؿ‪ٔ ٝ‬ی و‪ٙ‬س) ز‪ ٚ‬آضای‪ ٝ‬ظٔب٘ی ثب ‪ٔ ٓٞ‬ؿب‪ٚ‬ی ‪ٞ‬ؿش‪ٙ‬س و‪ ٝ‬سٗساز ذب٘‪ٞ ٝ‬بی آ٘‪ٟ‬ب ثب ‪ ٓٞ‬ثطاثط ث‪ٛ‬ز‪ٕٞ ٚ ٜ‬چ‪ٙ‬یٗ ‪ٞ‬ط‬

‫ػفز ذب٘‪ ٝ‬آضای‪ٞ ٝ‬ب ثب ‪ ٓٞ‬ثطاثط ثبق‪ٙ‬س) اٌط ز‪ ٚ‬آضای‪ ٝ‬ثب ‪ ٓٞ‬ثطاثط ثبقس ایٗ ٔشس ٔمساض ‪ true‬ضا ثطٔی ٌطزا٘س) قىُ ٘‪ٛ‬قشبضی ایٗ ٔشس ٔب٘‪ٙ‬س وس ظیط اؾز‪:‬‬

‫)‪public static boolean equals(long[] a, long[] a2‬‬

‫هتذ ‪ fill‬ایٗ ٔشس یه ٔمساض ‪ ٚ‬یه آضای‪ٔ ٝ‬ی ٌیطز ‪ ٕٝٞ ٚ‬ی ذب٘‪ٞ ٝ‬بی آضای‪ ٝ‬ضا ثب آٖ ٔمساض دط ٔی و‪ٙ‬س) ایٗ ٔشس ث‪ ٝ‬قىُ ظیط ٘‪ٛ‬قش‪ٔ ٝ‬ی ق‪ٛ‬ز ‪:‬‬

‫)‪public static void fill(int[] a, int val‬‬

‫‪ٞ fill‬یچ ذط‪ٚ‬ػی ٘ساض٘س ‪ٕٝٞ ٚ‬‬ ‫هتذ ‪ sort‬ایٗ ٔشس یه آضای‪ ٝ‬ضا زضیبفز ٔی و‪ٙ‬س ‪ٖٙ ٚ‬بنط زاذُ آٖ ضا ٔطست ٔی و‪ٙ‬س) زلز زاقش‪ ٝ‬ثبقیس و‪ ٝ‬ایٗ ٔشس ‪ٔ ٚ‬شس‬
‫سغییطار دطوطزٖ ‪ٔ ٚ‬طست وطزٖ ثط ض‪ٚ‬ی آضای‪ٚ ٝ‬ض‪ٚ‬زی ا٘ؼبْ ٔی ق‪ٛ‬ز ‪ ٚ‬ثط ض‪ٚ‬ی آٖ ٘یع اٖٕبَ ٔی ٌطزز) قىُ ٘‪ٛ‬قشبضی ایٗ ٔشس ث‪ ٝ‬قىُ ظیط اؾز ‪:‬‬

‫)‪public static void sort(Object[] a‬‬

‫‪ ٕٝٞ‬ی اٖٕبَ ٌفش‪ ٝ‬قس‪ ٜ‬زض والؼ ‪ Array‬ثط ض‪ٚ‬ی ‪ ٕٝٞ‬ی ا٘‪ٛ‬أ ا‪ِٚ‬ی‪ ٝ‬لبثُ اٖٕبَ ٔی ثبقس )‬

‫ٍّٖٕط‪ٞ‬ب‬

‫‪ٞ‬ط ظثبٖ ثط٘بٔ‪ٛ٘ ٝ‬یؿی ثبیس لبثّیز سغییط ‪ ٚ‬دطزاظـ زاز‪ٞ ٜ‬ب ‪ ٚ‬ا٘ؼبْ ّٖٕیبسی ثط ض‪ٚ‬ی ا٘‪ٛ‬أ زاز‪ ٜ‬ضا زاقش‪ ٝ‬ثبقس) ظثبٖ ػب‪ٚ‬ا زض ایٗ ظٔی‪ ٝٙ‬ثؿیبض ل‪ٛ‬ی ُٖٕ وطز‪ٜ‬‬
‫اؾز) ایٗ ظثبٖ و‪ ٝ‬ثیكشط ٍّٖٕط‪ٞ‬بی ذ‪ٛ‬یف ضا اظ ‪ٌC++‬طفش‪ ٝ‬اؾز زأ‪ٚ ٝٙ‬ؾیٗی اظ ٍّٖٕط‪ٞ‬ب ضا ثطای ا٘ؼبْ أ‪ٛ‬ض ٔرشّف اضائ‪ٔ ٝ‬ی ز‪ٞ‬س) ٍّٖٕط‪ٞ‬بی ػب‪ٚ‬ا ث‪ٝ‬‬
‫زؾش‪ٞ ٝ‬بی ظیط سمؿیٓ ٔی ق‪٘ٛ‬س‪5‬‬
‫‪13‬‬
‫‪ٍّٕٖ ),‬ط‪ٞ‬بی ٔحبؾجبسی‬
‫‪ٍّٕٖ )-‬ط‪ٞ‬بی ضاثُ‪ ٝ‬ای‬
‫‪ٍّٕٖ ).‬ط‪ٞ‬بی ثیشی‬
‫‪ٍّٕٖ )/‬ط‪ٞ‬بی ٔ‪ُٙ‬می‬
‫‪ٍّٕٖ )0‬ط‪ٞ‬بی ا٘شؿبثی‬
‫‪ٍّٕٖ )1‬ط‪ٞ‬بی ٔشفطل‪ٝ‬‬

‫عولگزّای هحاسباتی‬

‫ٍّٖٕط‪ٞ‬بی ٔحبؾجبسی زض ٖجبضار ضیبيی ‪ ٚ‬ػجطی اؾشفبز‪ٔ ٜ‬ی ق‪٘ٛ‬س) زض ازأ‪ٍّٕٖ ٝ‬ط‪ٞ‬بی ضیبيی آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬ا٘س) زلز زاقش‪ ٝ‬ثبقیس و‪ ٝ‬ثطای زیسٖ ٘شیؼ‪ ٝ‬ایٗ‬
‫ٍّٖٕط‪ٞ‬ب ٔمساض ٔشغیط ‪ A‬ثطاثط ‪ٔ ٚ 10‬مساض ‪ٔ B‬مساض ‪ 20‬اؾز) ایٗ ٍّٖٕط‪ٞ‬ب ٖجبضس‪ٙ‬س اظ‪:‬‬

‫ٍّٖٕط ػٕٕ وطزٖ‪ 5‬ایٗ ٍّٖٕط ز‪ٔ ٚ‬مساض ٖسزی ضا ثب ‪ ٓٞ‬ػٕٕ ٔی و‪ٙ‬س ‪ٖ ٚ‬الٔز آٖ & ٔی ثبقس) ثطای ٔظبَ ٘شیؼ‪ A+B ٝ‬ثطاثط ‪ 30‬ذ‪ٛ‬ا‪ٞ‬س قس‪.‬‬ ‫‪‬‬

‫ٍّٖٕط سفطیك وطزٖ‪ 5‬ایٗ ٍّٖٕط ٔمساض ٖسزی ز‪ ْٚ‬ضا اظ ٔمساض ٖسزی ا‪ َٚ‬وٓ ذ‪ٛ‬ا‪ٞ‬س وطز ‪ٖ ٚ‬الٔز ایٗ ٍّٖٕط ( ٔی ثبقس) ثطای ٔظبَ ٘شیؼ‪A-B ٝ‬‬ ‫‪‬‬

‫ثطاثط (‪ 10‬ذ‪ٛ‬ا‪ٞ‬س قس‪.‬‬


‫ٍّٖٕط يطة ز‪ٔ ٚ‬مساض ضا زض ‪ ٓٞ‬يطة ٔی ٕ٘بیس ‪ٖ ٚ‬الٔز ایٗ ٍّٖٕط هی باضذ بزای هثال ًتیجِ ‪ A*B‬ثطاثط ثب ‪ 200‬ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪.‬‬ ‫‪‬‬

‫)‪ٔ (/‬ی ثبقس) ثطای ٔظبَ ٘شیؼ‪ B/A ٝ‬ثطاثط ‪2‬‬ ‫ٍّٖٕط سمؿیٓ‪ 5‬ایٗ ٍّٖٕط ٔمساض ا‪ َٚ‬ضا ثط ٔمساض ز‪ ْٚ‬سمؿیٓ ٔی و‪ٙ‬س) ٖالٔز ایٗ ٍّٖٕط اؾّف‬ ‫‪‬‬

‫ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز) ٘ىش‪ ٝ‬ای و‪ ٝ‬ثبیس ث‪ ٝ‬آٖ س‪ٛ‬ػ‪ ٝ‬زاقش‪ ٝ‬ثبقیس ایٗ اؾز و‪ٔ ٝ‬مساض ٔمؿ‪ّٖ ْٛ‬ی‪ ٝ‬زض وبٔذی‪ٛ‬سط ٘جبیس نفط ثبقس ‪.‬‬
‫ٍّٖٕط ثبلی ٔب٘س‪ 5ٜ‬ایٗ ٍّٖٕط ٔمساض ا‪ِٚ‬ی ضا ثط ٔمساض ز‪ ْٚ‬سمؿیٓ ٔی و‪ٙ‬س ‪ ٚ‬ثبلی ٔب٘س‪ ٜ‬ضا ثطٔی ٌطزا٘س) ٖالٔز ایٗ ٍّٖٕط زض ػب‪ٚ‬ا " ٔی ثبقس)‬ ‫‪‬‬

‫ثطای ٔظبَ ٘شیؼ‪ B%A ٝ‬ثطاثط ‪ 0‬ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪.‬‬


‫ٍّٖٕط افعایف‪ 5‬ایٗ ٍّٖٕط یه ٍّٖٕط سه ّٖٕ‪٘ٛ‬سی اؾز) ث‪ ٝ‬ایٗ ٔٗ‪ٙ‬ی و‪ ٝ‬فمٍ ثب یه ٖسز یب ٔمساض وبض ٔی و‪ٙ‬س) ‪ْٚ‬یف‪ ٝ‬ایٗ ٍّٖٕط ایٗ اؾز‬ ‫‪‬‬

‫و‪ ٝ‬ث‪ٔ ٝ‬مساض ٔ‪ٛ‬ػ‪ٛ‬ز یه ‪ٚ‬احس ايبف‪ٔ ٝ‬ی ٕ٘بیس) ٖالٔز ایٗ ٍّٖٕط && ٔی ثبقس) ثطای ٔظبَ ٘شیؼ‪ B++ ٝ‬ثطاثط ‪ 21‬ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪.‬‬
‫ٍّٖٕط وب‪ٞ‬ف‪ 5‬ایٗ ٍّٖٕط اظ ٔمساض لجّی یه ‪ٚ‬احس وٓ ٔی و‪ٙ‬س) ٖالٔز ایٗ ٍّٖٕط (( ٔی ثبقس) ثطای ٔظبَ ُٖٕ ‪ B--‬ثطاثط ‪ 19‬ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪.‬‬ ‫‪‬‬

‫ثطای زضن ث‪ٟ‬شط ٍّٖٕط‪ٞ‬بی ضیبيی ث‪ٔ ٝ‬ظبَ ‪ٞ‬بی ظیط زلز ٕ٘بییس ‪.‬‬

‫{ ‪public class Test‬‬

‫{ )][‪public static void main(String args‬‬


‫;‪int a = 10‬‬
‫;‪int b = 20‬‬
‫;‪int c = 25‬‬
‫;‪int d = 25‬‬
‫;) )‪System.out.println("a + b = " + (a + b‬‬
‫;) )‪System.out.println("a - b = " + (a - b‬‬
‫;) )‪System.out.println("a * b = " + (a * b‬‬
‫;) )‪System.out.println("b / a = " + (b / a‬‬
‫‪14‬‬
‫;) )‪System.out.println("b % a = " + (b % a‬‬
‫;) )‪System.out.println("c % a = " + (c % a‬‬
‫‪System.out.println("a++‬‬ ‫;) )‪= " + (a++‬‬
‫‪System.out.println("b--‬‬ ‫;) )‪= " + (a--‬‬

‫‪System.out.println("d++‬‬ ‫‪= " +‬‬ ‫;) )‪(d++‬‬


‫‪System.out.println("++d‬‬ ‫‪= " +‬‬ ‫;) )‪(++d‬‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪a +‬‬ ‫‪b‬‬ ‫=‬ ‫‪30‬‬


‫‪a -‬‬ ‫‪b‬‬ ‫=‬ ‫‪-10‬‬
‫* ‪a‬‬ ‫‪b‬‬ ‫=‬ ‫‪200‬‬
‫‪b /‬‬ ‫‪a‬‬ ‫=‬ ‫‪2‬‬
‫‪b %‬‬ ‫‪a‬‬ ‫=‬ ‫‪0‬‬
‫‪c %‬‬ ‫‪a‬‬ ‫=‬ ‫‪5‬‬
‫‪a++‬‬ ‫=‬ ‫‪10‬‬
‫‪b--‬‬ ‫=‬ ‫‪11‬‬
‫‪d++‬‬ ‫=‬ ‫‪25‬‬
‫‪++d‬‬ ‫=‬ ‫‪27‬‬

‫‪ٕٞ‬بُ٘‪ٛ‬ض و‪ ٝ‬زض قىُ زیس‪ٔ ٜ‬ی ق‪ٛ‬ز اٌط ٍّٖٕط افعایف یب وب‪ٞ‬ف لجُ یب ثٗس اظ ّٖٕ‪٘ٛ‬س لطاض ٌیطز ضفشبض ٔشفب‪ٚ‬سی اظ ذ‪ٛ‬ز ٘كبٖ ذ‪ٛ‬ا‪ٞ‬س زاز) ث‪ ٝ‬ایٗ قىُ و‪ٝ‬‬
‫اٌط ٍّٖٕط لجُ اظ ّٖٕ‪٘ٛ‬س لطاض ثٍیطز اثشسا ُٖٕ وب‪ٞ‬ف یب افعایف ن‪ٛ‬ضر ٌطفش‪ ٚ ٝ‬ؾذؽ ُٖٕ چبح قسٖ ا٘ؼبْ ٔی ق‪ٛ‬ز) ‪ِٚ‬ی اٌط ّٖٕ‪٘ٛ‬س ثٗس اظ ٍّٖٕط‬
‫لطاض ثٍیطز ٔب٘‪ٙ‬س ‪ d++‬اثشسا ُٖٕ چبح قسٖ ا٘ؼبْ ٔی ق‪ٛ‬ز ‪ ٚ‬ؾذؽ ُٖٕ افعایف یب وب‪ٞ‬ف ا٘ؼبْ ذ‪ٛ‬ا‪ٞ‬س قس ‪.‬‬

‫عولگزّای رابطِ ای‬

‫ٍّٖٕط‪ٞ‬بی ضاثُ‪ ٝ‬ای ٍّٖٕط‪ٞ‬بیی ‪ٞ‬ؿش‪ٙ‬س و‪ ٝ‬زض ٔ‪ٛ‬ضز ضاثُ‪ ٝ‬ز‪ٔ ٚ‬مساض ثب‪ ٓٞ‬سهٕیٓ ٌیطی ٔی و‪ٙٙ‬س) ٘شیؼ‪ ٝ‬سهٕیٓ ٌیطی ‪ٔ ٓٞ‬مساض زضؾز یب ٘بزضؾز‬
‫اؾز )‪(true/false‬ثطای ٔظبَ ‪ A‬ضا ثطاثط ثب ‪ B ٚ 10‬ضا ثطاثط ثب ‪ 20‬زض ٘ٓط ٔی ٌیطیٓ) زض ازأ‪ ٝ‬ث‪ ٝ‬ثطضؾی ٍّٖٕط‪ٞ‬بی ضاثُ‪ ٝ‬ای ٔی دطزاظیٓ‪:‬‬

‫ٍّٖٕط سؿب‪ٚ‬ی) ایٗ ٍّٖٕط ثطای ٔكرم وطزٖ سؿب‪ٚ‬ی ز‪ٔ ٚ‬مساض ث‪ ٝ‬وبض ٔی ض‪ٚ‬ز و‪ٖ ٝ‬الٔز آٖ ‪ٔ 66‬ی ثبقس ‪ٔ ٚ‬كرم ٔی و‪ٙ‬س و‪ ٝ‬ز‪ٔ ٚ‬مساض ثب‬ ‫‪‬‬

‫‪ٔ ٓٞ‬ؿب‪ٚ‬ی ‪ٞ‬ؿش‪ٙ‬س یب ذیط) ثطای ٔظبَ ٘شیؼ‪ A==B ٝ‬ثطاثط ثب ‪ false‬ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪.‬‬
‫‪ ٚ true‬اٌط ز‪ٔ ٚ‬مساض ثب ‪ٔ ٓٞ‬ربِف ثبق‪ٙ‬س‬ ‫ٍّٖٕط ٘بٔؿب‪ٚ‬ی‪ 5‬ایٗ ٍّٖٕط ث‪ ٝ‬ایٗ ٌ‪ٔ ُٕٖ ٝ٘ٛ‬ی و‪ٙ‬س و‪ ٝ‬اٌط ز‪ٔ ٚ‬مساض ثب ‪ٔ ٓٞ‬ؿب‪ٚ‬ی ثبق‪ٙ‬س ٔمساض‬ ‫‪‬‬

‫ٔمساض ‪true‬ثطٔی ٌطزا٘س) ٖالٔز ایٗ ٍّٖٕط زض ػب‪ٚ‬ا !‪ٔ 6‬ی ثبقس) ثطای ٔظبَ ٘شیؼ‪ A!=B ٝ‬ثطاثط ثب ‪ true‬ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪.‬‬
‫ٍّٖٕط ثعضٌشط‪ 5‬ایٗ ٍّٖٕط ٔكرم ٔی و‪ٙ‬س و‪ ٝ‬آیب ٔمساض ؾٕز چخ اظ ٔمساض ؾٕز ضاؾز ثعضٌشط اؾز یب ذیط) اٌط ٔمساض ؾٕز چخ ثعضٌشط‬ ‫‪‬‬

‫ث‪ٛ‬ز ػ‪ٛ‬اة ‪ ٚ true‬زض غیط ایٗ ن‪ٛ‬ضر چ‪ٛ‬اة ‪ٔ false‬ی ز‪ٞ‬س) ٖالٔز ایٗ ٍّٖٕط <ٔی ثبقس) ثطای ٔظبَ ٔمساض ‪٘ A>B‬شیؼ‪ ٝ‬غٍّ یب ‪ False‬زض دی‬
‫ذ‪ٛ‬ا‪ٞ‬س زاقز) زلز زاقش‪ ٝ‬ثبقیس و‪ ٝ‬اٌط ز‪ٔ ٚ‬مساض ٔؿب‪ٚ‬ی ‪ ٓٞ‬ثبق‪ٙ‬س ایٗ ٍّٖٕط ٔمساض غٍّ زض ثط ذ‪ٛ‬ا‪ٞ‬س زاقز ‪.‬‬
‫ٍّٖٕط و‪ٛ‬چىشط‪ 5‬ایٗ ٍّٖٕط ٔربِف ٍّٖٕط ثعضٌشط اؾز ‪ٔ ٚ‬كرم ٔی و‪ٙ‬س و‪ ٝ‬آیب ٔمساض ؾٕز چخ ٍّٖٕط اظ ٔمساض ؾٕز ضاؾز ٍّٖٕط‬ ‫‪‬‬

‫و‪ٛ‬چىشط اؾز یب ذیط) زض ن‪ٛ‬ضر و‪ٛ‬چىشط ث‪ٛ‬زٖ ػ‪ٛ‬اة ‪ٔ true‬ی ز‪ٞ‬س) ٖالٔز ایٗ ٍّٖٕط ث‪ ٝ‬قىُ >ٔی ثبقس) ثطای ٔظبَ ٔمساض ٖجبضر ‪A<B‬‬
‫ثطاثط ‪ true‬اؾز‪.‬‬
‫‪15‬‬
‫ٍّٖٕط ثعضٌشط ٔؿب‪ٚ‬ی ث‪ ٝ‬ایٗ قىُ اؾز و‪ ٝ‬اٌط ٔمساض ؾٕز چخ ثعضٌشط اظ ٔمساض ؾٕز ضاؾز ثبقس یب ثب ٔمساض ؾٕز ضاؾز ٔؿب‪ٚ‬ی ثبقس‬ ‫‪‬‬

‫ٔمساض ‪ true‬ثطٔی ٌطزا٘س) ٖالٔز ایٗ ٍّٖٕط ث‪ ٝ‬قىُ =>ثطای ٔظبَ ػ‪ٛ‬اة ‪ A>=B‬ثطاثط ‪ false‬ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪.‬‬
‫ٍّٖٕط و‪ٛ‬چىشطٔؿب‪ٚ‬ی‪ 5‬ایٗ ٍّٖٕط ٔكرم ٔی و‪ٙ‬س و‪ّٕٖ٘ٛ ٝ‬س ؾٕز چخ اظ ّٖٕ‪٘ٛ‬س ؾٕز ضاؾز و‪ٛ‬چىشط اؾز یب ‪ٞ‬طز‪ّٕٖ٘ٛ ٚ‬س ثب ‪ٓٞ‬‬ ‫‪‬‬

‫ٔؿب‪ٚ‬ی ‪ٞ‬ؿش‪ٙ‬س) ٖالٔز ایٗ ٍّٖٕط ث‪ ٝ‬قىُ =<ٔی ثبقس ثطای ٔظبَ ٘شیؼ‪ٖ ٝ‬جبضر ‪ A<=B‬ثطاثط ‪ true‬اؾز‪.‬‬

‫ٔظبَ ظیط وبضثطز ایٗ ٍّٖٕط ‪ٞ‬ب ‪٘ ٚ‬ح‪ ٜٛ‬اؾشفبز‪ ٜ‬اظ آ٘‪ٟ‬ب زض ػب‪ٚ‬ا ضا ٘كبٖ ٔی ز‪ٞ‬س ‪.‬‬

‫{ ‪public class Test‬‬


‫{ )][‪public static void main(String args‬‬
‫;‪int a = 10‬‬
‫;‪int b = 20‬‬
‫;) )‪System.out.println("a == b = " + (a == b‬‬
‫;) )‪System.out.println("a != b = " + (a != b‬‬
‫;) )‪System.out.println("a > b = " + (a > b‬‬
‫;) )‪System.out.println("a < b = " + (a < b‬‬
‫;) )‪System.out.println("b >= a = " + (b >= a‬‬
‫;) )‪System.out.println("b <= a = " + (b <= a‬‬
‫}‬
‫}‬

‫٘شیؼ‪ ٝ‬اػطای ذُ‪ ٌٛ‬ثبال ث‪ ٝ‬قطح ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪.‬‬

‫‪a‬‬ ‫‪== b = false‬‬


‫‪a‬‬ ‫‪!= b = true‬‬
‫‪a‬‬ ‫‪> b = false‬‬
‫‪a‬‬ ‫‪< b = true‬‬
‫‪b‬‬ ‫‪>= a = true‬‬
‫‪b‬‬ ‫‪<= a = false‬‬

‫عولگزّای بیتی‬

‫‪ int, long, short, char, byte‬لبثُ اٖٕبَ اؾز) ٍّٖٕط‪ٞ‬بی ثیشی ثط ض‪ٚ‬ی‬ ‫ػب‪ٚ‬ا زاضای چ‪ٙ‬سیٗ ٍّٖٕط ثیشی اؾز و‪ ٝ‬ایٗ ٍّٖٕط‪ٞ‬ب ثط ض‪ٚ‬ی ا٘‪ٛ‬أ زاز‪ٜ‬‬
‫سه سه ثیش‪ٟ‬بی ّٖٕ‪٘ٛ‬س ‪ٞ‬ب وبض ٔی و‪ٙٙ‬س) ثطای ٔظبَ زض ٔشغیط ‪ٔ a‬مساض ‪ 60‬ضا لطاض ٔی ز‪ٞ‬یٓ ‪ ٚ‬زض ٔشغیط ‪ٖ b‬سز ‪ 13‬ضا لطاض ٔی ز‪ٞ‬یٓ) حبَ قىُ ثبی‪ٙ‬طی ایٗ ز‪ٚ‬‬
‫ٔشغیط ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‬

‫‪a=00111100‬‬
‫‪b=00001101‬‬

‫زض ازأ‪ ٝ‬ث‪ ٝ‬ثطضؾی ایٗ ٍّٖٕط‪ٞ‬ب ٔی دطزاظیٓ‪.‬‬

‫‪16‬‬
‫‪ٔ and‬ی و‪ٙ‬س ‪ٔ ٚ‬مساض ضا ٔكرم ٔی ٕ٘بیس ثطای ٔظبَ ٘شیؼ‪and ٝ‬‬ ‫ٍّٖٕط ‪ and‬ثیشی )&( ایٗ ٍّٖٕط ثیز ‪ٞ‬بی ز‪ّٕٖ٘ٛ ٚ‬س ضا ز‪ ٚ‬ث‪ ٝ‬ز‪ ٚ‬ثب ‪ٓٞ‬‬ ‫‪‬‬

‫ثیشی‪a&b‬ثطاثط ‪ 12‬ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز و‪ٔ ٝ‬مساض ثبی‪ٙ‬طی آٖ ‪ٔ 00001100‬ی ثبقس‪.‬‬


‫‪ٔ or‬ی ٕ٘بیس) ثطای ٔظبَ ٘شیؼ‪a|b ُٕٖ ٝ‬ثطاثط ٔمساض ‪ 61‬یٗ‪ٙ‬ی ٖسز ثبی‪ٙ‬طی‬ ‫ٍّٖٕط ‪ or‬ثیشی ایٗ ٍّٖٕط ثیز ‪ٞ‬بی ز‪ّٕٖ٘ٛ ٚ‬س ضا ز‪ ٚ‬ث‪ ٝ‬ز‪ ٚ‬ثب ‪ٓٞ‬‬ ‫‪‬‬

‫‪ 00111101‬ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪.‬‬
‫ٍّٖٕط‪xor‬ثیشی ‪ #^$‬ایٗ ٍّٖٕط ثیز ‪ٞ‬بی ز‪ٖ ٚ‬سز ضا ثب ‪ٔxor ٓٞ‬ی ٕ٘بیس) یٗ‪ٙ‬ی اٌط یىی اظ ٔمبزیط ٔمساض یه ‪ ٚ‬زیٍطی ٔمساض ‪ 0‬زاقش‪ ٝ‬ثبقس ػ‪ٛ‬اة‬ ‫‪‬‬

‫‪ ٚ 1‬اٌط ‪ٞ‬طز‪ ٚ‬یىؿبٖ ثبق‪ٙ‬س ػ‪ٛ‬اة ‪ٔ 0‬ی ز‪ٞ‬س) ثطای ٔظبَ ٘شیؼ‪a^bُٕٖ ٝ‬ثطاثط ‪ 49‬و‪ٗٔ ٝ‬بزَ ثبی‪ٙ‬طی آٖ ‪ٔ 00110001‬ی ثبقس اؾز‪.‬‬
‫ٍّٖٕط ٔىُٕ ثیشی‪ #~$‬ایٗ ٍّٖٕط یه ٍّٖٕط سه ّٖٕ‪٘ٛ‬سی اؾز و‪ ٝ‬ثیز ‪ٞ‬بی ّٖٕ‪٘ٛ‬س ذ‪ٛ‬ز ضا ثطٖىؽ ٔی و‪ٙ‬س یٗ‪ٙ‬ی اٌط ثیز ٔ‪ٛ‬ضز ٘ٓط ‪ 1‬ثبقس‬ ‫‪‬‬

‫آٖ ضا ‪ ٚ 0‬اٌط ‪ 0‬ثبقس آٖ ضا ‪ٔ 1‬ی و‪ٙ‬س) ثطای ٔظبَ ‪ ~a‬ثطاثط (‪ 61‬ثب ٖسز ثبی‪ٙ‬طی ‪ 11000011‬اؾز‪.‬‬
‫ّٖٕ‪٘ٛ‬س قیفز ث‪ ٝ‬چخ )>>( ایٗ ّٖٕ‪٘ٛ‬س ٔمساض ٖسز ضا ث‪ ٝ‬سٗساز ٌفش‪ ٝ‬قس‪ ٜ‬ث‪ ٝ‬ؾٕز چخ قیفز ثیشی ٔی ز‪ٞ‬س) ثطای ٔظبَ اٌط ثر‪ٛ‬ا‪ٞ‬یٓ ‪ a‬ضا ز‪ ٚ‬ثبض‬ ‫‪‬‬

‫ث‪ ٝ‬ؾٕز چخ قیفز ثس‪ٞ‬یٓ ثبیس ث‪ ٝ‬ایٗ قىُ ث‪ٛٙ‬یؿیٓ ‪.a<<2‬زض ایٗ ن‪ٛ‬ضر ٘شیؼ‪ ٝ‬ثطاثط ‪ 240‬ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز ظیطا و‪ٗٔ ٝ‬بزَ ثبی‪ٙ‬طی آٖ ‪11110000‬‬
‫ٔی ثبقس‪.‬‬
‫ٍّٖٕط قیفز ث‪ ٝ‬ضاؾز )>>(ایٗ ٍّٖٕط ٔمساض ٖسز ضا ث‪ ٝ‬سٗساز ٌفش‪ ٝ‬قس‪ ٜ‬ث‪ ٝ‬ضاؾز قیفز ٔی ز‪ٞ‬س) ثطای ٔظبَ ٘شیؼ‪ a>>2 ُٕٖ ٝ‬ثطاثط ٔمساض ‪15‬‬ ‫‪‬‬

‫ثب ٖسز ثبی‪ٙ‬طی ‪ 1111‬ذ‪ٛ‬ا‪ٞ‬س قس‪.‬‬


‫ٍّٖٕط قیفز ث‪ ٝ‬ضاؾز ثب ‪ٚ‬ض‪ٚ‬ز ‪ٍّٕٖ 5 0‬ط‪ٞ‬بی قیفز ث‪ ٝ‬ضاؾز ‪ ٚ‬قیفز ث‪ ٝ‬چخ و‪ٌ ٝ‬فش‪ ٝ‬قس‪ٔ ٜ‬مساض ٖسز ذبضع قس‪ ٜ‬ضا ث‪ٖٛٙ ٝ‬اٖ ٔمساض ‪ٚ‬ض‪ٚ‬زی‬ ‫‪‬‬

‫قیفز ‪ٚ‬اضز ٔی وطز٘س ‪ِٚ‬ی ٍّٖٕط قیفز ث‪ ٝ‬ضاؾز ثب ‪ٚ‬ض‪ٚ‬زی ‪ٖ 0‬سز ضا ث‪ ٝ‬ؾٕز ضاؾز قیفز ٔی ز‪ٞ‬س ‪ٔ ٚ‬مساض نفط ضا اظ ؾٕز چخ ث‪ ٝ‬آٖ‬
‫‪ٚ‬اضز ٔی ٕ٘بیس) ثطای ٔظبَ ٘شیؼ‪ٖ a>>>2 ُٕٖ ٝ‬سز ‪ٔ 15‬ی ثبقس‪.‬‬

‫ثطای زضن ث‪ٟ‬شط ٍّٖٕط‪ٞ‬بی ثیشی ث‪ ٝ‬وس ظیط زلز و‪ٙ‬یس ‪.‬‬

‫{ ‪public class Test‬‬

‫‪public‬‬ ‫{ )][‪static void main(String args‬‬


‫‪int‬‬ ‫;‪a = 60‬‬ ‫‪/* 60 = 0011 1100 */‬‬
‫‪int‬‬ ‫;‪b = 13‬‬ ‫‪/* 13 = 0000 1101 */‬‬
‫‪int‬‬ ‫;‪c = 0‬‬

‫;‪c = a &b‬‬ ‫‪/* 12 = 0000 1100 */‬‬


‫;) ‪System.out.println("a & b = " + c‬‬

‫;‪c = a | b‬‬ ‫‪/* 61 = 0011 1101 */‬‬


‫;) ‪System.out.println("a | b = " + c‬‬

‫;‪c = a ^ b‬‬ ‫‪/* 49 = 0011 0001 */‬‬


‫;) ‪System.out.println("a ^ b = " + c‬‬

‫;‪c = ~a‬‬ ‫‪/*-61 = 1100 0011 */‬‬


‫;) ‪System.out.println("~a = " + c‬‬

‫;‪c = a <<2‬‬ ‫‪/* 240 = 1111 0000 */‬‬


‫;) ‪System.out.println("a << 2 = " + c‬‬

‫;‪c = a >>2‬‬ ‫‪/* 215 = 1111 */‬‬


‫;) ‪System.out.println("a >>2 = " + c‬‬

‫‪17‬‬
‫;‪c = a >>>2‬‬ ‫‪/* 215 = 0000 1111 */‬‬
‫;) ‪System.out.println("a >>> 2 = " + c‬‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی ثط٘بٔ‪ ٝ‬ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‬

‫‪a & b = 12‬‬


‫‪a | b = 61‬‬
‫‪a ^ b = 49‬‬
‫‪~a = -61‬‬
‫‪a << 2 = 240‬‬
‫‪a >> 2=15‬‬
‫‪a >>> 2=15‬‬

‫عولگزّای هٌطقی‬

‫ٍّٖٕط‪ٞ‬بی ٔ‪ُٙ‬می ثط ض‪ٚ‬ی زاز‪ٞ ٜ‬بی اظ ٘‪ ٚboolean ٔٛ‬یب ٖجبضاسی و‪٘ ٝ‬شیؼ‪boolean ٝ‬یٗ‪ٙ‬ی ٔمساض زضؾز یب غٍّ زاض٘س ُٖٕ ٔی و‪ٙٙ‬س) زض ازأ‪ ٝ‬ث‪ ٝ‬قطح ایٗ‬
‫ّٖٕ‪٘ٛ‬س ‪ٞ‬ب ٔی دطزاظیٓ) ثطای ٔظبَ فطو و‪ٙ‬یس و‪ ٝ‬ز‪ٔ ٚ‬شغیط ‪ a, b‬زاضیٓ و‪ٔ ٝ‬مساض ‪ a‬ثطاثط ‪ٔ ٚ true‬مساض ‪ b‬ثطاثط ‪ٔ false‬ی ثبقس‪.‬‬

‫‪ٍّٕٖ ),‬ط ‪ُٙٔ and‬می )&&( ایٗ ٍّٖٕط زض ن‪ٛ‬ضسی ػ‪ٛ‬اة ‪ true‬ثطٔی ٌطزا٘س و‪ٞ ٝ‬طز‪ّٕٖ٘ٛ ٚ‬س چخ ‪ ٚ‬ضاؾز آٖ ‪ true‬یب غیطنفط ثبق‪ٙ‬س) ثطای ٔظبَ‬
‫٘شیؼ‪ٔ a&&b ُٕٖ ٝ‬مساض ‪ false‬اؾز‪.‬‬
‫‪ٍّٕٖ )-‬ط ‪ُٙٔ or‬می ایٗ ٍّٖٕط زض ن‪ٛ‬ضسی ٘شیؼ‪ٔ true ٝ‬ی ز‪ٞ‬س و‪ ٝ‬یىی اظ ّٖٕ‪٘ٛ‬س ‪ٞ‬ب ‪ true‬یب غیط نفط ثبقس) ثطای ٔظبَ ٘شیؼ‪ٔ a||b ُٕٖ ٝ‬مساض‬
‫‪true‬اؾز‪.‬‬
‫‪ ٚ False‬زض غیط ایٗ ن‪ٛ‬ضر‬ ‫‪ٍّٕٖ ).‬ط ٘میى ٔ‪ُٙ‬می‪ #!$‬ایٗ ٍّٖٕط یه ٍّٖٕط سه ّٖٕ‪٘ٛ‬سی اؾز) اٌط ّٖٕ‪٘ٛ‬س ایٗ ٍّٖٕط زضؾز ثبقس ٔمساض‬
‫ٔمساض ‪ true‬ثطٔی ٌطزا٘س) ثطای ٔظبَ حبنُ ٖجبضر )‪ٔ !(a&&b‬مساض ‪ٔ true‬ی ثبقس‪.‬‬

‫ثطای ٔظبَ ث‪ ٝ‬وس ظیط زلز ٕ٘بییس‪.‬‬

‫{ ‪public class Test‬‬

‫{ )][‪public static void main(String args‬‬


‫;‪boolean a = true‬‬
‫;‪boolean b = false‬‬
‫;))‪System.out.println("a && b = " + (a&&b‬‬
‫;) )‪System.out.println("a || b = " + (a||b‬‬

‫;))‪System.out.println("!(a && b) = " + !(a && b‬‬


‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ث‪ ٝ‬قىُ ظیط اؾز‬

‫‪18‬‬
‫‪a && b = false‬‬
‫‪a || b = true‬‬
‫‪!(a && b) = true‬‬

‫عولگزّای اًتسابی‬

‫ٍّٖٕط‪ٞ‬بی ا٘شؿبثی و‪ ٝ‬س‪ٛ‬ؾٍ ػب‪ٚ‬ا دكشیجب٘ی ٔی ق‪٘ٛ‬س ٖجبضس‪ٙ‬س اظ ‪:‬‬

‫ٍّٖٕط ا٘شؿبة‪ #6$‬ایٗ ٍّٖٕط ٔمساض ؾٕز ضاؾز ٍّٖٕط ضا زض ّٖٕ‪٘ٛ‬س ؾٕز چخ ٔی ضیعز) ثطای ٔظبَ ‪ٔ C=A+B‬مساض ‪ C‬ثطاثط ثب ػٕٕ ‪B ٚ A‬‬ ‫‪‬‬

‫ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪.‬‬
‫ٍّٖٕط ػٕٕ ‪ ٚ‬ا٘شؿبة‪ #6&$‬ایٗ ٍّٖٕط ث‪ ٝ‬ایٗ قىُ ُٖٕ ٔی و‪ٙ‬س و‪ ٝ‬اثشسا ّٖٕ‪٘ٛ‬س ؾٕز ضاؾز ضا ثب ّٖٕ‪٘ٛ‬س ؾٕز چخ ػٕٕ ٕ٘‪ٛ‬ز‪ ٚ ٜ‬زض‬ ‫‪‬‬

‫ّٖٕ‪٘ٛ‬س ؾٕز چخ شذیط‪ٔ ٜ‬ی ٕ٘بیس) ثطای ٔظبَ ‪ٗٔ C+=A‬بزَ ‪ٔ C=C+A‬ی ثبقس‪.‬‬
‫ٍّٖٕط سفطیك ‪ ٚ‬ا٘شؿبة‪ٔ #6($‬ب٘‪ٙ‬س ‪ٕٞ‬بٖ ٍّٖٕط ػٕٕ ‪ ٚ‬ا٘شؿبة ُٖٕ ٔی و‪ٙ‬س ثب ایٗ سفب‪ٚ‬ر و‪ّٕٖ٘ٛ ٝ‬س ؾٕز ضاؾز ضا اظ ّٖٕ‪٘ٛ‬س ؾٕز چخ وٓ‬ ‫‪‬‬

‫وطز‪ ٚ ٜ‬شذیط‪ٔ ٜ‬ی و‪ٙ‬س) ثطای ٔظبَ ُٖٕ ‪ٗٔ C-=A‬بزَ ‪ٔ C=C-A‬ی ثبقس‪.‬‬
‫ٍّٖٕط يطة ‪ ٚ‬ا٘شؿبة‪ٍّٕٖ ٚ #6%$‬ط ‪ٍّٕٖ ٚ #6*$‬ط ‪ٗٔ #6"$‬بزَ اٖٕبَ لجّی ‪ٞ‬ؿش‪ٙ‬س ‪.‬‬ ‫‪‬‬

‫ٍّٖٕط ‪ٞ‬بی =>>‪٘ 6| ٚ 6^ ٚ&= ٚ<<= ٚ‬یع اٖٕبَ ثیشی ٌفش‪ ٝ‬قس‪ ٜ‬ضا ث‪ ٝ‬إً٘بْ ا٘شؿبة ا٘ؼبْ ٔی ز‪ٙٞ‬س‪.‬‬ ‫‪‬‬

‫ثطای ٔظبَ ‪ ٚ‬زضن ث‪ٟ‬شط ٍّٖٕط‪ٞ‬بی ا٘شؿبة ث‪ٔ ٝ‬ظبَ ظیط زلز ٕ٘بییس ‪.‬‬

‫{ ‪public class Test‬‬

‫‪public‬‬ ‫{ )][‪static void main(String args‬‬


‫‪int‬‬ ‫;‪a = 10‬‬
‫‪int‬‬ ‫;‪b = 20‬‬
‫‪int‬‬ ‫;‪c = 0‬‬

‫;‪c = a + b‬‬
‫;) ‪System.out.println("c = a + b = " + c‬‬

‫; ‪c += a‬‬
‫‪System.out.println("c += a‬‬ ‫;) ‪= " + c‬‬

‫; ‪c -= a‬‬
‫;) ‪System.out.println("c -= a = " + c‬‬

‫; ‪c *= a‬‬
‫;) ‪System.out.println("c *= a = " + c‬‬

‫;‪a = 10‬‬
‫;‪c = 15‬‬
‫; ‪c /= a‬‬
‫;) ‪System.out.println("c /= a = " + c‬‬

‫;‪a = 10‬‬
‫;‪c = 15‬‬
‫‪19‬‬
‫; ‪c %= a‬‬
‫‪System.out.println("c %= a‬‬ ‫;) ‪= " + c‬‬

‫; ‪c <<= 2‬‬
‫;) ‪System.out.println("c <<= 2 = " + c‬‬

‫; ‪c >>= 2‬‬
‫;) ‪System.out.println("c >>= 2 = " + c‬‬

‫; ‪c >>= 2‬‬
‫;) ‪System.out.println("c >>= a = " + c‬‬

‫; ‪c &= a‬‬
‫‪System.out.println("c &= 2‬‬ ‫;) ‪= " + c‬‬

‫; ‪c ^= a‬‬
‫‪System.out.println("c ^= a‬‬ ‫;) ‪= " + c‬‬

‫; ‪c |= a‬‬
‫‪System.out.println("c |= a‬‬ ‫;) ‪= " + c‬‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ثبال ث‪ ٝ‬قىُ ظیط اؾز‪:‬‬

‫‪c‬‬ ‫‪= a + b = 30‬‬


‫‪c‬‬ ‫‪+= a = 40‬‬
‫‪c‬‬ ‫‪-= a = 30‬‬
‫‪c‬‬ ‫‪*= a = 300‬‬
‫‪c‬‬ ‫‪/= a = 1‬‬
‫‪c‬‬ ‫‪%= a = 5‬‬
‫‪c‬‬ ‫‪<<= 2 = 20‬‬
‫‪c‬‬ ‫‪>>= 2 = 5‬‬
‫‪c‬‬ ‫‪>>= 2 = 1‬‬
‫‪c‬‬ ‫‪&= a = 0‬‬
‫‪c‬‬ ‫‪^= a‬‬ ‫‪= 10‬‬
‫‪c‬‬ ‫‪|= a‬‬ ‫‪= 10‬‬

‫عولگزّای هتفزقِ‬

‫ٍّٖٕط‪ٞ‬بی زیٍطی ٘یع زض ػب‪ٚ‬ا ‪ٚ‬ػ‪ٛ‬ز زاض٘س و‪ ٝ‬زض ازأ‪ ٝ‬آٔس‪ ٜ‬ا٘س) ایٗ ٍّٖٕط‪ٞ‬ب زض ٌط‪ٞ ٜٚ‬بی ثبال لطاض ٔی ٌیط٘س ‪.‬‬

‫ٍّٖٕط قطَی ‪ )#5 ? $‬ایٗ ٍّٖٕط و‪ ٝ‬ث‪ٖٛٙ ٝ‬اٖ ٍّٖٕط ؾ‪ٌ ٝ‬ب٘‪٘ ٝ‬یع ق‪ٙ‬بذش‪ٔ ٝ‬ی ق‪ٛ‬ز ثطای اضظیبثی یه ٔمساض ‪boolean‬ث‪ ٝ‬وبض ٔی ض‪ٚ‬ز) ایٗ ٍّٖٕط ث‪ٝ‬‬ ‫‪‬‬

‫ایٗ ٔ‪ٛٓٙ‬ض ث‪ ٝ‬وبض ٔی ض‪ٚ‬ز و‪ٔ ٝ‬كرم و‪ٙ‬س و‪ ٝ‬وساْ ٔمساض زض ّٖٕ‪٘ٛ‬س ؾٕز چخ ا٘شؿبة لطاض ٌیطز) اٌط قطٌ ٍّٖٕط زضؾز ثبقس ٔمساضی و‪ٝ‬‬
‫دكز ٖالٔز ؾ‪ٛ‬اَ ؟ لطاض ٔی ٌیطز ا٘شربة ٔی ق‪ٛ‬ز ‪ ٚ‬زض غیط ایٗ ن‪ٛ‬ضر ٔمساض ٔ‪ٛ‬ػ‪ٛ‬ز ثٗس اظ ٖالٔز ز‪٘ ٚ‬مُ‪ 5 ٝ‬ا٘شربة ذ‪ٛ‬ا‪ٞ‬س قس) ثطای ٔظبَ‬
‫ث‪ ٝ‬وس ظیط زلز و‪ٙ‬یس‪.‬‬

‫‪20‬‬
public class Test {

public static void main(String args[]){


int a, b;
a = 10;
b = (a == 1) ? 20: 30;
System.out.println( "Value of b is : " + b );

b = (a == 10) ? 20: 30;


System.out.println( "Value of b is : " + b );
}
}

‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی ایٗ وس ث‬ٚ‫ذط‬

Value of b is : 30
Value of b is : 20

.‫ لطاض ٔی ٌیطز‬ٜ‫ضز اؾشفبز‬ٛٔ ‫بی ضاحز‬ٞ if else ‫ ػبی‬ٝ‫ ث‬ٚ ‫ایٗ ٍّٖٕط یه ٍّٖٕط سهٕیٓ ٌیطی اؾز‬

‫شطفیؽ ٔكرم‬ٙ‫ اظ والؼ یب ای‬ٕٝ٘ٛ٘ ‫ضز ٘ٓط یه‬ٛٔ ‫ آیب قی‬ٝ‫س و‬ٙ‫ز) ایٗ ٍّٖٕط چه ٔی و‬ٚ‫ وبض ٔی ض‬ٝ‫ایٗ ٍّٖٕط ثطای اقیب ث‬instanceof‫ٍّٖٕط‬ 

‫ز) ثطای‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ ذ‬false ٝ‫ضر ٘شیؼ‬ٛ‫ زض غیط ایٗ ن‬ٚ true ٝ‫ضز ٘ٓط ثبقس ٘شیؼ‬ٛٔ ‫شطفیؽ‬ٙ‫ٔ والؼ یب ای‬ٛ٘ ‫ اظ‬ٜ‫ قس‬ٝ‫ اؾز یب ذیط) اٌط قی ٌفش‬ٜ‫قس‬
.‫یس‬ٙ‫ وس ظیط زلز و‬ٝ‫ٔظبَ ث‬

public class Test {

public static void main(String args[]){


String name = "James";
// following will return true since name is type of String
boolean result = name instanceof String;
System.out.println( result );
}
}

‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قطح ظیط ذ‬ٝ‫ وس ثبال ث‬ٝ‫٘شیؼ‬

true

.‫یس‬ٙ‫ ٔظبَ ظیط ٘یع زلز و‬ٝ‫ث‬

class Vehicle {}

public class Car extends Vehicle {


public static void main(String args[]){
Vehicle a = new Car();
boolean result = ainstanceof Car;
System.out.println( result );
}
21
‫}‬

‫ذط‪ٚ‬ػی وس ثبال ‪ٔ true ٓٞ‬ی ثبقس‪.‬‬

‫تقذم عولگزّا‬

‫٘ىش‪ ٝ‬ای و‪ ٝ‬ثبلی ٔی ٔب٘س ایٗ اؾز و‪ ٝ‬ثسا٘یٓ وساْ یه اظ ٔشغیط ‪ٞ‬ب ٘ؿجز ث‪ ٝ‬لجّی زاضای سمسْ ثیكشطی زض اػطا ٔی ثبقس) سمسْ ٍّٖٕط‪ٞ‬ب ثطای اضظیبثی‬
‫ٔشغیط‪ٞ‬ب ثؿیبض ٔ‪ ٟٓ‬اؾز) سمسْ ثطذی ٔشغیط‪ٞ‬ب ٘ؿجز ث‪ ٝ‬ثطذی زیٍط ثبالسط اؾز) ثطای ٔظبَ ٍّٖٕط يطة زاضای سمسْ ثیكشطی ٘ؿجز ث‪ ٝ‬ػٕٕ ‪ ٚ‬سفطیك اؾز)‬
‫ثطای ٔظبَ ‪ x=7+3*2‬اثشسا ُٖٕ يطة ا٘ؼبْ ٔی ق‪٘ٛ‬س ‪ ٚ‬ؾذؽ ُٖٕ ػٕٕ ا٘ؼبْ ٔی ق‪ٛ‬ز و‪٘ ٝ‬شیؼ‪ٖ ُٕٖ ٝ‬سز ‪ 13‬ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز) زض قىُ ظیط سمسْ ٍّٖٕط‪ٞ‬ب‬
‫اظ ثبال ث‪ ٝ‬دبییٗ ٘كبٖ زاز‪ ٜ‬قس‪ ٜ‬اؾز‪.‬‬

‫‪22‬‬
‫حّم‪ٞ ٝ‬بی سىطاض‬

‫وس‪ٞ‬ب زض ظثب٘‪ٟ‬بی ثط٘بٔ‪ٛ٘ ٝ‬یؿی ٔب٘‪ٙ‬س ػب‪ٚ‬ا ث‪ ٝ‬سطسیت ‪ ٚ‬ذُی اػطا ٔی ق‪٘ٛ‬س) ث‪ ٝ‬ایٗ ٔٗ‪ٙ‬ی و‪ ٝ‬اظ ٔشس ‪ main‬قط‪ ٔٚ‬قس‪ ٚ ٜ‬ذٍ ث‪ ٝ‬ذٍ اػطا ٔی ق‪٘ٛ‬س) حبَ‬
‫ٕٔىٗ اؾز و‪ ٝ‬حبالسی دیف ثیبیس و‪ ٝ‬ثر‪ٛ‬ا‪ٞ‬یٓ یه لؿٕز اظ وس چ‪ٙ‬س ثبض اػطا ق‪ٛ‬ز) ظثبٖ ‪ٞ‬بی ثط٘بٔ‪ٛ٘ ٝ‬یؿی ضا‪ٞ ٜ‬بی ٔرشّفی فطا‪ ٓٞ‬وطز‪ ٜ‬ا٘س و‪ ٝ‬ایٗ ٘‪ٔٛ‬‬
‫اػطا ذُی ضا سغییط ز‪ٞ‬س) یىی اظ ایٗ ضا‪ٞ ٜ‬ب حّم‪ٞ ٝ‬بی سىطاض )‪ٞ(loop‬ؿش‪ٙ‬س) حّم‪ٞ ٝ‬ب ٔی س‪ٛ‬ا٘‪ٙ‬س و‪ ٝ‬یه ؾطی زؾش‪ٛ‬ضار ضا چ‪ٙ‬سیٗ ثبض اػطا و‪ٙٙ‬س )‬

‫ظثبٖ ثط٘بٔ‪ٛ٘ ٝ‬یؿی ػب‪ٚ‬ا حّم‪ٞ ٝ‬بی ٔشفب‪ٚ‬سی ثطای اؾشفبز‪ ٜ‬زاضز و‪ٞ ٝ‬طوساْ ٔی س‪ٛ‬ا٘س زض قطایٍ ٔطث‪ ٌٛ‬ث‪ ٝ‬ذ‪ٛ‬ز ٔفیس ‪ ٚ‬وبضثطزی ثبقس و‪ٖ ٝ‬جبضس‪ٙ‬س اظ ‪:‬‬

‫حلقِ‪while‬‬

‫حّم‪ while ٝ‬زض ظثبٖ ػب‪ٚ‬ا سب ‪ٚ‬لشی و‪ ٝ‬قطَف زضؾز ثبقس یه لؿٕز اظ وس ضا اػطا ٔی و‪ٙ‬س ‪ٚ ٚ‬لشی و‪ ٝ‬قطٌ آٖ ‪ false‬قس اظ اػطا ثبظ ٔی ایؿشس) ٘ح‪ٜٛ‬‬
‫٘‪ٛ‬قشٗ وس ایٗ حّم‪ ٝ‬ث‪ ٝ‬قىُ ظیط اؾز‪:‬‬

‫)ٖجبضر قطَی(‪while‬‬
‫{‬
‫زؾش‪ٛ‬ضار حّم‪ ٝ‬و‪ ٝ‬ثبیس سىطاض ق‪٘ٛ‬س‪//‬‬
‫}‬

‫زؾش‪ٛ‬ضار زاذُ حّم‪ٔ ٝ‬ی س‪ٛ‬ا٘س یه ذٍ زؾش‪ٛ‬ض ثبق‪ٙ‬س یب یه ثّ‪ٛ‬ن وس ثبق‪ٙ‬س) ٖجبضر قطَی ٕٔىٗ اؾز و‪ ٝ‬یه ٔشغیط ثبقس ‪ ٚ‬یب چ‪ٙ‬سیٗ ٖجبضر قطَی‬
‫ثبقس ‪ ٚ‬یب ٔمبزیط ‪ ٚ true‬یب ‪ false‬ثبقس ‪ ٚ‬ث‪َٛ ٝ‬ض وّی ‪ٞ‬طچیعی و‪ٔ ٝ‬مساض ‪ true‬یب ‪ false‬ثطٔی ٌطزا٘س ٔی س‪ٛ‬ا٘س ثبقس) ‪ٍٙٞ‬بٔی و‪٘ ٝ‬شیؼ‪ٖ ٝ‬جبضر قطَی‬
‫‪while‬زضؾز ثبقس وس زاذُ حّم‪ ٝ‬اػطا ذ‪ٛ‬ا‪ٞ‬س قس ‪ ٚ‬اٌط ‪ false‬ثبقس اػطا ٕ٘ی ق‪ٛ‬ز)‬

‫٘ىش‪ ٝ‬ای و‪ٚ ٝ‬ػ‪ٛ‬ز زاضز ایٗ اؾز و‪ٕٔ ٝ‬ىٗ اؾز و‪ ٝ‬یه حّم‪ while ٝ‬انال اػطا ٘ك‪ٛ‬ز) ایٗ زض حبِی اؾز و‪ ٝ‬قطٌ حّم‪ٕٞ ٝ‬بٖ ا‪ َٚ‬وبض ‪ false‬ثبقس زضایٗ‬
‫حبِز ثس٘‪ ٝ‬حّم‪ ٝ‬انال اػطا ٘ر‪ٛ‬ا‪ٞ‬س قس ‪ ٚ‬ث‪ ٝ‬وُ ٘بزیس‪ٌ ٜ‬طفش‪ٔ ٝ‬ی ق‪ٛ‬ز) ثطای ٔظبَ ث‪ ٝ‬وس ظیط س‪ٛ‬ػ‪ ٝ‬و‪ٙ‬یس ‪:‬‬

‫{ ‪public class Test‬‬


‫{ )][‪public static void main(String args‬‬
‫;‪int x = 10‬‬

‫{ ) ‪while( x< 20‬‬


‫;) ‪System.out.print("value of x : " + x‬‬
‫;‪x++‬‬
‫;)"‪System.out.print("\n‬‬
‫;)"‪System.out.print("ITPRO\n‬‬
‫}‬
‫}‬
‫}‬

‫‪٘ ٚ‬شیؼ‪ ٝ‬اػطای آٖ ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪23‬‬
‫‪value‬‬ ‫‪of x : 10‬‬
‫‪ITPRO‬‬
‫‪value‬‬ ‫‪of x : 11‬‬
‫‪ITPRO‬‬
‫‪value‬‬ ‫‪of x : 12‬‬
‫‪ITPRO‬‬
‫‪value‬‬ ‫‪of x : 13‬‬
‫‪ITPRO‬‬
‫‪value‬‬ ‫‪of x : 14‬‬
‫‪ITPRO‬‬
‫‪value‬‬ ‫‪of x : 15‬‬
‫‪ITPRO‬‬
‫‪value‬‬ ‫‪of x : 16‬‬
‫‪ITPRO‬‬
‫‪value‬‬ ‫‪of x : 17‬‬
‫‪ITPRO‬‬
‫‪value‬‬ ‫‪of x : 18‬‬
‫‪ITPRO‬‬
‫‪value‬‬ ‫‪of x : 19‬‬
‫‪ITPRO‬‬

‫حلقِ‪for‬‬

‫اٌط قٕب ٔی ذ‪ٛ‬ا‪ٞ‬یس و‪ ٝ‬لُٗ‪ ٝ‬وسی اظ ثط٘بٔ‪ ٝ‬قٕب ث‪ ٝ‬سٗساز ذبنی سىطاض ق‪ٛ‬ز اظ حّم‪ for ٝ‬اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬یٓ) ایٗ حّم‪ ٝ‬زض ظٔب٘ی و‪ ٝ‬اظ لجُ ٔی زا٘یٓ و‪ ٝ‬یه‬
‫لُٗ‪ ٝ‬وس چ‪ٙ‬س ثبض اػطا ذ‪ٛ‬ا‪ٞ‬س قس ٔ‪ٙ‬بؾت اؾز)قىُ ٘‪ٛ‬قشبضی ایٗ حّم‪ ٝ‬ث‪ ٝ‬قىُ ظیط اؾز ‪:‬‬

‫)‪for(initialization; Boolean_expression; update‬‬


‫{‬
‫لُٗ‪ ٝ‬وس سىطاض ق‪٘ٛ‬س‪//ٜ‬‬
‫}‬

‫‪ٞ‬طیه اظ لؿٕز ‪ٞ‬بی ٔ‪ٛ‬ػ‪ٛ‬ز زض ایٗ حّم‪ ٝ‬ضا زض ازأ‪ ٝ‬قطح ٔی ز‪ٞ‬یٓ‪:‬‬

‫‪ ),‬ثرف ‪ initialization‬زض اثشسا اػطا ٔی ق‪ٛ‬ز) ایٗ لؿٕز زض وُ حّم‪ ٝ‬فمٍ یه ثبض اػطا ذ‪ٛ‬ا‪ٞ‬س قس) ایٗ ٔطحّ‪ ٝ‬ث‪ ٝ‬قٕب ایٗ اػبظ‪ ٜ‬ض‪ٔ ٜ‬ی ز‪ٞ‬س و‪ٝ‬‬
‫ٔمسٔبر اػطای حّم‪ ٝ‬ضا فطا‪ ٓٞ‬و‪ٙ‬یس) ث‪ٖ ٝ‬جبضر زیٍط ٔشغیطی و‪ ٝ‬لطاض اؾز حّم‪ ٝ‬ضا و‪ٙ‬شطَ و‪ٙ‬س ضا زض ایٗ ثرف ٔٗطفی ‪ٔ ٚ‬مساضز‪ٞ‬ی ٔی و‪ٙ‬یٓ) دؽ‬
‫ثرف ‪ initialization‬ثبیس ٖالٔز ؾٕی وبِٗ ‪ #;$‬اؾشفبز‪ ٜ‬و‪ٙ‬یس‪.‬‬
‫‪ true‬ثبقس حّم‪ ٝ‬اػطا‬ ‫‪ )-‬لؿٕز ز‪ٔ Boolean Expression ْٚ‬ی ثبقس) زض ایٗ ثرف یه ٖجبضر قطَی ‪ٚ‬ػ‪ٛ‬ز زاضز و‪ ٝ‬اٌط ٘شیؼ‪ ٝ‬ایٗ ثرف‬
‫ذ‪ٛ‬ا‪ٞ‬س قس ‪ ٚ‬اٌط ‪ false‬ثبقس حّم‪ ٝ‬اػطا ٕ٘ی ق‪ٛ‬ز) زض ایٗ ثرف ٔی س‪ٛ‬اٖ ٔشغیط و‪ٙ‬شطَ و‪ٙٙ‬س‪ ٜ‬حّم‪ ٝ‬ضا چه وطز ‪.‬‬
‫‪ ).‬دؽ اظ ایٗ و‪ ٝ‬ثسٖ حّم‪ ٝ‬یٗ‪ٙ‬ی ‪ٕٞ‬بٖ لُٗ‪ ٝ‬وس اػطا ق‪٘ٛ‬س‪ ٜ‬اػطا ق‪ٛ‬ز لؿٕز ‪ update‬اػطا ذ‪ٛ‬ا‪ٞ‬س قس) زلز زاقش‪ ٝ‬ثبقیس و‪ ٝ‬لؿٕز ‪ٞ update‬ط‬
‫ثبض دؽ اظ اػطای ثس٘‪ ٝ‬حّم‪ ٝ‬اػطا ٔی ق‪ٛ‬ز) زض لؿٕز ‪ٔ update‬ی س‪ٛ‬ا٘یس اٖٕبِی ٔب٘‪ٙ‬س ظیبز یب وٓ وطزٖ ٔشغیط و‪ٙ‬شطَ وطزٖ حّم‪ ٝ‬زض ایٗ لؿٕز‬
‫ا٘ؼبْ ٔی ق‪ٛ‬ز) ایٗ لؿٕز اظ حّم‪ ٝ‬حشی ٔی س‪ٛ‬ا٘س ذبِی ثبقس‪.‬‬

‫ظٔب٘ی و‪ ٝ‬لؿٕز ‪ٔ Boolean expression‬مساض ‪ false‬ثطٌطزا٘س حّم‪ ٝ‬زیٍط اػطا ٕ٘ی ق‪ٛ‬ز)‬

‫‪24‬‬
‫ث‪ٔ ٝ‬ظبَ ظیط س‪ٛ‬ػ‪ ٝ‬و‪ٙ‬یس‪:‬‬

‫{ ‪public class Test‬‬

‫{ )][‪public static void main(String args‬‬


‫{ )‪for(int x = 10; x < 20; x = x+1‬‬
‫;) ‪System.out.print("value of x : " + x‬‬
‫;)"‪System.out.print("\n‬‬
‫}‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪10‬‬


‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪11‬‬
‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪12‬‬
‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪13‬‬
‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪14‬‬
‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪15‬‬
‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪16‬‬
‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪17‬‬
‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪18‬‬
‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪19‬‬

‫‪ٕٞ‬بٖ َ‪ٛ‬ض و‪ ٝ‬زض وس ٔی ثی‪ٙ‬یس لؿٕز ‪ initialization‬ایٗ حّم‪ ٝ‬یه ٔشغیط اظ ٘‪ int ٔٛ‬ثب ٘بْ ‪ x‬سٗطیف قس‪ ٜ‬اؾز ‪ٔ ٚ‬مساض آٖ ‪ٔ 10‬ی ثبقس) ‪ٕٞ‬چ‪ٙ‬یٗ ٖجبضر‬
‫قطَی ایٗ حّم‪ٔ x<20 ٝ‬ی ثبقس) ‪ٕٞ‬چ‪ٙ‬یٗ زض لؿٕز ‪ update‬ایٗ حّم‪ ٝ‬یه ‪ٚ‬احس ث‪ x ٝ‬ايبف‪ ٝ‬قس‪ ٜ‬اؾز‪.‬‬

‫حلقِ‪do…while‬‬

‫ایٗ حّم‪ ٝ‬ثؿیبض قجی‪ ٝ‬ث‪ٔ while ٝ‬ی ثبقس) س‪ٟٙ‬ب سفب‪ٚ‬سی و‪ ٝ‬ثیٗ ایٗ ز‪ ٚ‬حّم‪ٚ ٝ‬ػ‪ٛ‬ز زاضز ایٗ اؾز و‪ ٝ‬قطٌ حّم‪ ٝ‬زض ا٘ش‪ٟ‬ب چه ٔی ق‪ٛ‬ز) ث‪ٕٞ ٝ‬یٗ زِیُ وس‬
‫ثس٘‪ ٝ‬حّم‪ ٝ‬حسالُ یه ثبض حشٕب اػطا ٔی ق‪ٛ‬ز) وس ایٗ حّم‪ ٝ‬ث‪ ٝ‬قىُ ظیط اؾز ‪:‬‬

‫‪do‬‬
‫{‬
‫ثس٘‪ ٝ‬حّم‪//ٝ‬‬
‫;)قطٌ حّم‪}while(ٝ‬‬

‫‪ٕٞ‬بٍ٘‪ ٝ٘ٛ‬و‪ٔ ٝ‬ی ثی‪ٙ‬یس قطٌ حّم‪ ٝ‬زض ا٘ش‪ٟ‬ب اؾز دؽ یه ثبض ثس٘‪ ٝ‬حّم‪ ٝ‬اػطا ٔی ق‪ٛ‬ز) ‪ٚ‬لشی و‪ ٝ‬ث‪ ٝ‬قطٌ حّم‪ٔ ٝ‬ی ضؾیٓ اٌط ٔمساض ‪ true‬زاقش‪ ٝ‬ثبقس ز‪ٚ‬ثبض‪ٜ‬‬
‫ث‪ ٝ‬اثشسای ثس٘‪ ٝ‬ثبظٔی ٌطزیٓ ‪ ٚ‬ز‪ٚ‬ثبض‪ ٜ‬حّم‪ ٝ‬اػطا ٔی ق‪ٛ‬ز) أب اٌط قطٌ حّم‪ false ٝ‬ثبقس ثبظٌكز ا٘ؼبْ ٕ٘ی ق‪ٛ‬ز ‪ ٚ‬اظ حّم‪ ٝ‬ذبضع ٔی ق‪ٛ‬یٓ)‬

‫ثطای ٔظبَ ایٗ حّم‪ ٝ‬ث‪ ٝ‬قىُ ظیط س‪ٛ‬ػ‪ٕ٘ ٝ‬بییس‪:‬‬

‫‪25‬‬
‫{ ‪public class Test‬‬

‫{)][‪public static void main(String args‬‬


‫;‪int x = 10‬‬

‫{‪do‬‬
‫;) ‪System.out.print("value of x : " + x‬‬
‫;‪x++‬‬
‫;)"‪System.out.print("\n‬‬
‫;) ‪}while( x < 20‬‬
‫}‬
‫}‬

‫٘شیؼ‪ ٝ‬اػطای وس ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪10‬‬


‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪11‬‬
‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪12‬‬
‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪13‬‬
‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪14‬‬
‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪15‬‬
‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪16‬‬
‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪17‬‬
‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪18‬‬
‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪19‬‬

‫عبارات کٌتزل کٌٌذُ حلقِ ّا‬

‫‪ٕٞ‬بٖ ٌ‪ ٝ٘ٛ‬و‪ ٝ‬س‪ٛ‬يیح زازیٓ حّم‪ٞ ٝ‬ب یه لؿٕز اظ وس ضا سىطاض ٔی و‪ٙٙ‬س) حبَ اٌط ثر‪ٛ‬ا‪ٞ‬یٓ زض حبِز ‪ٞ‬بیی حّم‪ ٝ‬زض ‪ٚ‬ؾٍ اػطا سٕبْ ق‪ٛ‬ز ‪ ٚ‬اظ حّم‪ٝ‬‬
‫ذبضع ق‪ٛ‬یٓ) یب ثر‪ٛ‬ا‪ٞ‬یٓ ثطذی زؾش‪ٛ‬ضار ضا اػطا ٘ى‪ٙ‬س) ثطای ایٗ وبض اظ ثطذی ٖجبضار و‪ٙ‬شطَ و‪ٙٙ‬س‪ ٜ‬حّم‪ٞ ٝ‬ب اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬یٓ و‪ ٝ‬زض ازأ‪ ٝ‬ث‪ ٝ‬قطح آ٘‪ٟ‬ب ٔی‬
‫دطزاظیٓ‪:‬‬

‫دستَر‪break‬‬

‫زؾش‪ٛ‬ض ‪ break‬زض ظثبٖ ػب‪ٚ‬ا ز‪ ٚ‬وبضثطز زاضز‪.‬‬

‫‪ٚ ),‬لشی و‪ ٝ‬زض اػطای حّم‪ ٝ‬ث‪ ٝ‬ذٍ ‪ٔ break‬ی ٘‪ٛ‬یؿیٓ حّم‪ ٝ‬زض ‪ٕٞ‬بٖ ٘مُ‪ ٝ‬سٕبْ قس‪ ٚ ٜ‬ذبضع ٔی ق‪ٛ‬ز) ‪ ٚ‬ثط٘بٔ‪ ٝ‬اظ ذٍ ثٗس اظ حّم‪ ٝ‬ازأ‪ ٝ‬دیسا ٔی‬
‫و‪ٙ‬س‪.‬‬
‫‪ )-‬زض ثّ‪ٛ‬ن ‪ٛٔ switch‬ضز اؾشفبز‪ ٜ‬لطاض ٔی ٌیطز و‪ ٝ‬قطٌ ‪ٞ case‬ب اظ یىسیٍط ػسا ثبقس و‪ ٝ‬ایٗ ثرف ضا زض ُٔبِت آی‪ٙ‬س‪ ٜ‬س‪ٛ‬يیح ذ‪ٛ‬ا‪ٞ‬یٓ زاز ‪.‬‬

‫٘ح‪ٛ٘ ٜٛ‬قشٗ ایٗ زؾش‪ٛ‬ض ث‪ ٝ‬قىُ ظیط اؾز ‪:‬‬

‫‪26‬‬
‫;‪break‬‬

‫ثطای ٔظبَ ث‪ ٝ‬وس ظیط زلز و‪ٙ‬یس‪:‬‬

‫{ ‪public class Test‬‬

‫{)][‪public static void main(String args‬‬


‫;‪int x = 10‬‬

‫{)‪for(int x=5;x<100;x=x+5‬‬
‫;) ‪System.out.print("value of x : " + x‬‬
‫)‪if(x==20‬‬
‫;‪break‬‬
‫;)"‪System.out.print("\n‬‬
‫}‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ثبال ث‪ ٝ‬قىُ ظیط اؾز‬

‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪5‬‬


‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪10‬‬
‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪15‬‬
‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪20‬‬

‫زض حّم‪ ٝ‬ثبال ٌفش‪ ٝ‬ایٓ و‪ ٝ‬سب ‪ٚ‬لشی و‪ x ٝ‬و‪ٛ‬چىشطاظ ‪ 100‬ثبقس حّم‪ ٝ‬ثبیس اػطا ق‪ٛ‬ز) ‪ِٚ‬ی زض زاذُ ثس٘‪ ٝ‬حّم‪ٌ ٝ‬فش‪ ٝ‬ایٓ و‪ ٝ‬اٌط ‪ x‬ثطاثط ‪ 20‬ث‪ٛ‬ز اػطای حّم‪ٝ‬‬
‫سٕبْ ق‪ٛ‬ز‪.‬‬

‫دستَر‪continue‬‬

‫ایٗ زؾش‪ٛ‬ض زض ‪ ٕٝٞ‬ی حّم‪ٞ ٝ‬ب لبثُ اؾشفبز‪ ٜ‬اؾز) ٘ح‪ ٜٛ‬وبض ایٗ زؾش‪ٛ‬ض ث‪ ٝ‬ایٗ قىُ اؾز و‪ ٝ‬زض ‪ٍٙٞ‬بْ اػطای حّم‪ٚ ٝ‬لشی و‪ ٝ‬ث‪ ٝ‬ایٗ زؾش‪ٛ‬ض ٔیطؾیٓ زض ‪ٞ‬ط‬
‫ػبی حّم‪ ٝ‬لطاض زاقش‪ ٝ‬ثبقیٓ ازأ‪ ٝ‬اػطا ِغ‪ٔ ٛ‬ی ق‪ٛ‬ز ‪ ٚ‬ث‪ ٝ‬اثشسای حّم‪ ٝ‬ثبظٔی ٌطزیٓ) زلز زاقش‪ ٝ‬ثبقیس و‪ ٝ‬اٌط زض زاذُ حّم‪ for ٝ‬لطاض زاقش‪ ٝ‬ثبقیٓ ثرف‬
‫‪ while‬یب ‪ do…while‬ثبقس ‪ٚ‬لشی ث‪ٝ‬‬ ‫‪update‬دؽ اظ ضؾیسٖ ث‪ continue ٝ‬اػطا ذ‪ٛ‬ا‪ٞ‬س قس ‪ ٚ‬ؾذؽ قطٌ حّم‪ ٝ‬چه ٔی ق‪ٛ‬ز) ‪ٕٞ‬چ‪ٙ‬یٗ اٌط زض حّم‪ٝ‬‬
‫زؾش‪ٛ‬ض ‪ٔ continue‬ی ضؾیٓ ث‪ ٝ‬اثشسای حّم‪ ٝ‬ضفش‪ ٚ ٝ‬قطٌ حّم‪ ٝ‬چه ٔی ق‪ٛ‬ز) قىُ ٘‪ٛ‬قشبضی ایٗ زؾش‪ٛ‬ض ث‪ ٝ‬قىُ ظیط اؾز ‪:‬‬

‫;‪continue‬‬

‫ٔظبِی اظ ایٗ زؾش‪ٛ‬ض زض ازأ‪ ٝ‬آٔس‪ ٜ‬اؾز‪:‬‬

‫{ ‪public class Test‬‬

‫{)][‪public static void main(String args‬‬


‫{)‪for(int x=5;x<35;x=x+5‬‬

‫‪27‬‬
‫)‪if(x==20‬‬
‫;‪continue‬‬
‫;) ‪System.out.print("value of x : " + x‬‬
‫;)"‪System.out.print("\n‬‬
‫}‬
‫}‬
‫}‬

‫٘شیؼ‪ ٝ‬اػطای وس ث‪ ٝ‬قطح ظیط اؾز‪:‬‬

‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪5‬‬


‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪10‬‬
‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪15‬‬
‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪25‬‬
‫‪value‬‬ ‫‪of‬‬ ‫‪x‬‬ ‫‪:‬‬ ‫‪30‬‬

‫‪ٕٞ‬بُ٘‪ٛ‬ض و‪ٔ ٝ‬كب‪ٞ‬س‪ٔ ٜ‬ی و‪ٙ‬یس ‪ٚ‬لشی و‪ٔ ٝ‬مساض ‪ x‬ثطاثط ‪ٔ 20‬ی ق‪ٛ‬ز زؾش‪ٛ‬ض ‪ continue‬اػطا ٕ٘ی ق‪ٛ‬ز ‪ ٚ‬ز‪ٚ‬ثبض‪ ٜ‬ث‪ ٝ‬اثشسای حّم‪ ٝ‬ثبظٌكز زاز‪ٔ ٜ‬ی ق‪ٛ‬ز ‪ٔ ٚ‬مساض‬
‫‪ 20‬چبح ٕ٘ی ق‪ٛ‬ز‪.‬‬

‫ضکل پیطزفتِ حلقِ‪)foreach( for‬‬

‫زض ٘ؿر‪ 5 ٝ‬ػب‪ٚ‬ا یه حّم‪ for ٝ‬ػسیس ٔٗطفی قس) ایٗ حّم‪ ٝ‬ثطای دیٕبیف ٔؼٕ‪ٞ ٖٝٛ‬ب ‪ِ ٚ‬یؿز ‪ٞ‬ب ‪ ٚ‬آضای‪ٞ ٝ‬ب ث‪ ٝ‬وبض ٔی ض‪ٚ‬ز) ث‪ ٝ‬ایٗ ٔٗ‪ٙ‬ی و‪ ٝ‬سه سه‬
‫اًٖبی ٔؼٕ‪ ٖٝٛ‬ضا یىی یىی دیٕبیف ٔی و‪ٙ‬س) زض ‪ٚ‬الٕ زض ایٗ ٘‪ ٔٛ‬اظ حّم‪ٔ ٝ‬ی س‪ٛ‬اٖ وُ آضای‪ ٝ‬ضا ثس‪ ٖٚ‬ایٗ و‪ ٝ‬ا٘سیؽ ‪ٞ‬ب ضا زا٘ؿز دیٕبیف وطز) قىُ‬
‫٘‪ٛ‬قشبضی ایٗ حّم‪ ٝ‬ث‪ ٝ‬ن‪ٛ‬ضر ظیط اؾز‪:‬‬

‫)‪for(declaration : expression‬‬
‫{‬
‫‪//Statements‬‬
‫}‬

‫‪ ),‬زض لؿٕز ‪ declaration‬ثبیس یه ٔشغیط سٗطیف و‪ٙ‬یٓ) ٘‪ ٔٛ‬ایٗ ٔشغیط ثبیس ٔش‪ٙ‬بؾت ثب ٘‪ ٔٛ‬آیشٓ ‪ٞ‬بی ٔؼٕ‪ٛٔ ٖٝٛ‬ضز ٘ٓط ثبقس) ثطای ٔظبَ اٌط لهس‬
‫دیٕبیف ِیؿشی اظ اٖساز نحیح زاضیٓ ایٗ ٔشغیط ثبیس اظ ٘‪ int ٔٛ‬ثبقس‪.‬‬
‫‪ )-‬زض لؿٕز ‪ expression‬ثبیس ٘بْ ٔؼٕ‪ٛٔ ٖٝٛ‬ضز ٘ٓط و‪ٔ ٝ‬ی ذ‪ٛ‬ا‪ٞ‬یٓ آٖ ضا دیٕبیف و‪ٙ‬یٓ آ‪ٚ‬ضز‪ ٜ‬ق‪ٛ‬ز) ایٗ ٔؼٕ‪ٔ ٖٝٛ‬ی س‪ٛ‬ا٘س یه آضای‪ ٝ‬ثبقس یب حشی‬
‫ٔی س‪ٛ‬ا٘س یه ٔشس ثبقس و‪ٔ ٝ‬مساض ثبظٌكشی آٖ آضای‪ ٝ‬ثبقس) ثطای ٔظبَ ث‪ ٝ‬وس ظیط زلز و‪ٙ‬یس ‪:‬‬

‫{ ‪public class Test‬‬

‫{)][‪public static void main(String args‬‬


‫;}‪int [] numbers = {10, 20, 30, 40, 50‬‬

‫{) ‪for(int x : numbers‬‬


‫;) ‪System.out.print( x‬‬
‫;)"‪System.out.print(",‬‬
‫‪28‬‬
‫}‬
‫;)"‪System.out.print("\n‬‬
‫;}"‪String [] names ={"James", "Larry", "Tom", "Lacy‬‬
‫{ ) ‪for( String name : names‬‬
‫;) ‪System.out.print( name‬‬
‫;)"‪System.out.print(",‬‬
‫}‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪10,20,30,40,50,‬‬
‫‪James,Larry,Tom,Lacy,‬‬

‫ثطای ٔظبَ ث‪ ٝ‬وس ظیط س‪ٛ‬ػ‪ٕ٘ ٝ‬بییس‪:‬‬

‫{ ‪public class TestArray‬‬


‫{ )‪public static void main(String[] args‬‬
‫;}‪double[] myList = {1.9, 2.9, 3.4, 3.5‬‬

‫‪// Print all the array elements‬‬


‫{ )‪for (double element: myList‬‬
‫;)‪System.out.println(element‬‬
‫}‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪1.9‬‬
‫‪2.9‬‬
‫‪3.4‬‬
‫‪3.5‬‬

‫حّم‪ٞ ٝ‬ب یىی اظ ضا‪ٞ ٜ‬بی سغییط ٔؿیط اػطای ثط٘بٔ‪ٔ ٝ‬ی ثبق‪ٙ‬س)‬

‫قطَ‪ٟ‬ب‬

‫قطٌ ‪ٞ‬ب ث‪ ٌٝ٘ٛ ٝ‬ای ‪ٞ‬ؿش‪ٙ‬س و‪ ٝ‬سهٕیٓ ٔی ٌیطیٓ لؿٕشی اظ وس اػطا ثك‪ٛ‬ز یب ذیط) قطٌ ‪ٞ‬ب یه یب چ‪ٙ‬س قطٌ ضا ثطضؾی ٔی و‪ٙٙ‬س ‪ ٚ‬اٌط قطٌ زضؾز ث‪ٛ‬ز وس‬
‫ٔش‪ٙ‬بْط ثب آٖ قطٌ ضا اػطا ٔی و‪ٙٙ‬س) ظثبٖ ػب‪ٚ‬ا ٖجبضار قطَی ظیط ضا فطا‪ٔ ٓٞ‬ی آ‪ٚ‬ضز )‬

‫عبارات ضزطی‪if‬‬

‫یه ٖجبضر قطَی ‪ if‬اظ یه قطٌ ‪ ٚ‬یه یب چ‪ٙ‬س ٖجبضر اػطایی سكىیُ قس‪ ٜ‬اؾز) قىُ ٘‪ٛ‬قشبضی آٖ ٔب٘‪ٙ‬س وس ظیط اؾز ‪.‬‬
‫‪29‬‬
if(Boolean_expression)
{
//Statements will execute if the Boolean expression is true
}

‫ ثبقس لؿٕز وس‬false ٌ‫ز أب اٌط ٔمساض قط‬ٛ‫ اػطا ٔی ق‬if ُ‫ن وس زاذ‬ّٛ‫س دؽ ث‬ٞ‫ ز‬true ٝ‫ ٘شیؼ‬Boolean expression ‫ز زض لؿٕز‬ٛ‫ػ‬ٛٔ ٌ‫اٌط قط‬
)‫س قس‬ٞ‫ا‬ٛ‫ اػطا ذ‬if ‫ن‬ّٛ‫ ذٍ ثٗس اظ ث‬ٚ ‫ز‬ٛ‫ اػطا ٕ٘ی ق‬if ‫ن‬ّٛ‫زاذُ ث‬

.‫س‬ٞ‫ اظ ایٗ قطٌ ضا ٘كبٖ ٔی ز‬ٜ‫ اؾشفبز‬ٜٛ‫ٔظبَ ظیط ٘ح‬

public class Test {

public static void main(String args[]){


int x = 10;

if( x< 20 ){
System.out.print("This is if statement");
}
}
}

: ‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی وس ث‬ٚ‫ ذط‬ٝ‫و‬

This is if statement

if-else‫ضزط‬

ٌ‫ اٌط قط‬ٚ if ‫ز‬ٛ‫ض ذ‬ٛ‫ضز ٘ٓط زضؾز ثبقس زؾش‬ٛٔ ٌ‫ اٌط قط‬ٝ‫ ایٗ قىُ اؾز و‬ٝ‫ ی ایٗ قطٌ ث‬ٜٛ‫ ٘ح‬ٝ‫ ثبقس) و‬ٜ‫ٕطا‬ٞ else ‫ا٘س ثب یه‬ٛ‫ ٔی س‬if ٌ‫یه قط‬
: ‫ قىُ ظیط اؾز‬ٝ‫قشبضی ایٗ قطٌ ث‬ٛ٘ ٜٛ‫س قس) ٘ح‬ٞ‫ا‬ٛ‫ اػطا ذ‬else ‫ض‬ٛ‫غٍّ ثبقس زؾش‬

if(Boolean_expression){
//Executes when the Boolean expression is true
}else{
//Executes when the Boolean expression is false
}

)‫س قس‬ٞ‫ا‬ٛ‫ اػطا ذ‬else ‫ن‬ّٛ‫ ثبقس ث‬false ‫ اٌط ایٗ ٔمساض‬ٚ ‫ز‬ٛ‫ اػطا ٔی ق‬if ‫ن‬ّٛ‫ ثبقس ث‬true ‫ ثطاثط‬Boolean expression ‫ قس اٌط ٔمساض‬ٝ‫ض ن ٌفش‬ُٛ٘‫ٕب‬ٞ

:‫یس‬ٙ‫ و‬ٝ‫ػ‬ٛ‫ وس ظیط س‬ٝ‫ثطای ٔظبَ ث‬

public class Test {

public static void main(String args[]){


int x = 30;
30
if( x< 20 ){
System.out.print("This is if statement");
}else{
System.out.print("This is else statement");
}
}
}

‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ آٖ ث‬ٝ‫ ٘شیؼ‬ٝ‫و‬

This is else statement

if… else if … else‫ضزط‬

‫یٓ) ثطای‬ٙ‫بی ٔرشّف قطٌ ضا ثطضؾی و‬ٞ ‫یٓ حبِز‬ٞ‫ا‬ٛ‫ ثر‬ٝ‫ز و‬ٛ‫ ٔی ق‬ٜ‫ ثبقس) ایٗ حبِز ظٔب٘ی اؾشفبز‬ٜ‫ٕطا‬ٞ else if ‫س‬ٙ‫ا٘س ثب یه یب چ‬ٛ‫ ٔی س‬if ٌ‫یه قط‬
:‫یس‬ٙ‫ ٘ىبر ظیط زلز و‬ٝ‫ اظ ایٗ قطٌ ثبیس ث‬ٜ‫اؾشفبز‬

.‫یس‬ٙ‫ و‬ٜ‫ اؾشفبز‬else ‫ن‬ّٛ‫بی آٖ اظ یه ث‬ٟ‫ زض ا٘ش‬ٝ‫شط اؾز و‬ٟ‫یس أب ث‬ٙ‫ و‬ٜ‫ اؾشفبز‬else if ‫س سب‬ٙ‫ط چ‬ٞ ‫ اظ‬if ‫) اٌط دؽ اظ‬,
.‫ وطز‬ٜ‫ اؾشفبز‬else if ‫ اظ‬else ‫ن‬ّٛ‫اٖ ثٗس اظ ث‬ٛ‫ ٕ٘ی س‬ٜ‫یچٍب‬ٞ )-
.‫س قس‬ٙٞ‫ا‬ٛ‫ب اػطا ٘ر‬ٞ else ٚ ‫ب‬ٞ else if ٝ‫ز ثمی‬ٛ‫ اػطا ق‬else if ‫) اٌط یه‬.

: ‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫قشٗ ایٗ قطٌ ث‬ٛ٘ ٜٛ‫٘ح‬

if(Boolean_expression 1){
//Executes when the Boolean expression 1 is true
}else if(Boolean_expression 2){
//Executes when the Boolean expression 2 is true
}else if(Boolean_expression 3){
//Executes when the Boolean expression 3 is true
}else {
//Executes when the none of the above condition is true.
}

ٚ ‫س قس‬ٞ‫ا‬ٛ‫ اػطا ذ‬else if ‫ن‬ّٛ‫ زضؾز ثبقس ث‬Boolean expression2 ‫ اٌط‬ٚ ‫س قس‬ٞ‫ا‬ٛ‫ اػطا ذ‬if ‫ن‬ّٛ‫ زضؾز ثبقس ث‬Boolean expression 1 ‫اٌط ٔمساض‬
‫ اػطا‬else ‫ن‬ّٛ‫س ث‬ٙ‫ زضؾز ٘جبق‬ٜ‫ قس‬ٝ‫بی ٌفش‬ٞ ٌ‫یچىساْ اظ قط‬ٞ ‫س قس) اٌط‬ٞ‫ا‬ٛ‫ْ اػطا ذ‬ٚ‫ ز‬else if ‫ زضؾز ثبقس‬Boolean expression3 ٌ‫اٌط قط‬
:‫یس‬ٙ‫ و‬ٝ‫ػ‬ٛ‫ وس ظیط س‬ٝ‫ز) ثطای ٔظبَ ث‬ٛ‫ٔی ق‬

public class Test {

public static void main(String args[]){


int x = 30;

if( x == 10 ){
31
‫;)"‪System.out.print("Value of X is 10‬‬
‫{) ‪}else if( x == 20‬‬
‫;)"‪System.out.print("Value of X is 20‬‬
‫{) ‪}else if( x == 30‬‬
‫;)"‪System.out.print("Value of X is 30‬‬
‫{‪}else‬‬
‫;)"‪System.out.print("This is else statement‬‬
‫}‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی ایٗ وس ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪Value of X is 30‬‬

‫دستَرات ‪ if‬تَدرتَ‬

‫زض زاذُ ‪ٞ‬ط ؾ‪ ٝ‬قىُ ‪ if‬و‪ٌ ٝ‬فش‪ ٝ‬قس ٔی س‪ٛ‬اٖ اظ زؾش‪ٛ‬اضر ‪ if‬ث‪ ٝ‬قىُ ‪ٞ‬بی ٌفش‪ ٝ‬قس‪ ٜ‬ث‪ ٝ‬ن‪ٛ‬ضر س‪ ٛ‬زض س‪ ٛ‬اؾشفبز‪ ٜ‬وطز) ثطای زضن ث‪ٟ‬شط ث‪ٔ ٝ‬ظبَ ظیط س‪ٛ‬ػ‪ٝ‬‬
‫و‪ٙ‬یس‪:‬‬

‫{)‪if(Boolean_expression 1‬‬
‫‪//Executes when the Boolean expression 1 is true‬‬
‫{)‪if(Boolean_expression 2‬‬
‫‪//Executes when the Boolean expression 2 is true‬‬
‫}‬
‫}‬

‫فمٍ س‪ٛ‬ػ‪ ٝ‬زاقش‪ ٝ‬ثبقیس و‪ ٝ‬ثطای زؾش‪ٛ‬ضار چ‪ٙ‬س ذُی ٔی س‪ٛ‬اٖ اظ {} ثطای ؾبذز ثّ‪ٛ‬ن زؾش‪ٛ‬ض اؾشفبز‪ ٜ‬وطز ‪ِٚ‬ی اٌط زؾش‪ٛ‬ض ٔ‪ٛ‬ضز ٘ٓط یه ذُی ثبقس‬
‫٘یبظی ث‪ ٝ‬اؾشفبز‪ ٜ‬اظ ایٗ ٖالئٓ ٘یؿز) ‪ٕٞ‬چ‪ٙ‬یٗ ثطای ‪ٞ if‬بی س‪ ٛ‬زض س‪ ٛ‬ثبیس لب٘‪ ٖٛ‬سمسْ ‪ ٚ‬سبذط ثّ‪ٛ‬ن ‪ٞ‬ب حفّ ق‪ٛ‬ز ث‪ ٝ‬ایٗ ٔٗ‪ٙ‬ی و‪ ٝ‬ثبیس ‪ٕٞ‬یك‪ ٝ‬ثّ‪ٛ‬ن ‪ٞ‬بی‬
‫زاذّی و‪ ٝ‬زیطسط ثبظ قس‪ ٜ‬ا٘س ظ‪ٚ‬زسط ثؿش‪ ٝ‬ق‪٘ٛ‬س ‪ ٚ‬ثّ‪ٛ‬ن ‪ٞ‬بی ثیط‪٘ٚ‬ی و‪ ٝ‬ظ‪ٚ‬زسط اظ ‪ ٕٝٞ‬ثبظ قس‪ ٜ‬ا٘س زیطسط اظ ‪ ٕٝٞ‬ثؿش‪ ٝ‬ق‪٘ٛ‬س) ثطای ضاحشی وبض ٔی س‪ٛ‬اٖ‬
‫‪ٕٞ‬چ‪ٙ‬بٖ و‪ ٝ‬زض ثط٘بٔ‪ٞ ٝ‬بی ظثبٖ ػب‪ٚ‬ا ٔهُّح اؾز ثّ‪ٛ‬ن ‪ٞ‬بی زاذّی ضا وٕی زاذُ سط اظ ثّ‪ٛ‬ن ‪ٞ‬بی ذبضػی ٘‪ٛ‬قز) ثطای ٔظبَ زض وس ثبال ‪ if‬زاذّی وٕی‬
‫فط‪ٚ‬ضفش‪ ٝ‬سط اظ ‪ if‬ذبضػی اؾز) ثب ضٖبیز ایٗ لبئس‪ ٜ‬وس قٕب ثؿیبض ذ‪ٛ‬ا٘بسط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز) ثطای ٔظبَ ‪ٞ if‬بی س‪ٛ‬زضس‪ ٛ‬ث‪ ٝ‬وس ظیط زلز و‪ٙ‬یس‪.‬‬

‫{ ‪public class Test‬‬

‫{)][‪public static void main(String args‬‬


‫;‪int x = 30‬‬
‫;‪int y = 10‬‬

‫{) ‪if( x == 30‬‬


‫{) ‪if( y == 10‬‬
‫;)"‪System.out.print("X = 30 and Y = 10‬‬
‫}‬
‫}‬
‫‪32‬‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪X = 30 and Y = 10‬‬

‫ضزط‪switch‬‬

‫‪ switch‬ثطای ثطضؾی اٖ اؾشفبز‪ ٜ‬وطز)‬ ‫اٌط یه ٔشغیط چ‪ٙ‬سیٗ حبِز زاقش‪ ٝ‬ثبقس ‪ ٚ‬حبِز ‪ٞ‬بی ضخ ز‪ٙٞ‬س‪ ٜ‬آٖ ٔشغیط ثطای ٔب ٔكرم ثبقس ٔی س‪ٛ‬اٖ اظ قطٌ‬
‫‪ٞ‬ط ٔمساضی و‪ٕٔ ٝ‬ىٗ اؾز ثطای ٔشغیط دیف ثیبیس یه ‪٘ case‬بٔیس‪ٔ ٜ‬ی ق‪ٛ‬ز ‪ٔ ٚ‬مساض و‪٘ٛٙ‬ی ٔشغیط ثب ویؽ ‪ٞ‬بی ٌ‪٘ٛ‬بٌ‪ ٖٛ‬ثطضؾی ذ‪ٛ‬ا‪ٞ‬س قس ‪ ٚ‬اٌط ثب یه‬
‫ویؽ س‪ٙ‬بؾت زاقز وس‪ٞ‬بی ٔش‪ٙ‬بْط ثب آٖ ویؽ اػطا ذ‪ٛ‬ا‪ٞ‬س قس) زلز و‪ٙ‬یس و‪ٕٞ ٝ‬بٖ َ‪ٛ‬ض و‪ ٝ‬زض س‪ٛ‬يیح ‪ break‬زض ثرف حّم‪ٞ ٝ‬ب س‪ٛ‬يیح زازیٓ ا٘ش‪ٟ‬بی ‪ٞ‬ط‬
‫‪case‬یه ‪ break‬ذ‪ٛ‬ا‪ٞ‬یٓ زاقز) اِجش‪ ٝ‬اٌط زض ا٘ش‪ٟ‬بی ‪ case‬اظ ‪ break‬اؾشفبز‪٘ ٜ‬ى‪ٙ‬یٓ ثب ‪ case‬ثٗسی ‪ٔ ٓٞ‬شغیط ثطضؾی ذ‪ٛ‬ا‪ٞ‬س قس ‪ ٚ‬اٌط ٔ‪ٙ‬بؾت ثبقس وس آٖ‬
‫‪ ٓٞcase‬اػطا ذ‪ٛ‬ا‪ٞ‬س قس) قىُ ٘‪ٛ‬قشبضی اٖ قطٌ ث‪ ٝ‬قىُ ظیط اؾز ‪:‬‬

‫{)‪switch(expression‬‬
‫‪case value :‬‬
‫‪//Statements‬‬
‫‪break; //optional‬‬
‫‪case value :‬‬
‫‪//Statements‬‬
‫‪break; //optional‬‬
‫‪//You can have any number of case statements.‬‬
‫‪default : //Optional‬‬
‫‪//Statements‬‬
‫}‬

‫ثطای اؾشفبز‪ ٜ‬اظ ‪ switch‬ل‪ٛ‬اٖس ظیط ‪ٚ‬ػ‪ٛ‬ز زاضز‪.‬‬

‫‪ٔ ),‬شغیط ‪ٞ‬بی لبثُ اؾشفبز‪ ٜ‬زض زاذُ ‪ switch‬فمٍ ٔی س‪ٛ‬ا٘س اٖساز‪ ،‬وبضاوشط ‪ٞ‬ب ‪ٞEnumٚ‬ب ثبقس‬
‫‪ٞ )-‬ط سٗساز ‪ case‬و‪ ٝ‬ثر‪ٛ‬ا‪ٞ‬یس ٔی س‪ٛ‬ا٘یس زض یه ‪ switch‬اؾشفبز‪ ٜ‬و‪ٙ‬یس) ثٗس اظ وّٕ‪ ٝ‬وّیسی ‪ٔ ٚ case‬مساض ٔشغیط ثبیس اظ ٖالٔز ز‪٘ٚ‬مُ‪ #5$ٝ‬اؾشفبز‪ٜ‬‬
‫و‪ٙ‬یس‪.‬‬
‫‪ ٔٛ٘ ).‬زاز‪ٔ ٜ‬مساضی و‪ ٝ‬ث‪ٞ ٝ‬ط ‪ٔ case‬ی ز‪ٞ‬یٓ ثبیس ثب ٘‪ ٔٛ‬زاز‪ٔ ٜ‬شغیطی و‪ ٝ‬ثطای ‪ switch‬اؾشفبز‪ ٜ‬وطز‪ ٜ‬ایٓ یىی ثبقس) ‪ٕٞ‬چ‪ٙ‬یٗ ٔمساضی و‪ ٝ‬ثطای ‪case‬‬
‫زض ٘ٓط ٔی ٌیطیٓ ثبیس طبثز ثبقس یب ٔمساض ثبقس ‪ٕ٘ ٚ‬ی س‪ٛ‬اٖ یه ٔمساض ٘بّٔٗ‪ ْٛ‬زض آٖ لطاض زاز‪.‬‬
‫‪ٚ )/‬لشی و‪ ٝ‬یه ٔمساض ٔشغیط ‪ switch‬ثب ٔمساض یىی اظ ‪ٞ case‬ب ثطاثط ث‪ٛ‬ز وس آٖ ‪ case‬سب ضؾیسٖ ث‪ ٝ‬ذٍ ‪ break‬اػطا ذ‪ٛ‬ا‪ٞ‬س قس‪.‬‬
‫‪ٚ )0‬لشی و‪ ٝ‬ثط٘بٔ‪ ٝ‬زض حبَ اػطا ث‪ ٝ‬ذٍ ‪ break‬ثطؾس ثبیس اظ وُ ثّ‪ٛ‬ن ‪ switch‬ذبضػی ٔی ق‪ٛ‬ز‪.‬‬
‫‪ٌ )1‬صاقشٗ ‪ break‬ثطای ‪ٞ‬ط ‪ case‬اذشیبضی اؾز ‪ِٚ‬ی اٌط دؽ اظ وس ‪ٌ case break‬صاقش‪٘ ٝ‬ك‪ٛ‬ز ‪ case‬ثٗسی ‪ ٓٞ‬ثطضؾی ذ‪ٛ‬ا‪ٞ‬س قس ‪ ٚ‬زض ن‪ٛ‬ضر‬
‫سُجیك اٖ ٘یعاػطا ذ‪ٛ‬ا‪ٞ‬س قس سب ‪ٚ‬لشی و‪ ٝ‬ث‪ ٝ‬یه ‪ break‬ثطؾس ‪ ٚ‬اظ ثّ‪ٛ‬ن ‪ switch‬ذبضع ق‪ٛ‬ز‪.‬‬

‫‪33‬‬
‫‪ٞ )2‬ط قطٌ ‪ٔ switch‬ی س‪ٛ‬ا٘س یه ثرف ث‪٘ ٝ‬بْ ‪ default‬زاقش‪ ٝ‬ثبقس) ایٗ ثرف زض ا٘ش‪ٟ‬بی ثّ‪ٛ‬ن ‪ٔ case‬ی آیس) زِیُ اؾشفبز‪ ٜ‬اظ ایٗ ثرف ایٗ اؾز‬
‫و‪ ٝ‬اٌط ‪ٞ‬یچىساْ اظ ‪ٞ case‬ب اػطا ٘ك‪ٛ‬ز ایٗ لؿٕز اػطا ذ‪ٛ‬ا‪ٞ‬س قس ‪.‬‬

‫وس ظیط ٔظبِی اظ اؾشفبز‪ ٜ‬ثّ‪ٛ‬ن ‪ٔ switch‬ی ثبقس‪.‬‬

‫{ ‪public class Test‬‬

‫{)][‪public static void main(String args‬‬


‫;)‪//char grade = args[0].charAt(0‬‬
‫;'‪char grade = 'C‬‬

‫)‪switch(grade‬‬
‫{‬
‫‪case 'A' :‬‬
‫;)"!‪System.out.println("Excellent‬‬
‫;‪break‬‬
‫‪case 'B' :‬‬
‫‪case 'C' :‬‬
‫;)"‪System.out.println("Well done‬‬
‫;‪break‬‬
‫‪case 'D' :‬‬
‫;)"‪System.out.println("You passed‬‬
‫‪case 'F' :‬‬
‫;)"‪System.out.println("Better try again‬‬
‫;‪break‬‬
‫‪default :‬‬
‫;)"‪System.out.println("Invalid grade‬‬
‫}‬
‫;)‪System.out.println("Your grade is " + grade‬‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪Well done‬‬
‫‪Your grade is a C‬‬

‫اٌط یه قطٌ ‪ if-else‬ؾبز‪ ٜ‬زاقش‪ ٝ‬ثبقیٓ ٔی س‪ٛ‬ا٘یٓ آٖ ضا ثب اؾشفبز‪ ٜ‬اظ ٍّٖٕط ?‪ 5‬دیبز‪ ٜ‬ؾبظی و‪ٙ‬یٓ) ایٗ ٍّٖٕط ضا لجال زض ثرف ٍّٖٕط ‪ٞ‬ب س‪ٛ‬يیح زاز‪ ٜ‬ایٓ)‬
‫و‪ ٝ‬قىُ وّی آٖ ث‪ ٝ‬ن‪ٛ‬ضر ظیط اؾز‪:‬‬

‫;‪Exp1 ? Exp2 : Exp3‬‬

‫اٌط قطٌ ٔ‪ٛ‬ػ‪ٛ‬ز زض ‪ Expr1‬زضؾز ثبقس آٍ٘ب‪ٔ ٜ‬مساض ‪ Expr2‬اػطا ٔی ق‪ٛ‬ز ‪ ٚ‬اٌط غٍّ ثبقس وس ‪ Expr3‬اػطا ذ‪ٛ‬ا‪ٞ‬س قس) زلز زاقش‪ ٝ‬ثبقیس و‪ ٝ‬ثیٗ‬
‫‪ Expr3 ٚExpr2‬اظ ٖالٔز ز‪٘ٚ‬مُ‪ ٝ‬اؾشفبز‪ ٜ‬وطز‪ ٜ‬ایٓ) اظ ایٗ ٍّٖٕط ٔی س‪ٛ‬اٖ ثطای ٔمساض ز‪ٞ‬ی یه ٔشغیط ٘یع اؾشفبز‪ ٜ‬وطز و‪ ٝ‬اٌط ‪ expr1‬زضؾز ثبقس ٔمساض‬
‫ٔشغیط ثطاثط ‪ expr2‬ث‪ٛ‬ز‪ ٚ ٜ‬اٌط غٍّ ثبقس ٔمساض ٔشغیط ثطاثط ‪ expr3‬ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز) قطٌ ‪ٞ‬ب ػعء انّی ثط٘بٔ‪ٛ٘ ٝ‬یؿی ٔی ثبق‪ٙ‬س ‪.‬‬

‫‪34‬‬
‫هذیزیت ‪ّ exception‬ا (بِ دام اًذاختي(‬

‫‪ try, catch‬اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬یٓ ‪.‬‬ ‫ثطای ایٗ و‪ ٝ‬ثش‪ٛ‬ا٘یٓ زض ‪ٍٙٞ‬بْ ‪ٚ‬ل‪ ٔٛ‬یه ‪ exception‬آٖ ضا سكریم زاز‪ ُٕٖ ٚ ٜ‬ذبنی ضا ا٘ؼبْ ز‪ٞ‬یٓ اظ وّٕبر وّیسی‬
‫‪Try, catch‬اؾٓ ثّ‪ٛ‬ن ‪ٞ‬بی وس اؾز و‪ ٝ‬ثطای ٔسیطیز ‪ٞ exception‬ب ث‪ ٝ‬وبض ٔی ض‪ٚ‬ز) وس‪ٞ‬بیی ضا و‪ٕٔ ٝ‬ىٗ اؾز ‪ exception‬س‪ِٛ‬یس و‪ٙٙ‬س ضا زاذُ ثّ‪ٛ‬ن‬
‫‪try‬لطاض ٔی ز‪ٞ‬یٓ ‪ٔ ُٕٖ ٚ‬طث‪ ٌٛ‬ث‪ٞ ٝ‬طوساْ اظ ‪ٞ exception‬ب ضا زاذُ ثّ‪ٛ‬ن ‪ٞ‬بی ‪ٔ catch‬ی ٘‪ٛ‬یؿیٓ) ٘ح‪ٛ٘ ٜٛ‬قشٗ ‪ ٚ‬اؾشفبز‪ ٜ‬اظ ایٗ ثّ‪ٛ‬ن ‪ٞ‬ب زض ثط٘بٔ‪ٝ‬‬
‫ػب‪ٚ‬ا ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪try‬‬
‫{‬
‫‪//Protected code‬‬
‫)‪}catch(ExceptionName e1‬‬
‫{‬
‫‪//Catch block‬‬
‫}‬

‫ث‪ ٝ‬وسی و‪ ٝ‬زاذُ ثّ‪ٛ‬ن ‪ try‬لطاض ٔی ٌیطز وس ٔحبفٓز قس‪ٔ ٜ‬ی ٌ‪ٛ‬ی‪ٙ‬س) زلز زاقش‪ ٝ‬ثبقیس و‪ ٝ‬ثّ‪ٛ‬ن ‪ٞ‬بی ‪ catch‬ثبیس ثالفبنّ‪ ٝ‬ثٗس اظ ثّ‪ٛ‬ن ‪ try‬لطاض ثٍیط٘س)‬
‫ثٗس اظ ‪ٞ‬ط ثّ‪ٛ‬ن ‪ ٓٞ try‬ثبیس ثّ‪ٛ‬ن ‪ٞ‬بی ‪ٚ catch‬یب ثّ‪ٛ‬ن ‪ finally‬ثیبیس) ثّ‪ٛ‬ن ‪ٞ‬بی ‪ catch‬ثطای زضٌیط قسٖ ثب ‪ٞ exception‬ب ث‪ ٝ‬وبض ٔی ض‪٘ٚ‬س) ان‪ٛ‬ال ‪ٞ‬ط‬
‫ثّ‪ٛ‬ن ‪ catch‬ثطای ٔسیطیز یه ‪ Exception‬ث‪ ٝ‬وبض ٔی ض‪ٚ‬ز) ‪ٚ‬لشی و‪ ٝ‬زض زاذُ وس‪ٞ‬بی ثّ‪ٛ‬ن ‪ try‬ذُبیی ضخ ز‪ٞ‬س ثّ‪ٛ‬ن ‪ٔ catch‬طث‪ ٌٛ‬ث‪ ٝ‬آٖ ثّ‪ٛ‬ن اػطا‬
‫ذ‪ٛ‬ا‪ٞ‬س قس) زض وس ظیط ٔظبِی اظ ٔسیطیز ‪ٞ exception‬ب ضا ثب اؾشفبز‪ ٜ‬اظ ثّ‪ٛ‬ن ‪ٞ‬بی ‪ try, catch‬آ‪ٚ‬ضز‪ ٜ‬ایٓ) زض ایٗ ٔظبَ ٔب یه آضای‪ 2 ٝ‬ذب٘‪ ٝ‬ای سٗطیف وطز‪ٜ‬‬
‫‪ exception‬س‪ِٛ‬یس ٔی و‪ٙ‬س ‪ٔ ٚ‬ب آٖ ‪ exception‬ضا ٔسیطیز ٔی‬ ‫ایٓ ‪ِٚ‬ی زض زاذُ ثط٘بٔ‪ ٝ‬لهس زاضیٓ و‪ ٝ‬ث‪ ٝ‬ذب٘‪ ٝ‬ؾ‪ ْٛ‬آٖ زؾشطؾی زاقش‪ ٝ‬ثبقیٓ و‪ ٝ‬ثط٘بٔ‪ٝ‬‬
‫و‪ٙ‬یٓ‪.‬‬

‫;*‪import java.io.‬‬
‫{‪public class ExcepTest‬‬
‫{)][‪public static void main(String args‬‬
‫{‪try‬‬
‫;]‪int a[] = new int[2‬‬
‫;)]‪System.out.println("Access element three :" + a[3‬‬
‫}‬
‫{)‪catch(ArrayIndexOutOfBoundsException e‬‬
‫;)‪System.out.println("Exception thrown :" + e‬‬
‫}‬
‫;)"‪System.out.println("Out of the block‬‬
‫}‬
‫}‬

‫‪35‬‬
:‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ ثبال ٔشٗ ظیط ذ‬ٝٔ‫ػی ثط٘ب‬ٚ‫ذط‬

Exception thrown :java.lang.ArrayIndexOutOfBoundsException: 3


Out of the block

finally‫بلَک‬

‫ لطاض ٔی‬finally ‫ن‬ّٛ‫ٖ ث‬ٚ‫ زض زض‬ٝ‫بیی و‬ٞ ‫ن اذشیبضی ٔی ثبقس) وس‬ّٛ‫ اظ ایٗ ث‬ٜ‫ ٔی آیس) اؾشفبز‬catch ‫بی‬ٞ ‫ن‬ّٛ‫ ثٗس اظ ث‬ٚ try ‫ن‬ّٛ‫ ز٘جبَ ث‬ٝ‫ ث‬finally ‫ن‬ّٛ‫ث‬
‫ن‬ّٛ‫ زض ایٗ ث‬ٝ‫بی و‬ٞ ‫س قس) وس‬ٙٞ‫ا‬ٛ‫ن اػطا ذ‬ّٛ‫بی ایٗ ث‬ٞ‫س وس‬ٞ‫ یب ضخ ٘س‬ٚ ‫س‬ٞ‫ ضخ ز‬exception ‫ اٌط‬ٝ‫ی و‬ٙٗٔ ٗ‫ ای‬ٝ‫٘س) ث‬ٛ‫ط حبَ اػطا ٔی ق‬ٞ ٝ‫ٌیط٘س ث‬
‫ن زض وس ظیط‬ّٛ‫ اظ ایٗ ث‬ٜ‫ اؾشفبز‬ٜٛ‫ی ٔی ثبقس) ٘ح‬ٙ‫ی‬ٙ‫ اٖٕبَ ایٗ چ‬ٚ ‫ب‬ٞ ُ‫ آظاز وطزٖ فبی‬ٚ ٝٓ‫ ثطای سٕیع وطزٖ حبف‬ٝ‫س و‬ٙ‫ؿش‬ٞ ‫بیی‬ٞ‫ال وس‬ٕٛٗٔ ‫لطاض ٔی ٌیط٘س‬
.‫ اؾز‬ٜ‫ قس‬ٜ‫ضز‬ٚ‫آ‬

try
{
//Protected code
}catch(ExceptionType1 e1)
{
//Catch block
}catch(ExceptionType2 e2)
{
//Catch block
}catch(ExceptionType3 e3)
{
//Catch block
}finally
{
//The finally block always executes.
}

: ‫یس‬ٙ‫ و‬ٝ‫ػ‬ٛ‫ وس ظیط س‬ٝ‫شط آٖ ث‬ٟ‫ زضن ث‬ٚ ‫ن‬ّٛ‫ اظ ایٗ ث‬ٜ‫ثطای ٔظبِی اظ اؾشفبز‬

public class ExcepTest{

public static void main(String args[]){


int a[] = new int[2];
try{
System.out.println("Access element three :" + a[3]);
}catch(ArrayIndexOutOfBoundsException e){
System.out.println("Exception thrown :" + e);
}
finally{
a[0] = 6;
System.out.println("First element value: " +a[0]);
System.out.println("The finally statement is executed");
}
}
36
‫}‬

‫ذط‪ٚ‬ػی ثط٘بٔ‪ ٝ‬ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪Exception thrown :java.lang.ArrayIndexOutOfBoundsException: 3‬‬


‫‪First element value: 6‬‬
‫‪The finally statement is executed‬‬

‫زض ٔ‪ٛ‬ضز ثّ‪ٛ‬ن ‪ٞ‬بی ‪ try, catch , finally‬ث‪٘ ٝ‬ىبر ظیط س‪ٛ‬ػ‪ ٝ‬و‪ٙ‬یس‪:‬‬

‫ثّ‪ٛ‬ن ‪ٞ catch‬طٌع ثس‪ ٖٚ‬ثّ‪ٛ‬ن ‪ٕ٘ try‬ی س‪ٛ‬ا٘س ثبقس‪.‬‬ ‫‪‬‬

‫ثّ‪ٛ‬ن ‪ finally‬یه ثّ‪ٛ‬ن اذشیبضی اؾز ‪ٌ ٚ‬ب‪ٞ‬ی ا‪ٚ‬لبر ِع‪ٔٚ‬ی ٘ساضز و‪ ٝ‬ایٗ ثّ‪ٛ‬ن ٘یع آ‪ٚ‬ضز‪ ٜ‬ق‪ٛ‬ز ‪.‬‬ ‫‪‬‬

‫ثّ‪ٛ‬ن ‪ try‬ضا ٕ٘ی س‪ٛ‬اٖ ث‪ ٝ‬س‪ٟٙ‬بیی ث‪ ٝ‬وبض ثطز ‪ ٚ‬ثبیس حسالُ یه ثّ‪ٛ‬ن ‪ catch‬یب ‪ٕٞ finally‬طا‪ ٜ‬آٖ ثبقس‪.‬‬ ‫‪‬‬

‫ثیٗ ثّ‪ٛ‬ن ‪ٞ‬بی ‪ٕ٘ try, catch, finally‬ی س‪ٛ‬اٖ ‪ٞ‬یچ وسی لطاض زاز‪.‬‬ ‫‪‬‬

‫هطخع کٌٌذُ ّای جاٍا)‪(Java Identifiers‬‬

‫‪ ٕٝٞ‬اًٖبی ثط٘بٔ‪ٛ٘ ٝ‬یؿی ػب‪ٚ‬ا اظ ػّٕ‪ ٝ‬فیّس ‪ٞ‬ب ‪ٔ ٚ‬شغیط ‪ٞ‬ب ‪ٔ ٚ‬شس‪ٞ‬ب ‪ ٚ‬والؼ ‪ٞ‬ب ‪ ٚ‬اقیب ثبیس ٘بْ زاقش‪ ٝ‬ثبق‪ٙ‬س) ٘بْ ‪ٞ‬بیی و‪ ٝ‬ثطای ایٗ ٔ‪ٛ‬اضز ث‪ ٝ‬وبض ٔیط‪ٚ‬ز‬
‫‪٘Identifier‬بْ زاضز) زض ػب‪ٚ‬ا ان‪ِٛ‬ی ثطای ‪ٞ Identifier‬ب ‪ٚ‬ػ‪ٛ‬ز زاضز و‪ ٝ‬و‪ ٝ‬ایٗ ان‪ٖ َٛ‬جبضس‪ٙ‬س اظ‪:‬‬

‫‪ٞ Identifier ٕٝٞ ),‬ب ثبیس ثب یه حطف ‪ a-z‬یب ‪ A-Z‬یب ٖالٔز ‪ ٚ $‬یب ٖالٔز _ ظیطذٍ یب )‪(underline‬قط‪ ٔٚ‬قس‪ ٜ‬ثبقس ‪ٕ٘ ٚ‬ی س‪ٛ‬ا٘یٓ ‪Identifier‬‬
‫ضا ثب ٖسز قط‪ ٔٚ‬و‪ٙ‬یٓ‪.‬‬
‫‪ )-‬ثٗس اظ ا‪ِٚ‬یٗ وبضاوشط ٔی س‪ٛ‬اٖ ‪ٞ‬ط سطویجی اظ حط‪ٚ‬ف ‪ ٚ‬اٖساز ضا ثطای ٘بْ ‪ Identifier‬ث‪ ٝ‬وبض ثطز) ث‪َٛ ٝ‬ض ٔظبَ وّٕ‪ a2b ٝ‬ثطای ٘بْ ٌصاضی ٔ‪ٙ‬بؾت‬
‫اؾز ‪ِٚ‬ی ‪9r‬ثبٖض ایؼبز ذُب ذ‪ٛ‬ا‪ٞ‬س قس‪.‬‬
‫‪ ).‬ثطذی وّٕبر زض ػب‪ٚ‬ا ث‪ٖٛٙ ٝ‬اٖ وّٕبر وّیسی سٗطیف قس‪ ٜ‬ا٘س) اظ آ٘‪ٟ‬ب ثطای ٘بْ ٌصاضی ‪ٞ Identifier‬ب ٕ٘ی س‪ٛ‬اٖ اؾشفبز‪ ٜ‬وطز) ٔب٘‪ٙ‬س ‪ while‬یب‪for‬‬
‫‪ )/‬ػب‪ٚ‬ا ‪ٕٞ‬بٍ٘‪ ٝ٘ٛ‬و‪ ٝ‬زض ُّٔت لجُ ٌفشیٓ ث‪ ٝ‬ثعضٌی ‪ ٚ‬و‪ٛ‬چىی حط‪ٚ‬ف حؿبؼ اؾز ‪ ٚ‬ایٗ لب٘‪ ٖٛ‬زض ٔ‪ٛ‬ضز ‪ٞ Identifier‬ب ‪ ٓٞ‬نسق ٔی و‪ٙ‬س‪.‬‬
‫‪ٛٔ )0‬اضزی و‪ ٝ‬زض ػب‪ٚ‬ا ٔؼبظ ‪ٞ‬ؿش‪ٙ‬س ‪ٔ age, $salary, value, 1value‬ی ثبق‪ٙ‬س‪.‬‬
‫‪ٛٔ )1‬اضز ض‪ٚ‬ثط‪ٔ ٚ ٚ‬كبث‪ ٝ‬آٖ زض ػب‪ٚ‬ا ٔؼبظ ٘یؿش‪ٙ‬س‪abc, -salay1235‬‬

‫‪ّmodifire‬ا‬

‫‪ٞModifier‬ب وّٕبر وّیسی ‪ٞ‬ؿش‪ٙ‬س و‪ ٝ‬ثطای سغییط ٔٗ‪ٙ‬ی سٗبضیف اؾشفبز‪ٔ ٜ‬ی ق‪٘ٛ‬س) ظثبٖ ػب‪ٚ‬ا ‪ٞ Modifier‬بی ٔشفب‪ٚ‬سی زاض٘س و‪ ٝ‬ز‪ ٚ‬زؾش‪ ٟٓٔ ٝ‬آ٘‪ٟ‬ب ٖجبضس‪ٙ‬س‬
‫اظ‪:‬‬

‫‪ٞModifier ),‬بی زؾشطؾی‬


‫‪ٞModifier )-‬بی غیطزؾشطؾی‬

‫‪37‬‬
‫‪ٞ Modifier‬ب ضا ٘كبٖ‬ ‫ثطای اؾشفبز‪ ٜ‬اظ ‪ Modifier‬قٕب ثبیس ٘بْ آٖ ضا لجُ اظ سٗطیف والؼ ‪ ٚ‬یبٔشس ‪ ٚ‬یب ٔشغیط ذ‪ٛ‬ز ثیب‪ٚ‬ضیس) زض وس ظیط ٘ح‪ ٜٛ‬اؾشفبز‪ ٜ‬اظ‬
‫زاز‪ ٜ‬ایٓ‪.:‬‬

‫{ ‪public class className‬‬


‫‪// ...‬‬
‫}‬
‫;‪private booleanmyFlag‬‬
‫;‪static final double weeks = 9.5‬‬
‫;‪protected static final int BOXWIDTH = 42‬‬
‫{ )‪public static void main(String[] arguments‬‬
‫‪// body of method‬‬
‫}‬

‫وّٕبسی ٔب٘‪ٙ‬س ‪ٞ Modifierًٖٛ public , private, final‬ب ‪ٞ‬ؿش‪ٙ‬س‪.‬‬

‫‪ّModifier‬ای دستزسی‬

‫ػب‪ٚ‬ا ثطای ایٗ و‪ ٝ‬ؾُح زؾشطؾی ضا ٔكرم و‪ٙ‬س اظ سٗسازی ‪ Modifier‬زؾشطؾی اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬س) ٔكرم وطزٖ ؾُح زؾشطؾی ٔی س‪ٛ‬ا٘س زض ؾُح والؼ‬
‫یب ٔشس یب ٔشغیط ثبقس) چ‪ٟ‬بض ؾُح زؾشطؾی زض ػب‪ٚ‬ا ٖجبضس‪ٙ‬س اظ ‪:‬‬

‫‪ modifier‬اؾشفبز‪٘ ٜ‬ك‪ٛ‬ز‬ ‫لبثُ زض زؾشطؼ زض وُ دىیغ) ایٗ ؾُح زؾشطؾی ث‪َٛ ٝ‬ض دیكفطو ثطای ‪ ٕٝٞ‬ی ٔكره‪ٞ ٝ‬ب ٔی ثبقس ‪ ٚ‬اٌط اظ ‪ٞ‬یچ‬ ‫‪‬‬

‫ایٗ ؾُح زؾشطؾی ثطای آٖ ٔكره‪ ٝ‬زض ٘ٓط ٌطفش‪ٔ ٝ‬ی ق‪ٛ‬ز) یٗ‪ٙ‬ی زض وُ دىیغ ‪ ٕٝٞ ٚ‬والؼ ‪ٞ‬بی ٔ‪ٛ‬ػ‪ٛ‬ز زض آٖ دىیغ لبثُ زؾشطؼ اؾز) ثطای‬
‫ٔظبَ ث‪ ٝ‬وس ظیط س‪ٛ‬ػ‪ٕ٘ ٝ‬بییس‬

‫;"‪String version = "1.5.1‬‬

‫{ )(‪booleanprocessOrder‬‬
‫;‪return true‬‬
‫}‬

‫لبثُ زؾشطؼ زض والؼ سٗطیف قس‪ )ٜ‬ایٗ ؾُح زؾشطؾی فمٍ زض زاذُ والؾی و‪ٔ ٝ‬كره‪ ٝ‬ضا سٗطیف وطز‪ ٜ‬ایٓ لبثُ اؾشفبز‪ ٜ‬اؾز ‪ ٚ‬ثیط‪ ٖٚ‬اظ آٖ‬ ‫‪‬‬

‫لبثُ زؾشطؾی ٘یؿز) ثطای ایٗ ؾُح زؾشطؾی اظ ‪ private‬اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز) ایٗ ؾُح زؾشطؾی ٔحس‪ٚ‬ز و‪ٙٙ‬س‪ ٜ‬سطیٗ ؾُح زؾشطؾی اؾز) اؾشفبز‪ٜ‬‬
‫اظ زؾشطؾی ‪ private‬ضا‪ ٜ‬وذؿ‪ ِٝٛ‬وطزٖ ‪ ٚ‬د‪ٟٙ‬بٖ وطزٖ اَالٖبر والؼ اظ ؾبیط والؼ ‪ٞ‬ب اؾز) ثطای ٔظبَ ث‪ ٝ‬وس ظیط س‪ٛ‬ػ‪ٕ٘ ٝ‬بییس‬

‫{ ‪public class Logger‬‬


‫;‪private String format‬‬
‫{ )(‪public String getFormat‬‬
‫;‪return this.format‬‬
‫}‬

‫‪38‬‬
‫{ )‪public void setFormat(String format‬‬
‫;‪this.format = format‬‬
‫}‬
‫}‬

‫زض وس ثبال ٔشغیط ‪ format‬ث‪ ٝ‬ن‪ٛ‬ضر ‪ private‬سٗطیف قس‪ ٜ‬اؾز ث‪ٙ‬بثطایٗ ‪ٞ‬یچ ضا‪ٞ‬ی ثطای والؼ ‪ٞ‬بی زیٍط ‪ٚ‬ػ‪ٛ‬ز ٘ساضز و‪ ٝ‬ث‪َٛ ٝ‬ض ٔؿشمیٓ ث‪ ٝ‬ایٗ ٔشغیط‬
‫زؾشطؾی زاقش‪ ٝ‬ثبق‪ٙ‬س) ثطای ایٗ و‪ ٝ‬اظ ؾبیط والؼ ‪ٞ‬ب ث‪ ٝ‬ایٗ ٔشغیط زؾشطؾی زاقش‪ ٝ‬ثبقیٓ ز‪ٔ ٚ‬شس ثب ٘بْ ‪ٞ‬بی ‪getFormat‬و‪ٔ ٝ‬مساض و‪٘ٛٙ‬ی ٔشغیط ضا ثطٔیٍطزا٘س‬
‫‪ get, set‬زض ػب‪ٚ‬ا ثؿیبض ضایغ اؾز ‪ ٚ‬ایٗ ٔشس‪ٞ‬ب‬ ‫‪setFormatٚ‬و‪ٔ ٝ‬مساض ٔشغیط ضا ثطاثط ثب ‪ٚ‬ض‪ٚ‬زی اـ لطاض ٔی ز‪ٞ‬س سٗطیف وطز‪ ٜ‬ایٓ) سٗطیف ٔشس ‪ٞ‬بی‬
‫ث‪ٗٔgetter,setterٝ‬ط‪ٚ‬ف ‪ٞ‬ؿش‪ٙ‬س‪.‬‬

‫لبثُ اؾشفبز‪ ٜ‬زض ‪ ٕٝٞ‬ػب) ثطای ایٗ و‪ ٕٝٞ ٝ‬ػب حشی ثیط‪ ٖٚ‬اظ دىیغ ‪ٔ ٓٞ‬كره‪ٔ ٝ‬ب لبثُ زؾشطؼ ثبقس اظ ایٗ ؾُح زؾشطؾی اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬یٓ)‬ ‫‪‬‬

‫ٔظال والؾی ٘‪ٛ‬قش‪ ٝ‬ایٓ و‪ٔ ٝ‬ی ذ‪ٛ‬ا‪ٞ‬یٓ زض ‪ ٕٝٞ‬ػبی ثط٘بٔ‪ ٝ‬لبثُ اؾشفبز‪ ٜ‬ثبقس) ثطای ایٗ وبض ثبیس اظ ایٗ ؾُح زؾشطؾی اؾشفبز‪ ٜ‬و‪ٙ‬یٓ) ثطای‬
‫ٔكرم وطزٖ ایٗ ؾُح زؾشطؾی اظ ‪ public‬اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز) زض ‪ٚ‬ضاطز ٔشس‪ٞ‬ب ‪ٔ ٚ‬شغیط ‪ٞ‬بی ‪ public‬زض والؼ فطظ٘س ٘یع لبثُ اؾشفبز‪ٔ ٜ‬ی ثبق‪ٙ‬س)‬
‫ث‪ٖ ٝ‬جبضر زیٍط ػعئی اظ والؼ فطظ٘س ٔحؿ‪ٛ‬ة ٔی ق‪٘ٛ‬س و‪ ٝ‬اظ والؼ دسض ث‪ ٝ‬اضص ضؾیس‪ ٜ‬ا٘س) ثطای ٔظبَ ث‪ ٝ‬وس ظیط زلز و‪ٙ‬یس ‪:‬‬

‫{ )‪public static void main(String[] arguments‬‬


‫‪// ...‬‬
‫}‬

‫سبثٕ ‪ main‬زض ثط٘بٔ‪ٞ ٝ‬ب ثبیس ث‪ ٝ‬ن‪ٛ‬ضر ‪ public‬ثبقس) اٌط ایٗ سبثٕ ‪٘ public‬جبقس ثط٘بٔ‪ ٝ‬لبثّیز اػطا ٘ساضز‪.‬‬

‫لبثُ اؾشفبز‪ ٜ‬زض‪ٞsubClass‬ب) ثطای ایٗ و‪ٔ ٝ‬شغیط یب ٔشسی زض والؼ دسض لبثُ زؾشطؼ ثبقس ‪ٕٞ ٚ‬چ‪ٙ‬یٗ زض والؼ فطظ٘س ٘یع لبثُ اؾشفبز‪ ٜ‬ثبقس ‪ِٚ‬ی‬ ‫‪‬‬

‫زض ػبی زیٍط ایٗ أط ٕٔىٗ ٘جبقس اظ ایٗ ؾُح زؾشطؾی اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬یٓ) ثطای ٔكرم وطزٖ ایٗ ؾُح زؾشطؾی ثبیس اظ وّٕ‪ ٝ‬وّیسی‬
‫‪protected‬لجُ اظ سٗطیف ق‪ٙ‬بؾ‪ ٝ‬اؾشفبز‪ ٜ‬وطز) ‪ٕٞ‬چ‪ٙ‬یٗ زض ‪ٍٙٞ‬بْ اؾشفبز‪ ٜ‬اظ ایٗ ‪ Modifier‬ق‪ٙ‬بؾ‪ ٝ‬زض زاذُ دىیغ ٘یع لبثُ زؾشطؾی ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز)‬
‫والؼ ‪ٞ‬ب ‪ ٚ‬ای‪ٙ‬شطفیؽ ‪ٞ‬ب ضا ٕ٘ی س‪ٛ‬اٖ ث‪ ٝ‬ن‪ٛ‬ضر ‪ protected‬سٗطیف وطز‪.‬‬

‫قَاًیي دستزسی در ٍراثت‬

‫ل‪ٛ‬ا٘یٗ ظیط ظٔبٖ ‪ٚ‬ضاطز والؼ ‪ٞ‬ب ثبیس ضٖبیز ق‪ٛ‬ز‬

‫‪ٔ ),‬شس‪ٞ‬بیی و‪ ٝ‬زض والؼ دسض ث‪ ٝ‬ن‪ٛ‬ضر ‪ٗٔ public‬طفی قس‪ ٜ‬ا٘س ثبیس زض والؼ فطظ٘س ‪ ٓٞ‬ث‪ ٝ‬ن‪ٛ‬ضر ‪ public‬ثبق‪ٙ‬س‪.‬‬

‫‪ٔ )-‬شس‪ٞ‬بیی و‪ ٝ‬زض والؼ دسض ث‪ ٝ‬ن‪ٛ‬ضر ‪ٗٔ protected‬طفی قس‪ ٜ‬ا٘س ثبیس زض والؼ فطظ٘س ث‪ ٝ‬ن‪ٛ‬ضر ‪ ٚ protected‬یب ‪ public‬ثبق‪ٙ‬س ‪ِٚ‬ی ٕ٘ی س‪ٛ‬ا٘‪ٙ‬س‬
‫ث‪ ٝ‬ن‪ٛ‬ضر ‪ private‬سٗطیف ق‪٘ٛ‬س‪.‬‬

‫‪ٔ ).‬شس‪ٞ‬بیی و‪ ٝ‬ثس‪ Modifier ٖٚ‬زؾشطؾی زض والؼ دسض سٗطیف قس‪ ٜ‬ا٘س ٕ٘ی س‪ٛ‬ا٘‪ٙ‬س زض والؼ فطظ٘س ث‪ ٝ‬ن‪ٛ‬ضر ‪ private‬ثبق‪ٙ‬س‪.‬‬

‫‪39‬‬
‫ زؾشطؾی‬ٚ ٜ‫س‬ٞ‫ زض والؼ فطظ٘س انال لبثُ ٔكب‬ٚ ‫س‬ٙ‫ اضص ضؾیسٖ ٘یؿش‬ٝ‫ ا٘س لبثُ ث‬ٜ‫ سٗطیف قس‬private ‫ضر‬ٛ‫ ن‬ٝ‫ زض والؼ دسض ث‬ٝ‫بیی و‬ٞ‫) ٔشس‬/
.‫س‬ٙ‫ٕ٘ی ثبق‬

‫ّای غیزدستزسی‬Modifier

ٗ‫س) ای‬ٙ‫ ای ٔی ثبق‬ٝ٘‫ی ػساٌب‬ٙٗٔ ‫طوساْ زاضای‬ٞ ٚ ‫ ؾُح زؾشطؾی ٘ساض٘س‬ٝ‫ ضثُی ث‬ٝ‫ا ٔی دطزاظیٓ و‬ٚ‫بی ػب‬ٞ Modifier ‫ ٔٗطفی سٗسازی اظ‬ٝ‫ ث‬ٝٔ‫زض ازا‬
:‫ ا٘س‬ٜ‫ آٔس‬ٝٔ‫ب زض ازا‬ٞModifier

‫ اقیب ٔكشطن‬ٕٝٞ ٗ‫یٗ ثی‬ٙ‫ٕچ‬ٞ ٚ ‫س‬ٙ‫ٖ ؾبذز قی اظ والؼ لبثُ زؾشطؼ ثبق‬ٚ‫ ثس‬ٝ‫بیی ثؿبظیٓ و‬ٞ‫ ٔشغیط‬ٚ ‫ب‬ٞ‫ ٔشس‬ٝ‫ ثطای ایٗ و‬5 static ‫ اظ‬ٜ‫اؾشفبز‬ 

ٖ‫ٖ ؾبذز قی اظ آ‬ٚ‫ ثس‬ٚ ‫ز والؼ‬ٛ‫یٓ) آٖ ٔشس اظ َطیك ٘بْ ذ‬ٙ‫ سٗطیف و‬static ‫ ٖجبضر زیٍط اٌط یه ٔشس ضا‬ٝ‫ز) ث‬ٛ‫ ٔی ق‬ٜ‫ اؾشفبز‬static ‫س اظ‬ٙ‫ثبق‬
َ‫ وطز) ثطای ٔظب‬ٜ‫ز زض زاذُ والؼ اؾشفبز‬ٛ‫ػ‬ٛٔ static ‫بی غیط‬ٞ‫ ٔشغیط‬ٚ ‫ب‬ٞ‫اٖ اظ فیّس‬ٛ‫ ٕ٘ی س‬static ‫بی‬ٞ‫ اؾز) زض سٗطیف ٔشس‬ٜ‫والؼ لبثُ اؾشفبز‬
:‫یس‬ٙ‫ وس ظیط زلز و‬ٝ‫ ث‬Modifier ٗ‫ای‬

public class InstanceCounter {

private static int numInstances = 0;

protected static int getCount() {


return numInstances;
}

private static void addInstance() {


numInstances++;
}

InstanceCounter() {
InstanceCounter.addInstance();
}

public static void main(String[] arguments) {


System.out.println("Starting with " +
InstanceCounter.getCount() + " instances");
for (int i = 0; i< 500; ++i){
new InstanceCounter();
}
System.out.println("Created " +
InstanceCounter.getCount() + " instances");
}
}

.‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی وس ثبال ث‬ٚ‫ذط‬

40
‫‪Started with 0 instances‬‬
‫‪Created 500 instances‬‬

‫‪numInstances‬ثیٗ ‪ ٕٝٞ‬اقیب ٔكشطن اؾز ظیطا و‪ static ٝ‬سٗطیف قس‪ٜ‬‬ ‫زِیُ ایٗ و‪ ٝ‬قٕبضـ اٖساز ث‪ ٝ‬سٗساز اقیب ؾبذش‪ ٝ‬قس‪ ٜ‬اؾز ایٗ اؾز و‪ٔ ٝ‬شغیط‬
‫اؾز) ‪ٕٞ‬چ‪ٙ‬یٗ ث‪ّٖ ٝ‬ز ایٗ و‪ ٝ‬سبثٕ‪addInstance‬ث‪ ٝ‬ن‪ٛ‬ضر ‪ static‬سٗطیف قس‪ ٜ‬اؾز ٔی س‪ٛ‬اٖ ثس‪ ٖٚ‬زاقشٗ قی ث‪ ٝ‬آٖ زؾشطؾی زاقز‪.‬‬

‫اؾشفبز‪ ٜ‬اظ ‪ 5 final‬ایٖ ‪ Modifier‬ثؿیبض ٔ‪ ٟٓ‬اؾز) اٌط اظ ایٗ ‪ Modifier‬ثطای ٔٗطفی والؼ ذ‪ٛ‬ز اؾشفبز‪ ٜ‬و‪ٙ‬یس ایٗ والؼ زیٍط ٕ٘ی س‪ٛ‬ا٘س‬ ‫‪‬‬

‫فطظ٘س زاقش‪ ٝ‬ثبقس یٗ‪ٙ‬ی ٕ٘ی س‪ٛ‬اٖ اظ آٖ ثب اؾشفبز‪ ٜ‬اظ وّٕ‪ ٝ‬وّیسی ‪ extends‬والؼ فطظ٘س ؾبذز) اٌط اظ ایٗ ‪ Modifier‬زض سٗطیف ٔشس زض والؼ‬
‫دسض اؾشفبز‪ ٜ‬و‪ٙ‬یس زض والؼ ‪ٞ‬بی فطظ٘س ٕ٘ی س‪ٛ‬ا٘یس ایٗ ٔشس ضا ث‪ ٝ‬ن‪ٛ‬ضر ؾفبضقی ثبظ٘‪ٛ‬یؿی یب ‪ override‬و‪ٙ‬یس) اٌط اظ ایٗ ‪ Modifier‬زض سٗطیف‬
‫ٔشغیط اؾشفبز‪ ٜ‬و‪ٙ‬یس) فمٍ یه ثبض ٔی س‪ٛ‬ا٘یس آٖ ٔشغیط ضا ٔمساض ز‪ٞ‬ی و‪ٙ‬یس) اِجش‪ ٝ‬الظْ ٘یؿز و‪ ٝ‬ظٔبٖ سٗطیف ٔمساض ز‪ٞ‬ی و‪ٙ‬یٓ) أب اٌط یه ثبض‬
‫ٔمساضز‪ٞ‬ی و‪ٙ‬یٓ زیٍط لبثُ ٔمساضز‪ٞ‬ی ٘یؿز) ثطای ٔظبَ ث‪ ٝ‬وس ظیط زلز و‪ٙ‬یس‪:‬‬

‫{‪public class Test‬‬


‫;‪final int value = 10‬‬

‫;‪public static final int BOXWIDTH = 6‬‬


‫;"‪static final String TITLE = "Manager‬‬

‫{)(‪public void changeValue‬‬


‫ذُب ایؼبز ذ‪ٛ‬ا‪ٞ‬س قس‪value = 12; //‬‬
‫}‬
‫}‬

‫اؾشفبز‪ ٜ‬اظ‪ 5 abstract‬ایٗ ‪ Modifier‬ظٔب٘ی اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز و‪ ٝ‬ثر‪ٛ‬ا‪ٞ‬یٓ والؾی و‪ٔ ٝ‬یؿبظیٓ نطفب والؼ دسض ثبقس) یٗ‪ٙ‬ی فمٍ ث‪ ٝ‬ایٗ ٔ‪ٛٓٙ‬ض ایٗ‬ ‫‪‬‬

‫‪ٕ٘ abstract‬ی س‪ٛ‬اٖ قی ػسیسی ثب اؾشفبز‪ ٜ‬اظ ‪new‬‬ ‫والؼ ضا ٔی ؾبظیٓ و‪ ٝ‬ثمی‪ ٝ‬والؾ‪ٟ‬ب اظ آٖ ‪ٚ‬ضاطز زاقش‪ ٝ‬ثبق‪ٙ‬س) ‪ٕٞ‬چ‪ٙ‬یٗ اظ والؼ ‪ٞ‬بی‬
‫ؾبذز) یه والؼ ٕ٘ی س‪ٛ‬ا٘س ‪ final ٓٞ‬ثبقس ‪ ) abstract ٓٞ‬اٌط والؾی زاضای ٔشس ‪ abstract‬ثبقس ذ‪ٛ‬ز آٖ والؼ ثبیس حشٕب ث‪ ٝ‬ن‪ٛ‬ضر‬
‫‪ abstract‬زاقش‪ ٝ‬ثبقس) حبَ اٌط اظ ایٗ‬ ‫‪abstract‬سٗطیف قس‪ ٜ‬ثبقس) یه والؼ ‪ٔ abstract‬ی س‪ٛ‬ا٘س ‪ٔ ٓٞ‬شس ٕٔٗ‪ِٛ‬ی زاقش‪ ٝ‬ثبقس ‪ٔ ٓٞ ٚ‬شس‬
‫‪Modifier‬ثطای ٔشس اؾشفبز‪ ٜ‬و‪ٙ‬یٓ) ٔشس ضا دیبز‪ ٜ‬ؾبظی ٕ٘ی و‪ٙ‬یٓ) ‪ ٚ‬فمٍ قىُ ٔٗطفی ٔشس ضا ٔی ٘‪ٛ‬یؿیٓ ‪ ٚ‬زض والؼ ‪ٞ‬بی فطظ٘س آٖ ضا سٗطیف‬
‫ذ‪ٛ‬ا‪ٞ‬یٓ وطز) زلز و‪ٙ‬یس و‪ٍٙٞ ٝ‬بٔی و‪ٔ ٝ‬شس ضا ‪ abstract‬سٗطیف ٔی و‪ٙ‬یٓ ثبیس ثٗس اظ سٗطیف اظ ٖالٔز ؾٕی وبِٗ اؾشفبز‪ ٜ‬و‪ٙ‬یٓ) زض وس ظیط ٔظبِی‬
‫اظ سٗطیف والؼ ‪ٔ ٚ‬شس ‪ abstract‬آٔس‪ ٜ‬اؾز‪.‬‬

‫{ ‪public abstract class GraphicObject‬‬


‫‪// declare fields‬‬
‫‪// declare nonabstract methods‬‬
‫;)(‪abstract void draw‬‬
‫}‬

‫‪41‬‬
‫‪ thread‬لبثُ‬ ‫وّٕ‪ ٝ‬وّیسی ‪ synchronized‬ث‪ ٝ‬ایٗ ٔ‪ٛٓٙ‬ض ٔ‪ٛ‬ضز اؾشفبز‪ ٜ‬لطاض ٔی ٌیطز و‪ٔ ٝ‬كرم و‪ٙ‬س و‪ ٝ‬یه ٔشس زض یه ظٔبٖ فمٍ س‪ٛ‬ؾٍ یه‬ ‫‪‬‬

‫زؾشطؾی اؾز) ایٗ ‪ٔ Modifier‬ی س‪ٛ‬ا٘س ثب ‪ٞ‬ط وساْ اظ ‪ Modifier 4‬زؾشطؾی ث‪ ٝ‬وبض ثط‪ٚ‬ز) ثطای ٔظبَ ث‪ ٝ‬وس ظیط زلز و‪ٙ‬یس ‪:‬‬

‫{)(‪public synchronized void showDetails‬‬


‫‪.......‬‬
‫}‬

‫اظ وّٕ‪ ٝ‬وّیسی ‪ transient‬ثسیٗ ٔ‪ٛٓٙ‬ض اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز و‪ ٝ‬ث‪ٔ ٝ‬بقیٗ ٔؼبظی ػب‪ٚ‬ا )‪(JVM‬ثف‪ٕٟ‬ب٘یٓ و‪ٍٙٞ ٝ‬بٔی و‪ٔ ٝ‬حش‪ٛ‬یبر قی ضا ؾطیبِیع ٔی‬ ‫‪‬‬

‫و‪ٙ‬س‪ٔ ،‬شغیطی و‪ ٝ‬ث‪ ٝ‬ن‪ٛ‬ضر ‪ transient‬سٗطیف قس‪ ٜ‬اؾز ضا ٘بزیس‪ ٜ‬ثٍیطز) ثطای ٔظبَ ث‪ ٝ‬وس ظیط زلز و‪ٙ‬یس ‪.‬‬

‫;‪public transient int limit = 55‬‬ ‫‪// will not persist‬‬


‫‪public int b; // will persist‬‬

‫اظ ‪ volatile‬ظٔب٘ی اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬یٓ و‪ ٝ‬اظ چ‪ٙ‬س ‪ thread‬زض ثط٘بٔ‪ ٝ‬اؾشفبز‪ ٜ‬و‪ٙ‬یٓ) ٔ‪ٛٓٙ‬ض اظ اؾشفبز‪ ٜ‬اظ ایٗ ‪ Modifier‬ایٗ اؾز و‪ٚ ٝ‬لشی اظ ایٗ‬ ‫‪‬‬

‫‪Modifier‬ثطای یه ٔشغیط اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬یٓ ث‪ٔ ٝ‬بقیٗ ٔؼبظی ػب‪ٚ‬ا ٔی ٌ‪ٛ‬ییٓ و‪ ٕٝٞ ٝ‬ی ‪ٞ thread‬ب اٌط ٔشغیط ٔ‪ٛ‬ضز ٘ٓط ضا زض حبفٓ‪ ٝ‬وف ذ‪ٛ‬ز‬
‫سغییط ثس‪ٙٞ‬س ثبیس آٖ سغییط ثط ض‪ٚ‬ی ٔشغیط زض حبفٓ‪ ٓٞ ٝ‬اٖٕبَ ق‪ٛ‬ز) زِیُ ایٗ وبض ایٗ اؾز و‪ ٝ‬اٌط چ‪ٙ‬س ‪ thread‬ث‪ ٝ‬ن‪ٛ‬ضر ‪ٕٞ‬عٔبٖ اظ یه ٔشغیط‬
‫‪ Modifier‬فمٍ ثط ض‪ٚ‬ی فیّس‪ٞ‬بی والؼ لبثُ اؾشفبز‪ٜ‬‬ ‫اؾشفبز‪ٔ ٜ‬ی و‪ٙٙ‬س ٔمساض ٔشغیط زاز‪ ٜ‬لسیٕی ٘ساقش‪ ٝ‬ثبقس ‪ٕٞ ٚ‬یك‪ٍٕٞ ٝ‬بْ دیف ثط‪ٚ‬یٓ) ایٗ‬
‫اؾز) یه ٔشغیط ‪ٔ volatile‬ی س‪ٛ‬ا٘س ‪ null‬ثبقس) ثطای ٔظبَ ث‪ ٝ‬وس ظیط زلز و‪ٙ‬یس‪:‬‬

‫{‪public class MyRunnable implements Runnable‬‬


‫;‪private volatile boolean active‬‬

‫{)(‪public void run‬‬


‫;‪active = true‬‬
‫{)‪while (active‬‬
‫‪// some code here‬‬
‫}‬
‫}‬

‫{)(‪public void stop‬‬


‫;‪active = false‬‬
‫}‬
‫}‬

‫اٌط وس ‪ run‬ضا س‪ٛ‬ؾٍ یه ‪ thread‬اػطا و‪ٙ‬یٓ ‪ ٚ‬اٌط ٔشس ‪ stop‬ضا س‪ٛ‬ؾٍ یه ‪ thread‬زیٍط اػطا و‪ٙ‬یٓ ٕٔىٗ اؾز و‪ ٝ‬زض ذٍ )‪ while(active‬اظ ٔشغیط‬
‫‪active‬یه وذی زض حبفٓ‪ ٝ‬وف ٔطث‪ ٌٛ‬ث‪ thread ٝ‬اػطا و‪ٙٙ‬س‪ٛٔ ٜ‬ػ‪ٛ‬ز ثبقس) ث‪ٙ‬بثطایٗ حشی اٌط ٔشس ‪ ٓٞ stop‬اػطا ق‪ٛ‬ز ثط٘بٔ‪ٔ ٝ‬ش‪ٛ‬لف ٕ٘ی ق‪ٛ‬ز) أب زض ایٗ‬
‫ثط٘بٔ‪ ٝ‬ث‪ ٝ‬زِیُ ایٗ و‪ٔ ٝ‬شغیط ‪ active‬ث‪ ٝ‬ن‪ٛ‬ضر ‪ٗٔ volatile‬طفی قس‪ ٜ‬اؾز‪ ،‬اٌط زض ٔشس ‪ٔ stop‬مساض ایٗ ٔشغیط ثطاثط ‪ False‬لطاض ثٍیطز زض ‪ٕٞ‬بٖ ظٔبٖ ٔشس‬
‫‪ٔ ٓٞrun‬ش‪ٛ‬لف ذ‪ٛ‬ا‪ٞ‬س قس‪.‬‬

‫‪42‬‬
‫والؼ‪Wrapper‬‬

‫… ‪byte,int, long, double ,‬اؾشفبز‪ٜ‬‬ ‫‪ٚ‬لشی و‪ ٝ‬قٕب اظ اٖساز زض ػب‪ٚ‬ا اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬یس ث‪ ٝ‬ایٗ ٔٗ‪ٙ‬ی اؾز و‪ ٝ‬قٕب اظ ا٘‪ٛ‬أ زاز‪ٞ ٜ‬بی ا‪ِٚ‬ی‪ ٝ‬زض ػب‪ٚ‬ا ٔظُ‬
‫ٔی ٕ٘بییس) ثطای ٔظبَ ث‪ ٝ‬وس ظیط س‪ٛ‬ػ‪ ٝ‬و‪ٙ‬یس‪:‬‬

‫;‪int i = 5000‬‬
‫;‪float gpa = 13.65‬‬
‫;‪byte mask = 0xaf‬‬

‫زض ظٔبٖ ثط٘بٔ‪ٛ٘ ٝ‬یؿی ٕٔىٗ اؾز ‪ٚ‬يٗیشی دیف ثیبیس و‪ٔ ٝ‬ب ث‪ ٝ‬ػبی ا٘‪ٛ‬أ زاز‪ ٜ‬ا‪ِٚ‬ی‪ ٝ‬اظ اقیبء اؾشفبز‪ ٜ‬و‪ٙ‬یٓ) ػب‪ٚ‬ا ایٗ أط ضا ثب اؾشفبز‪ ٜ‬اظ والؼ ‪ٞ‬بی‬
‫‪ٔwrapper‬یؿطٔی ؾبظز) زض ػب‪ٚ‬ا والؼ ‪ٞ‬بیی ‪ٚ‬ػ‪ٛ‬ز زاضز و‪ٔ ٝ‬ش‪ٙ‬بْط ثب ا٘‪ٛ‬أ زاز‪ ٜ‬ا‪ِٚ‬ی‪ٞ ٝ‬ؿش‪ٙ‬س ‪ ٚ‬زض ایٗ والؼ ‪ٞ‬ب ٔؼٕ‪ٔ ٖٝٛ‬شس‪ٞ‬بیی سٗطیف قس‪ ٜ‬اؾز و‪ٝ‬‬
‫ٔی س‪ٛ‬ا٘س زض ثط٘بٔ‪ٛ٘ ٝ‬یؿی ثؿیبض ٔ‪ٛ‬ضز اؾشفبز‪ ٜ‬لطاض ثٍیطز) ‪ ٕٝٞ‬ی والؼ ‪ٞ‬بی ‪ wrapper‬اظ والؼ ‪ Number‬اضص ثطز‪ ٜ‬ا٘س) قىُ ظیط ا٘‪ٛ‬أ ایٗ والؼ ‪ٞ‬ب‬
‫ضا ٘كبٖ ٔی ز‪ٞ‬س‪.‬‬

‫اقیبئی و‪ ٝ‬اظ والؼ ‪ wrapper‬ؾبذش‪ٔ ٝ‬ی ق‪ٛ‬ز ٔی س‪ٛ‬ا٘س یه ٔمساض اظ ٘‪ ٔٛ‬زاز‪ٛٔ ٜ‬ضز ٘ٓط ضا زضذ‪ٛ‬ز شذیط‪ ٜ‬و‪ٙ‬س) سجسیُ ٘‪ ٔٛ‬زاز‪ٚ ٜ‬الٗی ث‪ ٝ‬یه قی ضا‬
‫‪ٔ wrapper‬ی ؾبظیٓ ثبیس زض ‪ constructor‬آٖ یه‬ ‫‪ٔboxing‬ی ٌ‪ٛ‬ی‪ٙ‬س ‪ ٚ‬ایٗ ُٖٕ س‪ٛ‬ؾٍ وبٔذبیّط ا٘ؼبْ ٔی ق‪ٛ‬ز) ث‪ٙ‬بثطایٗ ظٔب٘ی و‪ ٝ‬یه قی اظ والؼ‬
‫‪ٔ unboxing‬ی ٌ‪ٛ‬ی‪ٙ‬س) والؼ ‪ Number‬زض‬ ‫‪ wrapper‬ث‪ ٔٛ٘ ٝ‬زاز‪ ٜ‬ا‪ِٚ‬ی‪ ٝ‬ضا‬ ‫ٔمساض اظ ٘‪ ٔٛ‬زاز‪ٔ ٜ‬ش‪ٙ‬بؾت آٖ لطاض ز‪ٞ‬یٓ) سجسیُ قئی اظ والؼ‬
‫دىیغ‪java.lang‬لطاض زاضز) زض وس ظیط ٔظبِی اظ ‪ unboxing ٚ boxing‬آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز‪.‬‬

‫{‪public class Test‬‬

‫{)][‪public static void main(String args‬‬


‫‪Integer x = 5; // boxes int to an Integer object‬‬
‫;‪x = x + 10‬‬ ‫‪// unboxes the Integer to a int‬‬
‫;)‪System.out.println(x‬‬
‫}‬
‫}‬

‫‪43‬‬
‫٘شیؼ‪ ٝ‬اػطای وس ثبال ‪ 15‬ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز) ‪ٚ‬لشی و‪ ٝ‬یه قی اظ والؼ ‪ Integer‬ؾبذش‪ٔ ٝ‬ی ق‪ٛ‬ز ‪٘ ٚ‬بْ آٖ ضا ‪ٔ x‬ی ٌصاضیٓ) ‪ٚ‬لشی و‪ ٝ‬یه ٔمساض ٖسز نحیح ث‪ ٝ‬ایٗ‬
‫قئ ا٘شؿبة ٔی ز‪ٞ‬یٓ وبٔذبیّط ُٖٕ ‪ boxing‬ضا ا٘ؼبْ ٔی ز‪ٞ‬س ‪ ٚ‬آٖ ضا زض زاذُ یه قئ ٔی ضیعز) أب زض ذٍ ثٗس و‪ ُٕٖ ٝ‬ػٕٕ وطزٖ ٖسز ا٘ؼبْ ٔی ق‪ٛ‬ز‬
‫وبٔذبیّط ثبیس ‪ x‬ضا سجسیُ ث‪ ٔٛ٘ ٝ‬انّی ‪ int‬ثى‪ٙ‬س سب ثش‪ٛ‬ا٘س ثب ٖسز‪ 10‬ػٕٕ و‪ٙ‬س ‪ ٚ‬زض ایٗ حبِز ُٖٕ ‪ unboxing‬ا٘ؼبْ ٔی ق‪ٛ‬ز‪.‬‬

‫هتذّای کالس‪Number‬‬

‫زض ازأ‪ ٝ‬ث‪ِ ٝ‬یؿشی اظ ٔشس‪ٞ‬بی ٔ‪ٛ‬ػ‪ٛ‬ز زض والؼ ‪ٞ‬بی اضص ثطز‪ ٜ‬اظ والؼ ‪ Number‬آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز ‪ٞ ٚ‬طوساْ س‪ٛ‬يیح زاز‪ ٜ‬قس‪ ٜ‬ا٘س) والؼ ‪ٞ‬بی ‪wrapper‬‬

‫و‪ٌ ٝ‬فش‪ ٝ‬قس ‪ ٕٝٞ‬اظ والؼ ‪ Number‬اضص ثطز‪ ٜ‬ا٘س‪.‬‬

‫سبثٕ ‪ [datatype]Value‬ایٗ سبثٕ ُٖٕ سجسیُ ٘‪ ٔٛ‬زاز‪ ٜ‬قس‪ ٜ‬ضا ث‪ ٔٛ٘ ٝ‬ذ‪ٛ‬اؾش‪ ٝ‬قس‪ ٜ‬ا٘ؼبْ ٔی ز‪ٞ‬س) ٔمساض ‪ datatype‬زض ا‪ َٚ‬ایٗ سبثٕ ٔی س‪ٛ‬ا٘سثب‬ ‫‪‬‬

‫٘بْ ا٘‪ٛ‬أ زاز‪ٞ ٜ‬بی ٖسزی ػبیٍعیٗ ق‪ٛ‬ز س‪ٛ‬اثٕ ایٗ ٔشس ث‪ ٝ‬قىُ ظیط ‪ٞ‬ؿش‪ٙ‬س ‪:‬‬

‫)(‪byte byteValue‬‬
‫)(‪short shortValue‬‬
‫)(‪int intValue‬‬
‫)(‪long longValue‬‬
‫)(‪float floatValue‬‬
‫)(‪double doubleValue‬‬

‫س‪ٛ‬اثٕ ٌفش‪ ٝ‬قس‪ٔ ٜ‬شس‪ٞ‬بی دیف فطو ‪ٞ‬ؿش‪ٙ‬س ‪ٞ ٚ‬یچ دبضأشطی ٘ساض٘س ‪ٔ ٚ‬مساض ثبظٌكشی آ٘‪ٟ‬ب ‪ٕٞ‬بٖ ٔمساض ]‪ [datatype‬اؾز) ثطای زضن ث‪ٟ‬شط ث‪ ٝ‬وس ظیط س‪ٛ‬ػ‪ٝ‬‬
‫و‪ٙ‬یس‪:‬‬

‫{‪public class Test‬‬

‫{)][‪public static void main(String args‬‬


‫;‪Integer x = 5‬‬
‫زاز‪ ٜ‬ثبیز ثطٔی ٌطزا٘س ‪//‬‬
‫;) )(‪System.out.println( x.byteValue‬‬

‫٘‪ ٔٛ‬زاز‪ ٜ‬زاثُ ثطٔیٍطزا٘س ‪//‬‬


‫;))(‪System.out.println(x.doubleValue‬‬

‫٘‪ ٔٛ‬زاز‪ ٜ‬الً٘ ثطٔی ٌطزا٘س ‪//‬‬


‫;) )(‪System.out.println( x.longValue‬‬
‫}‬
‫}‬

‫٘شیؼ‪ ٝ‬اػطای وس ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪.‬‬

‫‪44‬‬
‫‪5‬‬
‫‪5.0‬‬
‫‪5‬‬

‫ٔشس‪:compareTo‬ایٗ ٔشس ٖسز قی نسا ظ٘‪ٙ‬س‪ ٜ‬ضا ثب ٖسزی و‪ ٝ‬ث‪ٖٛٙ ٝ‬اٖ آضٌ‪ٔٛ‬بٖ ث‪ٔ ٝ‬شس زاز‪ ٜ‬قس‪ ٜ‬ضا ٔمبیؿ‪ٔ ٝ‬ی و‪ٙ‬س) ثب اؾشفبز‪ ٜ‬اظ ایٗ سبثٕ ٔی‬ ‫‪‬‬

‫س‪ٛ‬اٖ اٖساز اظ ا٘‪ٛ‬أ ٔشفب‪ٚ‬ر ضا ثب ‪ٔ ٓٞ‬مبیؿ‪ ٝ‬وطز ‪ِٚ‬ی ثبیس زلز زاقز و‪ٞ ٝ‬ط ز‪ٖ ٚ‬سز اظ یه ٘‪ ٔٛ‬ثبق‪ٙ‬س ‪ٕ٘ ٚ‬ی س‪ٛ‬اٖ سبثٕ ‪ٔcompareTo‬طث‪ ٌٛ‬ث‪ٝ‬‬
‫یه ٘‪ byte ٔٛ‬ضا ثب ‪ٚ‬ض‪ٚ‬زی ‪ long‬نسا ظز) ایٗ ُٖٕ ثبٖض ذُب ٔی ق‪ٛ‬ز) قىُ ٘‪ٛ‬قشبضی ایٗ ٔشس ٔب٘‪ٙ‬س ذٍ ظیط اؾز ‪:‬‬

‫) ‪public int compareTo( NumberSubClassreferenceName‬‬

‫‪ٕٞ‬بٍ٘‪ ٝ٘ٛ‬و‪ٌ ٝ‬فش‪ ٝ‬قس دبضأشط ‪ٚ‬ض‪ٚ‬زی ایٗ ٔشس یه قی اظ والؼ ‪ٔ wrapper‬ش‪ٙ‬بْط ٔی ثبقس) ٔمساض ثبظٌكشی ایٗ ٔشس یه ٖسز نحیح اظ ٘‪ int ٔٛ‬اؾز و‪ٝ‬‬
‫ٔی س‪ٛ‬ا٘س یب ‪ 0‬یب ‪ ٚ 1‬یب ( ‪ 1‬ثبقس) و‪ ٝ‬ث‪ ٝ‬قطح ایٗ اٖسا ٔی دطزاظیٓ) اٌط ز‪ٖ ٚ‬سز ثب یىسیٍط ثطاثط ثبق‪ٙ‬س زض ٘شیؼ‪ٔ ٝ‬شس ٖسز ‪ 0‬ضا ثبظٔی ٌطزا٘س ‪ ٚ‬اٌط ٖسز اظ‬
‫آضٌ‪ٔٛ‬بٖ ذ‪ٛ‬زـ و‪ٛ‬چىشط ثبقس ٖسز ( ‪ ٚ 1‬اٌط ٖسز اظ آضٌ‪ٔٛ‬بٖ ذ‪ٛ‬ز ثعضٌشط ثبقس ٖسز ‪ 1‬ث‪ٖٛٙ ٝ‬اٖ ٘شیؼ‪ ٝ‬ثبظٌكز زاز‪ٔ ٜ‬ی ق‪ٛ‬ز) ثطای ٔظبَ ث‪ ٝ‬وس ظیط زلز‬
‫و‪ٙ‬یس‪:‬‬

‫{‪public class Test‬‬

‫{)][‪public static void main(String args‬‬


‫;‪Integer x = 5‬‬
‫;))‪System.out.println(x.compareTo(3‬‬
‫;))‪System.out.println(x.compareTo(5‬‬
‫;))‪System.out.println(x.compareTo(8‬‬
‫}‬
‫}‬

‫‪٘ ٚ‬شبیغ وس‪ٞ‬بی ثبال ث‪ ٝ‬قىُ ظیط اؾز‪:‬‬

‫‪1‬‬
‫‪0‬‬
‫‪-1‬‬

‫ٔشس ‪:equals‬ایٗ ٔشس ٔكرم ٔیو‪ٙ‬س و‪ ٝ‬ز‪ٖ ٚ‬سز ثب ‪ ٓٞ‬ثطاثط ‪ٞ‬ؿش‪ٙ‬س یب ذیط) وبض ایٗ ٔشس ث‪ ٝ‬ایٗ قىُ اؾز س‪ٛ‬ؾٍ قئی نسا ظز‪ٔ ٜ‬یق‪ٛ‬ز ‪ ٚ‬یه‬ ‫‪‬‬

‫‪ ٚ true‬اٌط ثطاثط ٘جبقس ٔمساض إ ‪false‬ثطٌطزا٘س‪ٔ ٜ‬یق‪ٛ‬ز)قىُ‬ ‫ٖسز ث‪ ٝ‬آٖ زاز‪ٔ ٜ‬یق‪ٛ‬ز اٌط ٖسز زاز‪ ٜ‬قس‪ ٜ‬ثطاثط ثب ٔمساض ذ‪ٛ‬ز قئ ثبقس ٔمساض‬
‫سٗطیف قس‪ ٜ‬ایٗ سبثٕ ث‪ ٝ‬قىُ ظیط اؾز‪:‬‬

‫)‪public booleanequals(Object o‬‬

‫چیعی و‪ ٝ‬ایٗ ٔشس ث‪ٖٛٙ ٝ‬اٖ دبضأشط ‪ٚ‬ض‪ٚ‬زی ٔیٌیطیس ٔیس‪ٛ‬ا٘س ‪ٞ‬ط ٘‪ ٔٛ‬قیئی ثبقس ‪.‬‬

‫‪45‬‬
‫ٔمساض ثبظٌكشی ایٗ ٔشس ‪ٕٞ‬بُ٘‪ٛ‬ض و‪ٌ ٝ‬فش‪ ٝ‬قس یه ٔمساض ‪boolean‬اؾز و‪ ٝ‬اٌط ‪ٚ‬ض‪ٚ‬زی ٔشس ثب ذ‪ٛ‬ز قئ ثطاثط ثبق‪ٙ‬س ‪ true‬ثطٌطزا٘س‪ٔ ٜ‬ی ق‪ٛ‬ز) زض ازأ‪ٔ ٝ‬ظبِی‬
‫ثطای ایٗ ٔشس آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز‪:‬‬

‫{‪public class Test‬‬

‫{)][‪public static void main(String args‬‬


‫;‪Integer x = 5‬‬
‫;‪Integer y = 10‬‬
‫;‪Integer z =5‬‬
‫;‪Short a = 5‬‬

‫;))‪System.out.println(x.equals(y‬‬
‫;))‪System.out.println(x.equals(z‬‬
‫;))‪System.out.println(x.equals(a‬‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‬

‫‪false‬‬
‫‪true‬‬
‫‪false‬‬

‫‪ٔ ٚ String‬ب٘‪ٙ‬س‬ ‫ٔشس‪:valeuOf‬ایٗ ٔشس ٔمساض ٖسزی ٔ‪ٛ‬ػ‪ٛ‬ز زض یه قئ ‪ٚ‬اضز قس‪ ٜ‬ضا ثطٔیٌطزا٘س) آضٌ‪ٔٛ‬بٖ ‪ٚ‬ض‪ٚ‬زی ٔیس‪ٛ‬ا٘س ٘‪ ٔٛ‬زاز‪ ٜ‬انّی یب‬ ‫‪‬‬

‫ایٗ‪ٞ‬ب ثبقس‪.‬‬

‫ایٗ یه ٔشس اؾشبسیه اؾز) ایٗ ٔشس ٔیس‪ٛ‬ا٘س ‪ -‬آضٌ‪ٔٛ‬بٖ ‪ٚ‬ض‪ٚ‬زی زاقش‪ ٝ‬ثبقس و‪ ٝ‬آضٌ‪ٔٛ‬بٖ ا‪ِٚ‬ی یه ضقش‪ ٚ ٝ‬آضٌ‪ٔٛ‬بٖ ز‪ٔ ْٚ‬ج‪ٙ‬بی ٖسز ٔ‪ٛ‬ضز ٘ٓط ثبقس) ث‪ ٝ‬ایٗ‬
‫قىُ و‪ ٝ‬اٌط ثر‪ٛ‬ا‪ٞ‬یٓ ٖسز ٔ‪ٛ‬ػ‪ٛ‬ز زض ضقش‪ ٝ‬ضا ث‪ ٝ‬یه ٖسز زض ٔج‪ٙ‬بی ‪ٍٞ$,1‬عازؾیٕبَ‪ #‬سجسیُ ق‪ٛ‬ز آضٌ‪ٔٛ‬بٖ ز‪ ْٚ‬ضا ‪ ,1‬لطاض ز‪ٞ‬یٓ) قىُ‪ٞ‬بی اؾشفبز‪ ٜ‬اظ ایٗ‬
‫سبثٕ زض وس ظیط آٔس‪ ٜ‬اؾز‪:‬‬

‫)‪static Integer valueOf(int i‬‬


‫)‪static Integer valueOf(String s‬‬
‫)‪static Integer valueOf(String s, int radix‬‬

‫دبضأشط ‪ٚ‬ض‪ٚ‬زی زض ذٍ ا‪ َٚ‬وس ثبال ثطای یه ٖسز ‪ int‬اؾز و‪ٚ ٝ‬اضز ٔیق‪ٛ‬ز ‪ٔ ٚ‬یس‪ٛ‬اٖ ایٗ ٖسز ضا ثب اؾشفبز‪ ٜ‬اظ ایٗ ٔشس ث‪ ٝ‬ا٘‪ٛ‬أ زاز‪ٖ ٜ‬سزی ٔرشّف سجسیُ‬
‫وطز) زض ذٍ ز‪ ْٚ‬یه ضقش‪ ٝ‬ث‪ٔ ٝ‬شس زاز‪ٔ ٜ‬یق‪ٛ‬ز و‪ ٝ‬زاضای اٖساز زض زاذُ ضقش‪ ٝ‬اؾز و‪ ٝ‬ثب اؾشفبز‪ ٜ‬اظ ایٗ ٔشس ٔیس‪ٛ‬اٖ آٖ ضا سجسیُ ث‪ٖ ٝ‬سز وطز) زض ذٍ ؾ‪ْٛ‬‬
‫٘یع یه ضقش‪ ٝ‬زاضای ٖسز ث‪ٖٛٙ ٝ‬اٖ دبضأشط ‪ٚ‬ض‪ٚ‬زی ا‪ِٚ‬ی ٔیثبقس ‪ ٚ‬دبضأشط ز‪٘ ْٚ‬یع ٔج‪ٙ‬بی ٖسز اؾز) ذط‪ٚ‬ػی ایٗ سبثٕ یه ٖسز اؾز و‪ ٝ‬زض ٔظبَ ظیط اؾشفبز‪ٜ‬‬
‫اظ ایٗ ٔشس آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز‪.‬‬

‫{‪public class Test‬‬


‫‪46‬‬
public static void main(String args[]){

Integer x =Integer.valueOf(9);
Double c = Double.valueOf(5);
Float a = Float.valueOf("80");

Integer b = Integer.valueOf("444",16);

System.out.println(x);
System.out.println(c);
System.out.println(a);
System.out.println(b);
}
}

:‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی وس ث‬ٚ‫ذط‬

9
5.0
80.0
1092

ٝ‫ ضقش‬ٝ‫ آٖ ضا ث‬ٝ‫ ثبقس و‬ٝ‫زی ٖسزی زاقش‬ٚ‫ض‬ٚ ‫ا٘س یه‬ٛ‫ ثبظٔی ٌطزا٘س) ایٗ ٔشس ٔیس‬ٚ ‫س‬ٙ‫ ٔیو‬ٝ‫ ضقش‬ٝ‫ط قی ضا سجسیُ ث‬ٞ ‫ایٗ ٔشس ٔمساض‬toString‫ٔشس‬ 

: ‫بی ظیط اؾز‬ُٞ‫ قى‬ٝ‫أ ٔرشّف ایٗ ٔشس ث‬ٛ٘‫ز زاضز) ا‬ٛ‫ػ‬ٚ ‫ا‬ٚ‫ اقیبء زضػب‬ٕٝٞ ‫ ثبظٔی ٌطزا٘س) ایٗ ٔشس ثطای‬ٚ ٜ‫سجسیُ وطز‬

String toString()
static String toString(int i)

:‫ اؾز‬ٜ‫ قس‬ٜ‫بیی اظ ایٗ ٔشس زض وس ظیط ٘كبٖ زاز‬َٞ‫ٔظب‬

public class Test{

public static void main(String args[]){


Integer x = 5;

System.out.println(x.toString());
System.out.println(Integer.toString(12));
}
}

:‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی وس ث‬ٚ‫ذط‬

5
47
‫‪12‬‬

‫زض ایٗ ثرف ث‪ٗٔ ٝ‬طفی والؼ ‪ٞ‬بی ‪ٔ wrapper‬طث‪ ٌٛ‬ث‪ ٝ‬اٖساز دطزاذشیٓ ‪ٔ ٚ‬شس‪ٞ‬بی آٖ ضا ٔٗطفی وطزیٓ‪.‬‬

‫‪parseint‬‬

‫ایٗ ٔشسض ثطای سجسیُ ضقش‪ ٝ‬ث‪ ٔٛ٘ ٝ‬زاز‪ٖ ٜ‬سزی اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز ‪ ٚ‬ث‪ ٝ‬قىُ ‪ٞ‬بی ‪ ٚparseDoubleٚparseInt‬یب ؾبیط ا٘‪ٛ‬أ زاز‪ ٜ‬اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز) ایٗ ٔشس ٔی‬
‫س‪ٛ‬ا٘س یه یب ز‪ ٚ‬دبضأشط ‪ٚ‬ض‪ٚ‬زی زاقش‪ ٝ‬ثبقس و‪ ٝ‬دبضأشط ا‪ َٚ‬ثطای ضقش‪ٚ ٝ‬ض‪ٚ‬زی اؾز ‪ ٚ‬دبضأشط ز‪ ْٚ‬ثطای ٔج‪ٙ‬بی ٖسزی اؾز و‪ٔ ٝ‬كرم ٔی و‪ٙ‬س ٔج‪ٙ‬بی ٖسز‬
‫ٔ‪ٛ‬ضز ٘ٓط چ‪ٙ‬س اؾز) قىُ ٘‪ٛ‬قشبضی ایٗ ٔشس ث‪ ٝ‬ن‪ٛ‬ضر ظیط اؾز ‪:‬‬

‫)‪static int parseInt(String s‬‬


‫)‪static int parseInt(String s, int radix‬‬

‫ٔمساض ثبظٌكشی ایٗ ٔشس ‪ٕٞ‬یك‪ ٝ‬یه ٖسز ٔی ثبقس) اظ ایٗ ٔشس ٔی س‪ٛ‬اٖ ثطای سجسیُ ٔج‪ٙ‬ب‪ٞ‬ب ‪ ٓٞ‬اؾشفبز‪ ٜ‬وطز) ثطای ٔظبِی اظ ایٗ ٔشس ث‪ ٝ‬وس ظیط س‪ٛ‬ػ‪ ٝ‬و‪ٙ‬یس ‪:‬‬

‫{‪public class Test‬‬

‫{)][‪public static void main(String args‬‬


‫;)"‪int x =Integer.parseInt("9‬‬
‫;)"‪double c = Double.parseDouble("5‬‬
‫;)‪int b = Integer.parseInt("444",16‬‬

‫;)‪System.out.println(x‬‬
‫;)‪System.out.println(c‬‬
‫;)‪System.out.println(b‬‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‬

‫‪9‬‬
‫‪5.0‬‬
‫‪1092‬‬

‫‪ Math‬ذ‪ٛ‬ا‪ٞ‬یٓ‬ ‫‪ wrapper‬س‪ٛ‬يیح زازیٓ حبَ زض ازأ‪ ٝ‬ث‪ ٝ‬ثطضؾی ٔشس ‪ٞ‬بی ٔ‪ٛ‬ػ‪ٛ‬ز زض والؼ‬ ‫سب ث‪ ٝ‬ایٗ لؿٕز اظ ُٔبِت زض ٔ‪ٛ‬ضز ٔشس‪ٞ‬بی والؼ ‪ٞ‬بی‬
‫دطزاذز و‪ ٝ‬ثط ض‪ٚ‬ی اٖساز ّٖٕیبر ذبنی ا٘ؼبْ ٔی ز‪ٙٞ‬س‪.‬‬

‫هتذ‪abs‬‬

‫‪ int, long , float, double, short, byte‬ثبقس) ٘ح‪ٜٛ‬‬ ‫ایٗ ٔشس لسض ُّٔك ٖسز زاز‪ ٜ‬قس‪ ٜ‬ضا ثبظ ٔی ٌطزا٘س) آضٌ‪ٔٛ‬بٖ ‪ٚ‬ض‪ٚ‬زی ایٗ ٔشس ٔی س‪ٛ‬ا٘س اظ ٘‪ٔٛ‬‬
‫اؾشفبز‪ ٜ‬اظ ایٗ ٔشس زض وس ظیط آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز‪:‬‬

‫‪48‬‬
public static void main(String[] args){
int a=-8;
double b=100;
float f=-90f;
int resultA=Math.abs(a);
double resultB=Math.abs(b);
float resultF=Math.abs(f);
System.out.println(resultA);
System.out.println(resultB);
System.out.println(resultF);
}

:‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی وس ثبال ث‬ٚ‫ذط‬

8
100.0
90.0

ceil‫هتذ‬

ٖ‫ ٔمساض ثبظٌكشی آ‬ٚ ٜ‫ز‬ٛ‫ ث‬double ‫ یب‬ٚ float ‫زی ایٗ ٔشس یه ٖسز‬ٚ‫ض‬ٚ )‫ ٔمساض نحیح آٖ ضا ثط ٔی ٌطزا٘س‬ٚ ٜ‫ایٗ ٔشس ٔمساض اٖكبضی ٖسز ضا حصف وطز‬
‫س‬ٙ٘‫ ٔب‬ceil ٚ floor ‫ ثطای اٖساز ٔظجز ٔشس‬ٝ‫ اؾز) اِجش‬floor ‫ ٔشس‬ٝ‫ ث‬ٝ‫چىشطیٗ ٖسز نحیم ضا ثطٔی ٌطزا٘س) ایٗ ٔشس قجی‬ٛ‫ و‬ٝ‫ اؾز و‬double ‫یه ٖسز‬
‫ وس ظیط‬ٝ‫ اؾز) ثطای ٔظبَ ث‬Ceil ‫س‬ٙ٘‫زی ٔب‬ٚ‫ض‬ٚ ٖ‫ٔب‬ٌٛ‫ آض‬ٚ ‫ اظ ٘ٓط ٔمساض ثبظٌكشی‬floor ‫سی زاض٘س) ٔشس‬ٚ‫فی ّٖٕىطز ٔشفب‬ٙٔ ‫ِی ثطای اٖساز‬ٚ ‫س‬ٙ‫ؿش‬ٞ ‫یىسیٍط‬
:‫یس‬ٙ‫ و‬ٝ‫ػ‬ٛ‫س‬

public class Test{

public static void main(String args[]){


double d = -100.675;
float f = -90;

System.out.println(Math.ceil(d));
System.out.println(Math.ceil(f));

System.out.println(Math.floor(d));
System.out.println(Math.floor(f));
}
}

:‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی ایٗ وس ث‬ٚ‫ذط‬

-100.0

49
‫‪-90.0‬‬
‫‪-101.0‬‬
‫‪-90.0‬‬

‫هتذ‪rint‬‬

‫ایٗ ٔشس یه ٖسز ‪ٌ double‬طفش‪ ٚ ٝ‬آٖ ضا ث‪٘ ٝ‬عزیىشطیٗ ٖسز نحیح ض‪٘ٚ‬س ٔی و‪ٙ‬س) ث‪ ٝ‬ایٗ ٔٗ‪ٙ‬ی و‪ٖ ٝ‬سز ‪ double‬ضا ٌطفش‪٘ ٚ ٝ‬عزیىشطی ٖسز نحیح ث‪ ٝ‬آٖ ضا‬
‫ثطٔی ٌطزا٘س) ذط‪ٚ‬ػی ایٗ ٔشس اظ ٘‪double ٔٛ‬ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز ثب ایٗ و‪ٔ ٝ‬مساض اٖكبضی ‪٘ ٓٞ‬ساضز)ثطای ٔظبَ اظ ایٗ ٔشس ث‪ ٝ‬وس ظیط زلز و‪ٙ‬یس‪:‬‬

‫{‪public class Test‬‬

‫‪public static‬‬ ‫{)][‪void main(String args‬‬


‫= ‪double d‬‬ ‫;‪100.675‬‬
‫= ‪double e‬‬ ‫;‪100.500‬‬
‫= ‪double f‬‬ ‫;‪100.200‬‬

‫;))‪System.out.println(Math.rint(d‬‬
‫;))‪System.out.println(Math.rint(e‬‬
‫;))‪System.out.println(Math.rint(f‬‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ث‪ ٝ‬قىُ ظیط اؾز‪:‬‬

‫‪101.0‬‬
‫‪100.0‬‬
‫‪100.0‬‬

‫هتذ‪round‬‬

‫ایٗ ٔشس یه ٖسز ‪ ٚ float‬یب ‪ double‬ضا ٌطفش‪ٔ ٚ ٝ‬مساضی اظ ٘‪ int ٔٛ‬ثبظٌطزا٘ی ٔی و‪ٙٙ‬س) سفب‪ٚ‬ر ایٗ ٔشس ثب ‪rint‬زض ایٗ اؾز و‪ٔ ٝ‬شس ‪rint‬فمٍ ‪ٔ double‬ی‬
‫ٌطفز ‪ ٚ‬فمٍ ‪ double‬ثطٔی ٌطزا٘س ‪ِٚ‬ی ٔشس ‪ٔ ٓٞ round‬ی س‪ٛ‬ا٘س ‪ٚ‬ض‪ٚ‬زی ‪ float‬زاقش‪ ٝ‬ثبقس ‪ٔ ٚ double ٓٞ ٚ‬مساض ثبظٌكشی آٖ ‪ long ٚ int‬اؾز) ث‪ ٝ‬ایٗ‬
‫ٔٗ‪ٙ‬ی و‪ ٝ‬اٌط ‪ٚ‬ض‪ٚ‬زی اـ ‪ double‬ثبقس ذط‪ٚ‬ػی ‪ ٚ long‬اٌط ‪ٚ‬ض‪ٚ‬زی ‪ float‬زاقش‪ ٝ‬ثبقس ذط‪ٚ‬ػی ‪ int‬زاضز) سفب‪ٚ‬ر زیٍط ایٗ ٔشس ثب ‪rint‬زض ّٖٕىطز آٖ زض‬
‫حبِی و‪ٔ ٝ‬مساض اٖكبضی ‪ 0.5‬ثبقس) ایٗ ٔشس ث‪ ٝ‬ؾٕز ثبال ض‪٘ٚ‬س ٔی و‪ٙ‬س ‪rintٚ‬ث‪ ٝ‬ؾٕز دبییٗ ض‪٘ٚ‬س ٔی و‪ٙ‬س) ٔظبِی اظ ایٗ ٔشس زض وس ظیط آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز‪.‬‬

‫‪101‬‬
‫‪101‬‬
‫‪100‬‬
‫‪90‬‬

‫‪50‬‬
‫هتذ ّای‪min, max‬‬

‫ایٗ ٔشس ‪ٞ‬ب ز‪ٖ ٚ‬سز ‪ٚ‬ض‪ٚ‬زی اظ ‪ٞ‬ط ٘‪ ٔٛ‬زاز‪ٖ ٜ‬سزی زضیبفز وطز‪ٖ ٚ ٜ‬سز ثعضٌشط یب و‪ٛ‬چىشط ضا ثطٔی ٌطزا٘‪ٙ‬س) ث‪ ٝ‬ایٗ ٔٗ‪ٙ‬ی و‪ٖ min ٝ‬سز و‪ٛ‬چىشط ‪ٖ max ٚ‬سز‬
‫ثعضٌشط ضا ثطٔی ٌطزا٘س) ایٗ ز‪ٔ ٚ‬شس ثطای ا٘‪ٛ‬أ زاز‪ٞ ٜ‬بی ٖسزی ث‪ ٝ‬وبض ٔی ض‪٘ٚ‬س) و‪ ٝ‬زض ذٍ ظیط ٘كبٖ زاز‪ ٜ‬قس‪ ٜ‬اؾز ‪.‬‬

‫)‪double min(double arg1, double arg2‬‬


‫)‪float min(float arg1, float arg2‬‬
‫)‪int min(int arg1, int arg2‬‬
‫)‪long min(long arg1, long arg2‬‬

‫ٔظبِی اظ ایٗ ٔشس‪ٞ‬ب زض وس ظیط آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز‪.‬‬

‫{‪public class Test‬‬


‫{)][‪public static void main(String args‬‬
‫;))‪System.out.println(Math.min(12.123, 12.456‬‬
‫;))‪System.out.println(Math.min(23.12, 23.0‬‬
‫;))‪System.out.println(Math.max(12.123, 12.456‬‬
‫;))‪System.out.println(Math.max(23.12, 23.0‬‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ثبال ث‪ ٝ‬قىُ ظیط اؾز‪:‬‬

‫‪12.123‬‬
‫‪23.0‬‬
‫‪12.456‬‬
‫‪23.12‬‬

‫هتذ‪exp‬‬

‫زض ضیبيیبر ‪ٔ ٚ‬ره‪ٛ‬نب لؿٕز ٍِبضیشٓ ‪ٞ‬ب ٖسز ‪ e‬ثؿیبض وبضثطز زاضز) حبَ زض ػب‪ٚ‬ا ٘یع ثطای اؾشفبز‪ ٜ‬اظ ایٗ ٖسز ‪ ٚ‬اٖٕبَ ٍِبضیشٕی أىب٘بسی فطا‪ ٓٞ‬قس‪ٜ‬‬
‫اؾز) یىی اظ ایٗ أىب٘بر ٔشس ‪ٔ exp‬ی ثبقس) ایٗ ٔشس یه ‪ٚ‬ض‪ٚ‬زی ٌطفش‪ ٚ ٝ‬زض ٘شیؼ‪ e ٝ‬ث‪ ٝ‬س‪ٛ‬اٖ ٖسز ‪ٚ‬اضز قس‪ ٜ‬ضا ثطٔی ٌطزا٘‪ٙ‬س) ٖسز ‪ e‬یه ٖسز ثب اٖكبض‬
‫َ‪ٛ‬ال٘ی اؾز و‪ٔ ٝ‬ی س‪ٛ‬ا٘یس ٔمساض آٖ ضا ثب اؾشفبز‪ ٜ‬اظ ‪Math.E‬ث‪ ٝ‬زؾز آ‪ٚ‬ضیس) اٌط ٘بْ ‪ٚ‬ض‪ٚ‬زی ٔشس ‪ exp‬ضا ‪ x‬ثٍصاضیٓ ذط‪ٚ‬ػی ایٗ ٔشس ‪e^x‬ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز)‬
‫‪ٚ‬ض‪ٚ‬زی ‪ ٚ‬ذط‪ٚ‬ػی ایٗ ٔشس اظ ٘‪ double ٔٛ‬ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز) ثطای ٔظبَ ث‪ ٝ‬وس ظیط س‪ٛ‬ػ‪ ٝ‬و‪ٙ‬یس‪:‬‬

‫{‪public class Test‬‬


‫{)][‪public static void main(String args‬‬
‫;‪double x = 11.635‬‬
‫;‪double y = 2.76‬‬

‫;)‪System.out.printf("The value of e is %.4f%n", Math.E‬‬


‫‪51‬‬
‫;))‪System.out.printf("exp(%.3f) is %.3f%n", x, Math.exp(x‬‬
‫}‬
‫}‬

‫زض ایٗ وس ثطای چبح وطزٖ ٔمبزیط ثطای ا‪ِٚ‬یٗ ثبض اظ ٔشس ‪printf‬اؾشفبز‪ ٜ‬قس‪ ٜ‬اؾز) ثب اؾشفبز‪ ٜ‬اظ ایٗ ٔشس ٔی س‪ٛ‬اٖ ٔشٗ ذط‪ٚ‬ػی ضا فطٔز ث‪ٙ‬سی وطز) ث‪ ٝ‬ایٗ‬
‫قىُ و‪ ٝ‬اٌط زلز و‪ٙ‬یس زض ذٍ ا‪ِٚ‬ی و‪ٔ ٝ‬شس ‪printf‬ث‪ ٝ‬وبض ثطز‪ ٜ‬قس‪ ٜ‬اؾز زض زاذُ ٔشٗ ٖجبضر "‪" ")4f‬ث‪ ٝ‬وبض ثطز‪ ٜ‬قس‪ ٜ‬اؾز ‪ ٚ‬زض ا٘ش‪ٟ‬ب یه ٖجبضر ٖسزی‬
‫ث‪ٖٛٙ ٝ‬اٖ ‪ٚ‬ض‪ٚ‬زی ث‪ٔ ٝ‬شس زاز‪ ٜ‬قس‪ ٜ‬اؾز و‪ ٝ‬زض ای‪ٙ‬ؼب ٖجبضر ٖسزی ‪ٔMath.E‬ی ثبقس) ٔٗ‪ٙ‬ی ایٗ ذٍ ایٗ اؾز و‪ ٝ‬یه ٖجبضر اٖكبضی ثب ‪ 4‬ضلٓ اٖكبض ث‪ٝ‬‬
‫ػبی "‪" ")4f‬لطاض ٔی ٌیطز و‪ ٝ‬آٖ ٖسز ث‪ٖٛٙ ٝ‬اٖ ‪ٚ‬ض‪ٚ‬زی زاز‪ ٜ‬قس‪ ٜ‬اؾز) زض ذٍ ز‪٘printf ْٚ‬یع ز‪ٖ ٚ‬سز ثب ‪ 3‬ضلٓ اٖكبض زض زاذُ ٔشٗ لطاض ٌطفش‪ ٝ‬اؾز)‬
‫ذط‪ٚ‬ػی وس ثبال ث‪ ٝ‬قطح ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪The value of e is 2.7183‬‬


‫‪exp(11.635) is 112983.831‬‬

‫هتذ‪log‬‬

‫ایٗ ٔشس ثطذالف اؾٕف ٔمساض ٍِبضیشٓ َجیٗی ٖسز ‪ٚ‬ض‪ٚ‬زی ضا ثطٔی ٌطزا٘س ث‪ٖ ٝ‬جبضر زیٍط ایٗ ٔشس ‪ ln‬یه ٖسز ضا ٔحبؾج‪ٔ ٝ‬ی و‪ٙ‬س) ‪ٚ‬ض‪ٚ‬زی ‪ ٚ‬ذط‪ٚ‬ػی ایٗ‬
‫ٔشس ٖسز ‪ double‬اؾز) ٔظبِی اظ ایٗ ٔشس زض وس ظیط آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز) زلز و‪ٙ‬یس و‪ ٝ‬زض ایٗ وس ٘یع اظ ٔشس‪٘printf‬یع اؾشفبز‪ ٜ‬قس‪ ٜ‬اؾز‪.‬‬

‫{‪public class Test‬‬

‫{)][‪public static void main(String args‬‬


‫;‪double x = 11.635‬‬
‫;‪double y = 2.76‬‬
‫;)‪System.out.printf("The value of e is %.4f%n", Math.E‬‬
‫;))‪System.out.printf("log(%.3f) is %.3f%n", x, Math.log(x‬‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ث‪ ٝ‬قىُ ظیط اؾز‪:‬‬

‫‪The value of e is 2.7183‬‬


‫‪log(11.635) is 2.454‬‬

‫هتذ‪pow‬‬

‫ایٗ ٔشس ٔشس ث‪ ٝ‬س‪ٛ‬اٖ ضؾب٘سٖ ٔی ثبقس) وبض ایٗ ٔشس ث‪ ٝ‬ایٗ قىُ اؾز و‪ٖ ٝ‬سز ‪ٚ‬ض‪ٚ‬زی ا‪ِٚ‬ی ضا ث‪ٖٛٙ ٝ‬اٖ دبی‪ ٝ‬س‪ٛ‬اٖ زض ٘ٓط ٌطفش‪ٖ ٚ ٝ‬سز ز‪ٔٚ‬ی ضا ث‪ٖٛٙ ٝ‬اٖ‬
‫ٔمساض س‪ٛ‬اٖ زض ٘ٓط ٔی ٌیطز) ث‪ٙ‬بثطایٗ ٖسز ا‪ َٚ‬ضا ث‪ ٝ‬س‪ٛ‬اٖ ٖسز ز‪ٔ ْٚ‬ی ضؾب٘س) ٘‪ ٔٛ‬زاز‪ٚ ٜ‬ض‪ٚ‬زی ‪ ٚ‬ذط‪ٚ‬ػی ایٗ ٔشس ‪ ٕٝٞ‬اظ ٘‪ٞ double ٔٛ‬ؿش‪ٙ‬س) ثطای ٔظبَ‬
‫ث‪ ٝ‬وس ظیط زلز و‪ٙ‬یس‪:‬‬

‫‪52‬‬
public class Test{
public static void main(String args[]){
double x = 11.635;
double y = 2.76;

System.out.printf("The value of e is %.4f%n", Math.E);


System.out.printf("pow(%.3f, %.3f) is %.3f%n", x, y, Math.pow(x, y));
}
}

:‫س زاقز‬ٞ‫ا‬ٛ‫ػی ظیط ضا ذ‬ٚ‫وس ثبال ذط‬

The value of e is 2.7183


pow(11.635, 2.760) is 874.008

sqrt‫هتذ‬

‫ ٔی ثبقس) اٖساز‬0.5 ٖ‫زی آ‬ٚ‫ض‬ٚ ٖ‫ٔب‬ٌٛ‫ آض‬ٝ‫ر و‬ٚ‫ اؾز ثب ایٗ سفب‬pow ‫ٕبٖ ٔشس‬ٞ ‫ ٖجبضر زیٍط ایٗ ٔشس‬ٝ‫ ضا ثطٔی ٌطزا٘س ث‬ٜ‫ قس‬ٜ‫ایٗ ٔشس ػصض ٖسز زاز‬
.‫ ٔی ثبقس) وس ظیط یه ٔظبَ اظ ایٗ ٔشس ٔی ثبقس‬double ‫ػی ایٗ ٔشس‬ٚ‫ ذط‬ٚ ‫زی‬ٚ‫ض‬ٚ

public class Test{


public static void main(String args[]){
double x = 11.635;
System.out.printf("sqrt(%.3f) is %.3f%n", x, Math.sqrt(x));
}
}

:‫ قىُ ظیط اؾز‬ٝ‫ػی ایٗ وس ث‬ٚ‫ذط‬

sqrt(11.635) is 3.411

sin, cos, tan‫هتذّای‬

‫ػی‬ٚ‫ یه ذط‬ٚ ‫زی‬ٚ‫ض‬ٚ ‫طوساْ یه‬ٞ ‫ب‬ٞ ‫٘س) ایٗ ٔشس‬ٛ‫ ٔی ق‬ٜ‫ وبض ثطز‬ٝ‫ ث‬ٝ‫ی‬ٚ‫ سب٘ػا٘ز یه ظا‬ٚ ‫ؼ‬ٛٙ‫ وؿی‬ٚ ‫ؼ‬ٛٙ‫بی ٔظّظبسی ؾی‬ٞ ‫ ٘ؿجز‬ٝ‫ب ثطای ٔحبؾج‬ٞ‫ایٗ ٔشس‬
ٚ ‫احس ضازیبٖ ثبقس‬ٚ ٝ‫ب ثبیس ث‬ٞ ‫زی ایٗ ٔشس‬ٚ‫ض‬ٚ ٝ‫ی‬ٚ‫ ٔی ثبقس) ظا‬double ٔٛ٘ ‫ب اظ‬ٞ‫ػی ٔشس‬ٚ‫ ذط‬ٚ ‫زی‬ٚ‫ض‬ٚ ٜ‫ٔ زاز‬ٛ٘ )‫ اؾز‬ٝ‫ی‬ٚ‫ٕبٖ ظا‬ٞ ‫زی ٔشس‬ٚ‫ض‬ٚ ٝ‫زاض٘س و‬
:‫ اؾز‬ٜ‫ قس‬ٜ‫ضز‬ٚ‫ب آ‬ٞ ‫َ ٘یؿز) زض وس ظیط ٔظبِی اظ ایٗ ٔشس‬ٛ‫ لج‬ٝ‫زضػ‬

public class Test{


public static void main(String args[]){
double degrees = 45.0;

53
double radians = Math.toRadians(degrees);
System.out.format("The value of pi is %.4f%n", Math.PI);
System.out.format("The sine of %.1f degrees is %.4f%n", degrees, Math.sin(radians));
System.out.format("The cosine of %.1f degrees is %.4f%n", degrees,
Math.cos(radians));
System.out.format("The tangent of %.1f degrees is %.4f%n", degrees,
Math.tan(radians));
}
}

:‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی وس ثبال ث‬ٚ‫ذط‬

The value of pi is 3.1416


The sine of 45.0 degrees is 0.7071
The cosine of 45.0 degrees is 0.7071
The tangent of 45.0 degrees is 1.0000

asin, acos, atan‫هتذّای‬

ٔٛ٘ ‫ب اظ‬ٞ‫ ثبظٌكشی ایٗ ٔشس‬ٚ ‫زی‬ٚ‫ض‬ٚ ‫س) ٔمساض‬ٙ‫ ٔی ٕ٘بی‬ٝ‫ آٖ ضا ٔحبؾج‬ٝ‫ی‬ٚ‫ ظا‬ٚ ٝ‫ قس ٔمساض ٘ؿجز ٔظّظبسی ضا ٌطفش‬ٝ‫ لجال ٌفش‬ٝ‫ ٔشسی و‬ٝ‫ب ثطذالف ؾ‬ٞ‫ایٗ ٔشس‬
:‫ اؾز‬ٜ‫ب زض ظیط آٔس‬ٞ‫ٔی ثبقس) ٔظبَ ایٗ ٔشس‬double

public class Test{


public static void main(String args[]){
double degrees = 45.0;
double radians = Math.toRadians(degrees);

System.out.format("The value of pi is %.4f%n", Math.PI);


System.out.format("The arcsine of %.4f is %.4f degrees %n", Math.sin(radians),
Math.toDegrees(Math.asin(Math.sin(radians))));
System.out.format("The arccosine of %.4f is %.4f degrees %n",
Math.cos(radians), Math.toDegrees(Math.acos(Math.sin(radians))));
System.out.format("The arctangent of %.4f is %.4f degrees %n",
Math.cos(radians), Math.toDegrees(Math.atan(Math.sin(radians))));

}
}

:‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی وس ثبال ث‬ٚ‫ذط‬

The value of pi is 3.1416


The arcsine of 0.7071 is 45.0000 degrees
54
‫‪The arccosine of 0.7071 is 45.0000 degrees‬‬
‫‪The arctangent of 1.0000 is 45.0000 degrees‬‬

‫‪ٕٞ‬بٖ ٌ‪ ٝ٘ٛ‬و‪ ٝ‬زض وس ثبال ٔكب‪ٞ‬س‪ٔ ٜ‬ی و‪ٙ‬یس اظ ٔشس‪ٞ‬بیی ث‪٘ ٝ‬بْ ‪ٞ‬بی ‪toDegreesٚtoRadians‬زض ایٗ ثط٘بٔ‪ ٝ‬اؾشفبز‪ ٜ‬قس‪ ٜ‬اؾز) ایٗ ز‪ٔ ٚ‬شس ثطای سجسیُ ظا‪ٚ‬ی‪ٝ‬‬
‫‪toDegrees‬ظا‪ٚ‬ی‪ ٝ‬ضازیبٖ ضا ٌطفش‪ ٚ ٝ‬ث‪ ٝ‬زضػ‪ ٝ‬سجسیُ ٔی و‪ٙ‬س ‪ٚ‬‬ ‫اظ ‪ٚ‬احس زضػ‪ ٝ‬ث‪ ٝ‬ضازیبٖ ‪ ٚ‬اظ ضازیبٖ ث‪ ٝ‬زضػ‪ ٝ‬ث‪ ٝ‬وبض ٔی ض‪٘ٚ‬س) ث‪ ٝ‬قىّی و‪ٔ ٝ‬شس‬
‫ٔشس‪ٖtoRadins‬ىؽ ایٗ ُٖٕ ضا ا٘ؼبْ ٔی ز‪ٞ‬س) زلز زاقش‪ ٝ‬ثبقیس و‪ٚ ٝ‬ض‪ٚ‬زی ‪ ٚ‬ذط‪ٚ‬ػی ایٗ ز‪ٔ ٚ‬شس اظ ٘‪ٔ double ٔٛ‬ی ثبقس‪.‬‬

‫هتذ‪random‬‬

‫ایٗ ٔشس ثطای ؾبذز اٖساز سهبزفی ثیٗ ‪ 0.0‬سب ‪ 1.0‬ث‪ ٝ‬وبض ٔی ض‪ٚ‬ز) حبَ اٌط ثر‪ٛ‬ا‪ٞ‬یس و‪ٖ ٝ‬سزی زض ض٘غ ذبنی س‪ِٛ‬یس و‪ٙ‬یس ثبیس اظ ایٗ ٔشس اؾشفبز‪ ٜ‬و‪ٙ‬یس ‪ٚ‬‬
‫ٔمساض س‪ِٛ‬یس قس‪ ٜ‬ضا يطة و‪ٙ‬یس) ٔمساض ثبظٌكشی ایٗ ٔشس ‪ double‬ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز) ایٗ ٔشس آضٌ‪ٔٛ‬بٖ ‪ٚ‬ض‪ٚ‬زی ٘ساضز) ثطای ٔظبِی اظ ایٗ ٔشس ث‪ ٝ‬وس ظیط س‪ٛ‬ػ‪ ٝ‬و‪ٙ‬یس ‪.‬‬

‫{‪public class Test‬‬

‫{)][‪public static void main(String args‬‬


‫;) )(‪System.out.println( Math.random‬‬
‫;) )(‪System.out.println( Math.random‬‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪0.16763945061451657‬‬
‫‪0.400551253762343‬‬

‫‪ٞ‬طثبض و‪ٔ ٝ‬شس ‪ random‬فطاذ‪ٛ‬ا٘ی ق‪ٛ‬ز یه ٖسز سهبزفی ػسیس س‪ِٛ‬یس ذ‪ٛ‬ا‪ٞ‬س قس)‬

‫‪ wrapper‬کاراکتزّا‬

‫حبَ زض ایٗ ُّٔت ث‪ ٝ‬ثطضؾی والؼ ‪ wrapper‬ثطای وبضاوشط ‪ٞ‬ب ٔی دطزاظیٓ) ‪ٕٞ‬چ‪ٙ‬یٗ ٔشس‪ٞ‬بی ٔ‪ٛ‬ػ‪ٛ‬ز زض والؼ ‪ٔ wrapper‬طث‪ ٌٛ‬ث‪ ٝ‬وبضاوشط ‪ٞ‬ب ضا س‪ٛ‬يیح‬
‫ٔی ز‪ٞ‬یٓ) ثطای وبض ثب وبضاوشط ‪ٞ‬ب ثبیس اظ ٘‪ ٔٛ‬زاز‪ char ٜ‬اؾشفبز‪ ٜ‬و‪ٙ‬یٓ) زض وس ظیط چ‪ٙ‬س حبِز اؾشفبز‪ ٜ‬اظ وبضاوشط ‪ٞ‬ب آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز ‪.‬‬

‫;'‪char ch = 'a‬‬

‫اؾشفبز‪ ٜ‬اظ وس ی‪٘ٛ‬یىس ثطای ْب‪ٞ‬ط قسٖ وبضاوشط ‪//‬‬


‫;'‪char uniChar = '\u039A‬‬

‫وبضاوشط ‪ٞ‬ب زض آضای‪// ٝ‬‬


‫;} '‪char[] charArray ={ 'a', 'b', 'c', 'd', 'e‬‬

‫‪55‬‬
‫زض اؾشفبز‪ ٜ‬اظ ٘‪ ٔٛ‬زاز‪ ٜ‬وبضاوشط ٔب٘‪ٙ‬س ا٘‪ٛ‬أ زاز‪ٖ ٜ‬سزی و‪ٔ ٝ‬ب زاضای والؼ ‪ٞ‬بی ‪ wrapper‬ث‪ٛ‬زیٓ ثطای ٘‪ ٔٛ‬زاز‪ ٓٞ char ٜ‬والؼ ‪ wrapper‬زاضیٓ) ٘بْ والؼ‬
‫‪ ٔٛ٘wrapper‬وبضاوشط ‪ٔ Character‬ی ثبقس) والؼ ‪ Character‬چ‪ٙ‬سیٗ ٔشس ٔفیس ثطای وبض ثب وبضاوشط ‪ٞ‬ب اضائ‪ٔ ٝ‬ی ز‪ٞ‬س) قٕب ٔی س‪ٛ‬ا٘یس یه قئ اظ والؼ‬
‫‪Character‬ضا ث‪ ٝ‬قىُ ظیط ثؿبظیس‪:‬‬

‫;)'‪Character ch = new Character('a‬‬

‫‪ٕٞ‬چ‪ٙ‬یٗ ٕٔىٗ اؾز و‪ ٝ‬سحز قطایٍ ذبنی وبٔذبیّط ٘‪ ٔٛ‬زاز‪ ٜ‬ا‪ِٚ‬ی‪ ٝ‬وبضاوشط ضا سجسیُ ث‪ ٝ‬قئ ٕ٘بیس) ثطای ٔظبَ فطو و‪ٙ‬یس یه ٘‪ٚ ٔٛ‬ض‪ٚ‬زی یه سبثٕ اظ ٘‪ٔٛ‬‬
‫قئ ‪ Character‬ثبقس ‪ِٚ‬ی ٔب ث‪ ٝ‬آٖ یه ٘‪ ٔٛ‬زاز‪ ٜ‬ا‪ِٚ‬ی‪ ٝ‬وبضاوشط ضا ٔی ز‪ٞ‬یٓ) زض ایٗ حبِز وبٔذبیّط ٘‪ ٔٛ‬زاز‪ ٜ‬ضا سجسیُ ث‪ ٝ‬قئ ٔی ٕ٘بیس ث‪ ٝ‬ایٗ ُٖٕ‬
‫‪ٌautoboxing‬فش‪ٔ ٝ‬ی ق‪ٛ‬ز ‪ ٚ‬اٌط ٖىؽ ایٗ ُٖٕ ا٘ؼبْ ق‪ٛ‬ز ث‪ ٝ‬ایٗ ُٖٕ ‪ٌ unboxing‬فش‪ٔ ٝ‬ی ق‪ٛ‬ز) ثطای ٔظبَ اظ ایٗ ز‪ ُٕٖ ٚ‬ث‪ ٝ‬وس ظیط زلز و‪ٙ‬یس ‪.‬‬

‫{ ‪public class Main‬‬

‫{ )‪public static void main(String[] args‬‬


‫‪//‬‬ ‫‪autoboxing‬‬
‫;'‪char c='m‬‬
‫;)‪printChar(c‬‬

‫‪//‬‬ ‫‪unboxing‬‬
‫;)'‪Character character=new Character('r‬‬
‫;‪char c2=character‬‬
‫;)‪printChar(c2‬‬
‫}‬
‫{)‪public static void printChar(Character ch‬‬
‫;)‪System.out.println(ch‬‬
‫}‬
‫}‬

‫کاراکتزّای هخػَظ‬

‫ثطذی اظ وبضاوشط ‪ٞ‬ب زض ػب‪ٚ‬ا ‪ٚ‬ػ‪ٛ‬ز زاض٘س و‪ٙٗٔ ٝ‬ی ‪ٔ ٚ‬ف‪ ْٟٛ‬ذبنی ثطای وبٔذبیّط زاض٘س) اغّت ایٗ وبضاوشط ‪ٞ‬ب ثب ٖالٔز )\(‪backsash‬قط‪ٔ ٔٚ‬ی ق‪٘ٛ‬س) ثطای‬
‫ٔظبَ اٌط ثر‪ٛ‬ا‪ٞ‬یٓ ٔش‪ٙ‬ی ضا چبح و‪ٙ‬یٓ ‪ ٚ‬لؿٕشی اظ ٔشٗ زض ذٍ ثٗسی چبح ق‪ٛ‬ز زض ایٗ حبِز اظ لؿٕشی و‪ٔ ٝ‬ی ذ‪ٛ‬ا‪ٞ‬یٓ زض ذٍ ثٗسی چبح ق‪ٛ‬ز ثبیس اظ‬
‫ٖالٔز )\‪ (n‬اؾشفبز‪ ٜ‬و‪ٙ‬یس) ایٗ وبضاوشط ‪ٞ‬ب زض ازأ‪ ٝ‬آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬ا٘س ‪ٙٗٔ ٚ‬ی آ٘‪ٟ‬ب ٘یع آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز ‪.‬‬

‫)‪(\t‬ایٗ ٖالٔز ثطای ایٗ اؾز و‪ ٝ‬زض ذط‪ٚ‬ػی وّیس ‪ tab‬ضا ثع٘یٓ) ٖالٔز ‪ tab‬فبنّ‪ ٝ‬ای ث‪ ٝ‬ا٘ساظ‪ 8 ٜ‬وبضاوشط فبنّ‪ ٝ‬اؾز ‪.‬‬ ‫‪‬‬

‫)‪(\b‬ایٗ ٖالٔز ٘كبٖ ز‪ٙٞ‬س‪ ٜ‬ی ‪ٔ backspace‬ی ثبقس‪.‬‬ ‫‪‬‬

‫‪56‬‬
‫)‪٘(\n‬كبٖ ز‪ٙٞ‬س‪ ٜ‬ضفشٗ ث‪ ٝ‬ذٍ ػسیس ‪ ٚ‬ظزٖ وّیس ‪ enter‬اؾز‪.‬‬ ‫‪‬‬

‫)‪(\r‬ث‪ ٝ‬ایٗ ٔٗ‪ٙ‬ی اؾز و‪ٔ ٝ‬ىبٖ ٕ٘ب ‪ٔ$‬حُ ٘‪ٛ‬قشٗ ٔشٗ‪ #‬ث‪ ٝ‬اثشسای ذٍ ٔی ض‪ٚ‬ز ‪.‬‬ ‫‪‬‬

‫)’\(ثطای چبح سه و‪ٛ‬سیكٗ ٔی ثبقس‬ ‫‪‬‬

‫)”\(ثطای چبح زاثُ و‪ٛ‬سیكٗ ث‪ ٝ‬وبض ٔی ض‪ٚ‬ز‬ ‫‪‬‬

‫)\\(ثطای چبح ٖالٔز ‪ backslash‬ث‪ ٝ‬وبض ٔی ض‪ٚ‬ز‪.‬‬ ‫‪‬‬

‫‪ٚ‬لشی و‪ ٝ‬یه وبضاوشط ٔره‪ٛ‬ل زض ٔشس ‪ْ print‬ب‪ٞ‬ط ق‪ٛ‬ز وبٔذبیّط آٖ ضا سفؿیط ٔی و‪ٙ‬س ‪ ٚ‬وبضاوشط ٔ‪ٛ‬ضز ٘ٓط آٖ ضا ث‪ ٝ‬ػبی آٖ لطاض ذ‪ٛ‬ا‪ٞ‬س زاز) ثطای ٔظبَ ث‪ٝ‬‬
‫وس ظیط س‪ٛ‬ػ‪ ٝ‬و‪ٙ‬یس) زض ٔظبَ ظیط لهس ثط ایٗ ث‪ٛ‬ز‪ ٜ‬اؾز و‪ٖ ٝ‬الٔز زاثُ و‪ٛ‬سیكٗ چبح ق‪ٛ‬ز ‪.‬‬

‫{ ‪public class Test‬‬


‫{ )][‪public static void main(String args‬‬
‫;)"‪System.out.println("She said \"Hello!\" to me.‬‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‬

‫‪She said "Hello!" to me.‬‬

‫هتذّای هَجَد در کالس‪Character‬‬

‫زض ازأ‪ ٝ‬ث‪ ٝ‬ثیبٖ ٔشس ‪ٞ‬بیی و‪ ٝ‬زض والؼ ‪ wrapper‬وبضاوشط ‪ٚ‬ػ‪ٛ‬ز زاضز ٔی دطزاظیٓ‪.‬‬

‫‪ٔ ),‬شس‪isLetter‬ایٗ ٔشس ٔكرم ٔی و‪ٙ‬س و‪ ٝ‬وبضاوشطی و‪ ٝ‬ث‪ٖٛٙ ٝ‬اٖ ‪ٚ‬ض‪ٚ‬زی ث‪ ٝ‬آٖ زاز‪ٔ ٜ‬ی ق‪ٛ‬ز حطفی اظ حط‪ٚ‬ف اِفجب ٔی ثبقس یب ذیط اٌط وبضاوشط‬
‫‪ٚ‬ض‪ٚ‬زی ایٗ ٔشس یه حطف اظ اِفجب ثبقس ٔمساض ‪ ٚ true‬زض غیط ایٗ ن‪ٛ‬ضر ٔمساض ‪ false‬ثطٔی ٌطزا٘س) ٔ‪ٛٓٙ‬ض اظ حطف اِفجب حط‪ٚ‬ف اٍّ٘یؿی ٔی‬
‫ثبقس‪.‬‬

‫‪ٔ )-‬شس‪isDigit‬ایٗ ٔشس یه ‪ٚ‬ض‪ٚ‬زی وبضاوشطی زاضز و‪ ٝ‬اٌط وبضاوشط ‪ٚ‬ض‪ٚ‬زی یىی اظ اٖساز ‪ 0‬سب ‪ 9‬ثبقس ٔمساض ‪ ٚ true‬زض غیط ایٗ ن‪ٛ‬ضر ٔمساض ‪false‬‬

‫ثطٔی ٌطزا٘س‪.‬‬

‫‪ whitespace‬یب فًبی ذبِی ق‪ٙ‬بذش‪ٔ ٝ‬ی ق‪ٛ‬ز) زض‬ ‫‪ ٚ tab‬ای‪ٙ‬شط ث‪ٖٛٙ ٝ‬اٖ‬ ‫‪ٔ ).‬شس ‪isWhitespace:‬زض ػب‪ٚ‬ا ٖالٔز ‪ٞ‬بی فبنّ‪ٚ ٝ‬‬
‫ٔشس‪isWhitespace‬اٌط آضٌ‪ٔٛ‬بٖ ‪ٚ‬ض‪ٚ‬زی ٖالٔز ‪ٞ‬بی ٌفش‪ ٝ‬قس‪ ٜ‬ثبقس ٔمساض ‪ ٚ true‬زض غیط ایٗ ن‪ٛ‬ضر ٔمساض ‪ false‬ثطٔی ٌطزا٘س‪.‬‬

‫‪ٔ )/‬شس ‪isUpperCase:‬ایٗ ٔشس ٔكرم ٔی و‪ٙ‬س و‪ ٝ‬وبضاوشط ‪ٚ‬ض‪ٚ‬زی اـ ث‪ ٝ‬قىُ ٖالٔز ثعضي اٍّ٘یؿی ٘‪ٛ‬قش‪ ٝ‬قس‪ ٜ‬اؾز یب ذیط) اٌط آضٌ‪ٔٛ‬بٖ‬
‫‪ٚ‬ض‪ٚ‬زی حطف ثعضي ثبقس ٔمساض ‪ ٚ true‬زض غیط ایٗ ن‪ٛ‬ضر ‪ false‬ثطٔی ٌطزا٘س‪.‬‬

‫‪ٔ )0‬شس‪isLowerCase‬ایٗ ٔشس ثطذالف لجّی ٔی ثبقس) یٗ‪ٙ‬ی اٌط وبضوشط ‪ٚ‬ض‪ٚ‬زی ثب حط‪ٚ‬ف و‪ٛ‬چه ٘‪ٛ‬قش‪ ٝ‬قس‪ ٜ‬ثبقس ٔمساض ‪ ٚ true‬اٌط ثعضي ٘‪ٛ‬قش‪ٝ‬‬
‫قس‪ ٜ‬ثبقس ٔمساض ‪ false‬ثط ٔی ٌطزا٘س) زلز زاقش‪ ٝ‬ثبقیس و‪ ٝ‬ایٗ ٔشس ثطای حط‪ٚ‬ف اِفجبیی اؾز ‪.‬‬

‫‪57‬‬
. ‫ قىُ حطف ثعضي آٖ ضا ثطٔی ٌطزا٘س‬ٚ ٝ‫ایٗ ٔشس یه وبضاوشط اِفجبیی ضا ٌطفش‬toUpperCase‫) ٔشس‬1

. ‫چه آٖ ضا ثطٔی ٌطزا٘س‬ٛ‫ف و‬ٚ‫ قىُ حط‬ٚ ٝ‫ی یه وبضاوشط اِفجبیی ضا ٌطفش‬ٙٗ‫س) ی‬ٞ‫ایٗ ٔشس ٖىؽ ُٖٕ لجّی ضا ا٘ؼبْ ٔی ز‬toLowerCase‫) ٔشس‬2

َ‫ا ٔی ثبقس) ٔظب‬ٚ‫ب زض ػب‬ٞ ٝ‫ساضی ضقش‬ٍٟ٘ ‫ ثطای‬String ‫ ثط ٔی ٌطزا٘س) والؼ‬String ‫ یه قئ‬ٚ ‫ایٗ ٔشس یه وبضاوشط ٔی ٌیطز‬toString: ‫) ٔشس‬3
.‫ اؾز‬ٜ‫ قس‬ٜ‫ضز‬ٚ‫ زض وس ظیط آ‬ٜ‫ قس‬ٝ‫بی ٌفش‬ٞ‫ٔشس‬

public class Main {

public static void main(String[] args) {


// isLetter
System.out.println(Character.isLetter('c'));
System.out.println(Character.isLetter('5'));

//isDigit
System.out.print('\n');
System.out.println(Character.isDigit('c'));
System.out.println(Character.isDigit('5'));

//isWhitespace
System.out.print('\n');
System.out.println(Character.isWhitespace('c'));
System.out.println(Character.isWhitespace(' '));
System.out.println(Character.isWhitespace('\n'));
System.out.println(Character.isWhitespace('\t'));

//isUpperCase
System.out.print('\n');
System.out.println( Character.isUpperCase('c'));
System.out.println( Character.isUpperCase('C'));
System.out.println( Character.isUpperCase('\n'));
System.out.println( Character.isUpperCase('\t'));

//isLowerCase
System.out.print('\n');
System.out.println(Character.isLowerCase('c'));
System.out.println(Character.isLowerCase('C'));
System.out.println(Character.isLowerCase('\n'));
System.out.println(Character.isLowerCase('\t'));

//toUpperCase
System.out.print('\n');
System.out.println(Character.toUpperCase('c'));
System.out.println(Character.toUpperCase('C'));

//toLowerCase
System.out.print('\n');
System.out.println(Character.toLowerCase('c'));
58
System.out.println(Character.toLowerCase('C'));

//toString
System.out.print('\n');
System.out.println(Character.toString('c'));
System.out.println(Character.toString('C'));
}
}

‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی وس ثبال ث‬ٚ‫ذط‬

true
false

false
true

false
true
true
true

false
true
false
false

true
false
false
false

C
C

c
c

c
C

‫بی‬ٞ ‫نیف وطزیٓ) یه ٔظبَ اظ وبضاوشط‬ٛ‫ل ضا ٘یع س‬ٛ‫بی ٔره‬ٞ ‫أ وبضاوشط‬ٛ٘‫ قىُ ا‬ٚ )ٓ‫ب دطزاذشی‬ٞ ‫ز زض وبضاوشط‬ٛ‫ػ‬ٛٔ ‫بی‬ٞ‫ ثطضؾی ٔشس‬ٝ‫زض ایٗ ثرف ث‬
ٝ‫ب و‬ٞ ٝ‫ ثطضؾی ضقش‬ٝ‫ ث‬ٝٔ‫ اؾز) زض ازا‬ٜ‫ افشبز‬ّٝ‫ػی فبن‬ٚ‫ٌ ذط‬ُٛ‫\( ثیٗ ذ‬n) ‫ اظ وبضاوشط‬ٜ‫ ذبَط اؾشفبز‬ٝ‫ ث‬ٝ‫یس و‬ٙ‫ اؾز) ٔی ثی‬ٜ‫ قس‬ٜ‫ضز‬ٚ‫ل زض وس ثبال آ‬ٛ‫ٔره‬
. ‫یٓ دطزاذز‬ٞ‫ا‬ٛ‫ب ٔی ثبقس ذ‬ٞ ‫سطویجی اظ وبضاوشط‬

59
‫کالس‪String‬‬

‫اقیبئی و‪ ٝ‬اظ ایٗ والؼ ؾبذش‪ٔ ٝ‬ی ق‪٘ٛ‬س ثطای ٍ٘‪ٟ‬ساضی ضقش‪ٞ ٝ‬ب ث‪ ٝ‬وبض ٔی ض‪٘ٚ‬س) ضقش‪ ٝ‬ث‪ٔ ٝ‬ؼٕ‪ ٖٝٛ‬ای اظ وبضاوشط ‪ٞ‬بی ٌفش‪ٔ ٝ‬ی ق‪ٛ‬ز) ثطای ٔظبَ وّٕبر ‪ٚ‬‬
‫ػٕالر فبضؾی یب اٍّ٘یؿی زض وبٔذی‪ٛ‬سط ث‪ٖٛٙ ٝ‬اٖ ضقش‪ ٝ‬ق‪ٙ‬بذش‪ٔ ٝ‬ی ق‪٘ٛ‬س) ثطای ؾبذز یه قئ اظ ٘‪ ٔٛ‬ضقش‪ٔ ٚ ٝ‬مساض ز‪ٞ‬ی آٖ ثبیس ث‪ ٝ‬قىُ ظیط ُٖٕ و‪ٙ‬یٓ ‪.‬‬

‫;"!‪String greeting = "Hello world‬‬

‫‪ٕٞ‬بٖ ٌ‪ ٝ٘ٛ‬و‪ ٝ‬زض زاذُ وس ٘كبٖ زاز‪ ٜ‬قس‪ ٜ‬اؾز ٔمساض ضقش‪ ٝ‬ثبیس زض زاذُ ٖالٔز ‪ٞ‬بی زاثُ و‪ٛ‬سیكٗ‪ #" $‬لطاض ثٍیطز) زض وس ثبال یه قئ اظ والؼ ‪String‬‬

‫ؾبذش‪ ٝ‬قس‪ ٜ‬اؾز و‪ٔ ٝ‬مساض آٖ !‪ٔ Hello world‬ی ثبقس) اِجش‪ٔ ٝ‬ب زض ُٔبِت لجّی ٌفشیٓ و‪ ٝ‬ثطای ؾبذز اقیب اظ وّٕ‪ ٝ‬وّیسی ‪ new‬اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز) حبَ‬
‫ثطای ؾبذز ضقش‪٘ ٝ‬یع‬
‫ٔی س‪ٛ‬اٖ اظ ایٗ وّٕ‪ ٝ‬وّیسی اؾشفبز‪ ٜ‬وطز) ثطای ٔظبَ ث‪ ٝ‬وس ظیط س‪ٛ‬ػ‪ ٝ‬و‪ٙ‬یس ‪:‬‬

‫{‪public class StringDemo‬‬

‫{)][‪public static void main(String args‬‬


‫;}'‪char[] helloArray = { 'h', 'e', 'l', 'l', 'o', '.‬‬
‫;)‪String helloString = new String(helloArray‬‬
‫;) ‪System.out.println(helloString‬‬
‫}‬
‫}‬

‫و‪ ٝ‬ذط‪ٚ‬ػی وس ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز ‪:‬‬

‫‪Hello.‬‬

‫زض وس ثبال یه آضای‪ ٝ‬وبضاوشطی ث‪ ٝ‬یه قی ضقش‪ ٝ‬ای سجسیُ قس‪ ٜ‬اؾز ‪.‬‬

‫بِ دست آٍردى طَل رضتِ در جاٍا‬

‫‪ٌ accessor‬فش‪ٔ ٝ‬ی ق‪ٛ‬ز) اـیاء‬ ‫ٔشس‪ٞ‬بیی زض ػب‪ٚ‬ا سٗطیف قس‪ ٜ‬ا٘س و‪ ٝ‬ثش‪ٛ‬ا٘‪ٙ‬س ثطذی اَالٖبر زض ٔ‪ٛ‬ضز یه قئ ضا ث‪ٔ ٝ‬ب ثس‪ٙٞ‬س) ث‪ ٝ‬ایٗ ٔشس ‪ٞ‬ب ٔشس ‪ٞ‬بی‬
‫والؼ ‪ ٓٞ String‬زاضای ٔشس‪ٞ‬بی ‪ٔ accessor‬شٗسزی ‪ٞ‬ؿش‪ٙ‬س) یىی اظ ایٗ ٔشس ‪ٞ‬ب ٔشس )(‪ٔ length‬ی ثبقس و‪ ٝ‬ایٗ ٔشس َ‪ َٛ‬ضقش‪ ٝ‬زاز‪ ٜ‬قس‪ ٜ‬ضا ثط ٔی ٌطزا٘س)‬
‫ٔ‪ٛٓٙ‬ض اظ َ‪ َٛ‬ضقش‪ ٝ‬سٗساز وبضاوشط‪ٞ‬بی ث‪ ٝ‬وبض ضفش‪ ٝ‬زض یه ضقش‪ ٝ‬اؾز) ٔظبِی اظ ٔشس ‪ length‬زض ازأ‪ ٝ‬آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز‪:‬‬

‫{ ‪public class StringDemo‬‬

‫{ )][‪public static void main(String args‬‬

‫‪60‬‬
‫;"‪String palindrome = "Dot saw I was Tod‬‬
‫;)(‪int len = palindrome.length‬‬
‫;) ‪System.out.println( "String Length is : " + len‬‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪String Length is : 17‬‬

‫الحاق دٍ رضتِ بِ یکذیگز‬

‫اٌط ثر‪ٛ‬ا‪ٞ‬یٓ ز‪ ٚ‬ضقش‪ ٝ‬ضا ث‪ ٝ‬یىسیٍط اِحبق و‪ٙ‬یٓ یب ث‪ٖ ٝ‬جبضر ؾبز‪ ٜ‬سط ز‪ ٚ‬ضقش‪ ٝ‬ضا ث‪ ٝ‬یىسیٍط ثچؿجب٘یٓ‪ ،‬اظ ٔشس ‪concat‬اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬یٓ ‪٘ ٚ‬ح‪ٛ٘ ٜٛ‬قشٗ ایٗ‬
‫ٔشس ث‪ ٝ‬قىُ ظیط اؾز‪:‬‬

‫;)‪string1.concat(string2‬‬

‫ایٗ ٔشس یه قئ ضقش‪ ٝ‬ای ػسیس ثطٔی ٌطزا٘س و‪ٔ ٝ‬مساض آٖ اِحبق ز‪ ٚ‬ضقش‪ٔ string2 ٚ String1 ٝ‬ی ثبقس) ‪ٕٞ‬چ‪ٙ‬یٗ قٕب ٔی س‪ٛ‬ا٘یس اظ ٔشس ‪concat‬زض ٔمساض‬
‫یه ضقش‪٘ ٝ‬یع اؾشفبز‪ ٜ‬و‪ٙ‬یس) ٔب٘‪ٙ‬س قىُ ظیط‪:‬‬

‫;)"‪"My site is ".concat("Itpro‬‬

‫‪ٕٞ‬چ‪ٙ‬یٗ ٔی س‪ٛ‬اٖ ُٖٕ اِحبق ز‪ ٚ‬ضقش‪ ٝ‬ضا ثس‪ٔ ٖٚ‬شس ‪ ٚ‬فمٍ ثب اؾشفبز‪ ٜ‬اظ ٍّٖٕط & ٘یع ا٘ؼبْ زاز ایٗ ض‪ٚ‬ـ زض قىُ ظیط آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز ‪:‬‬

‫"‪"Our" +" Website"+" is"+" Itpro‬‬

‫ثطای زضن ث‪ٟ‬شط ایٗ ُٖٕ ث‪ٔ ٝ‬ظبَ ظیط زلز و‪ٙ‬یس ‪.‬‬

‫{ ‪public class StringDemo‬‬

‫{ )][‪public static void main(String args‬‬


‫;" ‪String string1 = "saw I was‬‬
‫;)"‪System.out.println("Dot " + string1 + "Tod‬‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪Dot saw I was Tod‬‬

‫‪61‬‬
‫فزهت دادى بِ رضتِ‬

‫‪printf‬اظ ضقش‪ ٝ‬فطٔز ث‪ٙ‬سی قس‪ ٜ‬اؾشفبز‪ ٜ‬وطز) اٌط ثر‪ٛ‬ا‪ٞ‬یس ٔش‪ٙ‬ی ضا‬ ‫‪ٕٞ‬بٖ ٌ‪ ٝ٘ٛ‬و‪ ٝ‬زض آٔ‪ٛ‬ظـ ‪ٞ‬بی لجُ ‪٘ ٓٞ‬كبٖ زاز‪ ٜ‬قس ٔی س‪ٛ‬اٖ ‪ٍٙٞ‬بْ اؾشفبز‪ ٜ‬اظ ٔشس‬
‫فطٔز ث‪ٙ‬سی و‪ٙ‬یس و‪ ٝ‬زض لؿٕز ‪ٞ‬بیی اظ آ٘‪ٟ‬ب ٔمبزیط ٔكرهی لطاض ٌیطز ٔی س‪ٛ‬ا٘یس اظ ز‪ٔ ٚ‬شس ‪ format ٚprintf‬اؾشفبز‪ ٜ‬وطز) ایٗ ز‪ٔ ٚ‬شس یه ضقش‪ ٚ ٝ‬سٗسازی‬
‫قئ زضیبفز ٔی و‪ٙٙ‬س و‪ ٝ‬ضقش‪ٚ ٝ‬اضز قس‪ ٜ‬فطٔز ث‪ٙ‬سی قس‪ ٜ‬اؾز) ذط‪ٚ‬ػی ایٗ ٔشس ‪ٞ‬ب اظ ٘‪ٔ string ٔٛ‬ی ثبقس یٗ‪ٙ‬ی ذط‪ٚ‬ػی ایٗ ٔشس‪ٞ‬ب یه قئ ضقش‪ ٝ‬ای‬
‫اؾز) سفب‪ٚ‬ر ‪printf‬ثب ‪ format‬ایٗ اؾز و‪printf ٝ‬ضقش‪ ٝ‬ضا فطٔز ث‪ٙ‬سی وطز‪ ٚ ٜ‬زض ‪ٕٞ‬بٖ حبَ آٖ ضا چبح ٔی و‪ٙ‬س ث‪ٙ‬بثط ایٗ ٔب ٕ٘ی س‪ٛ‬ا٘یٓ و‪ ٝ‬ضقش‪ ٝ‬س‪ِٛ‬یس‬
‫قس‪ ٜ‬ضا زض زاذُ یه ٔشغیط ضیرش‪ ٚ ٝ‬چ‪ٙ‬س ثبض اظ آٖ اؾشفبز‪ ٜ‬و‪ٙ‬یٓ) أب ثب اؾشفبز‪ ٜ‬اظ ٔشس ‪ format‬ایٗ وبض قس٘ی اؾز) ث‪ٙ‬بثط ایٗ ٔی س‪ٛ‬اٖ ث‪ ٝ‬ػبی اؾشفبز‪ ٜ‬اظ وس‬
‫ظیط‪:‬‬

‫‪System.out.printf("The value of the float variable is " +‬‬


‫‪"%f, while the value of the integer " +‬‬
‫‪"variable is %d, and the string " +‬‬
‫;)‪"is %s", floatVar, intVar, stringVar‬‬

‫زلز زاقش‪ ٝ‬ثبقیس و‪ٔ ٝ‬شغیط ‪ٞ‬بی ‪floatVar, intVar, stringVar‬اظ لجُ سٗطیف ‪ٔ ٚ‬مساضز‪ٞ‬ی قس‪ ٜ‬ا٘س) حبَ ث‪ ٝ‬ػبی اؾشفبز‪ ٜ‬اظ وس ثبال ٔی س‪ٛ‬اٖ اظ وس ظیط‬
‫اؾشفبز‪ ٜ‬وطز‪.‬‬

‫;‪String fs‬‬
‫‪fs = String.format("The value of the float variable is " +‬‬
‫‪"%f, while the value of the integer " +‬‬
‫‪"variable is %d, and the string " +‬‬
‫;)‪"is %s", floatVar, intVar, stringVar‬‬
‫;)‪System.out.println(fs‬‬

‫ذط‪ٚ‬ػی وس ثبال اٌط "‪floatVar=5.2, intVar=45, stringVar="MehdiAdeli‬ثبقس ثطاثط ٔمساض ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪The value of the float variable is 5.200000, while the value of the integer variable‬‬
‫‪is 45, and the string is MehdiAdeli‬‬

‫هتذّای کالس‪String‬‬

‫ٔشس‪:charAt‬ایٗ ٔشس وبضاوشطی ضا و‪ ٝ‬ثب ٖسز ا٘سیؽ آٖ ٔكرم قس‪ ٜ‬اؾز ضا ثطٔی ٌطزا٘س) ث‪ ٝ‬ایٗ ٔٗ‪ٙ‬ی و‪ ٝ‬یه ‪ٚ‬ض‪ٚ‬زی ٖسزی ث‪ٖٛٙ ٝ‬اٖ ا٘سیؽ ٌطفش‪ٔ ٝ‬ی‬
‫ق‪ٛ‬ز ‪ ٚ‬وبضاوشط آٖ ا٘سیؽ ضا ثطٔی ٌطزا٘س) زلز و‪ٙ‬یس و‪ ٝ‬زض ػب‪ٚ‬ا ا٘سیؽ ‪ٞ‬ب اظ نفط قط‪ٔ ٔٚ‬ی ق‪٘ٛ‬س) ثطای ٔظبَ ث‪ ٝ‬وس ظیط س‪ٛ‬ػ‪ ٝ‬و‪ٙ‬یس ‪:‬‬

‫{ ‪public class Test‬‬


‫‪62‬‬
public static void main(String args[]) {
String s = "Strings are immutable";
char result = s.charAt(8);
System.out.println(result);
}
}

.‫ ٔی ثبقس‬are ّٕٝ‫ زض اثشسای و‬a ‫ وبضاوشط‬8 ‫ وبضاوشط ا٘سیؽ‬ٝ‫ ایٗ زِیُ و‬ٝ‫ز) ث‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ ذ‬a ‫ػی ایٗ وس حطف‬ٚ‫ذط‬

compareTo‫هتذ‬

‫ ضا ثب یىسیٍط‬ٝ‫ ضقش‬ٚ‫ْ ز‬ٚ‫ ز‬ٚ ‫س‬ٙ‫ ٔی و‬ٝ‫ ضا ثب یه قئ زیٍط ٔمبیؿ‬ٝ‫َ یه ضقش‬ٚ‫س) ا‬ٞ‫ ضا ا٘ؼبْ ٔی ز‬ٝ‫ٔ ٔمبیؿ‬ٛ٘ ٚ‫ ٔی ثبقس) ایٗ ٔشس ز‬ٝ‫ ایٗ ٔشس ٔمبیؿ‬ٝ‫ْیف‬ٚ
‫ػی ٔشس وٕشط‬ٚ‫ اٌط ذط‬ٚ ‫س‬ٙ‫ؿش‬ٞ ‫ی‬ٚ‫ٓ وبٔال ٔؿب‬ٞ‫ ثب‬ٝ‫ ضقش‬ٚ‫ ز‬ٝ‫ی اؾز و‬ٙٗٔ ٗ‫ ای‬ٝ‫ ثبقس ث‬0 ‫ اٌط‬ٝ‫ ٔی ثبقس و‬int ‫ػی ایٗ ٔشس یه ٖسز‬ٚ‫ ٔی ٕ٘بیس) ذط‬ٝ‫ٔمبیؿ‬
ِ‫ اظ ِحب‬ٝ‫ی اؾز و‬ٙٗٔ ٗ‫ ای‬ٝ‫ ثبقس ث‬0 ‫ػی ثعضٌشط اظ‬ٚ‫ اٌط ذط‬ٚ ‫چىشط ٔی ثبقس‬ٛ‫ ٔشس اظ ِحبِ وبضاوشطی و‬ٜ‫س‬ٙ٘‫ نسا ظ‬ٝ‫ز ضقش‬ٛ‫زی ٔشس اظ ذ‬ٚ‫ض‬ٚ ‫ ثبقس‬0 ‫اظ‬
: ‫یس‬ٙ‫ وس ظیط زلز و‬ٝ‫زی اـ ٔی ثبقس) ثطای ٔظبَ ث‬ٚ‫ض‬ٚ ٖ‫ٔب‬ٌٛ‫ ثعضٌشط اظ آض‬ٝ‫ز ضقش‬ٛ‫ب ذ‬ٞ ‫وس اؾىی وبضاوشط‬

public class Test {

public static void main(String args[]) {


String str1 = "Strings are immutable";
String str2 = "Strings are immutable";
String str3 = "Integers are not immutable";

int result = str1.compareTo( str2 );


System.out.println(result);

result = str2.compareTo( str3 );


System.out.println(result);

result = str3.compareTo( str1 );


System.out.println(result);
}
}

‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی وس ثبال ث‬ٚ‫ذط‬

0
10
-10

compareToIgnoreCase‫هتذ‬

63
ٜ‫اؾشفبز‬compareTo ‫ اٌط اظ‬ٝ‫ی و‬ٙٗٔ ٗ‫ ای‬ٝ‫س قس) ث‬ٞ‫ا‬ٛ‫ر لبیُ ذ‬ٚ‫چه سفب‬ٛ‫ و‬ٚ ‫ف ثعضي‬ٚ‫ا ثیٗ حط‬ٚ‫یٓ ػب‬ٙ‫ و‬ٜ‫اؾشفبز‬compareTo ‫اٌط زض حبِز وّی اظ ٔشس‬
‫چه فطلی ٍ٘صاضز اظ‬ٛ‫ و‬ٚ ‫ف ثعضي‬ٚ‫ا ثیٗ حط‬ٚ‫ ػب‬ٝ‫یٓ و‬ٞ‫ا‬ٛ‫س زاقز) حبَ اٌط ثر‬ٙٞ‫ا‬ٛ‫ٓ فطق ذ‬ٞ ‫ ثب‬hello ٚ Hello ‫یٓ وّٕبر‬ٙ‫و‬
ٗ‫ٕبٖ ٔشس اؾز) ثطای ٔظبِی اظ ای‬ٞ ٝ‫ ث‬ٝ‫بی آٖ ٘یع قجی‬ٞ ‫ػی‬ٚ‫ ذط‬ٚ ٜ‫ز‬ٛ‫ث‬compareTo ‫س ٔشس‬ٙ٘‫ٕب‬ٞ ‫یٓ) ایٗ ٔشس‬ٙ‫ ٔی و‬ٜ‫اؾشفبز‬compareToIgnoreCase‫ٔشس‬
:‫ ٕ٘بییس‬ٝ‫ػ‬ٛ‫ وس ظیط س‬ٝ‫ٔشس ث‬

public class Test {

public static void main(String args[]) {


String str1 = "Strings are immutable";
String str2 = "STrings Are Immutable";
String str3 = "Integers are not immutable";

int result = str1.compareToIgnoreCase( str2 );


System.out.println(result);

result = str2.compareToIgnoreCase( str3 );


System.out.println(result);

result = str3.compareToIgnoreCase( str1 );


System.out.println(result);
}
}

:‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی وس ثبال ث‬ٚ‫ذط‬

0
10
-10

contentEquals‫هتذ‬

ٗ‫ػی ای‬ٚ‫ٔی ثبقس) ذط‬StringBuffer ٔٛ٘ ‫زی ایٗ ٔشس یه قئ اظ‬ٚ‫ض‬ٚ ٖ‫ٔب‬ٌٛ‫ آض‬ٝ‫ر و‬ٚ‫ ثب یىسیٍط ٔی ثبقس ثب ایٗ سفب‬ٝ‫ ضقش‬ٚ‫ ز‬ٝ‫ٓ ٔمبیؿ‬ٞ ‫ ایٗ ٔشس‬ٝ‫ْیف‬ٚ
‫س‬ٞ‫ا‬ٛ‫ ذ‬false ٝ‫ضر ٘شیؼ‬ٛ‫ زض غیط ایٗ ن‬ٚ true ٝ‫ ثطاثط ثبقس ٘شیؼ‬ٜ‫س‬ٙ٘‫ نسا ظ‬ٝ‫زی ثب ضقش‬ٚ‫ض‬ٚ ‫ اٌط ٔمساض‬ٝ‫ ایٗ قىُ و‬ٝ‫ ٔی ثبقس ث‬Boolean ‫ٔشس یه ٔمساض‬
:‫ ٕ٘بییس‬ٝ‫ػ‬ٛ‫ وس ظیط س‬ٝ‫ز) ثطای ٔظبَ ث‬ٛ‫ث‬

public class Test {

public static void main(String args[]) {


String str1 = "Not immutable";
String str2 = "Strings are immutable";
StringBuffer str3 = new StringBuffer( "Not immutable");

64
‫;) ‪boolean result = str1.contentEquals( str3‬‬
‫;)‪System.out.println(result‬‬

‫;) ‪result = str2.contentEquals( str3‬‬


‫;)‪System.out.println(result‬‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‬

‫‪true‬‬
‫‪false‬‬

‫زلز زاقش‪ ٝ‬ثبقیس و‪ ٝ‬ایٗ ٔشس ٘یع ثطای ثعضي ‪ ٚ‬و‪ٛ‬چه ث‪ٛ‬زٖ حط‪ٚ‬ف سفب‪ٚ‬ر لبیُ ذ‪ٛ‬ا‪ٞ‬س قس ‪.‬‬

‫هتذ‪copyValueOf‬‬

‫ایٗ ٔشس ثطای سجسیُ یه آضای‪ ٝ‬وبضاوشطی ث‪ ٝ‬یه قئ ‪ String‬ث‪ ٝ‬وبض ٔی ض‪ٚ‬ز) ث‪ ٝ‬ایٗ ٔٗ‪ٙ‬ی و‪ ٝ‬یه آضای‪ ٝ‬وبضاوشطی و‪ ٝ‬زض ‪ٞ‬ط ذب٘‪ ٝ‬آٖ یه وبضاوشط ‪ٚ‬ػ‪ٛ‬ز زاضز‬
‫ضا ث‪ ٓٞ ٝ‬چؿجب٘س‪ ٕٝٞ ٚ ٜ‬ضا سجسیُ ث‪ ٝ‬یه ضقش‪ٔ ٝ‬ی و‪ٙ‬س) ایٗ ٔشس ز‪ ٚ‬قىُ اؾشفبز‪ ٜ‬زاضز) زض یىی اظ قىُ ‪ٞ‬بی اؾشفبز‪ ٜ‬اظ ایٗ ٔشس فمٍ یه آضای‪ ٝ‬وبضوشطی ث‪ٝ‬‬
‫ٖ‪ٛٙ‬اٖ ‪ٚ‬ض‪ٚ‬زی ٌطفش‪ ٝ‬قس‪ ٚ ٜ‬ضقش‪ٔ ٝ‬ش‪ٙ‬بْط ثب آٖ ثطٌطزا٘س‪ٔ ٜ‬ی ق‪ٛ‬ز) ‪ِٚ‬ی زض ض‪ٚ‬ـ ز‪ ْٚ‬سجسیُ وُ آضای‪ ٝ‬ث‪ ٝ‬ضقش‪ٔ ٝ‬س ٘ٓط ٘یؿز ‪ٔ ٚ‬ی ذ‪ٛ‬ا‪ٞ‬یٓ لؿٕشی اظ آضای‪ٝ‬‬
‫ضا ث‪ ٝ‬ضقش‪ ٝ‬سجسیُ و‪ٙ‬یٓ) ثطای ایٗ وبض زض ض‪ٚ‬ـ ز‪ٖ ْٚ‬ال‪ ٜٚ‬ثط ایٗ و‪ ٝ‬زض آضٌ‪ٔٛ‬بٖ ‪ٚ‬ض‪ٚ‬زی آضای‪ ٝ‬وبضاوشطی ضا زضیبفز ٔی و‪ٙ‬یٓ ذب٘‪ ٝ‬ای و‪ ٝ‬اظ آٖ ذب٘‪ ٝ‬ثبیس‬
‫قط‪ ٔٚ‬و‪ٙ‬یٓ ‪ ٚ‬سٗساز ذب٘‪ٞ ٝ‬بیی و‪ ٝ‬ثبیس ا٘شربة ق‪٘ٛ‬س ‪ ٚ‬ث‪ ٝ‬ضقش‪ ٝ‬سجسیُ ق‪٘ٛ‬س ٘یع ثبیس ث‪ٖٛٙ ٝ‬اٖ ‪ٚ‬ض‪ٚ‬زی زاز‪ ٜ‬ق‪ٛ‬ز) ثطای ٔظبِی اظ ایٗ ٔشس ث‪ ٝ‬وس ظیط س‪ٛ‬ػ‪ٝ‬‬
‫و‪ٙ‬یس‪:‬‬

‫{ ‪public class Test‬‬

‫{ )][‪public static void main(String args‬‬


‫;}'‪char[] Str1 = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd‬‬
‫;"" = ‪String Str2‬‬

‫;) ‪Str2 = Str2.copyValueOf( Str1‬‬


‫;)‪System.out.println("Returned String: " + Str2‬‬

‫;) ‪Str2 = Str2.copyValueOf( Str1, 2, 6‬‬


‫;)‪System.out.println("Returned String: " + Str2‬‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی اػطای وس ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز ‪:‬‬

‫‪Returned String: hello world‬‬


‫‪65‬‬
‫‪Returned String: llo wo‬‬

‫‪ 2‬ث‪ ٝ‬ا٘ساظ‪ 6 ٜ‬ذب٘‪ٝ‬‬ ‫‪ٕٞ‬بٖ ٌ‪ ٝ٘ٛ‬و‪ ٝ‬زیس‪ٔ ٜ‬ی ق‪ٛ‬ززض لؿٕز ا‪ َٚ‬وس ٔب وُ آضای‪ ٝ‬ضا ث‪ ٝ‬ضقش‪ ٝ‬سجسیُ وطزیٓ ‪ِٚ‬ی زض ثرف ز‪ٌ ْٚ‬فش‪ ٝ‬ایٓ و‪ ٝ‬اظ ا٘سیؽ قٕبض‪ٜ‬‬
‫ا٘شربة وٗ و‪ ٝ‬ذط‪ٚ‬ػی ضا ٔكب‪ٞ‬س‪ٔ ٜ‬ی و‪ٙ‬یس‪.‬‬

‫هتذ‪endsWith‬‬

‫ایٗ ٔشس یه آضٌ‪ٔٛ‬بٖ ‪ٚ‬ض‪ٚ‬زی زاضز و‪ٔ ٝ‬كرم ٔی و‪ٙ‬س و‪ ٝ‬ا٘ش‪ٟ‬بی ضقش‪ ٝ‬ثب آضٌ‪ٔٛ‬بٖ ‪ٚ‬ض‪ٚ‬زی یىی اؾز یب ذیط) اٌط لؿٕز ا٘ش‪ٟ‬بیی ضقش‪ ٝ‬ثب آضٌ‪ٔٛ‬بٖ ‪ٚ‬ض‪ٚ‬زی‬
‫یىی ث‪ٛ‬ز دؽ ٔمساض ‪ ٚ true‬زض غیط ایٗ ن‪ٛ‬ضر ٔمساض ‪ false‬ثطٔی ٌطزا٘س) اٌط آضٌ‪ٔٛ‬بٖ ‪ٚ‬ض‪ٚ‬زی ضقش‪ ٝ‬ذبِی ثبقس یب ثب ضقش‪ ٝ‬نسا ظ٘‪ٙ‬س‪ ٓٞ ٜ‬ثطاثط ثبقس ایٗ‬
‫ٔشس ػ‪ٛ‬اة ‪ true‬ذ‪ٛ‬ا‪ٞ‬س زاز) وس ظیط ٔظبِی اظ ایٗ ٔشس ضا ٕ٘بیف ٔی ز‪ٞ‬س‪.‬‬

‫{‪public class Test‬‬

‫{)][‪public static void main(String args‬‬


‫;)"!!‪String Str = new String("This is really not immutable‬‬
‫;‪booleanretVal‬‬

‫;) "!!‪retVal = Str.endsWith( "immutable‬‬


‫;) ‪System.out.println("Returned Value = " + retVal‬‬

‫;) "‪retVal = Str.endsWith( "immu‬‬


‫;) ‪System.out.println("Returned Value = " + retVal‬‬
‫}‬
‫}‬

‫اٌط وس ثبال ضا اػطا و‪ٙ‬یٓ ٘شیؼ‪ ٝ‬ث‪ ٝ‬ن‪ٛ‬ضر ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪Returned Value = true‬‬


‫‪Returned Value = false‬‬

‫هتذ‪equals‬‬

‫‪ْٚ‬یف‪ ٝ‬ایٗ ٔشس ٔمبیؿ‪ ٝ‬اؾز) ث‪ ٝ‬قىّی و‪ ٝ‬ضقش‪ ٝ‬زاز‪ ٜ‬قس‪ ٜ‬ضا ثب آضٌ‪ٔٛ‬بٖ ‪ٚ‬ض‪ٚ‬زی ٔمبیؿ‪ٔ ٝ‬ی و‪ٙ‬س) ظثبٖ ثط٘بٔ‪ٛ٘ ٝ‬یؿی ػب‪ٚ‬ا ثطای ‪ٞ‬طقئ اظ ‪ٞ‬ط ٘‪ٖٛ‬ی ٔی س‪ٛ‬اٖ‬
‫‪ true‬ضا ثطٔی‬ ‫یه‪hashcode‬س‪ِٛ‬یس و‪ٙ‬س) حبَ ٔشس ‪ equals‬اٌط ٔمساض ‪hashcode‬ز‪ ٚ‬قئ ثب ‪ ٓٞ‬ثطاثط ثبقس آٖ ز‪ ٚ‬ضا ثب ‪ ٓٞ‬ثطاثط زض ٘ٓط ٔی ٌیطز ‪ٔ ٚ‬مساض‬
‫‪ ٚ true‬اٌط ثطاثط ٘جبق‪ٙ‬س ایٗ ٔشس‬ ‫ٌطزا٘س ‪ ٚٚ‬زض غیط ایٗ ن‪ٛ‬ضر ٔمساض ‪ false‬ثطٔی ٌطزا٘س) ث‪ٖ ٝ‬جبضر زیٍط اٌط ز‪ ٚ‬ضقش‪ ٝ‬ثب ‪ ٓٞ‬ثطاثط ثبق‪ٙ‬س ایٗ ٔشس ٔمساض‬
‫ٔمساض ‪ False‬ثطٔی ٌطزا٘س) آضٌ‪ٔٛ‬بٖ ‪ٚ‬ض‪ٚ‬زی ایٗ ٔشس ٔی س‪ٛ‬ا٘س ‪ٞ‬ط قئی ثبقس) ‪ٔ ٚ‬مساض ثبظٌكشی آٖ یه ٔمساض ‪ Boolean‬اؾز) ثطای ٔظبَ ث‪ ٝ‬وس ظیط س‪ٛ‬ػ‪ٝ‬‬
‫و‪ٙ‬یس‪:‬‬

‫{ ‪public class Test‬‬


‫‪66‬‬
public static void main(String args[]) {
String Str1 = new String("This is really not immutable!!");
String Str2 = Str1;
String Str3 = new String("This is really not immutable!!");
booleanretVal;

retVal = Str1.equals( Str2 );


System.out.println("Returned Value = " + retVal );

retVal = Str1.equals( Str3 );


System.out.println("Returned Value = " + retVal );
}
}

‫ز‬ٛ‫سث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ آٖ ث‬ٝ‫یٓ ٘شیؼ‬ٙ‫اٌط ایٗ وس ضا اػطا و‬

Returned Value = true


Returned Value = true

‫زی ثب‬ٚ‫ض‬ٚ ٖ‫ٔب‬ٌٛ‫ ٔمساض آض‬ٝ‫س و‬ٙ‫ ٔكرم ٔی و‬ٚ ٜ‫ ضا ا٘ؼبْ زاز‬ٝ‫٘بْ زاضز) ایٗ ٔشس ٘یع ُٖٕ ٔمبیؿ‬equalsIgnoreCase ٝ‫ز زاضز و‬ٛ‫ػ‬ٚ ‫ زیٍطی ٘یع‬ٝ‫ٔشس ٔكبث‬
‫ا٘س‬ٛ‫ ٕ٘ی س‬ٚ ‫ ثبقس‬String ٔٛ٘ ‫زی ثبیس اظ‬ٚ‫ض‬ٚ ٖ‫ٔب‬ٌٛ‫ آض‬ٝ‫ز زاضز یىی ایٗ و‬ٛ‫ػ‬ٚ equals ‫ ٔشس‬ٚ ‫ر ثیٗ ایٗ ٔشس‬ٚ‫ سفب‬ٚ‫ضز ٘ٓط ثطاثط اؾز یب ذیط أب ز‬ٛٔ ٝ‫ضقش‬
. ‫ اؾز‬ٜ‫ قس‬ٜ‫ضز‬ٚ‫ز) ٔظبِی اظ ایٗ ٔشس زض وس ظیط آ‬ٛ‫ر لبیُ ٕ٘ی ق‬ٚ‫چه سفب‬ٛ‫ و‬ٚ ‫ ثعضي‬ٚ ‫ف‬ٚ‫ ایٗ ٔشس ثیٗ حط‬ٝ‫ْ ایٗ و‬ٚ‫ ز‬ٚ ‫ط قئی ثبقس‬ٞ

public class Test {

public static void main(String args[]) {


String Str1 = new String("This is really not immutable!!");
String Str2 = Str1;
String Str3 = new String("This is really not immutable!!");
String Str4 = new String("This IS REALLY NOT IMMUTABLE!!");
booleanretVal;

retVal = Str1.equals( Str2 );


System.out.println("Returned Value = " + retVal );

retVal = Str1.equals( Str3 );


System.out.println("Returned Value = " + retVal );

retVal = Str1.equalsIgnoreCase( Str4 );


System.out.println("Returned Value = " + retVal );
}
}

: ‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی اػطای وس ثبال ث‬ٚ‫ذط‬

67
Returned Value = true
Returned Value = true
Returned Value = true

getBytes‫هتذ‬

ٝ‫ ضا ث‬ٝ‫ ضقش‬ٝ‫زی زاضز) وبض ایٗ ٔشس ایٗ اؾز و‬ٚ‫ض‬ٚ ٖ‫ٔب‬ٌٛ‫ْ آٖ یه آض‬ٚ‫ قىُ ز‬ٚ ‫ٔب٘ی ٘ساضز‬ٌٛ‫ آض‬ٝ‫َ اظ ایٗ ٔشس ث‬ٚ‫ٖ زاضز) قىُ ا‬ٌٛ‫٘ب‬ٌٛ ُ‫ قى‬ٚ‫ایٗ ٔشس ز‬
: ‫یس‬ٙ‫ و‬ٝ‫ػ‬ٛ‫ وس ظیط س‬ٝ‫ب ٔی ثبقس) ثطای ٔظبَ ث‬ٞ ‫ ای اظ ثبیز‬ٝ‫ػی ایٗ ٔشس آضای‬ٚ‫س) ذط‬ٙ‫ب وسٌصاضی ٔی و‬ٞ ‫یه ؾطی ثبیز‬

import java.io.*;

public class Test{

public static void main(String args[]){


String Str1 = new String("Welcome to Tutorialspoint.com");
try{
byte[] Str2 = Str1.getBytes();
System.out.println("Returned Value " + Str2 );

Str2 = Str1.getBytes( "UTF-8" );


System.out.println("Returned Value " + Str2 );

Str2 = Str1.getBytes( "ISO-8859-1" );


System.out.println("Returned Value " + Str2 );
}catch( UnsupportedEncodingException e){
System.out.println("Unsupported character set");
}
}
}

‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ ث‬ٜ‫ قس‬ٝ‫ػی وس ٌفش‬ٚ‫ذط‬

Returned Value [B@192d342


Returned Value [B@15ff48b
Returned Value [B@1b90b39

getChars‫هتذ‬

‫یچ ٔمساض‬ٞ ‫س) ایٗ ٔشس‬ٙ‫ ضا ػسا ٔی و‬ٝ‫بی ضقش‬ٞ‫ وبضاوشط‬ٝ‫اٖ ٌفز و‬ٛ‫ قىّی ٔی س‬ٝ‫ب ٔیطیعز) ث‬ٞ ‫ اظ وبضاوشط‬ٝ‫ زاذُ یه آضای‬ٝ‫ ضا ث‬ٝ‫بی ضقش‬ٞ ‫ایٗ ٔشس وبضاوشط‬
‫ قىُ ظیط‬ٝ‫ سطسیت ث‬ٝ‫زی ایٗ ٔشس ث‬ٚ‫ض‬ٚ ‫بی‬ٞ ٖ‫ٔب‬ٌٛ‫ آٖ زاز) آض‬ٝ‫زی ثبیس ث‬ٚ‫ض‬ٚ ٖ‫ٔب‬ٌٛ‫ قىُ آض‬ٝ‫ز ضا ث‬ٛ‫ ثبیس دط ق‬ٝ‫بیی و‬ٞ‫ ی وبضاوشط‬ٝ‫ِی آضای‬ٚ )‫ثبظٌكشی ٘ساضز‬
:‫س‬ٙ‫ٔی ثبق‬

68
‫‪srcBegin ),‬ا٘سیؽ ا‪ِٚ‬یٗ وبضاوشط اظ ضقش‪ٛٔ ٝ‬ضز ٘ٓط و‪ ٝ‬ا٘شربة وبضاوشط ‪ٞ‬ب اظ آٖ ا٘سیؽ قط‪ٔ ٔٚ‬ی ق‪٘ٛ‬س) ایٗ آضٌ‪ٔٛ‬بٖ ٖسزی اؾز ‪.‬‬

‫‪ srcEnd )-‬ا٘سیؽ آذطیٗ وبضاوشط اظ ضقش‪ ٝ‬و‪ ٝ‬ا٘شربة وبضاوشط‪ٞ‬ب سب آٖ ا٘سیؽ ازأ‪ٔ ٝ‬ی یبثس ‪ ٚ‬زض آٖ ا٘سیؽ ذشٓ ٔی ق‪ٛ‬ز ایٗ آضٌ‪ٔٛ‬بٖ ٖسزی اؾز ‪.‬‬

‫‪٘dst ).‬بْ آضای‪ٔ ٝ‬مهس ضا و‪ ٝ‬وبضاوشط ‪ٞ‬ب زض آٖ ضیرش‪ٔ ٝ‬ی ق‪ٛ‬ز ضا زض ایٗ لؿٕز لطاض ٔی ز‪ٞ‬یٓ‪.‬‬

‫‪dstBegin )/‬ایٗ آضٌ‪ٔٛ‬بٖ ٔكرم ٔی و‪ٙ‬س و‪ ٝ‬اظ وساْ ا٘سیؽ اضای‪ٔ ٝ‬مهس قط‪ ٔٚ‬ث‪ ٝ‬ضیرشٗ وبضاوشط ‪ٞ‬ب و‪ٙ‬یٓ ‪.‬‬

‫ثطای ٔظبِی اظ ایٗ ٔشس ث‪ ٝ‬وس ظیط س‪ٛ‬ػ‪ ٝ‬و‪ٙ‬یس‪:‬‬

‫;*‪import java.io.‬‬

‫{‪public class Test‬‬


‫{)][‪public static void main(String args‬‬
‫;)"‪String Str1 = new String("Welcome to Itpro.ir‬‬
‫;]‪char[] Str2 = new char[7‬‬

‫{‪try‬‬
‫;)‪Str1.getChars(2, 9, Str2, 0‬‬
‫;) " = ‪System.out.print("Copied Value‬‬
‫;) ‪System.out.println(Str2‬‬

‫{)‪}catch( Exception ex‬‬


‫;)"‪System.out.println("Raised exception...‬‬
‫}‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪Copied Value = lcome t‬‬

‫هتذ‪hashCode‬‬

‫ایٗ ٔشس یه وس ث‪ ٝ‬اظای ثطای ضقش‪ ٝ‬س‪ِٛ‬یس ٔی و‪ٙ‬س و‪ ٝ‬ث‪ ٝ‬آٖ‪ٌhashCode‬فش‪ٔ ٝ‬ی ق‪ٛ‬ز) ایٗ‪hashCode‬ثطای اقیب‪ String‬ی ث‪ ٝ‬قىُ ظیط ٔحبؾج‪ٔ ٝ‬ی ق‪ٛ‬ز‪:‬‬

‫]‪s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1‬‬

‫زض فطٔ‪ َٛ‬ثبال ]‪ s[i‬وبضاوشط‪ٞ‬بی ضقش‪ٔ ٝ‬ی ثبقس‪ ََٛn ،‬ضقش‪ٔ ٝ‬ی ثبقس ‪ٖ ^ ٚ‬الٔز س‪ٛ‬اٖ ٔی ثبقس) ٔمساض ‪hashCode‬ثطای ضقش‪ ٝ‬ذبِی نفط اؾز) ایٗ ٔشس‬
‫‪ٞ‬یچ آضٌ‪ٔٛ‬بٖ ‪ٚ‬ض‪ٚ‬زی ٘ساضز) ذط‪ٚ‬ػی ایٗ ٔشس یه ٖسز ‪ٔ int‬ی ثبقس) ٔظبِی اظ ایٗ ٔشس زض وس ظیط آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز‪:‬‬

‫;*‪import java.io.‬‬
‫‪69‬‬
public class Test{
public static void main(String args[]){
String Str = new String("Welcome to Tutorialspoint.com");
System.out.println("Hashcode for Str :" + Str.hashCode() );
}
}

: ‫ قىُ ظیط اؾز‬ٝ‫ػی اػطای وس ثبال ث‬ٚ‫ذط‬

Hashcode for Str :1186874997

indexOf‫هتذ‬

ٝ‫ ٔی ثبقس و‬int ‫ػی ایٗ ٔشس یه ٖسز‬ٚ‫ دیسا وطزٖ ٔحُ آٖ اؾز) ذط‬ٚ ٝ‫ زض زاذُ ضقش‬ٛ‫ ایٗ ٔشس ػؿشؼ‬ٝ‫ْیف‬ٚ )‫ قىُ ٔرشّف ٔی ثبقس‬4 ‫ایٗ ٔشس زاضای‬
ٛ‫ضز ػؿشؼ‬ٛٔ ٝ‫س) اٌط وبضاوشط یب ضقش‬ٙ‫ و‬ٛ‫ انّی ػؿشؼ‬ٝ‫ ضا زض زاذُ ضقش‬ٝ‫ا٘س یه وبضاوشط یب یه ضقش‬ٛ‫ یب وبضاوشط ٔی ثبقس) ایٗ ٔشس ٔی س‬ٝ‫ٔ ضقش‬ٚ‫ٔحُ قط‬
: ‫ز) اقىبَ ٔرشّف ایٗ ٔشس ٖجبضسؿز اظ‬ٛ‫ ٔی ق‬ٜ‫ ثبظٌكز زاز‬1( ‫ ثبقس ٔمساض‬ٝ‫ز ٘ساقش‬ٛ‫ػ‬ٚ ‫ انّی‬ٝ‫زض ضقش‬

. ‫ ا٘سیؽ آٖ ضا ثطٔی ٌطزا٘س‬ٚ ٜ‫ وطز‬ٛ‫یه وبضاوشط ضا ػؿشؼ‬indexOf(int ch) ),


.‫س‬ٙ‫ ٔی و‬ٛ‫ ػؿشؼ‬ٜ‫یه وبضاوشط ضا اظ ا٘سیؽ ٔكرم قس‬indexOf(int ch, int fromIndex) )-
. ‫ٔ آٖ ضا ثطٔی ٌطزا٘س‬ٚ‫ قط‬ُٝ‫ ؾذؽ ٘م‬ٚ ‫س‬ٙ‫ ٔی و‬ٛ‫ انّی ػؿشؼ‬ٝ‫ ضا زض زاذُ ضقش‬ٝ‫یه ضقش‬indexOf(String str) ).
‫ ٔحُ آٖ ضا ثطٔی‬ٚ ‫س‬ٙ‫ ٔی و‬ٛ‫ ػؿشؼ‬ٜ‫ انّی اظ ا٘سیؽ ٔكرم قس‬ٝ‫ ضا زض زاذُ ضقش‬ٝ‫یه ضقش‬indexOf(String str, int fromIndex) )/
.‫ٌطزا٘س‬

:‫ اؾز‬ٜ‫ قس‬ٜ‫ضز‬ٚ‫ٔظبَ ایٗ ٔشس زض وس ظیط آ‬

import java.io.*;

public class Test {

public static void main(String args[]) {


String Str = new String("Welcome to Itpro.ir");
String SubStr1 = new String("Itpro");
String SubStr2 = new String("Sutorials");

System.out.print("Found Index :" );


System.out.println(Str.indexOf( 'o' ));
System.out.print("Found Index :" );
System.out.println(Str.indexOf( 'o', 5 ));
System.out.print("Found Index :" );

70
System.out.println( Str.indexOf( SubStr1 ));
System.out.print("Found Index :" );
System.out.println( Str.indexOf( SubStr1, 15 ));
System.out.print("Found Index :" );
System.out.println(Str.indexOf( SubStr2 ));
}
}

:‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی وس ثبال ث‬ٚ‫ذط‬

Found Index :4
Found Index :9
Found Index :11
Found Index :-1
Found Index :-1

lastIndexOf‫هتذ‬

‫ ٔشس‬ٚ‫ ثیٗ ایٗ ز‬ٝ‫سی و‬ٚ‫ب سفب‬ٟٙ‫ٔی ثبقس) س‬indexOf ‫بی ٔشس‬ٞ ُ‫س قى‬ٙ٘‫بی ایٗ ٔشس ٔب‬ٞ ُ‫ قى‬ٚ ‫س‬ٞ‫ ضا ا٘ؼبْ ٔی ز‬ٛ‫ُٖٕ ػؿشؼ‬indexOf ‫س ٔشس‬ٙ٘‫ٕب‬ٞ ‫ایٗ ٔشس‬
‫ضز‬ٛٔ ٝ‫ وبضاوشط یب ضقش‬ٝ‫ِی ظٔب٘ی و‬ٚ )‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ یىی ذ‬ٚ‫طز‬ٞ ‫ ثبقس دؽ ٘شبیغ‬ٜ‫ یه ثبض زض ٔشٗ آٔس‬ٛ‫ضز ػؿشؼ‬ٛٔ ٝ‫ اٌط وبضاوشط یب ضقش‬ٝ‫ز زاضز ایٗ اؾز و‬ٛ‫ػ‬ٚ
‫ِی‬ٚ ‫ز زاضز ضا ثطٔی ٌطزا٘س‬ٛ‫ػ‬ٚ ‫ضز ٘ٓط‬ٛٔ ٝ‫ وبضاوشط یب ضقش‬ٝ‫ِیٗ ػبیی ضا و‬ٚ‫ا‬indexOf ‫ ثبقس ٔشس‬ٜ‫ ثیف اظ یه ثبض زض ٔشٗ آٔس‬ٛ‫ػؿشؼ‬
‫ضز ٘ٓط دیسا‬ٛٔ ٝ‫ ٔشس اٌط وبضاوشط یب ضقش‬ٚ‫ط ز‬ٞ ‫ضز ٘ٓط زض آٖ لطاض زاضز ضا ثطٔی ٌطزا٘س) زض‬ٛٔ ٝ‫ وبضاوشط یب ضقش‬ٝ‫آذطیٗ ٔىب٘ی اظ ٔشٗ ضا و‬lastIndexOf‫ٔشس‬
. ‫ اؾز‬ٜ‫ قس‬ٜ‫ قىُ ایٗ ٔشس اؾشفبز‬4 ‫ط‬ٞ ‫ اؾز) اظ‬ٜ‫ قس‬ٜ‫ضز‬ٚ‫س قس) ٔظبِی اظ ایٗ ٔشس زض وس ظیط آ‬ٞ‫ا‬ٛ‫ ذ‬ٜ‫ ثبظٌطزا٘س‬1( ‫ز ٖسز‬ٛ‫٘ك‬

import java.io.*;

public class Test {

public static void main(String args[]) {


String Str = new String("Welcome to Itpro.ir");
String SubStr1 = new String("Itpro" );
String SubStr2 = new String("Sutorials" );

System.out.print("Found Last Index :" );


System.out.println(Str.lastIndexOf( 'o' ));
System.out.print("Found Last Index :" );
System.out.println(Str.lastIndexOf( 'o', 5 ));
System.out.print("Found Last Index :" );
System.out.println( Str.lastIndexOf( SubStr1 ));
System.out.print("Found Last Index :" );
System.out.println( Str.lastIndexOf( SubStr1, 15 ));
System.out.print("Found Last Index :" );
System.out.println(Str.lastIndexOf( SubStr2 ));
71
}
}

‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی وس ثبال ث‬ٚ‫ذط‬

Found Last Index :15


Found Last Index :4
Found Last Index :11
Found Last Index :11
Found Last Index :-1

length‫هتذ‬

ٚ‫َ ز‬َٛ ‫س) زض وس ظیط‬ٙ‫س ضا اٖالْ ٔی و‬ٙ‫ؿش‬ٞ ‫ ثیز‬16 ْ‫طوسا‬ٞ ٝ‫٘یىس و‬ٛ‫بی ی‬ٞ‫ سٗساز وبضاوشط‬ٝ‫ضر و‬ٛ‫ ایٗ ن‬ٝ‫ یب ٔشٗ ضا ثطٔی ٌطزا٘س) ث‬ٝ‫َ ضقش‬َٛ ‫ایٗ ٔشس‬
.ٓ‫ی‬ٞ‫ ٕ٘بیف ٔی ز‬ٚ ٝ‫ؾٍ ایٗ ٔشس ٔحبؾج‬ٛ‫ ضا س‬ٝ‫ضقش‬

import java.io.*;

public class Test{


public static void main(String args[]){
String Str1 = new String("Welcome to Itpro.ir");
String Str2 = new String("Itpro" );

System.out.print("String Length :" );


System.out.println(Str1.length());

System.out.print("String Length :" );


System.out.println(Str2.length());
}
}

‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی وس ثبال ث‬ٚ‫ذط‬

String Length :19


String Length :5

matches‫هتذ‬

‫ا٘ی زاضز‬ٛ‫ٕر‬ٞ regular expression ٗ‫ضز ٘ٓط ثب ای‬ٛٔ ٝ‫ ضقش‬ٝ‫س و‬ٙ‫ ٔكرم ٔی و‬ٚ ٜ‫ زضیبفز وطز‬regular expression ‫زی یه‬ٚ‫ض‬ٚ ٖ‫ٔب‬ٌٛ‫ایٗ ٔشس زض آض‬
ُٕٖ ٝ‫ ث‬ٝ‫یب ذیط) وبض ایٗ ٔشس زلیمب قجی‬

72
Pattern.matches(regex, str)

‫ا٘ی‬ٛ‫ٕر‬ٞ ٝ‫ اٌط ضقش‬ٚ true ‫ ثبقس ٔمساض‬ٝ‫ا٘ی زاقش‬ٛ‫ٕر‬ٞ regular expression ‫ ثب‬ٝ‫ اٌط ضقش‬ٝ‫ ٔی ثبقس و‬Boolean ‫ػی ایٗ ٔشس یه ٔمساض‬ٚ‫ٔی ثبقس) ذط‬
ٝ‫ِی‬ٚ‫بیی ا‬ٙ‫ِی ثطای آق‬ٚ ‫س قس‬ٞ‫ا‬ٛ‫ ذ‬ٜ‫ضر وبُٔ قطح زاز‬ٛ‫ ن‬ٝ‫ زض ُٔبِت ثٗسی ث‬regular expression ٓ‫ی‬ٞ‫ز) ٔفب‬ٛ‫ ٔی ق‬ٜ‫ ثطٌطزا٘س‬false ‫ ثبقس ٔمساض‬ٝ‫٘ساقش‬
:‫ ٕ٘بییس‬ٝ‫ػ‬ٛ‫ ٔظبَ ظیط س‬ٝ‫ثب ایٗ ٔشس ث‬

import java.io.*;

public class Test{


public static void main(String args[]){
String Str = new String("Welcome to Itpro.ir");

System.out.print("Return Value :" );


System.out.println(Str.matches("(.*)Itpro(.*)"));

System.out.print("Return Value :" );


System.out.println(Str.matches("Tutorials"));

System.out.print("Return Value :" );


System.out.println(Str.matches("Welcome(.*)"));
}
}

‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قطح ظیط ذ‬ٝ‫ػی وس ثبال ث‬ٚ‫ذط‬

Return Value :true


Return Value :false
Return Value :true

regionMatches‫هتذ‬

‫ زض‬ٝ‫ قىُ ظیط اؾز و‬ٚ‫) ایٗ ٔشس زاضای ز‬ٝ٘ ‫ ثطاثط اؾز یب‬ٜ‫ قس‬ٜ‫ زاز‬ٝ‫ ثب ضقش‬ٜ‫ سٗییٗ قس‬ٜ‫ ثبظ‬ٝ‫س و‬ٙ‫ ٔكرم ٔی و‬ٚ ‫ زض ٔشٗ ضا ٔی ٌیطز‬ٜ‫ایٗ ٔشس یه ثبظ‬
. ‫یٓ دطزاذز‬ٞ‫ا‬ٛ‫زی آٖ ذ‬ٚ‫ض‬ٚ ‫بی‬ٞ ٖ‫ٔب‬ٌٛ‫ ثطضؾی آض‬ٝ‫ ث‬ٝٔ‫ازا‬

public booleanregionMatches(int toffset,


String other,
int ooffset,
int len)

or

public booleanregionMatches(booleanignoreCase,

73
int toffset,
String other,
int ooffset,
int len)

:‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قطح ظیط ذ‬ٝ‫زی ایٗ ٔشس ث‬ٚ‫ض‬ٚ ‫بی‬ٞ‫دبضأشط‬

ٓ‫ی‬ٙ‫زی ضا اظ آ٘ؼب چه ٔی و‬ٚ‫ض‬ٚ ٗ‫ ٔش‬ٝ‫ٔ اظ ٔشٗ و‬ٚ‫ قط‬ُٝ‫٘م‬toffset ),


‫ز‬ٛ‫ لطاض اؾز ثب ٔشٗ انّی چه ق‬ٝ‫ ای و‬ٝ‫ضقش‬other )-
.ٓ‫ی‬ٙ‫یٓ زض ٔشٗ انّی آٖ ضا چه و‬ٞ‫ا‬ٛ‫ ٔی ذ‬ٝ‫ ای و‬ٝ‫ٔ ضقش‬ٚ‫ قط‬ُٝ‫٘م‬ooffset ).

.‫٘س‬ٛ‫ٓ چه ق‬ٞ ‫ ثبیس ثب‬ٝ‫بیی و‬ٞ‫َ وبضاوشط‬َٛlen )/

‫ ثعضي‬ٚ ‫ف‬ٚ‫ضر حط‬ٛ‫ز زض غیط ایٗ ن‬ٛ‫ر لبیُ ٕ٘ی ق‬ٚ‫چه سفب‬ٛ‫ و‬ٚ ‫ف ثعضي‬ٚ‫ حط‬ٝ‫ ثبقس زض چه وطزٖ ث‬true ٖ‫ٔب‬ٌٛ‫اٌط ایٗ آض‬ignoreCase )0
.‫ر زاض٘س‬ٚ‫ٓ سفب‬ٞ ‫چه ثب‬ٛ‫ و‬ٚ

true ‫س ٔمساض‬ٙ‫ ثطاثط ثبق‬ٜ‫ قس‬ٝ‫َ ٌفش‬َٛ ‫ ثب‬ٚ ٜ‫ ٔشٗ انّی زض لؿٕز ٔكرم قس‬ٚ ٜ‫ قس‬ٜ‫ اٌط ٔشٗ زاز‬ٝ‫ اؾز و‬Boolean ‫ػی ایٗ ٔشس یه ٔمساض‬ٚ‫ٔمساض ذط‬

. ‫یس‬ٙ‫ و‬ٝ‫ػ‬ٛ‫ وس ظیط س‬ٝ‫شط ایٗ ٔشس ث‬ٟ‫ زضن ث‬ٚ َ‫س) ثطای ٔظب‬ٙ٘‫ ثطٔی ٌطزا‬false ‫ضر ٔمساض‬ٛ‫ زض غیط ایٗ ن‬ٚ

import java.io.*;

public class Test{


public static void main(String args[]){
String Str1 = new String("Welcome to Itpro.ir");
String Str2 = new String("Itpro");
String Str3 = new String("ITPRO");

System.out.print("Return Value :" );


System.out.println(Str1.regionMatches(11, Str2, 0, 5));

System.out.print("Return Value :" );


System.out.println(Str1.regionMatches(11, Str3, 0, 5));

System.out.print("Return Value :" );


System.out.println(Str1.regionMatches(true, 11, Str3, 0, 5));
}
}

ٜ‫ قس‬ٜ‫اؾشفبز‬ignoreCase ‫زی‬ٚ‫ض‬ٚ ‫ اظ‬ٝ‫ ایٗ ّٖز اؾز و‬ٝ‫ آذط ث‬ٜ‫ضز چبح قس‬ٛٔ ٚ‫ر ثیٗ ز‬ٚ‫ سفب‬ٝ‫یس و‬ٙ‫ز) زلز و‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی وس ثبال ث‬ٚ‫ذط‬
:‫اؾز‬

Return Value :true


Return Value :false

74
Return Value :true

replace‫هتذ‬

‫ػی‬ٚ‫س) ذط‬ٙ‫ْ ػبیٍعیٗ ٔی و‬ٚ‫زی ز‬ٚ‫ض‬ٚ ‫َ ثبقس ضا ثب وبضاوشط‬ٚ‫زی ا‬ٚ‫ض‬ٚ ‫ وبضاوشط‬ٝ‫ط ػب و‬ٞ ٗ‫ زض وُ ٔش‬ٚ ‫زی ٔی ٌیطز‬ٚ‫ض‬ٚ ٖ‫ا‬ٖٛٙ ٝ‫ وبضاوشط ضا ث‬ٚ‫ایٗ ٔشس ز‬
: ‫یس‬ٙ‫ زلز و‬ٜ‫ قس‬ٜ‫ضز‬ٚ‫ وس آ‬ٝ‫س) ثطای ٔظبَ ث‬ٙ‫ ثبق‬ٜ‫ضز ٘ٓط آٖ ػبیٍعیٗ قس‬ٛٔ ‫بی‬ٞ‫ وبضاوشط‬ٕٝٞ ٝ‫ی اؾز و‬ٙ‫ ٔش‬ٝ‫ایٗ وس ث‬

import java.io.*;

public class Test{


public static void main(String args[]){
String Str = new String("Welcome to Itpro.ir");

System.out.print("Return Value :" );


System.out.println(Str.replace('o', 'T'));

System.out.print("Return Value :" );


System.out.println(Str.replace('l', 'D'));
}
}

:‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی وس ثبال ث‬ٚ‫ذط‬

Return Value :WelcTmetT ItprT.ir


Return Value :WeDcome to Itpro.ir

‫س‬ٙ٘‫ٕب‬ٞ ٓٞ ‫ب‬ٞ ٝ‫ اظ ایٗ ٔشس ثطای ضقش‬ٜ‫ اؾشفبز‬ٜٛ‫س) ٘ح‬ٙ‫ زیٍط و‬ٝ‫ ضا ػبیٍعیٗ ضقش‬ٝ‫ا٘س یه ضقش‬ٛ‫ ٔی س‬ٝ‫ زاضز ایٗ اؾز و‬replace ‫ ٔشس‬ٝ‫ لبثّیز زیٍطی و‬ٝ‫اِجش‬
.‫ب ٔی ثبقس‬ٞ ‫ٍبْ وبضاوشط‬ٙٞ ٜ‫اؾشفبز‬

replaceAll‫هتذ‬

‫ ثبقس ثب‬ٝ‫ا٘ی زاقش‬ٛ‫ٕر‬ٞ ‫ضز ٘ٓط‬ٛٔ regular expression ‫ ثب‬ٝ‫ط لؿٕز و‬ٞ ٗ‫ زض زاذُ ٔش‬ٚ ‫ ضا ٔی ٌیطز‬ٝ‫ یه ضقش‬ٚ regular expression ‫ایٗ ٔشس یه‬
regular ْٟٛ‫ ٌفشیٓ ٔف‬ٝ‫ب٘چ‬ٙ‫ی ضا ثطٔی ٌطزا٘س) چ‬ٙ‫ ٔشٗ انّی دؽ اظ ػبیٍعی‬ٚ ‫ زاضز‬String ٔٛ٘ ‫ػی اظ‬ٚ‫س) ایٗ ٔشس یه ذط‬ٙ‫ ػبیٍعیٗ ٔی و‬ٜ‫ قس‬ٜ‫ زاز‬ٝ‫ضقش‬

‫یس‬ٙ‫ و‬ٝ‫ػ‬ٛ‫ وس ظیط س‬ٝ‫یٓ زاز) ثطای ٔظبَ ایٗ ٔشس ث‬ٞ‫ا‬ٛ‫يیح ذ‬ٛ‫ضا زض ُٔبِت ثٗسی س‬expression

import java.io.*;

public class Test{


public static void main(String args[]){
String Str = new String("Welcome to Itpro.com please visit
programming.itpro.com");
75
‫;) "‪System.out.print("Return Value :‬‬
‫‪System.out.println(Str.replaceAll(".com",‬‬
‫;)) "‪".ir‬‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‬

‫‪Return Value :We.ire to Itpro.ir please visit programming.tosinso.com‬‬

‫‪replaceFirst‬اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬یٓ)‬ ‫حبَ اٌط ثر‪ٛ‬ا‪ٞ‬یٓ و‪ ُٕٖ ٝ‬ػبیٍعی‪ٙ‬ی فمٍ ثطای ا‪ِٚ‬یٗ ٔ‪ٛ‬ضز اظ ضقش‪ٌ ٝ‬فش‪ ٝ‬قس‪ ٜ‬ا٘ؼبْ ق‪ٛ‬ز ‪ ٚ‬ثمی‪٘ ٝ‬بزیس‪ٌ ٜ‬طفش‪ ٝ‬ق‪ٛ‬ز اظ ٔشس‬
‫اٌط زض وس ثبال ث‪ ٝ‬ػبی اؾشفبز‪ ٜ‬اظ‪replaceAll‬اظ ٔشس‪replaceFirst‬اؾشفبز‪ ٜ‬و‪ٙ‬یٓ ذط‪ٚ‬ػی ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز ‪:‬‬

‫‪Return Value :We.ire to Itpro.com please visit programming.itpro.com‬‬

‫هتذ‪Split‬‬

‫یه ٔشٗ ضا زض ٘ٓط ثٍیطیس و‪ٔ ٝ‬ی ذ‪ٛ‬ا‪ٞ‬یٓ وّٕبر ضا دیسا و‪ٙ‬یٓ) ث‪ ٝ‬قىّی و‪ٔ ٝ‬شٗ ضا ثب سٗساز وبضاوشط ‪ٞ‬بی فبنّ‪ ٝ‬ای و‪ٌ ٝ‬صاقش‪ ٝ‬قس‪ ٜ‬ػسا و‪ٙ‬یٓ ‪ ٚ‬زض لبِت‬
‫یه آضای‪٘ ٝ‬كبٖ ز‪ٞ‬یٓ) ثطای ایٗ وبض اظ ٔشس ‪ split‬اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬یٓ) ایٗ ٔشس زاضای ز‪ ٚ‬قىُ اؾز و‪ ٝ‬قىُ ‪ٞ‬بی آٖ زض وس ظیط آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز ‪:‬‬

‫)‪public String[] split(String regex, int limit‬‬

‫‪or‬‬

‫)‪public String[] split(String regex‬‬

‫آضٌ‪ٔٛ‬بٖ ‪ٞ‬بی ‪ٚ‬ض‪ٚ‬زی ایٗ ٔشس یه ‪ٔ regular expression‬ی ثبقس و‪ ٝ‬سٗییٗ ٔی و‪ٙ‬س و‪ٔ ٝ‬شٗ ضا َجك چ‪ ٝ‬وبضاوشط یب وبضاوشط‪ٞ‬بیی سؼعی‪ ٝ‬و‪ٙ‬یٓ) ثطای ٔظبَ اٌط‬
‫‪ limit‬ثطای ایٗ اؾز و‪ ٝ‬سٗساز ضقش‪ٞ ٝ‬بی‬ ‫قٕب ثر‪ٛ‬ا‪ٞ‬یس ٔشٗ ضا س‪ٛ‬ؾٍ ٖالٔز فبنّ‪ ٝ‬ػسا و‪ٙ‬یٓ زض ایٗ لؿٕز ٖالٔز فبنّ‪ ٝ‬ذ‪ٛ‬ا‪ٞ‬یٓ ٌصاقز) آضٌ‪ٔٛ‬بٖ‬
‫سؼعی‪ ٝ‬قس‪ ٜ‬ضا ٘كبٖ ثس‪ٞ‬س) ذط‪ٚ‬ػی ایٗ ٔشس یه آضای‪ ٝ‬ضقش‪ ٝ‬ای ٔی ثبقس و‪ ٝ‬ضقش‪ٞ ٝ‬بی سؼعی‪ ٝ‬قس‪ ٜ‬ضا زض زاذُ آٖ آضای‪ٔ ٝ‬ی ضیعز) ثطای زضن ضاحز سط ایٗ‬
‫ٔشس ث‪ ٝ‬وس ظیط س‪ٛ‬ػ‪ ٝ‬و‪ٙ‬یس‪:‬‬

‫;*‪import java.io.‬‬

‫{‪public class Test‬‬


‫{)][‪public static void main(String args‬‬
‫;)"‪String Str = new String("Welcome to Itpro.ir‬‬

‫;) "‪System.out.println("Return Value :‬‬


‫{))‪for (String retval: Str.split(" ", 2‬‬
‫;)‪System.out.println(retval‬‬
‫‪76‬‬
}
System.out.println("");
System.out.println("Return Value :" );
for (String retval: Str.split(" ", 3)){
System.out.println(retval);
}
System.out.println("");
System.out.println("Return Value :" );
for (String retval: Str.split(" ", 1)){
System.out.println(retval);
}
System.out.println("");
System.out.println("Return Value :" );
for (String retval: Str.split(" ")) {
System.out.println(retval);
}
}
}

:‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی وس ثبال ث‬ٚ‫ذط‬

Return Value :
Welcome
to Itpro.ir

Return Value :
Welcome
to
Itpro.ir

Return Value :
Welcome to Itpro.ir

Return Value :
Welcome
to
Itpro.ir

startsWith‫هتذ‬

ٚ‫ اؾز یب ذیط) ایٗ ٔشس زاضای ز‬ٜ‫ٔ قس‬ٚ‫ ذبنی قط‬ٝ‫ آیب ٔشٗ ثب ضقش‬ٝ‫س و‬ٙ‫ ثطضؾی ٔی و‬ٝ‫ی و‬ٙٗٔ ٗ‫ ای‬ٝ‫س) ث‬ٞ‫ا٘ؼبْ ٔی ز‬endsWith ‫ایٗ ٔشس وبضی ذالف ٔشس‬
‫ آیب اظ ا٘سیؽ‬ٝ‫س و‬ٙ‫ْ ٔكرم ٔی و‬ٚ‫ زض قىُ ز‬ٚ ٝ٘ ‫ اؾز یب‬ٜ‫ٔ قس‬ٚ‫ ذبنی قط‬ٝ‫ اثشسای ٔشٗ ثب ضقش‬ٝ‫س و‬ٙ‫ ٔكرم ٔی و‬ٝ‫ِی‬ٚ‫ زض قىُ ا‬ٝ‫قىُ اؾز و‬
ٔٚ‫ قط‬ٜ‫ قس‬ٝ‫ ٌفش‬ٝ‫ اٌط ٔشٗ ثب ضقش‬ٝ‫ اؾز و‬Boolean ‫ػی ایٗ ٔشس یه ٔمساض‬ٚ‫ اؾز یب ذیط) ذط‬ٜ‫ٔ قس‬ٚ‫ضز ٘ٓط قط‬ٛٔ ٝ‫ ثٗس ٔشٗ ثب ضقش‬ٝ‫ ث‬ٜ‫ٔكرم قس‬
:‫ قطح ظیط اؾز‬ٝ‫ر ایٗ ٔشس ث‬ٚ‫بی ٔشفب‬ٞ ُ‫ زاضز) قى‬false ‫ضر ٔمساض‬ٛ‫ زض غیط ایٗ ن‬ٚ true ‫ ثبقس ٔمساض‬ٜ‫قس‬
77
public booleanstartsWith(String prefix, int toffset)

or

public booleanstartsWith(String prefix)

‫ٕبٖ ا٘سیؽ‬ٞtoffset ‫زی‬ٚ‫ض‬ٚ ٖ‫ٔب‬ٌٛ‫ آض‬ٚ ‫ اؾز یب ذیط‬ٜ‫ٔ قس‬ٚ‫ قط‬ٝ‫ ٔشٗ ثب آٖ ضقش‬ٝ‫یٓ ثسا٘یٓ و‬ٞ‫ا‬ٛ‫ ٔی ذ‬ٝ‫ ای اؾز و‬ٝ‫ٕبٖ ضقش‬ٞ prefix ‫زی‬ٚ‫ض‬ٚ ٖ‫ٔب‬ٌٛ‫آض‬
: ‫یس‬ٙ‫ و‬ٝ‫ػ‬ٛ‫ وس ظیط س‬ٝ‫شط ایٗ ٔشس ث‬ٟ‫ زضن ث‬ٚ َ‫ اؾز یب ذیط) ثطای ٔظب‬ٜ‫ٔ قس‬ٚ‫ اظ آٖ لؿٕز قط‬ٝ‫ ضقش‬ٝ‫یٓ و‬ٙ‫یٓ ثطضؾی و‬ٞ‫ا‬ٛ‫ ٔی ذ‬ُٝ‫ اظ آٖ ٘م‬ٝ‫ٔ اؾز) و‬ٚ‫قط‬

import java.io.*;

public class Test{


public static void main(String args[]){
String Str = new String("Welcome to Itpro.ir");

System.out.print("Return Value :" );


System.out.println(Str.startsWith("Welcome") );

System.out.print("Return Value :" );


System.out.println(Str.startsWith("Itpro") );

System.out.print("Return Value :" );


System.out.println(Str.startsWith("Itpro", 11) );
}
}

: ‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫بی ظیط ذ‬ٞ ٍ‫س ذ‬ٙ٘‫ػی وس ثبال ٔب‬ٚ‫ذط‬

Return Value :true


Return Value :false
Return Value :true

subsequence‫هتذ‬

ٖ‫ ا٘سیؽ دبیب‬ٚ ٔٚ‫ ا٘سیؽ قط‬ٝ‫زی زاضز و‬ٚ‫ض‬ٚ ‫ دبضأشط‬ٚ‫بی ضا ثطٔی ٌطزا٘س) ایٗ ٔشس ز‬ٞ ‫ ای اظ وبضاوشط‬ِٝ‫ضر ز٘جب‬ٛ‫ ن‬ٝ‫ اظ ٔشٗ ضا ث‬ٖٕٝٛ‫ایٗ ٔشس یه ظیط ٔؼ‬
‫ ٖجبضر زیٍط ایٗ ٔشس یه ظیط‬ٝ‫ٔی ثبقس) ث‬CharSequence ‫ ٔمساض ثبظٌكشی آٖ یه قئ اظ والؼ‬ٚ ‫س‬ٙ‫ز ضا ٔكرم ٔی و‬ٛ‫ ثبیس ا٘شربة ق‬ٝ‫ ای و‬ِٝ‫ز٘جب‬
. ‫یس‬ٙ‫ و‬ٝ‫ػ‬ٛ‫ وس ظیط س‬ٝ‫شط ایٗ ٔشس ث‬ٟ‫ٔی ثبقس) ثطای زضن ث‬CharSequence‫ٔ ثبظٌكشی آٖ والؼ‬ٛ٘ ‫ِی‬ٚ ‫ اظ ٔشٗ ضا ثطٔی ٌطزا٘س‬ٝ‫ضقش‬

import java.io.*;
public class Test{
public static void main(String args[]){
String Str = new String("Welcome to Itpro.ir");

78
System.out.print("Return Value :" );
System.out.println(Str.subSequence(0, 10) );
System.out.print("Return Value :" );
System.out.println(Str.subSequence(10, 15) );
}
}

‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی وس ثبال ث‬ٚ‫ذط‬

Return Value :Welcome to


Return Value :Itpr

substring‫هتذ‬

‫ ا٘سیؽ‬ٝ‫ز زاضز و‬ٛ‫ػ‬ٚ ‫زی‬ٚ‫ض‬ٚ ٖ‫ٔب‬ٌٛ‫َ یه آض‬ٚ‫ قىُ اؾز زض قىُ ا‬ٚ‫ اظ زاذُ ٔشٗ اؾز) ایٗ ٔشس زاضای ز‬ٝ‫ ایٗ ٔشس ٘یع ثبظٌطزا٘سٖ یه ظیطضقش‬ٝ‫ْیف‬ٚ
)‫ٓ ا٘سیؽ دبیبٖ ضا اظ وبضثط ٔی ٌیطز‬ٞ ٚ ٔٚ‫ٓ ا٘سیؽ قط‬ٞ ‫ْ ایٗ ٔشس‬ٚ‫ ضا ثطٔی ٌطزا٘س) زض قىُ ز‬ٝ‫بی ضقش‬ٟ‫ اظ آٖ لؿٕز سب ا٘ش‬ٚ ‫ٔ ضا اظ وبضثط ٔی ٌیطز‬ٚ‫قط‬
:‫س‬ٞ‫ ٔی ثبقس) وس ظیط ایٗ ٔشس ضا ٘كبٖ ٔی ز‬String ٔٛ٘ ‫ػی ایٗ ٔشس اظ‬ٚ‫ ذط‬ٝ‫ ایٗ اؾز و‬subsequence ‫ر ایٗ ٔشس ثب ٔشس‬ٚ‫سفب‬

import java.io.*;
public class Test{
public static void main(String args[]){
String Str = new String("Welcome to Itpro.ir");
System.out.print("Return Value :" );
System.out.println(Str.substring(10) );
System.out.print("Return Value :" );
System.out.println(Str.substring(10, 15) );
}
}

‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ ایٗ وس ث‬ٝ‫٘شیؼ‬

Return Value : Itpro.ir


Return Value :Itpr

toCharArray‫هتذ‬

ٝ‫ وبضاوشط ٔی ثبقس) ایٗ ٔشس ٔشٗ ضا ث‬ٖٕٝٛ‫ یه ٔؼ‬ٚ ‫ اؾز‬String ‫ط ٔشٗ یه قئ‬ٞ ٝ‫س) اظ آ٘ؼبیی و‬ٙ‫ وبضاوشطی ٔی و‬ٝ‫ یه آضای‬ٝ‫ایٗ ٔشس ٔشٗ ضا سجسیُ ث‬
‫ اظ ایٗ ٔشس‬ٜ‫ اؾشفبز‬ٜٛ‫ وبضاوشطی ٔی ثبقس) وس ظیط ٘ح‬ٝ‫ػی آٖ یه آضای‬ٚ‫ ذط‬ٚ ٝ‫زی ٘ساقش‬ٚ‫ض‬ٚ ‫س) ایٗ ٔشس‬ٙ‫ سجسیُ ٔی و‬ٝ‫ضر آضای‬ٛ‫ ن‬ٝ‫ وبضاوشط ث‬ٖٕٝٛ‫ٕبٖ ٔؼ‬ٞ
.‫س‬ٞ‫ضا ٘كبٖ ٔی ز‬

79
import java.io.*;

public class Test{


public static void main(String args[]){
String Str = new String("Welcome to Itpro.ir");

System.out.print("Return Value :" );


System.out.println(Str.toCharArray() );
System.out.println(Str.toCharArray().length);
}
}

‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی وس ثبال ث‬ٚ‫ذط‬

Return Value :Welcome to Itpro.ir


19

toLowerCase, toUpperCase‫هتذ‬

‫زی‬ٚ‫ض‬ٚ ٖ‫ٔب‬ٌٛ‫ یىی ثب یه آض‬ٚ ‫زی‬ٚ‫ض‬ٚ ٖ‫ٔب‬ٌٛ‫ٖ آض‬ٚ‫ قىُ ٔی ثبقس یىی ثس‬ٚ‫ب زاضای ز‬ٞ‫طوساْ اظ ایٗ ٔشس‬ٞ )‫س‬ٙٞ‫ٓ ا٘ؼبْ ٔی ز‬ٞ ٝ‫ ث‬ٝ‫ ٔشس اٖٕبِی قجی‬ٚ‫ایٗ ز‬
‫بی‬ٞ‫وبضاوشط‬toUpperCase ٝ‫ْیف‬ٚ ٚ ‫س‬ٙ‫چه اٍّ٘یؿی سجسیُ ٔی و‬ٛ‫ف و‬ٚ‫ حط‬ٝ‫بی ٔشٗ ضا ث‬ٞ‫ ی وبضاوشط‬ٕٝٞ ٝ‫ایٗ اؾز و‬toLowerCase ‫ ٔشس‬ٝ‫ْیف‬ٚ )‫زاضز‬
‫ اؾز) اٌط‬Locale ْ‫ ٘ب‬ٝ‫ث‬enum ‫ یه‬ٝ‫س و‬ٙ‫قشبض ضا ٔكرم ٔی و‬ٛ٘ ٚ ٖ‫ٔ ظثب‬ٛ٘ ٝ‫زی ایٗ اؾز و‬ٚ‫ض‬ٚ ٖ‫ٔب‬ٌٛ‫ آض‬ٝ‫ْیف‬ٚ )‫س‬ٙ‫ف ثعضي سجسیُ ٔی و‬ٚ‫ حط‬ٝ‫ٔشٗ ضا ث‬
‫ز) وس ظیط ٔظبِی اظ‬ٛ‫ا٘ؼبْ ٔی ق‬Locale.getDefault ٍ‫ؾ‬ٛ‫ ایٗ وبض س‬ٝ‫س قس و‬ٞ‫ا‬ٛ‫ ظثبٖ دیف فطو ا٘شربة ذ‬ٚ ‫قشبض‬ٛ٘ ‫ز‬ٛ‫ ٘ك‬ٜ‫زی اؾشفبز‬ٚ‫ض‬ٚ ٖ‫ٔب‬ٌٛ‫اظ آض‬
.‫ اؾز‬ٜ‫ قس‬ٝ‫بی ٌفش‬ٞ‫ٔشس‬

import java.io.*;

public class Test{


public static void main(String args[]){
String Str = new String("Welcome to Itpro.ir");

System.out.print("lower case is :");


System.out.println(Str.toLowerCase());
System.out.print("UPPER CASE IS: ");
System.out.println(Str.toUpperCase());
}
}

:‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی وس ثبال ث‬ٚ‫ذط‬

lower case is :welcome to tosinso.com

80
UPPER CASE IS: WELCOME TO ITPRO.IR

trim‫هتذ‬

‫بی ٔشٗ حصف ٔی‬ٟ‫ ا٘ش‬ٚ ‫بی ذبِی ضا اظ اثشسا‬ٞ ّٝ‫ فبن‬ٝ‫ ایٗ ٔشس ایٗ اؾز و‬ٝ‫ْیف‬ٚ )‫ اؾز‬String ‫ػی آٖ یه قئ‬ٚ‫ ذط‬ٚ ٝ‫زی ٘ساقش‬ٚ‫ض‬ٚ ٖ‫ٔب‬ٌٛ‫ایٗ ٔشس آض‬
:‫یس‬ٙ‫ و‬ٝ‫ػ‬ٛ‫ وس ظیط س‬ٝ‫س ثطای ٔظبَ ث‬ٙ‫و‬

import java.io.*;

public class Test{


public static void main(String args[]){
String Str = new String(" Welcome to Itpro.ir ");

System.out.print("Return Value :" );


System.out.println(Str.trim() );
}
}

ٚ ‫انُ اظ اثشسا‬ٛ‫ ایٗ ف‬ٝ‫ ای اؾز و‬ٌٝ٘ٛ ٝ‫ ث‬trim ‫ػی ٔشس‬ٚ‫ِی ذط‬ٚ ‫ز زاضز‬ٛ‫ػ‬ٚ ‫ ذبِی‬ّٝ‫بی آٖ فبن‬ٟ‫ ا٘ش‬ٚ ‫ زض اثشسا‬Str ٗ‫ز زض ٔش‬ٛ‫ ٔی ق‬ٜ‫ زیس‬ٝ‫ و‬ٌٝ٘ٛ ٖ‫ٕب‬ٞ
:‫ قىُ ظیط اؾز‬ٝ‫ػی وس ث‬ٚ‫ ا٘س) ذط‬ٜ‫ب حصف قس‬ٟ‫ا٘ش‬

Return Value :Welcome to Itpro.ir

valueOf‫هتذ‬

ٌٖٛ‫٘ب‬ٌٛ ‫بی‬ٞ ُ‫ ثبظٔی ٌطزا٘س) قى‬ٚ ‫س‬ٙ‫ ٔی و‬ٝ‫ ضقش‬ٝ‫ ضا سجسیُ ث‬ٜ‫اضز قس‬ٚ ‫ ٔمساض‬ٝ‫ا اؾز و‬ٚ‫ انّی ػب‬ٜ‫ٔ زاز‬ٛ٘ ‫ اظ‬ٝ‫زی ٔی ٌیطز و‬ٚ‫ض‬ٚ ٖ‫ٔب‬ٌٛ‫ایٗ ٔشس یه آض‬
:‫ایٗ ٔشس ٖجبضسؿز اظ‬

static String valueOf(boolean b)

or

static String valueOf(char c)

or

static String valueOf(char[] data)

or

static String valueOf(char[] data, int offset, int count)


81
or

static String valueOf(double d)

or

static String valueOf(float f)

or

static String valueOf(int i)

or

static String valueOf(long l)

or

static String valueOf(Object obj)

.‫ اؾز‬ٜ‫ قس‬ٜ‫ضز‬ٚ‫ آ‬ٝٔ‫ٔظبِی اظ ایٗ وس زض ازا‬

import java.io.*;

public class Test{


public static void main(String args[]){
double d = 102939939.939;
boolean b = true;
long l = 1232874;
char[] arr = {'a', 'b', 'c', 'd', 'e', 'f','g' };

System.out.println("Return Value : " + String.valueOf(d) );


System.out.println("Return Value : " + String.valueOf(b) );
System.out.println("Return Value : " + String.valueOf(l) );
System.out.println("Return Value : " + String.valueOf(arr) );
}
}

:‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ اػطای وس ثبال ث‬ٝ‫٘شیؼ‬

Return Value : 1.02939939939E8


Return Value : true
Return Value : 1232874
Return Value :abcdefg

82
‫والؼ ‪ٞ‬بی ‪StringBuilder ٚStringBuffer‬‬

‫زض ایٗ ُّٔت لهس زاضیٓ و‪ ٝ‬ز‪ ٚ‬والؼ اظ ػب‪ٚ‬ا ضا ٔٗطفی و‪ٙ‬یٓ و‪ ٝ‬زض ٘‪ ٔٛ‬ذ‪ٛ‬ز والؼ ‪ٞ‬بی ٔ‪ٕٟ‬ی ‪ٞ‬ؿش‪ٙ‬س) ایٗ والؼ ‪ٞ‬ب ثطای وبض ثب ضقش‪ٞ ٝ‬ب ث‪ ٝ‬وبض‬
‫ٔی ض‪٘ٚ‬س) اِجش‪ٔ ٝ‬ی س‪ٛ‬اٖ ثس‪ ٖٚ‬اؾشفبز‪ ٜ‬اظ ایٗ والؼ ‪ٞ‬ب ٘یع وبض ذ‪ٛ‬ز ضا دیف ثطز ‪ِٚ‬ی ا‪ٕٞ‬یز ایٗ والؼ ‪ٞ‬ب ‪ٚ‬لشی ٔكرم ٔی ق‪ٛ‬ز و‪ ٝ‬زض حس ظیبز ‪ٚ‬‬
‫دطزاظـ ‪ٞ‬بی ثعضي ثر‪ٛ‬ا‪ٞ‬یس ثب ضقش‪ٞ ٝ‬ب وبض و‪ٙ‬یس ٔی ثی‪ٙ‬یس و‪ ٝ‬اؾشفبز‪ ٜ‬وطزٖ اظ ایٗ والؼ ‪ٞ‬ب سب چ‪ ٝ‬حس ‪ ٚ performance‬ؾطٖز اػطای ثط٘بٔ‪ ٝ‬ضا ثبال ٔی‬
‫ثطز ‪ ٚ‬اؾشفبز‪ ٜ‬اظ ٔ‪ٙ‬بثٗی ٔب٘‪ٙ‬س حبفٓ‪cpu ٚ ٝ‬ضا وٓ ٔی و‪ٙ‬س) ایٗ والؼ ‪ٞ‬ب ‪ٔ StringBuilder ٚStringBuffer‬ی ثبق‪ٙ‬س) ایٗ والؼ ‪ٞ‬ب ظٔب٘ی اؾشفبز‪ٔ ٜ‬ی ق‪٘ٛ‬س‬
‫و‪ ٝ‬الظْ اؾز و‪ ٝ‬ض‪ٚ‬ی ضقش‪ٞ ٝ‬بی اٖٕبَ ثؿیبض ظیبزی ا٘ؼبْ ق‪ٛ‬ز) والؼ ‪ String‬ث‪ ٌٝ٘ٛ ٝ‬ای اؾز و‪ٚ ٝ‬لشی اظ آٖ اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬یس ٕٔىٗ اؾز اقیب ثؿیبض‬
‫ظیبزی ؾبذش‪ ٝ‬ق‪ٛ‬ز و‪ ٝ‬ثؿیبضی اظ آٖ ‪ٞ‬ب ثی اؾشفبز‪ ٚ ٜ‬غیط ٔفیس اؾز) ‪ِٚ‬ی اقیبئی و‪ ٝ‬اظ ایٗ ز‪ ٚ‬والؼ ؾبذش‪ٔ ٝ‬ی ق‪ٛ‬ز ایٗ ٌ‪٘ ٝ٘ٛ‬یؿز ‪ ٚ‬ث‪ٕٞ ٝ‬یٗ زِیُ‬
‫اؾشفبز‪ ٜ‬اظ آٖ ٔی س‪ٛ‬ا٘س ‪ performance‬ضا افعایف ز‪ٞ‬س) ٔظال زض وس ظیط ؾ‪ ٝ‬قئ ‪ String‬ؾبذش‪ٔ ٝ‬ی ق‪ٛ‬ز) و‪ ٝ‬ز‪ٖ ٚ‬سز اظ آٖ ‪ٞ‬ب ثی اؾشفبز‪ٞ ٜ‬ؿش‪ٙ‬س‪.‬‬

‫;"‪String str="hi‬‬
‫;"‪Str=str+" Itpro"+" website‬‬

‫والؼ ‪ StringBuilder‬ثب ػب‪ٚ‬ای ‪ٗٔ 5‬طفی قس) سفب‪ٚ‬ر ثیٗ‪ StringBuilder ٚStringBuffer‬زض ایٗ اؾز و‪ٔ ٝ‬شس‪ٞ‬بی ٔ‪ٛ‬ػ‪ٛ‬ز زض والؼ ‪StringBuilder‬‬

‫‪ StringBuilder‬ؾطٖز ثیكشطی‬ ‫‪ٚ‬یػٌی ‪ tread Safe‬ث‪ٛ‬زٖ ضا ٘ساض٘س ث‪ٖ ٝ‬جبضر زیٍط ٔشس‪ٞ‬بی ایٗ والؼ ثب‪ ٓٞ‬ؾ‪ٙ‬ىط‪٘ ٖٚ‬یؿش‪ٙ‬س) أب ثبیس ٌفز و‪ ٝ‬والؼ‬
‫‪ tread safe‬ث‪ٛ‬زٖ ثطایشبٖ ا‪ٕٞ‬یز زاضز اظ والؼ ‪StringBuffer‬اؾشفبز‪ ٜ‬و‪ٙ‬یس)‬ ‫زاضز) دؽ سب حس أىبٖ اظ ایٗ والؼ اؾشفبز‪ ٜ‬و‪ٙ‬یس) أب اٌط ؾ‪ٙ‬ىط‪ ٖٚ‬ث‪ٛ‬زٖ ‪ٚ‬‬
‫ض‪ٚ‬ـ اؾشفبز‪ ٜ‬اظ ایٗ والؼ ‪ٞ‬ب ثطای اِحبق ضقش‪ٞ ٝ‬ب ثب ‪ ٓٞ‬یب‪concat‬وطزٖ ضقش‪ٞ ٝ‬ب ث‪ ٝ‬قىُ وس ظیط اؾز‪:‬‬

‫{‪public class Test‬‬

‫{)][‪public static void main(String args‬‬


‫;)"‪StringBuffersBuffer = new StringBuffer(" test‬‬
‫;)"‪sBuffer.append(" String Buffer‬‬
‫;)‪System.out.println(sBuffer‬‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‬

‫‪test String Buffer‬‬

‫ٔشس‪ٞ‬بی والؼ‪ٖStringBuffer‬جبضس‪ٙ‬س اظ‪:‬‬

‫)‪StringBufferappend(String s‬‬

‫ایٗ ٔشس ثطای افع‪ٚ‬زٖ یه ضقش‪ ٝ‬ث‪ ٝ‬ا٘ش‪ٟ‬بی ضقش‪ٛٔ ٝ‬ػ‪ٛ‬ز زض قی ؾبذش‪ ٝ‬قس‪ ٜ‬اظ والؼ ‪StringBuffer‬ث‪ ٝ‬وبض ثطز‪ٔ ٜ‬ی ق‪ٛ‬ز) ایٗ ٔشس ٔی س‪ٛ‬ا٘س ‪ ٕٝٞ‬ی ا٘‪ٛ‬أ‬
‫‪Stringbuffer‬ضا ٘یع ث‪ٖٛٙ ٝ‬اٖ‬ ‫زاز‪ ٜ‬انّی ‪ٞ ٚ String ٚ‬ط قئی اظ ‪ٞ‬ط ٘‪ٖٛ‬ی ضا ث‪ٖٛٙ ٝ‬اٖ ‪ٚ‬ض‪ٚ‬زی زضیبفز و‪ٙ‬س) ایٗ ٔشس حشی ٔی س‪ٛ‬ا٘س یه قئ اظ والؼ‬
‫‪ٚ‬ض‪ٚ‬زی ثٍیطز) قىُ ‪ٞ‬بی ٔرشّف ایٗ ٔشس زض وس ظیط آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز‪:‬‬

‫‪83‬‬
public StringBufferappend(boolean b)
public StringBufferappend(char c)
public StringBuffer append(char[] str)
public StringBuffer append(char[] str, int offset, int len)
public StringBufferappend(double d)
public StringBufferappend(float f)
public StringBufferappend(int i)
public StringBufferappend(long l)
public StringBufferappend(Object obj)
public StringBufferappend(StringBuffer sb)
public StringBufferappend(String str)

.‫س‬ٞ‫وس ظیط ٔظبِی اظ ایٗ ٔشس ضا ٘كبٖ ٔی ز‬

public class Test {

public static void main(String args[]) {


StringBuffer sb = new StringBuffer("Test");
sb.append(" String Buffer");
System.out.println(sb);
}
}

:‫ قىُ ظیط اؾز‬ٝ‫ػی وس ثبال ث‬ٚ‫ذط‬

Test String Buffer

StringBuffer reverse()‫هتذ‬

‫ زض‬ٝ‫بیی ضقش‬ٟ‫ وبضاوشط ا٘ش‬ٝ‫ضر اؾز و‬ٛ‫ ایٗ ن‬ٝ‫ ث‬ٝ‫س) ثطٖىؽ وطزٖ ضقش‬ٙ‫ز زاضز ضا ثطٖىؽ ٔی و‬ٛ‫ػ‬ٚStringBuffer ‫ زض زاذُ قی‬ٝ‫ ای ضا و‬ٝ‫ایٗ ٔشس ضقش‬
ٝ‫اٖ وبضاوشط آذط ضقش‬ٖٛٙ ٝ‫ لجّی ث‬ٝ‫ِی ضقش‬ٚ‫ٕیٗ سطسیت سب وبضاوشط ا‬ٞ ٝ‫ ث‬ٚ ‫ز‬ٛ‫ط ٔی ق‬ٞ‫ْ ْب‬ٚ‫اٖ وبضاوشط ز‬ٖٛٙ ٝ‫بیی ث‬ٟ‫ وبضاوشط یىی لجُ اظ ا٘ش‬ٚ ‫َ ٔی آیس‬ٚ‫ا‬
.‫س‬ٞ‫ یه ٔظبَ اظ ایٗ ٔشس ضا ٘كبٖ ٔی ز‬ٜٛ‫ز) وس ظیط ٘ح‬ٛ‫ ٔی ق‬ٜ‫ػسیس ٘كبٖ زاز‬

public class Test {

public static void main(String args[]) {


StringBuffer buffer = new StringBuffer("Game Plan");
buffer.reverse();
System.out.println(buffer);
}
}

:‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی وس ثبال ث‬ٚ‫ذط‬

84
nalPemaG

StringBufferdelete(int start, int end)

‫ یه ا٘سیؽ دبیبٖ اظ وبضثط ٔی‬ٚ ٔٚ‫س) ایٗ ٔشس یه ا٘سیؽ قط‬ٙ‫لطاض زاضز ضا حصف ٔی و‬StringBuffer ‫ والؼ‬ٝ‫ زض قئی و‬ٝ‫ ای و‬ٝ‫ایٗ ٔشس لؿٕشی اظ ضقش‬
‫س) یه ٔظبِی اظ‬ٙ‫ ا٘سیؽ دبیبٖ ضا حصف ٕ٘ی و‬ٜ‫ وبضاوشط ثب قٕبض‬ٝ‫ ضا ثسا٘یس و‬ٝ‫ ایٗ ٘ىش‬ٝ‫س) اِجش‬ٙ‫ٔ سب دبیبٖ ضا حصف ٔی و‬ٚ‫بی ثیٗ ا٘سیؽ قط‬ٞ ‫ وبضاوشط‬ٚ ‫ٌیطز‬
.‫ اؾز‬ٜ‫ قس‬ٜ‫ضز‬ٚ‫ایٗ ٔشس زض وس ظیط آ‬

public class Test {

public static void main(String args[]) {


StringBuffer sb = new StringBuffer("abcdefghijk");
sb.delete(3,7);
System.out.println(sb);
}
}

:‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی ایٗ وس ث‬ٚ‫ذط‬

abchijk

insert‫هتذ‬

)‫س‬ٙ‫زی اظ وبضثط زضیبفز ٔی و‬ٚ‫ض‬ٚ ٖ‫ٔب‬ٌٛ‫ ٖسز آض‬ٚ‫ ز‬ٝ‫ اؾز و‬ٌٝ٘ٛ ٗ‫ ای‬ٝ‫س) قىُ ایٗ ٔشس ث‬ٙ‫زضع ٔی و‬StringBuffer ٗ‫ایٗ ٔشس یه ٔمساضی ضا زض زاذُ ٔش‬
‫سی اؾز‬ٚ‫بی ٔشفب‬ٞ ُ‫ز) ایٗ ٔشس زاضای قى‬ٛ‫ ثبیس زضع ق‬ٝ‫ٕبٖ ٔمساضی اؾز و‬ٞ ْٚ‫زی ز‬ٚ‫ض‬ٚ ٖ‫ٔب‬ٌٛ‫ آض‬ٚ ‫ز‬ٛ‫ ٔمساضی ثبیس زض آٖ زضع ق‬ٝ‫ِی ا٘سیؿی اؾز و‬ٚ‫ا‬
.‫ اؾز‬ٜ‫ قس‬ٜ‫ضز‬ٚ‫ زض وس ظیط آ‬ٝ‫و‬

public StringBufferinsert(int offset, boolean b)


public StringBufferinsert(int offset, char c)
public insert(int offset, char[] str)
public StringBufferinsert(int index, char[] str,
int offset, int len)
public StringBufferinsert(int offset, float f)
public StringBufferinsert(int offset, int i)
public StringBufferinsert(int offset, long l)
public StringBufferinsert(int offset, Object obj)
public StringBufferinsert(int offset, String str)

ٝ‫ضز ٘ٓط ايبف‬ٛٔ ‫ زض لؿٕز‬ٝ‫ وطز) ثطای ٔظبَ زض وس ظیط ٔب یه ضقش‬ٜ‫ یب قیئی اؾشفبز‬ٜ‫ٔ زاز‬ٛ٘ ‫ط‬ٞ ٖ‫ا‬ٛ‫ْ ٔی س‬ٚ‫ٔبٖ ز‬ٌٛ‫ زض آض‬ٝ‫ی اؾز و‬ٙٗٔ ٗ‫ ای‬ٝ‫ایٗ ث‬
:ٓ‫ ای‬ٜ‫وطز‬

85
‫{ ‪public class Test‬‬

‫{ )][‪public static void main(String args‬‬


‫;)"‪StringBuffer sb = new StringBuffer("abcdefghijk‬‬
‫;)"‪sb.insert(3,"123‬‬
‫;)‪System.out.println(sb‬‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‬

‫‪abc123defghijk‬‬

‫اٌط ثطای ا٘سیؽ ٔمساض (‪ 1‬لطاض زاز‪ ٜ‬ق‪ٛ‬ز ٔمساض زض آذط ضقش‪ ٝ‬طجز ٔی ق‪ٛ‬ز‬

‫هتذ‪replace‬‬

‫ایٗ ٔشس لؿٕشی اظ ٔشٗ ٔ‪ٛ‬ػ‪ٛ‬ز زض قئ ‪StringBuffer‬ضا ثب ٔشٗ زاز‪ ٜ‬قس‪ ٜ‬ػبیٍعیٗ ٔی و‪ٙ‬س) ایٗ ٔشس ؾ‪ ٝ‬آضٌ‪ٔٛ‬بٖ ‪ٚ‬ض‪ٚ‬زی زاضز و‪ ٝ‬اثشسا ‪ ٚ‬ا٘ش‪ٟ‬بی ضقش‪ٝ‬‬
‫ا٘شربثی ‪ ٚ‬ضقش‪ ٝ‬ػبیٍعیٗ ق‪٘ٛ‬س‪ ٜ‬ضا ٔكرم ٔی و‪ٙ‬س) زض وس ظیط یه ٔظبَ اظ ایٗ ٔشس آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز ‪.‬‬

‫{ ‪public class Test‬‬

‫{ )][‪public static void main(String args‬‬


‫;)"‪StringBuffer sb = new StringBuffer("abcdefghijk‬‬
‫;)"‪sb.replace(3, 8, "ZARA‬‬
‫;)‪System.out.println(sb‬‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی ایٗ وس ٔشٗ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‬

‫‪abcZARAijk‬‬

‫سب ث‪ ٝ‬ایٗ ثرف ٔشس‪ٞ‬بیی و‪ٔ ٝ‬ره‪ٛ‬ل والؼ ‪ٞ‬بی ‪ StringBuilder ٚStringBuffer‬ث‪ٛ‬ز ٌفش‪ ٝ‬قس) ٔشس ‪ٞ‬بی ٌفش‪ ٝ‬قس‪ ٜ‬زض ‪ٞ‬طز‪ ٚ‬والؼ ‪ٚ‬ػ‪ٛ‬ز زاض٘س) یه‬
‫ؾطی ٔشس‪ٞ‬بیی ‪ٚ ٓٞ‬ػ‪ٛ‬ز زاض٘س و‪ٕٞ ٝ‬ب٘‪ٙ‬س ٔشس ‪ٞ‬بی ٔ‪ٛ‬ػ‪ٛ‬ز زض والؼ ‪ٞ String‬ؿش‪ٙ‬س و‪ ٝ‬ث‪ّٖ ٝ‬ز ایٗ و‪ ٝ‬وبضثطز آ٘‪ٟ‬ب زلیمب ‪ٕٞ‬بٖ وبضثطز ٔشس‪ٞ‬بی ٔ‪ٛ‬ػ‪ٛ‬ز زض‬
‫والؼ ‪ String‬اؾز ‪ ٚ‬آ٘‪ٟ‬ب ضا قطح زاز‪ ٜ‬ایٓ اظ س‪ٛ‬يیح آ٘‪ٟ‬ب ذ‪ٛ‬ززاضی ٔی و‪ٙ‬یٓ) ث‪ ٝ‬یبز زاقش‪ ٝ‬ثبقیس و‪ٔ ٝ‬ی س‪ٛ‬اٖ ثس‪ ٖٚ‬اؾشفبز‪ ٜ‬اظ ایٗ والؼ ‪ٞ‬ب وبض‪ٞ‬بی ٌفش‪ٝ‬‬
‫قس‪ ٜ‬ضا ا٘ؼبْ زاز ‪ِٚ‬ی اؾشفبز‪ ٜ‬اظ ایٗ والؼ ‪ٞ‬ب ثبٖض ٔی ق‪ٛ‬ز ؾطٖز اػطای ثط٘بٔ‪ ٝ‬قٕب زض دطزاظـ ضقش‪ٞ ٝ‬ب ث‪َ ٝ‬طظ چكٍٕیطی ثبال ثط‪ٚ‬ز‬

‫اٌط قٕب ثر‪ٛ‬ا‪ٞ‬یس ‪ٞ‬ط ثط٘بٔ‪ ٝ‬ای ث‪ٛٙ‬یؿیس ٔؼج‪ٛ‬ض ‪ٞ‬ؿشیس اظ ٔشس‪ٞ‬ب اؾشفبز‪ ٜ‬و‪ٙ‬یس) ثطای ٔظبَ ‪ٚ‬لشی و‪ ٝ‬ثط٘بٔ‪ ٝ‬ای قط‪ٔ ٔٚ‬ی و‪ٙ‬یس زؾش‪ٛ‬ضار ذ‪ٛ‬ز ضا زض زاذُ ٔشسی‬
‫ث‪٘ ٝ‬بْ ‪ٔ main‬ی ٘‪ٛ‬یؿیس ‪ ٚ‬ثطای چبح اَالٖبر ذ‪ٛ‬ز زض نفح‪ٕ٘ ٝ‬بیف اظ ٔشس زیٍطی ث‪٘ ٝ‬بْ ‪println‬اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬یس) زض ایٗ ُّٔت لهس زاضیٓ و‪٘ ٝ‬ح‪ٜٛ‬‬

‫‪86‬‬
‫سٗطیف ٔشس ‪ٞ‬ب ‪ ٚ‬ا٘‪ٛ‬أ آ٘‪ٟ‬ب ‪٘ ٚ‬ح‪ ٜٛ‬اؾشفبز‪ ٜ‬اظ آ٘‪ٟ‬ب ضا قطح ز‪ٞ‬یٓ) ٔشس‪ٞ‬ب زض ػب‪ٚ‬ا ٔؼٕ‪ ٖٝٛ‬زؾش‪ٛ‬ضإُِٗ ‪ٞ‬بیی ‪ٞ‬ؿش‪ٙ‬س و‪ ٝ‬ثطای اػطای یه ّٖٕیبر ذبل زض‬
‫یه ٌط‪ ٜٚ‬و‪ٙ‬بض ‪ٛ٘ ٓٞ‬قش‪ ٝ‬قس‪ ٜ‬ا٘س) ثطای ٔظبَ ‪ٚ‬لشی و‪ٔ ٝ‬ب ٔشس )(‪System.out.println‬ضا فطاذ‪ٛ‬ا٘ی ٔی و‪ٙ‬یٓ زض ‪ٚ‬الٕ چ‪ٙ‬سیٗ زؾش‪ٛ‬ض اػطا ٔی ق‪ٛ‬ز سب یه‬
‫دیبْ زض نفح‪ٕ٘ ٝ‬بیف ٘كبٖ زاز‪ ٜ‬ق‪ٛ‬ز) زض ایٗ ُّٔت ٘كبٖ ذ‪ٛ‬ا‪ٞ‬یٓ زاز و‪ ٝ‬چٍ‪ٔ ٝ٘ٛ‬ی س‪ٛ‬اٖ یه ٔشس ؾبذز و‪ ٝ‬یه ٔمساض ثطٌطزا٘س ‪ ٚ‬یب ‪ٞ‬یچ ٔمساضی‬
‫ثطٍ٘طزا٘س یب آضٌ‪ٔٛ‬بٖ ‪ٚ‬ض‪ٚ‬زی زاقش‪ ٝ‬ثبقس یب ٘ساقش‪ ٝ‬ثبقس‪.‬‬

‫ساخت هتذ‬

‫قىُ وّی ؾبذز یه ٔشس ٔب٘‪ٙ‬س وس ظیط اؾز و‪ ٝ‬زض ازأ‪ٞ ٝ‬طوساْ اظ ثرف ‪ٞ‬بی آٖ ضا س‪ٛ‬يیح ذ‪ٛ‬ا‪ٞ‬یٓ زاز ‪:‬‬

‫{ )‪public static int methodName(int a, int b‬‬


‫‪// body‬‬
‫}‬

‫زض وس ثبال وّٕ‪ٞ ٝ‬بی ‪ public , static‬ز‪ٞ modifier ٚ‬ؿش‪ٙ‬س و‪ٞ modifier ٝ‬ب ضا زض ٔٗطفی‪ٞ Modifier‬ب زض ػب‪ٚ‬ا س‪ٛ‬يیح زازیٓ) ؾذؽ ٘‪ ٔٛ‬زاز‪ int ٜ‬آ‪ٚ‬ضز‪ٜ‬‬
‫‪٘. methodName‬بْ ٔشس ٔی ثبقس و‪ ٝ‬ایٗ ٘بْ ٔشس اظ ل‪ٛ‬اٖس‬ ‫قس‪ ٜ‬اؾز) ایٗ ٘‪ ٔٛ‬زاز‪ٔ ٜ‬كرم ٔی و‪ٙ‬س و‪ ٔٛ٘ ٝ‬زاز‪ ٜ‬ثبظٌكشی ٔشس اظ چ‪ٖٛ٘ ٝ‬ی ٔی ثبقس‬
‫٘بٍٔصاضی ٔشغیط ‪ٞ‬ب و‪ ٝ‬لجال س‪ٛ‬يیح زاز‪ ٜ‬قس دیط‪ٚ‬ی ٔی و‪ٙ‬س ‪. a,b‬دبضأشط‪ٞ‬بی ‪ٚ‬ض‪ٚ‬زی ‪ٞ‬ؿش‪ٙ‬س و‪ ٝ‬ثبیس ‪ٍٙٞ‬بْ سٗطیف ٔشس ٔكرم و‪ٙ‬یٓ اظ چ‪ٖٛ٘ ٝ‬ی ‪ٞ‬ؿش‪ٙ‬س)‬
‫زلز زاقش‪ ٝ‬ثبقیس و‪ ٝ‬ایٗ ٔشس زاضای ز‪ٖ ٚ‬سز دبضأشط ‪ٚ‬ض‪ٚ‬زی اظ ٘‪ٔ int ٔٛ‬ی ثبقس و‪ٔ ٝ‬شس‪ٞ‬ب ٔی س‪ٛ‬ا٘‪ٙ‬س ‪ٞ‬یچ یب چ‪ٙ‬س دبضأشط ‪ٚ‬ض‪ٚ‬زی زاقش‪ ٝ‬ثبق‪ٙ‬س ‪ ٔٛ٘ ٚ‬آ٘‪ٟ‬ب ٔی‬
‫س‪ٛ‬ا٘س اظ ا٘‪ٛ‬أ ٔرشّف زاز‪ ٜ‬ثبقس) وّی‪ ٝ‬زؾش‪ٛ‬ضار ٔطث‪ ٌٛ‬ث‪ٔ ٝ‬شس ٔی س‪ٛ‬ا٘‪ٙ‬س زاذُ ‪ٛ٘ method body‬قش‪ٔ ٝ‬ی ق‪٘ٛ‬س) ثطای زضن ُٔبِجی و‪ٌ ٝ‬فش‪ ٝ‬قس ٔظبِی زض‬
‫ظیط آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز و‪ ٝ‬یه سبثٕ ضا سٗطیف وطز‪ ٜ‬ایٓ و‪ ٝ‬زاضای ‪ٚ 2‬ض‪ٚ‬زی اؾز و‪ ٝ‬و‪ٛ‬چىشطیٗ ٔمساض ثیٗ ایٗ ز‪ٚ ٚ‬ض‪ٚ‬زی ضا دیسا وطز‪ ٚ ٜ‬ثطٔی ٌطزا٘س ‪.‬‬

‫{ )‪public static int minFunction(int n1, int n2‬‬


‫;‪int min‬‬
‫)‪if (n1 > n2‬‬
‫;‪min = n2‬‬
‫‪else‬‬
‫;‪min = n1‬‬

‫;‪return min‬‬
‫}‬

‫ثب ٖجبضر ‪ٔ return‬ب ٔمساض ثبظٌكشی ضا اٖالْ ٔی و‪ٙ‬یٓ ‪ٚ ٚ‬لشی اػطای ثط٘بٔ‪ ٝ‬ث‪ ٝ‬ایٗ لؿٕز ضؾیس اظ ٔشس ذبضػی ٔی ق‪ٛ‬ز ‪.‬‬

‫فزاخَاًی هتذّا‬

‫ثطای ایٗ و‪ ٝ‬اظ یه ٔشس اؾشفبز‪ ٜ‬و‪ٙ‬یٓ ثبیس آٖ ضا فطاذ‪ٛ‬ا٘ی و‪ٙ‬یٓ یب ث‪ٖ ٝ‬جبضر زیٍط آٖ ضا نسا ثع٘یٓ) ز‪ ٚ‬ضا‪ ٜ‬ثطای فطاذ‪ٛ‬ا٘ی یه ٔشس ‪ٚ‬ػ‪ٛ‬ز زاضز) ظٔب٘ی و‪ٔ ٝ‬شس‬
‫یه ٔمساض ضا ثطٔی ٌطزا٘س ‪ ٚ‬ظٔب٘ی و‪ٔ ٝ‬شس ‪ٞ‬یچ ٔمساضی ضا ثطٕ٘ی ٌطزا٘س) فطای‪ٙ‬س فطاذ‪ٛ‬ا٘ی ٔشس‪ٞ‬ب آؾبٖ اؾز ) ظٔب٘ی و‪ ٝ‬یه ثط٘بٔ‪ ٝ‬یه ٔشس ضا فطاذ‪ٛ‬ا٘ی ٔی‬
‫و‪ٙ‬س و‪ٙ‬شطَ اػطای ثط٘بٔ‪ ٝ‬ث‪ ٝ‬اثشسای ٔشس فطاذ‪ٛ‬ا٘ی قس‪ٔ ٜ‬ی ض‪ٚ‬ز ‪ ٚ‬آٖ ضا اػطا ٔی و‪ٙ‬س سب ظٔب٘ی و‪ ٝ‬و‪ٙ‬شطَ اػطا ث‪ ٝ‬یىی اظ حبِز ‪ٞ‬بی ظیط ثطؾس) ث‪ ٝ‬ذُی ثطؾس‬

‫‪87‬‬
‫و‪ٖ ٝ‬جبضر ‪ return‬زاضز یب ث‪ٖ ٝ‬الٔز { و‪٘ ٝ‬كبٖ ز‪ٙٞ‬س‪ ٜ‬اسٕبْ ٔشس اؾز ثطؾس ث‪ٖ ٝ‬جبضر زیٍط ثّ‪ٛ‬ن ٔشس سٕبْ ق‪ٛ‬ز) دؽ اظ اػطای ٔشس و‪ٙ‬شطَ ثط٘بٔ‪ ٝ‬ث‪ ٝ‬ذُی‬
‫و‪ٔ ٝ‬شس ضا فطاذ‪ٛ‬ا٘ی وطز‪ ٜ‬ث‪ٛ‬ز ثبظ ٔی ٌطزز) ثطای ایٗ و‪ٔ ٝ‬شسی ‪ٞ‬یچ ٔمساض ثبظٌكشی ٘ساقش‪ ٝ‬ثبقس ٘‪ ٔٛ‬آٖ ضا ‪ٍٙٞ‬بْ سٗطیف ٔشس اظ ٘‪ void ٔٛ‬ا٘شربة ٔی و‪ٙ‬یٓ)‬
‫زض ٔشس‪ٞ‬بیی و‪ٞ ٝ‬یچ ٔمساضی ثطٕ٘ی ٌطزا٘‪ٙ‬س ٔی س‪ٛ‬اٖ ‪ٍ٘ return‬صاقز) ‪ٕٞ‬چ‪ٙ‬یٗ اٌط اظ ‪ return‬اؾشفبز‪ ٜ‬و‪ٙ‬یٓ زض ػّ‪ٛ‬ی آٖ چیعی ٕ٘ی ٘‪ٛ‬یؿیٓ) ثطای ٔظبَ وس‬
‫ظیط ‪ٞ‬یچ ٔمساضی ضا ثطٕ٘ی ٌطزا٘س‪.‬‬

‫;)"!‪System.out.println("This is tosinso.com‬‬

‫ٔشسی و‪ٔ ٝ‬مساضی ضا ثطٔی ٌطزا٘س ٔی س‪ٛ‬ا٘س ث‪ ٝ‬قىُ ظیط ثبقس‪:‬‬

‫;)‪int result = sum(6, 9‬‬

‫زض ٔظبَ ظیط وسی آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز و‪٘ ٝ‬ح‪ ٜٛ‬سٗطیف ٔشس ‪٘ ٚ‬ح‪ ٜٛ‬اؾشفبز‪ ٜ‬اظ آٖ ضا ٘كبٖ ٔی ز‪ٞ‬س‪.‬‬

‫{‪public class ExampleMinNumber‬‬

‫{ )‪public static void main(String[] args‬‬


‫;‪int a = 11‬‬
‫;‪int b = 6‬‬
‫;)‪int c = minFunction(a, b‬‬
‫;)‪System.out.println("Minimum Value = " + c‬‬
‫}‬

‫‪/** returns the minimum of two numbers */‬‬


‫{ )‪public static int minFunction(int n1, int n2‬‬
‫;‪int min‬‬
‫)‪if (n1 > n2‬‬
‫;‪min = n2‬‬
‫‪else‬‬
‫;‪min = n1‬‬

‫;‪return min‬‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪inimum value = 6‬‬

‫زض ٔظبَ ظیط ٘ح‪ ٜٛ‬ضفشبض ثب ٔشس ‪ٞ‬بی ‪ void‬ضا ٘كبٖ ٔی ز‪ٞ‬یٓ) زلز زاقش‪ ٝ‬ثبقیس و‪ ٝ‬زض ٔشس‪ٞ‬بی اظ ٘‪ٔ void ٔٛ‬شس ضا ث‪ ٝ‬س‪ٟٙ‬بیی زض یه ذٍ ٔی ٘‪ٛ‬یؿیٓ‪.‬‬

‫{ ‪ublic class ExampleVoid‬‬

‫{ )‪public static void main(String[] args‬‬


‫‪88‬‬
‫;)‪methodRankPoints(255.7‬‬
‫}‬

‫{ )‪public static void methodRankPoints(double points‬‬


‫{ )‪if (points >= 202.5‬‬
‫;)"‪System.out.println("Rank:A1‬‬
‫}‬
‫{ )‪else if (points >= 122.4‬‬
‫;)"‪System.out.println("Rank:A2‬‬
‫}‬
‫{ ‪else‬‬
‫;)"‪System.out.println("Rank:A3‬‬
‫}‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪Rank:A1‬‬

‫ارسال پاراهتز با هقذار‬

‫دبضأشط‪ٞ‬بیی و‪ٍٙٞ ٝ‬بْ فطاذ‪ٛ‬ا٘ی ث‪ٔ ٝ‬شس زاز‪ٔ ٜ‬ی ق‪٘ٛ‬س ثبیس ث‪ٕٞ ٝ‬بٖ سطسیجی ثبق‪ٙ‬س و‪ ٝ‬زض سٗطیف ٔشس آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬ا٘س ‪ٕٞ ٚ‬چ‪ٙ‬یٗ ٘‪ ٔٛ‬آ٘‪ٟ‬ب ٘یع ثبیس ث‪ٕٞ ٝ‬بٖ‬
‫قىُ ثبقس) ‪ٚ‬لشی و‪ ٝ‬یه دبضأشط ث‪ٔ ٝ‬شس اضؾبَ ٔی ق‪ٛ‬ز ز‪ٚ‬حبِز ٖٕس‪ٕٔ ٜ‬ىٗ اؾز دیف ثیبیس ‪.‬‬

‫‪ٞ ),‬ط سغییطی و‪ ٝ‬زض ثس٘‪ٔ ٝ‬شس ثط ض‪ٚ‬ی دبضأشط ا٘ؼبْ ٔی ز‪ٞ‬یٓ زض ذبضع اظ ٔشس ٘یع آٖ سغییطار اٖٕبَ ق‪٘ٛ‬س‬
‫‪ٞ )-‬ط سغییط و‪ ٝ‬زض ثس٘‪ٔ ٝ‬شس ثطض‪ٚ‬ی دبضأشط‪ٞ‬ب ا٘ؼبْ ٔی ز‪ٞ‬یٓ زض ذبضع اظ ٔشس آٖ سغییطار ثی سبطیط ٔی ثبق‪ٙ‬س‪.‬‬

‫زض حبِز ا‪ َٚ‬ث‪ ٝ‬ایٗ ٔٗ‪ٙ‬ی اؾز و‪ٔ ٝ‬ب سغیطار ضا ض‪ٚ‬ی ‪ٕٞ‬بٖ ٔشغیط ا‪ِٚ‬ی‪ ٝ‬اٖٕبَ و‪ٙ‬یٓ) ‪ِٚ‬ی زض حبِز ز‪ٔ ْٚ‬ب٘‪ٙ‬س ایٗ اؾز و‪ٔ ٝ‬مساض ٔشغیط زض دبضأشط سبثٕ وذی‬
‫ق‪ٛ‬ز ‪ ٚ‬ذ‪ٛ‬ز ٔمساض ٔشغیط انّی ثس‪ ٖٚ‬سغییط ثبلی ثٕب٘س) ث‪ ٔٛ٘ ٝ‬ا‪ َٚ‬اضؾبَ دبضأشط ثب اضػبٔ یب ‪ ٚ pass by reference‬ث‪ ٔٛ٘ ٝ‬ز‪ ْٚ‬اضؾبَ دبضأشط ثب ٔمساض یب‬
‫‪ٌpass‬فش‪ٝ‬‬ ‫‪by‬‬ ‫‪value‬‬

‫ٔی ق‪ٛ‬ز) زض وس ظیط یه ٔظبَ اظ ‪ pass by value‬ضا ٘كبٖ زاز‪ ٜ‬ایٓ‪:‬‬

‫{ ‪public class swappingExample‬‬

‫{ )‪public static void main(String[] args‬‬


‫;‪int a = 30‬‬
‫;‪int b = 45‬‬

‫;)‪System.out.println("Before swapping, a = " + a + " and b = " + b‬‬

‫‪89‬‬
// Invoke the swap method
swapFunction(a, b);
System.out.println("\n**Now, Before and After swapping values will be same
here**:");
System.out.println("After swapping, a = " +
a + " and b is " + b);
}

public static void swapFunction(int a, int b) {

System.out.println("Before swapping(Inside), a = " + a


+ " b = " + b);
// Swap n1 with n2
int c = a;
a = b;
b = c;

System.out.println("After swapping(Inside), a = " + a+ "and b = " + b);


}
}

:‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قطح ظیط ذ‬ٝ‫ػی وس ثبال ث‬ٚ‫ذط‬

Before swapping, a = 30 and b = 45


Before swapping(Inside), a = 30 b = 45
After swapping(Inside), a = 45 b = 30

**Now, Before and After swapping values will be same here**:


After swapping, a = 30 and b is 45

.‫س قس‬ٙٞ‫ا‬ٛ‫ اضؾبَ ذ‬pass by value ‫ضر‬ٛ‫ ن‬ٝ‫ ث‬ٝ‫ِی‬ٚ‫أ ا‬ٛ٘‫ِی ا‬ٚ ‫٘س‬ٛ‫ اضؾبَ ٔی ق‬pass by reference ‫ضر‬ٛ‫ ن‬ٝ‫ا ث‬ٚ‫ اقیب زض ػب‬ٝ‫ ثبقیس و‬ٝ‫زلز زاقش‬

‫کزدى هتذّا‬overload

‫ػی یب اظ ٘ٓط سٗساز‬ٚ‫ٔ ذط‬ٛ٘ ‫طوساْ یب اظ ٘ٓط‬ٞ ‫ب‬ٞ ‫ ایٗ ٔشس‬ٝ‫س ٔشس ثب یه ٘بْ یىؿبٖ ٔی ثبقس و‬ٙ‫ یه والؼ زاضای چ‬ٝ‫ا ثؿیبض دیف ٔی آیس و‬ٚ‫زض ظثبٖ ػب‬
ٚ ‫ػی‬ٚ‫ٔ ذط‬ٛ٘ ٚ ٖ‫ ٔشس ثب ٘بْ یىؿب‬ٚ‫ب یىؿبٖ اؾز) سٗطیف ز‬ٟ٘‫ِی ٘بْ آ‬ٚ )‫ر زاض٘س‬ٚ‫زی ثب یىسیٍط سفب‬ٚ‫ض‬ٚ ‫بی‬ٞ ‫ٔ دبضأشط‬ٛ٘ ‫زی یب اظ ٘ٓط‬ٚ‫ض‬ٚ ‫بی‬ٞ ‫دبضأشط‬
method ‫ب یب‬ٞ‫ وطزٖ ٔشس‬overload ‫ر‬ٚ‫ٔ ثبظٌكشی ٔشفب‬ٛ٘ ‫ب یب‬ٞ‫ِی دبضأشط‬ٚ ٖ‫ب ثب ٘بْ یىؿب‬ٞ ‫ سٗطیف ٔشس‬ٌٝ٘ٛ ٗ‫ ای‬ٝ‫ز) ث‬ٛ‫بی یىؿبٖ ثبٖض ذُب ٔی ق‬ٞ ‫ٔشغیط‬

‫ اٖكبضی ٔی‬ٚ ‫ٔ ٖسز نحیح‬ٛ٘ ٚ‫چىشطیٗ ٖسز زض ز‬ٛ‫ضزٖ و‬ٚ‫ زؾز آ‬ٝ‫ ث‬ٝ‫ اؾز و‬ٜ‫ قس‬ٜ‫ضز‬ٚ‫ز) زض ظیط یه ٔظبِی اظ ایٗ ُٖٕ آ‬ٛ‫ ٔی ق‬ٝ‫ٌفش‬overloading
.‫ثبقس‬

public class ExampleOverloading{

public static void main(String[] args) {


90
int a = 11;
int b = 6;
double c = 7.3;
double d = 9.4;
int result1 = minFunction(a, b);
// same function name with different parameters
double result2 = minFunction(c, d);
System.out.println("Minimum Value = " + result1);
System.out.println("Minimum Value = " + result2);
}

// for integer
public static int minFunction(int n1, int n2) {
int min;
if (n1 > n2)
min = n2;
else
min = n1;

return min;
}
// for double
public static double minFunction(double n1, double n2) {
double min;
if (n1 > n2)
min = n2;
else
min = n1;

return min;
}
}

:‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی وس ثبال ث‬ٚ‫ذط‬

Minimum Value= 6
Minimum Value= 7.3

‫ز زاضز‬ٛ‫ػ‬ٚminFuctionْ‫ ٘ب‬ٝ‫ ٖسز ٔشس ث‬ٚ‫ز ز‬ٛ‫ ٔی ق‬ٜ‫ زیس‬ٝ‫ و‬ٍٝ٘ٛ٘‫ٕب‬ٞ

‫قی ٌطایی‬

ٝ‫بی یىسیٍط ثب یىسیٍط اضسجبٌ زاقش‬ٞ‫ا٘ی ٔشس‬ٛ‫س ثب فطاذ‬ٙ٘‫ا‬ٛ‫ ایٗ اقیب ٔی س‬ٝ‫ ثبقس و‬ٜ‫بی ٔرشّفی سكىیُ قس‬ٞ ‫ والؼ‬ٚ ‫ا٘س اظ اقیبء‬ٛ‫ا ٔی س‬ٚ‫ ػب‬ٝٔ‫ط ثط٘ب‬ٞ
.ٓ‫ ٔشس ٔی دطزاظی‬ٚ ‫یٓ والؼ‬ٞ‫ ثطضؾی ٔفب‬ٝ‫س) اثشسا ث‬ٙ‫ثبق‬

91
‫قیء )‪(Obejct‬اقیب ‪ٚ‬یػٌی ‪ٞ‬ب ‪ ٚ‬ضفشبض ‪ٞ‬بی ٔطث‪ ٌٛ‬ث‪ ٝ‬ذ‪ٛ‬ز ضا زاض٘س) ث‪َٛ ٝ‬ض ٔظبَ یه ؾً ‪ٚ‬یػٌی ‪ٞ‬بیی زاضز ٔب٘‪ٙ‬س ضً٘ ‪٘ ٚ‬ػاز ‪ ٚ‬اٖٕبِی ٔب٘‪ٙ‬س‬ ‫‪‬‬

‫ذ‪ٛ‬اثیسٖ ‪ ٚ‬ذ‪ٛ‬ضزٖ ‪ ٓٞ‬ضفشبض‪ٞ‬بی آٖ ؾً ٔی ثبقس) یه قی یه ٕ٘‪ ٝ٘ٛ‬اظ یه والؼ اؾز ‪.‬‬


‫والؼ )‪ (Class‬یه والؼ ضا ٔی س‪ٛ‬اٖ یه اٍِ‪ ٛ‬زا٘ؿز) اٍِ‪ٛ‬یی و‪ٚ ٝ‬یػٌی ‪ٞ‬ب ‪ ٚ‬ضفشبض ‪ٞ‬بی ‪ٞ‬ط قی و‪ ٝ‬اظ آٖ والؼ ؾبذش‪ ٝ‬قس‪ ٜ‬اؾز ضا قطح‬ ‫‪‬‬

‫ٔی ز‪ٞ‬س‪.‬‬
‫ٔشس )‪(Method‬یه ٔشس زض انُ یه ضفشبض اؾز ) یه والؼ ٔی س‪ٛ‬ا٘س چ‪ٙ‬سیٗ ٔشس زاقش‪ ٝ‬ثبقس) ٔشس‪ٞ‬ب ػبیی ‪ٞ‬ؿش‪ٙ‬س و‪ُٙٔ ٝ‬ك ثط٘بٔ‪ ٝ‬دیبز‪ ٜ‬ؾبظی‬ ‫‪‬‬

‫ٔی ق‪ٛ‬ز ‪ ٚ‬زاز‪ٞ ٜ‬ب زؾشىبضی ٔی ق‪٘ٛ‬س) ‪ ٕٝٞ ٚ‬وبض‪ٞ‬ب اػطا ٔی ق‪٘ٛ‬س ‪.‬‬
‫ٔشغیط‪ٞ‬بی ًٖ‪ ٛ‬یب فیّس‪ٞ‬ب )‪ٞ(Field‬ط قی ٔؼٕ‪ٔ ٖٝٛ‬شغیط ‪ٞ‬بیی زاضز و‪ٚ ٝ‬یػٌی ‪ٞ‬بی قی زض فیّس‪ٞ‬بی آٖ قی ٍ٘‪ٟ‬ساضی ٔی ق‪٘ٛ‬س ‪.‬‬ ‫‪‬‬

‫هفاّین ضی گزایی‬

‫ػب‪ٚ‬ا یه ظثبٖ وبٔال قی ٌطأی ثبقس) ػب‪ٚ‬ا ٔفب‪ٞ‬یٓ انّی ظیط ضا دكشیجب٘ی ٔی ٕ٘بیس ‪.‬‬

‫‪ ),‬چ‪ٙ‬سضیرشی‪polymorphism‬‬

‫‪ٚ )-‬ضاطز‪Inheritance‬‬

‫‪ ).‬وذؿ‪ ِٝٛ‬ؾبظی‪Encapsulation‬‬

‫‪ )/‬ا٘شعأ‪Abstraction‬‬

‫‪ )0‬والؼ ‪ٞ‬ب‪Classes‬‬

‫‪ )1‬اقیب‪Objects‬‬

‫‪ٞ ٕٝ٘ٛ٘ )2‬ب‪Instances‬‬

‫‪ٔ )3‬شس‪ٞ‬ب‬

‫ٍراثت‬

‫زض ػب‪ٚ‬ا والؼ ‪ٞ‬ب ٔی س‪ٛ‬ا٘‪ٙ‬س اظ والؼ ‪ٞ‬بی زیٍط ٔكشك ق‪٘ٛ‬س ‪ ٚ‬اظ والؼ ‪ٞ‬بی زیٍط ٌطفش‪ ٝ‬ق‪ٛ‬ز) زض انُ اٌط قٕب لهس زاقش‪ ٝ‬ثبقیس و‪ ٝ‬والؼ ػسیسی‬
‫ایؼبز و‪ٙ‬یس ‪ ٚ‬اظ لجُ والؾی ‪ٚ‬ػ‪ٛ‬ز زاقش‪ ٝ‬ثبقس و‪ ٝ‬وس آٖ ث‪ ٝ‬قىّی اؾز و‪ ٝ‬لؿٕشی اظ وس قٕب ‪ٕٞ‬بٖ والؼ اؾز ث‪ٖ ٝ‬جبضر زیٍط قٕب لهس زاضیس و‪ ٝ‬آٖ‬
‫والؼ ضا ٌؿشطـ ز‪ٞ‬یس ‪ ٚ‬ث‪ٚ ٝ‬یػٌی ‪ٞ‬بی آٖ ايبف‪ ٝ‬و‪ٙ‬یس) ثطای ایٗ وبض ث‪ ٝ‬ػبی ایٗ و‪ ٝ‬والؼ ػسیسی ضا اظ ا‪ َٚ‬ث‪ٛٙ‬یؿیس ٔی س‪ٛ‬ا٘یس ایٗ والؼ ضا اظ والؾی‬
‫و‪ٚ ٝ‬ػ‪ٛ‬ز زاضز ‪ ٚ‬ثؿیبضی اظ ‪ٚ‬یػٌی ‪ٞ‬بی ایٗ والؼ ضا زاضا ٔی ثبقس ٔكشك و‪ٙ‬یس) ایٗ ٔف‪ ْٟٛ‬ث‪ ٝ‬قٕب ایٗ أىبٖ ضا ٔی ز‪ٞ‬س و‪ ٝ‬اظ وسی و‪ ٝ‬لجال زاضیس ثش‪ٛ‬ا٘یس‬
‫ث‪َٛ ٝ‬ض ٔؼسز اؾشفبز‪ ٜ‬و‪ٙ‬یس ثس‪ ٖٚ‬ایٗ و‪ ٝ‬وس سىطاضی ث‪ٛٙ‬یؿیٓ ‪ ٚ‬اظ وس‪ٞ‬بیی و‪ ٝ‬لجال ‪ٚ‬ػ‪ٛ‬ز زاقش‪ ٝ‬اؾشفبز‪ ٜ‬و‪ٙ‬یٓ ‪ ٚ‬فمٍ وس‪ٞ‬بی ػسیس ضا ث‪ٛٙ‬یؿیٓ) زض ایٗ ٔف‪ْٟٛ‬‬
‫ث‪ ٝ‬والؾی و‪ ٝ‬لجال ‪ٚ‬ػ‪ٛ‬ز زاقش‪ ٝ‬ثبقس والؼ دسض ‪ ٚ‬یب ‪ٔ super class‬ی ٌ‪ٛ‬ی‪ٙ‬س ‪ ٚ‬ث‪ ٝ‬والؼ ‪ٞ‬بیی و‪ٔ ٝ‬كشك قس‪ ٜ‬ا٘س والؼ فطظ٘س یب ‪ٔ subclass‬ی ٌ‪ٛ‬ی‪ٙ‬س‪.‬‬

‫‪92‬‬
‫ایٌتزفیس ّا‪Interface‬‬

‫زض ظثبٖ ػب‪ٚ‬ا ای‪ٙ‬شطفیؽ یه لطاض زاز ثیٗ اقیب اؾز و‪ ٝ‬چٍ‪ ٝ٘ٛ‬ثب یىسیٍط اضسجبٌ زاقش‪ ٝ‬ثبق‪ٙ‬س) ‪ٚ‬لشی و‪ ٝ‬ثحض ‪ٚ‬ضاطز دیف ٔی آیس ای‪ٙ‬شطفیؽ یه ٘مف ثؿیبض‬
‫ٔ‪ ٟٓ‬زاضز) یه ای‪ٙ‬شطفیؽ ٔشس‪ٞ‬ب ضا سٗطیف ٔی و‪ٙ‬س ‪ ٚ‬والؼ ‪ٞ‬بی ٔكشك قس‪ ٜ‬ثبیس اظ ایٗ لب٘‪ ٖٛ‬سجٗیز و‪ٙ‬س) زض ای‪ٙ‬شطفیؽ فمٍ ٘بْ ‪ٔ ٔٛ٘ ٚ‬شس‪ٞ‬ب ٔكرم ٔی‬
‫ق‪ٛ‬ز ‪ِٚ‬ی ‪ٞ‬یچ ٌ‪ ٝ٘ٛ‬دیبز‪ ٜ‬ؾبظی ا٘ؼبْ ٕ٘ی ق‪ٛ‬ز ‪ ٕٝٞ ٚ‬دیبز‪ ٜ‬ؾبظی ‪ٞ‬ب زض ؾٕز والؼ فطظ٘س ا٘ؼبْ ٔی ق‪ٛ‬ز ‪.‬‬

‫اضیاء در جاٍا‬

‫اٌط ثر‪ٛ‬ا‪ٞ‬یٓ ز٘یبی ‪ٚ‬الٗی ضا ٔظبَ ثع٘یٓ ٔی س‪ٛ‬ا٘یٓ اقیبئی ضا زض ز٘یبی اَطافٕبٖ دیسا و‪ٙ‬یٓ) ا٘ؿب٘‪ٟ‬ب ‪ٔ ٚ‬بقیٗ ‪ٞ‬ب ‪ ٚ‬حی‪ٛ‬ا٘بر ‪ ٕٝٞ ))) ٚ‬اقیب ‪ٞ‬ؿش‪ٙ‬س) ‪ ٕٝٞ‬ی ایٗ‬
‫اقیب زاضای ‪ٚ‬یػٌی ‪ٞ‬ب ‪ ٚ‬ضفشبض‪ٞ‬بیی ‪ٞ‬ؿش‪ٙ‬س) یه ؾً ‪ٚ‬یػٌی ‪ٞ‬بیی ٔب٘‪ٙ‬س ضً٘ ‪٘ ٚ‬ػاز ‪ٚ ٚ‬ظٖ زاضز ‪ ٚ‬ضفشبض‪ٞ‬بیی ٔب٘‪ٙ‬س ذ‪ٛ‬ضزٖ ‪ ٚ‬ذ‪ٛ‬اثیسٖ ‪ٚ ٚ‬اق ‪ٚ‬اق وطزٖ ‪ٚ‬‬
‫ز‪ٚ‬یسٖ زاضز) اٌط ثر‪ٛ‬ا‪ٞ‬یٓ اقیب زض ثط٘بٔ‪ٛ٘ ٝ‬یؿی ضا ثب اقیب زض ز٘یبی ‪ٚ‬الٗی ثطضؾی و‪ٙ‬یٓ ثؿیبض قجی‪ ٝ‬ث‪ٞ ٓٞ ٝ‬ؿش‪ٙ‬س) اقیب زض ثط٘بٔ‪ٛ٘ ٝ‬یؿی ٘یع زاضای ‪ٚ‬یػٌی ‪ٞ‬ب‬
‫‪ ٚ‬ضفشبض‪ٞ‬بیی ٔی ثبق‪ٙ‬س) یه قی ٘طْ افعاضی ‪ٚ‬یػٌی ‪ٞ‬بیف ضا زض فیّس‪ٞ‬ب شذیط‪ٔ ٜ‬ی و‪ٙ‬س ‪ ٚ‬ضفشبض‪ٞ‬بیف زض لبِت ٔشس‪ٞ‬ب ٘كبٖ زاز‪ٔ ٜ‬ی ق‪٘ٛ‬س) دؽ زض س‪ٛ‬ؾٗ‪٘ ٝ‬طْ‬
‫افعاض ٔشس ‪ٞ‬ب ثط ض‪ٚ‬ی ‪ٚ‬یػٌی ‪ٞ‬بی زاذّی قی وبض ٔی و‪ٙٙ‬س ‪ٕٞ ٚ‬چ‪ٙ‬یٗ اضسجبٌ ثیٗ اقیب ٘یع ثب اؾشفبز‪ ٜ‬اظ ٔشس‪ٞ‬ب ا٘ؼبْ ذ‪ٛ‬ا‪ٞ‬س قس ‪.‬‬

‫کالس ّا در جاٍا‬

‫یه والؼ یه لبِت ثطای اقیبئی اؾز و‪ ٝ‬اظ آٖ ؾبذش‪ٔ ٝ‬ی ق‪ٛ‬ز) ث‪ ٝ‬ایٗ ٔٗ‪ٙ‬ی و‪ ٝ‬والؼ ٔكرم ٔی و‪ٙ‬س و‪ ٝ‬قیئی و‪ ٝ‬اظ ایٗ والؼ ؾبذش‪ٔ ٝ‬ی ق‪ٛ‬ز ثبیس‬
‫چ‪ٚ ٝ‬یػٌی ‪ٞ‬ب ‪ ٚ‬چ‪ ٝ‬ضفشبض ‪ٞ‬بیی زاقش‪ ٝ‬ثبقس) ‪ ٕٝٞ‬اقیب اظ والؼ ‪ٞ‬ب ؾبذش‪ٔ ٝ‬ی ق‪٘ٛ‬س) زض قىُ ظیط یه ٕ٘‪ ٝ٘ٛ‬اظ والؼ ضا ٔكب‪ٞ‬س‪ٔ ٜ‬ی و‪ٙ‬یس ‪.‬‬

‫{‪public class Dog‬‬


‫‪int ageC‬‬
‫;‪String color‬‬

‫{)(‪void barking‬‬
‫}‬

‫{)(‪void hungry‬‬
‫}‬

‫{)(‪void sleeping‬‬
‫}‬
‫}‬

‫یه والؼ ٔی س‪ٛ‬ا٘س ‪ٞ‬طوساْ اظ ٔ‪ٛ‬اضز ظیط ضا زاقش‪ ٝ‬ثبقس‪.‬‬

‫‪ٔ ),‬شغیط ٔحّی‪ٔ 5‬شغیطی اؾز و‪ ٝ‬زض زاذُ ٔشس‪ٞ‬ب ‪ ٚ‬یب ؾبظ٘س‪ٞ(constructor) ٜ‬ب ‪ ٚ‬یب ثّ‪ٛ‬ن ‪ٞ‬ب سٗطیف ٔی ق‪ٛ‬ز) ایٗ ٔشغیط ‪ٞ‬ب زض زاذُ ٔشس ‪ ٚ‬یب‬
‫‪ constructor‬ضؾیسیٓ اظ‬ ‫‪ ٚconstructor‬یب زاذُ یه ثّ‪ٛ‬ن وس سٗطیف ٔی ق‪٘ٛ‬س ‪ٛٔ ٚ‬ضز اؾشفبز‪ ٜ‬لطاض ٔی ٌیط٘س ‪ٍٙٞ ٚ‬بٔی و‪ ٝ‬ث‪ ٝ‬دبیبٖ ٔشس یب‬
‫حبفٓ‪ ٝ‬دبن ذ‪ٛ‬ا‪ٙٞ‬س قس‪.‬‬

‫‪93‬‬
‫‪ٔ )-‬شغیط ‪ٞ‬بی ًٖ‪ٔ 5ٛ‬شغیط‪ٞ‬بی ٕ٘‪ٔ ٝ٘ٛ‬شغیط‪ٞ‬بیی زاذُ والؼ ‪ٞ‬ؿش‪ٙ‬س ‪ِٚ‬ی زاذُ ‪ٞ‬یچ ٔشس ‪ ٚ‬یب ثّ‪ٛ‬وی ٘یؿش‪ٙ‬س ‪ ٚ‬ثیط‪ ٖٚ‬اظ ‪ ٕٝٞ‬ثّ‪ٛ‬ن ‪ٞ‬بی ٔ‪ٛ‬ػ‪ٛ‬ز‬
‫‪ٞ‬ؿش‪ٙ‬س) ایٗ ٔشغیط‪ٞ‬ب ‪ٚ‬لشی و‪ ٝ‬اظ والؼ قی ؾبذش‪ ٝ‬قس ٔمساض ز‪ٞ‬ی ٔی ق‪٘ٛ‬س) ٔشغیط‪ٞ‬بی ًٖ‪ ٛ‬اظ زاذُ ‪ ٕٝٞ‬ی ٔشس‪ٞ‬ب ‪ٞ constructor ٚ‬ب ‪ ٚ‬ثّ‪ٛ‬ن‬
‫‪ٞ‬بی والؼ لبثُ زؾشطؾی ‪ٞ‬ؿش‪ٙ‬س‪.‬‬
‫‪ٔ ).‬شغیط ‪ٞ‬بی والؼ‪ٔ 5‬شغیط‪ٞ‬بیی ‪ٞ‬ؿش‪ٙ‬س و‪ ٝ‬زض زاذُ والؼ سٗطیف قس‪ ٜ‬ا٘س ‪ِٚ‬ی زاذُ ‪ٞ‬یچ ٔشس یب ثّ‪ٛ‬وی ٘یؿش‪ٙ‬س ‪ ٚ‬زاذُ ذ‪ٛ‬ز والؼ ‪ٞ‬ؿش‪ٙ‬س) سفب‪ٚ‬ر‬
‫ایٗ ٔشغیط ‪ٞ‬ب ثب ٔشغیط‪ٞ‬بی ًٖ‪ ٛ‬ایٗ اؾز و‪ ٝ‬ایٗ ٔشغیط ‪ٞ‬ب ث‪ ٝ‬ن‪ٛ‬ضر ‪ Static‬سٗطیف قس‪ ٜ‬ا٘س) یٗ‪ٙ‬ی ثطای سٗطیف آ٘‪ٟ‬ب اظ ث‪ٕٞ ٝ‬طا‪ ٔٛ٘ ٜ‬آ٘‪ٟ‬ب اظ وّٕ‪ٝ‬‬
‫وّیسی ‪٘ static‬یع اؾشفبز‪ ٜ‬قس‪ ٜ‬اؾز‪.‬‬

‫یه والؼ ٔی س‪ٛ‬ا٘س ‪ٞ‬ط سٗساز ٔشس زاقش‪ ٝ‬ثبقس و‪ٔ ٝ‬ی س‪ٛ‬ا٘س ث‪ٔ ٝ‬شغیط‪ٞ‬بی ٌفش‪ ٝ‬قس‪ ٜ‬زؾشطؾی زاقش‪ ٝ‬ثبقس ‪ٔ ٚ‬شس‪ٞ‬بی زیٍط ضا فطاذ‪ٛ‬ا٘ی و‪ٙ‬س) زض ٔظبَ ثبال‬
‫‪ barking ٚ hungry ٚsleeping‬ث‪ٖٛٙ ٝ‬اٖ ٔشس ق‪ٙ‬بذش‪ٔ ٝ‬ی ق‪ٛ‬ز) ٔ‪ٛ‬اضز ٔ‪ٕٟ‬ی و‪ ٝ‬زض ثبض‪ ٜ‬ی والؼ ‪ٞ‬ب ‪ٚ‬ػ‪ٛ‬ز زاض٘س زض ازأ‪ ٝ‬آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬ا٘س ‪.‬‬

‫کالس ساسًذُ )‪(Constructor‬‬

‫‪ٚ‬لشی زضثبض‪ ٜ‬ی والؼ ‪ٞ‬ب ثحض ٔی ق‪ٛ‬ز یىی اظ ٔ‪ٕٟ‬شطیٗ ٔ‪ٛ‬ي‪ٖٛ‬بر زض ثبض‪ ٜ‬ی ‪ٞ constructor‬ب ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز) ‪ٞ‬ط والؼ حسالُ یه ‪ constructor‬زاضز)‬
‫اٌط ٔب اظ ذ‪ٛ‬زٔبٖ ثطای والؼ یه ‪ constructor‬سٗطیف ٘ى‪ٙ‬یٓ وبٔذبیّط ػب‪ٚ‬ا ث‪ ٝ‬ن‪ٛ‬ضر دیكفطو ثطای والؼ یه ‪ٔ constructor‬ی ؾبظز) ‪ٞ‬ط ‪ٚ‬لز و‪ٝ‬‬
‫یه قی ػسیس اظ والؼ ؾبذش‪ٔ ٝ‬ی ق‪ٛ‬ز حسالُ یىی اظ ‪ٞ constructor‬ب فطاذ‪ٛ‬ا٘ی ذ‪ٛ‬ا‪ٞ‬س قس) لب٘‪ ٖٛ‬انّی ثطای سٗطیف ‪ٞ constructor‬ب ث‪ ٝ‬ایٗ قىُ‬
‫اؾز و‪ٞ constructor ٝ‬ب س‪ٛ‬اثٗی ‪ٞ‬ؿش‪ٙ‬س و‪ٕٙٞ ٝ‬بْ والؼ ‪ٞ‬ؿش‪ٙ‬س ‪ ٔٛ٘ ٚ‬ثبظٌكشی ثطای آ٘بٖ سٗطیف ٕ٘ی ق‪ٛ‬ز) یه والؼ ٔی س‪ٛ‬ا٘س ثیف اظ یه‬
‫‪constructor‬زاقش‪ ٝ‬ثبقس) وس ظیط یه ٕ٘‪ ٝ٘ٛ‬اظ ‪ٞ constructor‬ب ضا ٘كبٖ ٔی ز‪ٞ‬س‪.‬‬

‫{‪public class Puppy‬‬


‫{)(‪public Puppy‬‬
‫}‬

‫{)‪public Puppy(String name‬‬


‫‪// This constructor has one parameter, name.‬‬
‫}‬
‫}‬

‫ساخت یک ضی‬

‫‪ٕٞ‬بٍ٘‪ ٝ٘ٛ‬و‪ ٝ‬لجال ٘یع ٌفشیٓ یه والؼ یه لبِت اؾز ‪ ٚ‬یه قی اظ یه والؼ ؾبذش‪ٔ ٝ‬ی ق‪ٛ‬ز) زض ػب‪ٚ‬ا ٔب ثب اؾشفبز‪ ٜ‬اظ وّٕ‪ ٝ‬وّیسی ‪ new‬قی ذ‪ٛ‬ز ضا اظ‬
‫والؼ‬
‫ٔی ؾبظیٓ) ؾ‪ٔ ٝ‬طحّ‪ ٝ‬ثطای ؾبذز یه قی اظ والؼ ‪ٚ‬ػ‪ٛ‬ز زاضز و‪ ٝ‬ث‪ ٝ‬قىُ ظیط اؾز ‪.‬‬

‫‪ ),‬تعزیف هتغیز زض ایٗ ٔطحّ‪ ٝ‬یه ٔشغیط ضا اظ ٘‪ٕٞ ٔٛ‬بٖ والؾی و‪ٔ ٝ‬ی ذ‪ٛ‬ا‪ٞ‬یٓ اظ آٖ قی ثؿبظیٓ سٗطیف ٔی و‪ٙ‬یٓ‬
‫‪ً )-‬وًَِ ساسی ثب اؾشفبز‪ ٜ‬اظ وّٕ‪ ٝ‬وّیسی ‪ new‬یه ٕ٘‪ ٝ٘ٛ‬ػسیس ایؼبز ٔی ق‪ٛ‬ز‪.‬‬

‫‪94‬‬
‫‪ ).‬هقذار دّی اٍلیِ ‪ٚ‬لشی ثب اؾشفبز‪ ٜ‬اظ وّٕ‪ ٝ‬وّیسی ‪ new‬قی ػسیسی ؾبذش‪ٔ ٝ‬یق‪ٛ‬ز ‪ constructor‬فطاذ‪ٛ‬ا٘ی ٔیق‪ٛ‬ز ‪ ٚ‬ایٗ ث‪ٙٗٔ ٝ‬ی ٔمساضز‪ٞ‬ی‬
‫قی ؾبذش‪ ٝ‬قس‪ ٜ‬اؾز‪.‬‬

‫ٕ٘‪ٞٝ٘ٛ‬بیی اظ ؾبذز قی ػسیس زض وس ظیط آٔس‪ ٜ‬اؾز‪.‬‬

‫{‪public class Puppy‬‬

‫{)‪public Puppy(String name‬‬


‫‪// This constructor has one parameter, name.‬‬
‫;) ‪System.out.println("Passed Name is :" + name‬‬
‫}‬

‫{)‪public static void main(String []args‬‬


‫‪// Following statement would create an object myPuppy‬‬
‫;) "‪Puppy myPuppy = new Puppy( "tommy‬‬
‫}‬
‫}‬

‫‪ٔ String‬ی‬ ‫‪ Puppy‬زاضیٓ و‪ ٝ‬یه ؾبظ٘س‪ ٜ‬زاضز) ؾبظ٘س‪ ٜ‬زاضای یه آضٌ‪ٔٛ‬بٖ ‪ٚ‬ض‪ٚ‬زی اظ ٘‪ٔٛ‬‬ ‫‪ٕٞ‬بُ٘‪ٛ‬ض و‪ ٝ‬زض وس ٔكب‪ٞ‬س‪ٔ ٜ‬یو‪ٙ‬یس والؾی ث‪٘ ٝ‬بْ‬
‫ثبقس ‪ٔ.constructor‬مساض ‪ٚ‬ض‪ٚ‬زی ضا زض نفح‪ ٝ‬چبح ٔیو‪ٙ‬س) زض زاذُ سبثٕ ‪ main‬ثب اؾشفبز‪ ٜ‬اظ وّٕ‪ ٝ‬وّیسی ‪ new‬یه قی ػسیس ؾبذش‪ ٝ‬قس‪ ٜ‬اؾز ‪ ٚ‬ث‪ٝ‬‬
‫ٖ‪ٛٙ‬اٖ ‪ٚ‬ض‪ٚ‬زی ٘بْ ‪ tommy‬ضا ثطای آٖ لطاض زاز‪ ٜ‬اؾز) اٌط ثط٘بٔ‪ ٝ‬ف‪ٛ‬ق ضا اػطا و‪ٙ‬یٓ ذط‪ٚ‬ػی آٖ ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز ‪.‬‬

‫‪Passed Name is :tommy‬‬

‫دستزسی بِ هتذّا ٍ هتغیزّای عضَ‬

‫‪ٕٞ‬بٖ ٌ‪ ٝ٘ٛ‬و‪ٌ ٝ‬فشیٓ ‪ٞ‬ط قی زاضای ٔشس‪ٞ‬ب ‪ٔ ٚ‬شغیط‪ٞ‬بی ًٖ‪ ٛ‬یب ‪ٕٞ‬بٖ فیّس ‪ٞ‬ب ٔی ثبق‪ٙ‬س) و‪ ٝ‬ثبیس ثطای ایٗ و‪ ٝ‬ثش‪ٛ‬اٖ ثب اقیب وبض وطز ث‪ ٝ‬ایٗ اًٖب زؾشطؾی‬
‫زاقز) ثطای ایٗ ث‪ ٝ‬فیّس‪ٞ‬ب زؾشطؾی زاقش‪ ٝ‬ثبقیٓ ثبیس ث‪ ٝ‬قىُ ظیط ُٖٕ و‪ٙ‬یٓ ‪:‬‬

‫‪/* First create an object */‬‬


‫;)(‪ObjectReference = new Constructor‬‬

‫;‪ObjectReference.variableName‬‬

‫;)(‪ObjectReference.MethodName‬‬

‫َجك وس اثشسا ثبیس یه قی ػسیس ثؿبظیٓ ؾذؽ ثب اؾشفبز‪ ٜ‬اظ ٍّٖٕط ٘مُ‪ ) ٝ‬ث‪ ٝ‬اًٖبی آٖ زؾشطؾی زاقز) ثطای ٔظبَ ث‪ٔ ٝ‬ظبَ ظیط زلز و‪ٙ‬یس ‪.‬‬

‫{ ‪public class ItPro‬‬

‫;‪String url‬‬

‫‪95‬‬
public ItPro(String name){
// This constructor has one parameter, name.
System.out.println("Url chosen is :" + name );
}

public void setUrl( StringwebUrl ){


url = webUrl;
}

public String getUrl( ){


System.out.println("website urlis :" + url);
return url;
}

public static void main(String []args){

ItProwebAddress = new ItPro( "tosinso.com" );

webAddress.setUrl("programming.tosinso.com");

webAddress.getUrl();

System.out.println("Variable Value :" + webAddress.url);


}
}

‫ اؾز) حبَ اٌط‬ٜ‫ قس‬ٜ‫ اظ آٖ اؾشفبز‬ٝٔ‫ زض َی ثط٘ب‬ٝ‫زاضز) و‬setUrlٚgetUrl ْ‫ ٘ب‬ٝ‫بیی ث‬ٞ‫ ٔشس‬ٚ ‫زاضز‬url ْ‫ ٘ب‬ٝ‫ یه فیّس ث‬ٝ‫زاضیٓ و‬ItPro ‫ یه والؼ‬ٝٔ‫زض ایٗ ثط٘ب‬
. ‫س قس‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی ث‬ٚ‫یٓ ذط‬ٙ‫وس ثبال ضا اػطا و‬

Url chosen is :tosinso.com


website urlis :programming.tosinso.com
Variable Value :programming.tosinso.com

‫ّا‬Constructor

ُ‫ زض قى‬ٚ ‫ ٘بٔكبٖ ثب ٘بْ والؼ یىی اؾز‬ٚ ‫٘س‬ٚ‫ وبض ٔی ض‬ٝ‫بی اقیب ث‬ٞ‫ فیّس‬ٝ‫ ث‬ٝ‫ِی‬ٚ‫ی ا‬ٞ‫ب ثطای ٔمساضز‬ٞ constructor ‫ قس‬ٝ‫ٓ ٌفش‬ٞ ‫ لجال‬ٝ‫ و‬ٍٝ٘ٛ٘‫ٕب‬ٞ
constructor ُ‫بی آغبظیٗ قئ ضا زض زاذ‬ٞ ‫ ی وبض‬ٕٝٞ ‫ا٘یس‬ٛ‫یچ ٔمساض ثبظٌكشی ٘ساض٘س) أب قٕب ٔی س‬ٞ ‫ب‬ٞ constructor ‫ ٔشس اؾز) أب‬ٝ‫ ث‬ٝ‫قشبضی قجی‬ٛ٘

96
‫ط قئ‬ٞ ‫ا ثطای‬ٚ‫ ػب‬ٝ‫یٓ) ظیطا و‬ٙ‫ سٗطیف ٘ى‬ٝ‫ چ‬ٚ ٓ‫ی‬ٙ‫ سٗطیف و‬constructor ‫ ثطای یه والؼ‬ٝ‫س چ‬ٙ‫ؿش‬ٞ constructor ‫ب زاضای‬ٞ ‫ ی والؼ‬ٕٝٞ )‫یس‬ٞ‫ا٘ؼبْ ز‬
:‫یس‬ٙ‫ و‬ٝ‫ػ‬ٛ‫ وس ظیط س‬ٝ‫ ث‬constructor ‫زی زض ٘ٓط ٔی ٌیطز) ثطای ٔظبَ اظ‬ٚ‫ض‬ٚ ٖٚ‫ ثس‬constructor ‫یه‬

// A simple constructor.
class MyClass {
int x;

// Following is the constructor


MyClass() {
x = 10;
}
}

‫ ثبقس) ثطای‬ٝ‫ سبطیط زاقش‬ٝ‫ِی‬ٚ‫ی ا‬ٞ‫ یب زض ٔمساضز‬ٚ ‫ز‬ٛ‫زی ُٖٕ ذبنی ا٘ؼبْ ق‬ٚ‫ض‬ٚ ‫ی‬ٚ‫اٖ ض‬ٛ‫ ٔی س‬ٝ‫یٓ و‬ٞ‫زی ثس‬ٚ‫ض‬ٚ ‫ب‬ٞ constructor ٝ‫یٗ ث‬ٙ‫ٕچ‬ٞ ٓ‫ا٘ی‬ٛ‫ٔب ٔی س‬
:‫ قىُ ظیط سٗطیف وطز‬ٝ‫ ضا ث‬constructor ٖ‫ا‬ٛ‫ٔظبَ زض سٗطیف والؼ ٔی س‬

// A simple constructor.
class MyClass {
int x;

// Following is the constructor


MyClass(int i ) {
x = i;
}
}

. ٓ‫ی‬ٙ‫ضر ظیط اقیبء ضا سٗطیف ٔی و‬ٛ‫ ن‬ٝ‫ضز ٘ٓط ث‬ٛٔ ‫ اظ والؼ‬ٜ‫ اؾشفبز‬ٚ ٝٔ‫قشٗ ثط٘ب‬ٛ٘ ْ‫ٍب‬ٙٞ ‫ زض‬ٝ‫و‬

public class ConsDemo {

public static void main(String args[]) {


MyClass t1 = new MyClass( 10 );
MyClass t2 = new MyClass( 20 );
System.out.println(t1.x + " " + t2.x);
}
}

: ‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی وس ثبال ث‬ٚ‫ ذط‬ٝ‫و‬

10 20

97
‫کلوِ کلیذی‪this‬‬

‫وّٕ‪ ٝ‬وّیسی ‪ this‬وّٕ‪ ٝ‬ای اؾز و‪ ٝ‬زض زاذُ یه ٔشس ث‪ٕٞ ٝ‬بٖ قئی و‪ٔ ٝ‬شس زض زاذُ آٖ اؾز اقبض‪ٔ ٜ‬ی و‪ٙ‬س) ثب اؾشفبز‪ ٜ‬اظ ایٗ وّٕ‪ ٝ‬وّیسی ٔی س‪ٛ‬ا٘یس ثب‬
‫‪ this‬فمٍ زض زاذُ ‪ٞ constructor‬ب ‪ٚ‬‬ ‫ٔشس‪ٞ‬ب ‪ ٚ‬فیّس‪ٞ‬بی والؼ ػبضی وبض و‪ٙ‬یس ‪ ٚ‬ث‪ ٝ‬آٖ ‪ٞ‬ب زؾشطؾی زاقش‪ ٝ‬ثبقیس) زلز زاقش‪ ٝ‬ثبقیس و‪ ٝ‬وّٕ‪ ٝ‬وّیسی‬
‫ٔشس‪ٞ‬بی اؾشبسیه وبضثطز زاضز) ز‪ٔ ٚ‬ظبَ اظ وّٕ‪ ٝ‬وّیسی ‪ this‬زض ازأ‪ ٝ‬آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز‪:‬‬

‫{‪class Student‬‬

‫;‪int age‬‬
‫{)‪Student(int age‬‬
‫;‪this.age=age‬‬
‫}‬

‫}‬

‫‪ constructor‬اظ‬ ‫زض وس ثبال وّٕ‪ ٝ‬وّیسی ‪ this‬ثطای ٔمساض ز‪ٞ‬ی ث‪ ٝ‬فیّس‪ٞ‬بی ٔ‪ٛ‬ػ‪ٛ‬ز زض قئ ث‪ ٝ‬وبض ٌطفش‪ٔ ٝ‬ی ق‪ٛ‬ز) ‪ٕٞ‬چ‪ٙ‬یٗ ٔی س‪ٛ‬اٖ ثطای فطاذ‪ٛ‬ا٘ی یه‬
‫زاذُ یه ‪ constructor‬زیٍط ٘یع ایٗ وّٕ‪ ٝ‬وّیسی ضا ٔی س‪ٛ‬اٖ اؾشفبز‪ ٜ‬وطز) ٔب٘‪ٙ‬س ٔظبَ ظیط‬

‫{‪class Student‬‬

‫‪int age‬‬
‫{)(‪Student‬‬
‫;)‪this(20‬‬
‫}‬

‫{)‪Student(int age‬‬
‫;‪this.age=age‬‬
‫}‬

‫}‬

‫‪ٕٞ‬چ‪ٙ‬یٗ زض ازأ‪ٔ ٝ‬ظبِی آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز و‪ ٝ‬اظ وّٕ‪ ٝ‬وّیسی ‪ this‬ثطای زؾشیبثی ث‪ ٝ‬اًٖبی والؼ ٔ‪ٛ‬ضز اؾشفبز‪ ٜ‬لطاض ٔی ٌیطز ‪.‬‬

‫{ ‪public class This_Example‬‬

‫‪//Instance variable num‬‬


‫;‪int num=10‬‬

‫{)(‪This_Example‬‬
‫;)" ‪System.out.println("This is an example program on keyword this‬‬
‫}‬

‫{)‪This_Example(int num‬‬
‫‪//Invoking the default constructor‬‬
‫‪98‬‬
this();

//Assigning the local variable num to the instance variable num


this.num=num;
}

public void greet(){


System.out.println("Hi Welcome to Itpro.ir");
}

public void print(){


//Local variable num
int num=20;

//Printing the instance variable


System.out.println("value of local variable num is : "+num);

//Printing the local variable


System.out.println("value of instance variable num is : "+this.num);

//Invoking the greet method of a class


this.greet();
}

public static void main(String[] args){


//Instantiating the class
This_Example obj1=new This_Example();

//Invoking the print method


obj1.print();

//Passing a new value to the num variable through parametrized constructor


This_Example obj2=new This_Example(30);

//Invoking the print method again


obj2.print();
}

: ‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫س زاقز ث‬ٞ‫ا‬ٛ‫ زض ثط ذ‬ٝ‫ ای و‬ٝ‫یٓ ٘شیؼ‬ٙ‫اٌط وس ثبال ضا احطا و‬

This is an example program on keyword this


value of local variable num is : 20
value of instance variable num is : 10
Hi Welcome to Itpro.ir
This is an example program on keyword this

99
value of local variable num is : 20
value of instance variable num is : 30
Hi Welcome to Itpro.ir

(Variable Arguments)‫آرگَهاى ّای هتغیز‬

ٕ‫ سبث‬ٝ‫ا٘یس ث‬ٛ‫ٔ ٔی س‬ٛ٘ ‫زی اظ یه‬ٚ‫ض‬ٚ ‫ط سٗساز‬ٞ ٝ‫ قىّی و‬ٝ‫یس ث‬ٙ‫ٔ سٗطیف و‬ٛ٘ ‫بیی اظ یه‬ٞ‫ب دبضأشط‬ٞ‫زی ٔشس‬ٚ‫ض‬ٚ ‫ا٘یس ثطای‬ٛ‫قٕب ٔی س‬jdk 1.5 ٝ‫اظ ٘ؿر‬
. ‫ز‬ٛ‫ قىُ ظیط سٗطیف ٔی ق‬ٝ‫ ث‬ٝ‫بی ٔشغیط ٘بْ زاضز و‬ٞ ٖ‫ٔب‬ٌٛ‫ب آض‬ٞ ‫زی‬ٚ‫ض‬ٚ ٔٛ٘ ٗ‫یس) ای‬ٞ‫ثس‬

typeName... parameterName

‫ سٗطیف‬ٝ‫ زض زاذُ ٔشس یه حّم‬ٚ ٓ‫ی‬ٙ‫ب ٔٗطفی ٔی و‬ٞ ٖ‫ٔب‬ٌٛ‫ ؾذؽ ٘بْ آض‬ٚ ُٝ‫ ٘م‬ٝ‫ ؾذؽ ؾ‬ٚ ٔٛ٘ ‫زی ضا ثب ٔٗطفی‬ٚ‫ض‬ٚ ‫ٔبٖ قٕب‬ٌٛ‫ٔ آض‬ٛ٘ ٗ‫ اظ ای‬ٜ‫ثطای اؾشفبز‬
: ‫یس‬ٙ‫ ٔظبَ ظیط زلز و‬ٝ‫زی ث‬ٚ‫ض‬ٚ ٔٛ٘ ٗ‫یٓ) ثطای ٔظبِی اظ ای‬ٙ‫ ٔی و‬ٜ‫ اؾشفبز‬ٝ‫ قىُ آضای‬ٝ‫زی ث‬ٚ‫ض‬ٚ ‫ اظ ٔشس‬ٚ ٓ‫ی‬ٙ‫ٔی و‬

public class VarargsDemo {

public static void main(String args[]) {


// Call method with variable args
printMax(34, 3, 3, 2, 56.5);
printMax(new double[]{1, 2, 3});
}

public static void printMax( double... numbers) {


if (numbers.length == 0) {
System.out.println("No argument passed");
return;
}

double result = numbers[0];

for (int i = 1; i<numbers.length; i++)


if (numbers[i] > result)
result = numbers[i];
System.out.println("The max value is " + result);
}
}

‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی وس ثبال ث‬ٚ‫ذط‬

The max value is 56.5


The max value is 3.0

100
‫هتذ‪finalize‬‬

‫ایٗ أىبٖ زض ػب‪ٚ‬ا ‪ٚ‬ػ‪ٛ‬ز زاضز و‪ٍٙٞ ٝ‬بٔی و‪ ٝ‬یه قئ زض حبَ اظ ثیٗ ضفشٗ اؾز یه ُٖٕ ذبنی ا٘ؼبْ ق‪ٛ‬ز) ث‪ ٝ‬ایٗ ٔٗ‪ٙ‬ی و‪ ٝ‬لجُ اظ ایٗ و‪ ٝ‬قئ اظ زاذُ‬
‫حبفٓ‪ ٝ‬دبن ق‪ٛ‬ز ُٖٕ ذبنی ٔب٘‪ٙ‬س ثؿشٗ فبیُ ‪ٞ‬ب ‪ ٚ‬یب اضسجبَبر زیشبثیؽ ثؿش‪ ٝ‬ق‪ٛ‬ز ‪ ٚ‬ؾذؽ قئ اظ زاذُ حبفٓ‪ ٝ‬ز‪ٚ‬ض ضیرش‪ ٝ‬ق‪ٛ‬ز) ػب‪ٚ‬ا ایٗ ُٖٕ ضا ثب‬
‫اؾشفبز‪ ٜ‬اظ ٔشس ‪ finalize‬ا٘ؼبْ ٔی ز‪ٞ‬س) ث‪ ٝ‬ن‪ٛ‬ضسی و‪ ٕٝٞ ٝ‬ی اٖٕبِی و‪ ٝ‬ثبیس ا٘ؼبْ ق‪ٛ‬ز ضا زاذُ ٔشس ‪ٔ finalize‬ی ٘‪ٛ‬یؿیٓ) قىُ وّی ٔشس ‪ finalize‬ثبیس‬
‫ث‪ ٝ‬قىُ ظیط ثبقس‪.‬‬

‫) (‪protected void finalize‬‬


‫{‬
‫‪// finalization code here‬‬
‫}‬

‫زلز زاقش‪ ٝ‬ثبقیس و‪ modifier ٝ‬و‪ ٝ‬زض ایٗ ٔشس ث‪ ٝ‬وبض ٌطفش‪ ٝ‬قس‪ ٜ‬اؾز ‪ protected‬اؾز) زِیُ ایٗ وبض ایٗ اؾز و‪ ٝ‬وؿی ٘ش‪ٛ‬ا٘س اظ ذبضع اظ قئ ث‪ ٝ‬ایٗ‬
‫ٔشس زؾشطؾی زاقش‪ ٝ‬ثبقس ‪٘ ٚ‬ش‪ٛ‬ا٘س آٖ ضا نسا ثع٘س‬

‫اًَاع هتغیزّا‬

‫زض لؿٕز ‪ٞ‬بی لجُ ٌفشیٓ و‪ٞ ٝ‬ط ٔشغیط یه لؿٕز اظ حبفٓ‪ ٝ‬اؾز و‪٘ ٝ‬بٔی ثطای آٖ ٔكرم وطز‪ ٜ‬ایٓ) ؾذؽ ٌفشیٓ و‪ ٝ‬ثطای ٔشغیط‪ٞ‬ب ثبیس ٘‪ ٔٛ‬زاز‪ ٜ‬آٖ ضا‬
‫ٔكرم و‪ٙ‬یٓ) ایٗ ٘‪ ٔٛ‬زاز‪٘ ٜ‬كبٖ ٔی ز‪ٞ‬س و‪ٔ ٝ‬شغیط چ‪ٔ ٝ‬مساض حبفٓ‪ ٝ‬اقغبَ وطز‪ ٜ‬اؾز ‪ ٚ‬چ‪ ٝ‬چیعی ضا ٔی س‪ٛ‬ا٘س زض ذ‪ٛ‬ز ٍ٘‪ٟ‬ساضی ٕ٘بیس ‪ ٚ‬چ‪ّٕٖ ٝ‬یبسی ثط‬
‫ض‪ٚ‬ی آٖ لبثُ ا٘ؼبْ اؾز) قٕب ثبیس ‪ٞ‬ط ٔشغیط ضا لجُ اظ ایٗ و‪ ٝ‬اظ آٖ اؾشفبز‪ ٜ‬و‪ٙ‬یس ٔٗطفی ٕ٘بییس) قىُ انّی ٔٗطفی ٔشغیط ث‪ ٝ‬قىُ ظیط اؾز‬

‫; ]‪data type variable [ = value][, variable [= value] ...‬‬

‫وّٕ‪ Data type ٝ‬زض ذٍ ثبال ٘كبٖ ز‪ٙٞ‬س‪ ٜ‬یىی اظ ا٘‪ٛ‬أ زاز‪ ٜ‬ای اؾز و‪ ٝ‬زض ُّٔت لجّی ث‪ ٝ‬آٖ دطزاذش‪ ٝ‬قس) ثطای آٖ و‪ ٝ‬چ‪ٙ‬س ٔشغیط دكز ؾط‪ ٓٞ‬اظ یه ٘‪ٔٛ‬‬
‫سٗطیف و‪ٙ‬یٓ ثبیس آ٘‪ٟ‬ب ضا ثب اؾشفبز‪ ٜ‬اظ وبٔب یب ‪ ،‬ػسا ٕ٘بییٓ) زض وس ظیط ٕ٘‪ٞ ٝ٘ٛ‬بی نحیحی اظ سٗطیف ٔشغیط ‪ٞ‬ب ضا ٔكب‪ٞ‬س‪ٔ ٜ‬ی و‪ٙ‬یس ‪.‬‬

‫;‪int a, b, c‬‬ ‫‪ٗٔ.‬طفی ؾ‪ٔ ٝ‬شغیط ‪//‬‬


‫;‪int a = 10, b = 10‬‬ ‫ٔٗطفی ث‪ٕٞ ٝ‬طا‪ٔ ٜ‬مساضز‪ٞ‬ی ‪//‬‬
‫;‪byte B = 22‬‬ ‫ٔٗطفی یه ٔشغیط اظ ٘‪ ٔٛ‬ثبیز ‪//‬‬
‫ٔٗطفی ٔشغیط ثطای ٖسز دی ‪double pi = 3.14159; //‬‬
‫;'‪char a = 'a‬‬ ‫ٔٗطفی ٔشغیط وبضاوشطی ‪//‬‬

‫حبَ ث‪ ٝ‬قطح وبُٔ ا٘‪ٛ‬أ ٔشغیط‪ٞ‬ب ٔی دطزاظیٓ‪.‬‬

‫ٔشغیط‪ٞ‬بی ٔحّی‬ ‫‪‬‬

‫‪101‬‬
‫فیّس‪ٞ‬ب‬ ‫‪‬‬

‫ٔشغیط‪ٞ‬بی والؼ ‪$‬اؾشبسیه‪#‬‬ ‫‪‬‬

‫هتغیزّای هحلی‬

‫ٔشغیط‪ٞ‬بی ٔحّی زاضای ‪ٚ‬یػٌی ‪ٞ‬بی ظیط ٔی ثبق‪ٙ‬س‪.‬‬

‫ٔشغیط‪ٞ‬بی ٔحّی زض زاذُ ٔشس‪ٞ‬ب ‪ ٚ‬یب‪ٞ constructor‬ب ‪ ٚ‬یب ثّ‪ٛ‬ن ‪ٞ‬ب سٗطیف ٔی ق‪٘ٛ‬س) ثّ‪ٛ‬ن فًبی ثیٗ ز‪ ٚ‬ثطاوز{} ضا ٔی ٌ‪ٛ‬ی‪ٙ‬س ‪.‬‬ ‫‪‬‬

‫ٔشغیط‪ٞ‬بی ٔحّی ظٔب٘ی ؾبذش‪ٔ ٝ‬ی ق‪٘ٛ‬س و‪ٚ ٝ‬اضز ٔشس یب ‪ ٚ constructor‬یب ثّ‪ٛ‬ن وس ٔی ق‪ٛ‬یٓ ‪ٚ ٚ‬لشی ذبضع ثكیٓ اظ حبفٓ‪ ٝ‬دبن ذ‪ٛ‬ا‪ٙٞ‬س قس ‪.‬‬ ‫‪‬‬

‫ثطای ٔشغیط‪ٞ‬بی ٔحّی اظ ‪ Modifier‬زؾشطؾی ٕ٘ی س‪ٛ‬اٖ اؾشفبز‪ ٜ‬وطز‪.‬‬ ‫‪‬‬

‫ٔشغیط‪ٞ‬بی ٔحّی فمٍ زض ٔحّی و‪ ٝ‬سٗطیف قس‪ ٜ‬ا٘س لبثُ زؾشطؼ ‪ٞ‬ؿش‪ٙ‬س) ث‪ٔ ََٛ ٝ‬ظبَ اٌط زض زاذُ ٔشسی سٗطیف قس‪ ٜ‬ثبق‪ٙ‬س فمٍ زض زاذُ ‪ٕٞ‬بٖ‬ ‫‪‬‬

‫ٔشس لبثُ زؾشطؾی ٔی ثبق‪ٙ‬س‪.‬‬


‫ٔشغیط‪ٞ‬بی ٔحّی زض ٔحُ دكش‪ ٝ‬ؾیؿشٓ سٗطیف ٔی ق‪٘ٛ‬س‪.‬‬ ‫‪‬‬

‫‪ٚ‬لشی و‪ٔ ٝ‬شغیط ٔحّی سٗطیف ٔی ق‪٘ٛ‬س ‪ٞ‬یچ ٔمساض دیكفطيی ثطای آ٘‪ٟ‬ب زض ٘ٓط ٌطفش‪ٕ٘ ٝ‬ی ق‪ٛ‬ز) ث‪ٙ‬بثطایٗ لجُ اظ ایٗ و‪ ٝ‬اظ ٔشغیط سٗطیف قس‪ٜ‬‬ ‫‪‬‬

‫اؾشفبز‪ ٜ‬و‪ٙ‬یس ثبیس آٖ ضا ٔمساض ز‪ٞ‬ی ٕ٘بییس) ثطای ٔظبَ ث‪ ٝ‬وس ظیط زلز و‪ٙ‬یس و‪ age ٝ‬یه ٔشغیط ٔحّی اؾز و‪ ٝ‬زاذُ ٔشس )(‪pupAge‬سٗطیف قس‪ٜ‬‬
‫اؾز ‪ ٚ‬ح‪ٛ‬ظ‪ ٜ‬آٖ فمٍ ث‪ٕٞ ٝ‬یٗ ٔشس ٔحس‪ٚ‬ز قس‪ ٜ‬اؾز‪.‬‬

‫{‪public class Test‬‬


‫{)(‪public void pupAge‬‬
‫;‪int age = 0‬‬
‫;‪age = age + 7‬‬
‫;)‪System.out.println("Puppy age is : " + age‬‬
‫}‬

‫{)][‪public static void main(String args‬‬


‫;)(‪Test test = new Test‬‬
‫;)(‪test.pupAge‬‬
‫}‬
‫}‬

‫٘شیؼ‪ ٝ‬وس ثبال ث‪ ٝ‬قطح ظیط اؾز‪.‬‬

‫‪Puppy age is: 7‬‬

‫حبَ زض ٔظبَ ظیط ٔی ثی‪ٙ‬یس و‪ ٝ‬اظ ٔشغیط ‪ age‬ثس‪ ٖٚ‬ایٗ و‪ٔ ٝ‬مساضز‪ٞ‬ی ق‪ٛ‬ز اؾشفبز‪ ٜ‬قس‪ ٜ‬اؾز ث‪ٙ‬بثطایٗ وسظیط زاضای ذُب اؾز ‪.‬‬

‫{‪public class Test‬‬


‫{)(‪public void pupAge‬‬
‫;‪int age‬‬
‫;‪age = age + 7‬‬
‫;)‪System.out.println("Puppy age is : " + age‬‬
‫}‬
‫‪102‬‬
‫{)][‪public static void main(String args‬‬
‫;)(‪Test test = new Test‬‬
‫;)(‪test.pupAge‬‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪.‬‬

‫‪Test.java:4:variable number might not have been initialized‬‬


‫;‪age = age + 7‬‬
‫^‬
‫‪1 error‬‬

‫فیلذّا‬

‫فیّس‪ٞ‬ب زاضا ذ‪ٛ‬ال ظیط ٔی ثبق‪ٙ‬س‪.‬‬

‫فیّس‪ٞ‬ب زاذُ والؼ ‪ٞ‬ب سٗطیف ٔی ق‪٘ٛ‬س ‪ِٚ‬ی زاذُ ‪ٞ‬یچ ٔشس‪constructor ،‬یب ثّ‪ٛ‬وی ٘یؿش‪ٙ‬س‬ ‫‪‬‬

‫‪ٚ‬لشی و‪ ٝ‬یه قی اظ یه والؼ ٔی ؾبظیٓ) ث‪ ٝ‬ا٘ساظ‪ ٜ‬سٗساز فیّس‪ٞ‬بی آٖ قی ث‪ ٝ‬آٖ حبفٓ‪ ٝ‬اذشهبل زاز‪ٔ ٜ‬ی ق‪ٛ‬ز ‪.‬‬ ‫‪‬‬

‫فیّس ‪ٞ‬ب ‪ٚ‬لشی و‪ ٝ‬ثب اؾشفبز‪ ٜ‬اظ وّٕ‪ ٝ‬وّیسی ‪ new‬یه قی ضا ٔی ؾبظیٓ ؾبذش‪ٔ ٝ‬ی ق‪٘ٛ‬س ‪ ٚ‬سب ‪ٚ‬لشی و‪ ٝ‬ذ‪ٛ‬ز قی اظ ثیٗ ٘طفش‪ ٝ‬ثبلی ٔی ٔب٘‪ٙ‬س ‪.‬‬ ‫‪‬‬

‫فیّس‪ٞ‬ب ٔمبزیطی ضا زض ذ‪ٛ‬ز ٍ٘‪ٟ‬ساضی ٔی و‪ٙٙ‬س و‪ ٝ‬س‪ٛ‬ؾٍ چ‪ٙ‬س ٔشس یب ‪ٛٔ constructor‬ضز اؾشفبز‪ ٜ‬لطاض ٔی ٌیطز ‪ ٚ‬فیّس ‪ٞ‬ب ثبیس زض ‪ ٕٝٞ‬ػبی والؼ‬ ‫‪‬‬

‫لبثُ زؾشطؾی ثبق‪ٙ‬س‪.‬‬


‫ثطای فیّس‪ٞ‬ب ٔی س‪ٛ‬اٖ اظ ‪ٞ Modifier‬بی ٘یع ٔی س‪ٛ‬اٖ اؾشفبز‪ ٜ‬وطز) و‪ ٝ‬اٌط یه فیّس ضا ث‪ ٝ‬ن‪ٛ‬ضر ‪ٗٔ public‬طفی و‪ٙ‬یٓ ذبضع اظ والؼ ٘یع لبثُ‬ ‫‪‬‬

‫زؾشطؾی اؾز‪.‬‬
‫ٕٔٗ‪ٛ‬ال س‪ٛ‬نی‪ٔ ٝ‬ی ق‪ٛ‬ز و‪ ٝ‬فیّس‪ٞ‬ب ضا ث‪ ٝ‬قىُ ‪ٗٔ private‬طفی و‪ٙ‬یٓ) أب اٌط ثر‪ٛ‬ا‪ٞ‬یٓ ثطای والؼ ‪ٞ‬بی فطظ٘س یب ‪ٞ subclass‬ب لبثُ زؾشطؼ ثبق‪ٙ‬س‬ ‫‪‬‬

‫آٖ ضا ث‪ ٝ‬ن‪ٛ‬ضر ‪ٗٔ protected‬طفی ٔی و‪ٙ‬یٓ‪.‬‬


‫فیّس‪ٞ‬ب زاضای ٔمساض دیكفطو ‪ٞ‬ؿش‪ٙ‬س) ایٗ ث‪ ٝ‬ایٗ ٔٗ‪ٙ‬ی اؾز و‪ ٝ‬اٌط یه فیّس ٖسزی ٔٗطفی و‪ٙ‬یٓ ٔمساض آٖ ث‪َٛ ٝ‬ض دیكفطو ‪ 0‬ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪.‬‬ ‫‪‬‬

‫ٔمساض ا‪ِٚ‬ی‪ ٝ‬فیّس‪ٞ‬ب ٔی س‪ٛ‬ا٘س ‪ ٓٞ‬زض ظٔبٖ سٗطیف فیّس ‪ ٓٞ ٚ‬زض زاذُ ‪ٔ constructor‬مساضز‪ٞ‬ی ثك‪ٛ‬ز‪.‬‬ ‫‪‬‬

‫ثطای زؾشطؾی ث‪ ٝ‬فیّس‪ٞ‬بی یه قی ثبیس ٘بْ قی ضا ٘‪ٛ‬قش‪ ٚ ٝ‬دؽ اظ آٖ یه ٘مُ‪ٌ ٝ‬صاقش‪٘ ٚ ٝ‬بْ فیّس ضا ثبیس‬ ‫‪‬‬

‫‪ public‬سٗطیف قس‪ ٜ‬ثبقس) وس ظیط ٔظبِی‬ ‫٘‪ٛ‬قز‪.ObjectReference.VariableName‬اِجش‪ ٝ‬ایٗ ث‪ ٝ‬قطَی لبثُ ا٘ؼبْ اؾز و‪ ٝ‬فیّس ٔ‪ٛ‬ضز ٘ٓط‬
‫ثطای فیّس‪ٞ‬ب ٔی ثبقس‪.‬‬

‫;*‪import java.io.‬‬

‫{‪public class Employee‬‬


‫‪.‬ایٗ فیّس ثطای ‪ ٕٝٞ‬اقیب ‪ ٚ‬ثیط‪ ٖٚ‬اظ والؼ لبثُ زؾشطؼ اؾز ‪//‬‬
‫;‪public String name‬‬

‫‪.‬ایٗ فیّس فمٍ زض زاذُ والؼ لبثُ زؾشطؼ اؾز ‪//‬‬

‫‪103‬‬
‫;‪private double salary‬‬

‫‪ٔ.‬مساضز‪ٞ‬ی فیّس زض زاذُ ؾبظ٘س‪// ٜ‬‬


‫{)‪public Employee (String empName‬‬
‫;‪name = empName‬‬
‫}‬

‫‪..‬ایٗ فیّس ثب اؾشفبز‪ ٜ‬اظ یه سبثٕ ٔمساض ز‪ٞ‬ی ٔی ق‪ٛ‬ز ‪//‬‬


‫{)‪public void setSalary(double empSal‬‬
‫;‪salary = empSal‬‬
‫}‬

‫ایٗ ٔشس ٔمبزیط فیّس‪ٞ‬ب ضا زض ذط‪ٚ‬ػی ٘كبٖ ٔی ز‪ٞ‬س ‪//‬‬


‫{)(‪public void printEmp‬‬
‫;) ‪System.out.println("name : " + name‬‬
‫;)‪System.out.println("salary :" + salary‬‬
‫}‬

‫{)][‪public static void main(String args‬‬


‫;)"‪Employee empOne = new Employee("Mehdi‬‬
‫;)‪empOne.setSalary(1000‬‬
‫;)(‪empOne.printEmp‬‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ث‪ ٝ‬قىُ ظیط اؾز‪.‬‬

‫‪name : Mehdi‬‬
‫‪salary :1000.0‬‬

‫هتغیزّای کالس (استاتیک)‬

‫ٔشغیط‪ٞ‬بی اؾشبسیه زاضای ذ‪ٛ‬ال ظیط ٔی ثبق‪ٙ‬س ‪.‬‬

‫ٔشغیط‪ٞ‬بی والؼ ث‪ ٝ‬ایٗ زِیُ ٔشغیط اؾشبسیه ٘بٔیس‪ٔ ٜ‬ی ق‪٘ٛ‬س و‪ٍٙٞ ٝ‬بْ سٗطیف آ٘‪ٟ‬ب اظ وّٕ‪ ٝ‬وّیسی ‪ static‬اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز) ‪ِٚ‬ی ثبیس ایٗ ٔشغیط‪ٞ‬ب‬ ‫‪‬‬

‫ضا ثیط‪ ٖٚ‬اظ ٔشس‪ٞ‬ب ‪ ٚ‬ؾبیط ثّ‪ٛ‬ن ‪ٞ‬ب ٔٗطفی وطز ‪.‬‬
‫ذبنیز ٔ‪ٕٟ‬ی و‪ ٝ‬ایٗ ٔشغیط‪ٞ‬ب زاض٘س ایٗ اؾز و‪ ٝ‬اٌط چ‪ٙ‬س قی اظ یه والؼ زاقش‪ ٝ‬ثبقیٓ ایٗ ٔشغیط ثیٗ ‪ ٕٝٞ‬یىؿبٖ ‪ٔ ٚ‬كشطن اؾز) ث‪ ٝ‬ایٗ‬ ‫‪‬‬

‫ٔٗ‪ٙ‬ی و‪ ٝ‬اٌط زضیىی اظ اقیب ٔمساض ٔشغیط ضا سغییط ثس‪ٞ‬یس زض ثمی‪ ٝ‬اقیب ٘یع سغییط ذ‪ٛ‬ا‪ٞ‬س وطز‪.‬‬
‫ایٗ ٔشغیط‪ٞ‬ب ثیكشط ثطای ٍ٘‪ٟ‬ساضی یه طبثز ٔ‪ٛ‬ضز اؾشفبز‪ ٜ‬لطاض ٔی ٌیط٘س ‪ ٚ‬ظیبز سغییط ٕ٘ی و‪ٙٙ‬س ‪.‬‬ ‫‪‬‬

‫ٔشغیط‪ٞ‬بی اؾشبسیه ظٔب٘ی و‪ ٝ‬ثط٘بٔ‪ ٝ‬قط‪ٔ ٔٚ‬ی ق‪٘ٛ‬س ؾبذش‪ٔ ٝ‬ی ق‪٘ٛ‬س ‪ ٚ‬ظٔب٘ی و‪ ٝ‬ثط٘بٔ‪ ٝ‬سٕبْ ٔی ق‪ٛ‬ز اظ ثیٗ ٔی ض‪٘ٚ‬س ‪.‬‬ ‫‪‬‬

‫ٔٗطفی ٔشغیط اؾشبسیه ٕٔٗ‪ٛ‬ال ث‪ ٝ‬ن‪ٛ‬ضر ‪ public‬سٗطیف ٔی ق‪٘ٛ‬س‪.‬‬ ‫‪‬‬

‫ٔمساض دیكفطو ایٗ ٔشغیط‪ٞ‬ب ٔب٘‪ٙ‬س فیّس ‪ٞ‬ب ٔی ثبقس ‪ٔ ٚ‬ی س‪ٛ‬اٖ ثس‪ٔ ٖٚ‬مساضز‪ٞ‬ی ا‪ِٚ‬ی‪ ٝ‬اظ آ٘‪ٟ‬ب ‪ٔ ٚ‬مساض دیكفطو آ٘‪ٟ‬ب اؾشفبز‪ ٜ‬وطز‪.‬‬ ‫‪‬‬

‫‪104‬‬
‫ثطای زؾشطؾی ث‪ ٝ‬یه ٔشغیط اؾشبسیه ٔی س‪ٛ‬اٖ ٘بْ والؼ ضا سبیخ وطز‪ ٚ ٜ‬ؾذؽ ثب ظزٖ ٘مُ‪ ٝ‬ث‪ٔ ٝ‬شغیط ٔ‪ٛ‬ضز ٘ٓط زؾشطؾی دیسا‬ ‫‪‬‬

‫وطز‪.ClassName.VariableName‬‬
‫‪ٚ‬لشی و‪ ٝ‬یه ٔشغیط والؼ ضا ث‪ ٝ‬ن‪ٛ‬ضر ‪ final ٚ public‬سٗطیف ٔی و‪ٙ‬یٓ ث‪ٟ‬شط اؾز و‪ ٕٝٞ ٝ‬حط‪ٚ‬ف ٘بْ آٖ ضا ثعضي ث‪ٛٙ‬یؿیٓ) ‪ ٚ‬زض غیط ایٗ‬ ‫‪‬‬

‫ن‪ٛ‬ضر ٔب٘‪ٙ‬س ٔشغیط ٖبزی ٔٗطفی ٔی و‪ٙ‬یٓ) ثطای ٔظبَ ث‪ ٝ‬وس ظیط زلز و‪ٙ‬یس‬

‫;*‪import java.io.‬‬

‫{‪public class Employee‬‬


‫ٔشغیط اؾشبسیه ث‪ ٝ‬ن‪ٛ‬ضر ذه‪ٛ‬نی ٔٗطفی قس‪// ٜ‬‬
‫;‪private static double salary‬‬

‫ث‪ٖٛٙ ٝ‬اٖ یه طبثز سٗطیف قس‪ ٜ‬اؾز ‪//‬‬


‫;" ‪public static final String DEPARTMENT = "Development‬‬

‫{)][‪public static void main(String args‬‬


‫;‪salary = 1000‬‬
‫;)‪System.out.println(DEPARTMENT + "average salary:" + salary‬‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪Development average salary:1000‬‬

‫زلز زاقش‪ ٝ‬ثبقیس و‪ ٝ‬ثطای ایٗ و‪ ٝ‬زض وس ثبال ثر‪ٛ‬ا‪ٞ‬یٓ ثب اؾشفبز‪ ٜ‬اظ والؼ ث‪ ٝ‬طبثز ٔ‪ٛ‬ضز ٘ٓط زؾشطؾی زاقش‪ ٝ‬ثبقیٓ ثبیس وس ظیط ضا ث‪ٛٙ‬یؿیٓ‬

‫‪Employee.DEPARTMENT‬‬

‫قَاًیي تعزیف فایل ّای سَرس در جاٍا‬

‫زض ایٗ ثرف ث‪ٗٔ ٝ‬طفی ل‪ٛ‬ا٘یٗ فبیُ ‪ٞ‬بی ؾ‪ٛ‬ضؼ ٔی دطزاظیٓ‪:‬‬

‫زض ‪ٞ‬ط فبیُ ؾ‪ٛ‬ضؼ ثبیس یه والؼ اظ ٘‪ٚ public ٔٛ‬ػ‪ٛ‬ز زاقش‪ ٝ‬ثبقس‪.‬‬ ‫‪‬‬

‫یه فبیُ ؾ‪ٛ‬ضؼ ٔی س‪ٛ‬ا٘س چ‪ٙ‬س والؼ غیط ‪ public‬زاقش‪ ٝ‬ثبقس‪.‬‬ ‫‪‬‬

‫‪ .java‬اؾز) ثطای ٔظبَ زض وس ثبال ثبیس ٘بْ فبیُ ‪ItPro.java‬‬ ‫٘بْ والؼ ‪ public‬ثبیس ثب ٘بْ فبیُ ؾ‪ٛ‬ضؼ یىی ثبقس) دؿ‪٘ٛ‬س فبیُ ‪ٞ‬بی ؾ‪ٛ‬ضؼ‬ ‫‪‬‬

‫ثبقس‪.‬‬
‫اٌط والؼ زاذُ یه دىیغ ؾبذش‪ ٝ‬قس‪ ٜ‬ثبقس ثبیس ٘بْ دىیغ زض ذٍ ا‪ َٚ‬فبیُ ؾ‪ٛ‬ضؼ ثبقس ‪.‬‬ ‫‪‬‬

‫ٖجبضار ‪ import‬ثبیس ثیٗ ذٍ دىیغ ‪ ٚ‬والؼ ثبقس) ثطای یه فبیُ ؾ‪ٛ‬ضؼ ٕ٘ی ق‪ٛ‬ز و‪ ٝ‬ثطای ‪ٞ‬ط والؼ ث‪َٛ ٝ‬ض ػساٌب٘‪ٖ ٝ‬جبضر ‪ٛ٘ import‬قز)‬ ‫‪‬‬

‫ٖجبضار ‪ import‬ثطای ايبف‪ ٝ‬وطزٖ وشبثرب٘‪ٞ ٝ‬بی ٔرشّف ث‪ ٝ‬زاذُ ثط٘بٔ‪ ٝ‬ث‪ ٝ‬وبض ٔی ض‪٘ٚ‬س ‪.‬‬

‫‪105‬‬
‫پکیج ّای جاٍا‬

‫اٌط ثر‪ٛ‬ا‪ٞ‬یٓ ای‪ٙ‬شطفیؽ ‪ٞ‬ب ‪ ٚ‬والؼ ‪ٞ‬بی ػب‪ٚ‬ا ضا زض ظٔبٖ ثط٘بٔ‪ٛ٘ ٝ‬یؿی زؾش‪ ٝ‬ث‪ٙ‬سی و‪ٙ‬یٓ) زض دط‪ٚ‬غ‪ٞ ٜ‬بی ثعضي ٕٔىٗ اؾز و‪ ٝ‬نس‪ٞ‬ب والؼ زض دط‪ٚ‬غ‪ٔ ٜ‬ب‬
‫‪ٚ‬ػ‪ٛ‬ز زاقش‪ ٝ‬ثبقس و‪ ٝ‬ثس‪ ٖٚ‬زؾش‪ ٝ‬ث‪ٙ‬سی ثؿیبض ٘بٔ‪ ٓٓٙ‬ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز) ث‪ٙ‬بثطایٗ ثبیس ایٗ فبیُ ‪ٞ‬ب ضا ثب اؾشفبز‪ ٜ‬اظ دىیغ ‪ٞ‬ب زؾش‪ ٝ‬ث‪ٙ‬سی وطز ‪.‬‬

‫عبارات‪import‬‬

‫زض ػب‪ٚ‬ا اٌط ثر‪ٛ‬ا‪ٞ‬یٓ اظ وشبثرب٘‪ ٝ‬ای اؾشفبز‪ ٜ‬و‪ٙ‬یٓ ثبیس ٘بْ وبُٔ آٖ وشبثرب٘‪ ٝ‬ضا ث‪ٕٞ ٝ‬طا‪ ٕٝٞ ٜ‬ی دىیغ ‪ٞ‬ب ‪ ٚ‬والؼ آٖ ث‪ٛٙ‬یؿیٓ و‪ٕٔ ٝ‬ىٗ اؾز َ‪ َٛ‬ذٍ‬
‫‪ import‬ث‪ٔ ٝ‬ب وٕه ٔی و‪ٙ‬س و‪ ٝ‬وس ذ‪ٛ‬ز ضا و‪ٛ‬سب‪ٞ‬شط و‪ٙ‬یٓ) ‪ٕٞ‬چ‪ٙ‬یٗ ث‪ ٝ‬وبٔذبیّط‬ ‫وس‪ٞ‬بی ٔب ضا ثؿیبض َ‪ٛ‬ال٘ی و‪ٙ‬س ‪ ٚ‬وس٘‪ٛ‬یؿی ذؿش‪ ٝ‬و‪ٙٙ‬س‪ ٜ‬ق‪ٛ‬ز) ٖجبضار‬
‫ٔی ٌ‪ٛ‬یس و‪ ٝ‬زض وساْ وشبثرب٘‪ ٝ‬ثبیس ث‪ ٝ‬ز٘جبَ والؼ ٔطث‪ َٝٛ‬ثٍطزز) ثطای ٔظبَ ذٍ وس ظیط ث‪ ٝ‬وبٔذبیّط ٔی ٌ‪ٛ‬یس و‪ ٕٝٞ ٝ‬والؼ ‪ٞ‬بی لؿٕز ‪ java/io‬ضا ِ‪ٛ‬ز‬
‫و‪ٙ‬س) و‪ ٝ‬ایٗ د‪ٛ‬ق‪ٞ ٝ‬ب زض ٔحُ ٘هت ػب‪ٚ‬ا ‪ٚ‬ػ‪ٛ‬ز زاضز ‪.‬‬

‫;*‪import java.io.‬‬

‫کالس ّای تَ در تَ‬

‫زض ػب‪ٚ‬ا ‪ٞ‬ط والؼ ٔی س‪ٛ‬ا٘س اًٖبی ذ‪ٛ‬ز ضا زاقش‪ ٝ‬ثبقس) ایٗ اًٖب ٔی س‪ٛ‬ا٘‪ٙ‬س ٔشغیط ‪ٞ‬ب ‪ ٚ‬فیّس ‪ٞ‬ب ‪ٔ ٚ‬شس‪ٞ‬ب ‪ ٚ‬والؼ ‪ٞ‬بی زاذّی ثبق‪ٙ‬س) قٕب ٔی س‪ٛ‬ا٘یس زض‬
‫‪ٌٛ nested class‬ی‪ٙ‬س ‪ ٚ‬والؾی و‪ ٝ‬زض ثطٌیط٘س‪ ٜ‬والؼ‬ ‫یه والؼ یه والؼ زیٍط سٗطیف و‪ٙ‬یس) والؾی و‪ ٝ‬زض زاذُ والؼ زیٍط سٗطیف ٔی ق‪ٛ‬ز ضا‬
‫‪٘ ٚ Nested‬بْ والؼ‬ ‫زاذّی اؾز ضا ‪ٔ outer class‬ی ٌ‪ٛ‬ی‪ٙ‬س) ٘ح‪٘ ٜٛ‬ك‪ٛ‬سٗ والؼ ‪ٞ‬بی زاذّی ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز) زض ایٗ سٗطیف والؼ زاذّی‬
‫ذبضػی ضا ‪٘ Outer‬بٍٔصاضی وطز‪ ٜ‬ایٓ‪.‬‬

‫{‪class Outer‬‬
‫{‪class Nested‬‬
‫}‬
‫}‬

‫والؾ‪ٟ‬بی زاذّی ث‪ ٝ‬ز‪ ٔٛ٘ ٚ‬اؾشبسیه ‪ ٚ‬غیط اؾشبسیه سمؿیٓ ٔی ق‪٘ٛ‬س ‪.‬‬

‫کالس ّای داخلی غیز استاتیک‬

‫‪ private‬زض ػب‪ٚ‬ا ٔٗطفی و‪ٙ‬یٓ)‬ ‫اؾشفبز‪ ٜ‬اظ والؼ ‪ٞ‬بی زاذّی یه ٔىب٘یعْ أ‪ٙ‬یشی زض ػب‪ٚ‬ا اؾز) ٔی زا٘یٓ و‪ ٝ‬یه والؼ ذبضػی ضا ٕ٘ی س‪ٛ‬ا٘ی ث‪ ٝ‬ن‪ٛ‬ضر‬
‫‪ِٚ‬ی ‪ٚ‬لشی و‪ ٝ‬یه والؼ ضا زض زض‪ ٖٚ‬والؼ زیٍط زض ػب‪ٚ‬ا ٔٗطفی ٔی و‪ٙ‬یٓ آٖ والؼ ث‪ٖٛٙ ٝ‬اٖ یىی اظ اًٖبی والؼ زض ثطٌیط٘س‪ ٜ‬اؾز ‪ٔ ٚ‬ی س‪ٛ‬اٖ آٖ ضا ث‪ٝ‬‬
‫ن‪ٛ‬ضر ‪٘ private‬یع اؾشفبز‪ ٜ‬وطز ‪ ٚ‬اظ اؾشفبز‪ٞ ٜ‬بی ذبضع اظ والؼ زضثطٌیط٘س‪ ٜ‬ػّ‪ٌٛ‬یطی وطز) والؼ ‪ٞ‬بی زاذّی ثب س‪ٛ‬ػ‪ ٝ‬ث‪ ٝ‬ایٗ و‪ ٝ‬وؼب ‪ ٚ‬چٍ‪ ٝ٘ٛ‬سٗطیف‬
‫قس‪ ٜ‬ا٘س ث‪ ٝ‬ؾ‪ ٝ‬زؾش‪ ٝ‬سمؿیٓ ذ‪ٛ‬ا٘س قس) والؼ ‪ٞ‬بی زاذّی ‪ ٚ‬والؼ ‪ٞ‬بی زاذُ ٔشسی ‪ ٚ‬والؼ ‪ٞ‬بی زاذّی ثی‪ٙ‬بْ ‪.‬‬

‫‪106‬‬
Inner Class‫کالس ّای داخلی‬

‫ ٔی‬Outer ‫بی‬ٞ ‫یس) ثطذالف سٗطیف والؼ‬ٙ‫ اؾز) قٕب فمٍ یه والؼ ضا زض زاذُ والؼ انّی سٗطیف ٔی و‬ٜ‫ؾبذشٗ یه والؼ زاذّی ثؿیبض ؾبز‬
‫یس ایٗ والؼ ذبضع اظ والؼ‬ٙ‫ سٗطیف و‬private ‫ضر‬ٛ‫ ن‬ٝ‫یس) اٌط یه والؼ زاذّی ضا ث‬ٙ‫ٓ سٗطیف و‬ٞ private ‫ضر‬ٛ‫ ن‬ٝ‫بی زاذّی ضا ث‬ٞ ‫ا٘یس والؼ‬ٛ‫س‬
ٗ‫س) زض ای‬ٞ‫ آٖ ضا ٘كبٖ ٔی ز‬ٝ‫ زؾشطؾی ث‬ٚ ‫ یه والؼ زاذّی ضا ٔی ؾبظز‬ٝ‫ اؾز و‬ٜ‫ قس‬ٜ‫ضز‬ٚ‫ ای آ‬ٝٔ‫ ثط٘ب‬ٝٔ‫ز) زض ازا‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ز لبثُ زؾشطؼ ٘ر‬ٛ‫ذ‬outer
.ٓ‫ آٖ زؾشطؾی زاضی‬ٝ‫ زض یه ٔشس ث‬ٚ ٓ‫ ٔی ؾبظی‬private ‫ضر‬ٛ‫ ن‬ٝ‫ ٔب والؼ زاذّی ضا ث‬ٝٔ‫ثط٘ب‬

class Outer_Demo{
int num;
//inner class
private class Inner_Demo{
public void print(){
System.out.println("This is an inner class");
}
}
//Accessing he inner class from the method within
void display_Inner(){
Inner_Demo inner = new Inner_Demo();
inner.print();
}
}

public class My_class{


public static void main(String args[]){
//Instantiating the outer class
Outer_Demo outer = new Outer_Demo();
//Accessing the display_Inner() method.
outer.display_Inner();
}

ُ‫ زض زاذ‬ٝ‫یه والؼ زاذّی اؾز و‬InnerDemo ‫ والؼ‬ٚ ‫ اؾز‬Outer ‫یه والؼ‬OuterDemo ‫ والؼ‬ٝ‫یس و‬ٙ‫ ٔی و‬ٜ‫س‬ٞ‫زض ایٗ ٔظبَ ٔكب‬
‫ز) اٌط وس‬ٛ‫ا٘ی ٔی ق‬ٛ‫ فطاذ‬main ‫ ایٗ ٔشس اظ زاذُ ٔشس‬ٚ ‫س‬ٙ‫ ٔی و‬ٜ‫ اظ والؼ زاذّی اؾشفبز‬ٝ‫ٔشسی اؾز و‬displayInner‫لطاض زاضز) ٔشس‬OuterDemo‫والؼ‬
: ‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ اػطای وس ثبال ث‬ٝ‫یس ٘شیؼ‬ٙ‫ثبال ضا اػطا و‬

This is an inner class.

107
private‫دستزسی بِ اعضای‬

‫ـ ثطای‬ٚ‫یٓ یه ض‬ٞ‫ا‬ٛ‫ ٘یع ٔٗطفی وطز) حبَ ٔی ذ‬private ‫ضر‬ٛ‫ ن‬ٝ‫اٖ زض زاذُ یه والؼ ث‬ٛ‫بی زاذّی ضا ٔی س‬ٞ ‫ قس والؼ‬ٝ‫ لجال ٌفش‬ٝ‫ و‬ٍٝ٘ٛ٘‫ٕب‬ٞ
ٝ‫ اًٖبی زاذّی یه والؼ زؾشطؾی زاضز) حشی اٌط آٖ اًٖبی والؼ ث‬ٝ‫یٓ) یه والؼ زاذّی ث‬ٙ‫ یه والؼ ٔٗطفی و‬private ‫بی‬ٞ‫ فیّس‬ٝ‫زؾشطؾی ث‬
‫ ٘یع‬Outer ‫ والؼ‬private ‫ ؾبیط اًٖبی‬ٝ‫ؾٍ ایٗ والؼ ث‬ٛ‫ا٘یٓ س‬ٛ‫یٓ ٔی س‬ٙ‫س) حبَ اٌط ٔب یه والؼ زاذّی سٗطیف و‬ٙ‫ ثبق‬ٜ‫ سٗطیف قس‬private ‫ضر‬ٛ‫ن‬
‫ ایٗ والؼ زاذّی یه‬ٝ‫یٓ و‬ٙ‫ زاذُ آٖ یه والؼ زاذّی سٗطیف ٔی و‬ٚ ٓ‫ی‬ٙ‫ سٗطیف ٔی و‬Outer ‫ ثبقیٓ) ثطای ا٘ؼبْ ایٗ وبض ٔب یه والؼ‬ٝ‫زؾشطؾی زاقش‬
‫ اًٖبی زاذّی‬ٝ‫ زض ذبضع اظ والؼ ث‬ٝ‫ زؾشطؾی زاقز) حبَ ثطای ایٗ و‬outer ‫ اًٖبی والؼ‬ٝ‫اٖ ث‬ٛ‫زاضز) اظ زاذُ ایٗ ٔشس ٔی س‬getValue ْ‫ ٘ب‬ٝ‫ٔشس ث‬
ٝ‫ْ ث‬ٟٛ‫ ضاحز سط ایٗ ٔف‬ٚ ‫شط‬ٟ‫یٓ) ثطای زضن ث‬ٙ‫ا٘ی ٔی و‬ٛ‫ضا فطاذ‬getValue ‫ ٔشس‬ٚ ٓ‫ ثبقیٓ یه قئ اظ والؼ زاذّی ٔی ؾبظی‬ٝ‫ زؾشطؾی زاقش‬Outer ‫والؼ‬
.‫یس‬ٙ‫وس ظیط زلز و‬

class Outer_Demo {
//private variable of the outer class
private int num= 175;
//inner class
public class Inner_Demo{
public int getNum(){
System.out.println("This is the getnum method of the inner class");
return num;
}
}
}

public class My_class2{


public static void main(String args[]){
//Instantiating the outer class
Outer_Demo outer=new Outer_Demo();
//Instantiating the inner class
Outer_Demo.Inner_Demo inner=outer.newInner_Demo();
System.out.println(inner.getNum());
}
}

:‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ػی وس ثبال ث‬ٚ‫ذط‬

The value of num in the class Test is: 175

108
‫کالس ّای داخلی درٍى هتذّا‬

‫زض ظثبٖ ػب‪ٚ‬ا ٔب لبزض ‪ٞ‬ؿشیٓ و‪ ٝ‬زض زاذُ یه ٔشس یه والؼ سٗطیف و‪ٙ‬یٓ ‪ ٚ‬ایٗ یه والؼ ٔحّی ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز) ٔب٘‪ٙ‬س ٔشغیط ٔحّی والؼ ٔحّی ٘یع فمٍ‬
‫زاذُ ٔشس لبثُ ق‪ٙ‬بؾبیی اؾز ‪ ٚ‬ثیط‪ ٖٚ‬اظ ٔشس ق‪ٙ‬بذش‪ ٝ‬قس‪٘ ٜ‬یؿز) اظ والؾی و‪ ٝ‬زاذُ ٔشس سٗطیف قس‪ ٜ‬اؾز فمٍ ٔی س‪ٛ‬اٖ زاذُ ٔشس قئ ؾبذز) ثط٘بٔ‪ٝ‬‬
‫ظیط ث‪ ٝ‬قٕب ٘كبٖ ٔی ز‪ٞ‬س و‪ ٝ‬چٍ‪ ٝ٘ٛ‬یه والؼ زض‪ٔ ٖٚ‬شس ثؿبظیٓ ‪ ٚ‬اظ آٖ اؾشفبز‪ ٜ‬و‪ٙ‬یٓ ‪.‬‬

‫{‪public class Outerclass‬‬

‫‪//instance method of the outer class‬‬


‫{)(‪void my_Method‬‬
‫;‪int num = 23‬‬

‫‪//method-local inner class‬‬


‫{‪class MethodInner_Demo‬‬
‫{)(‪public void print‬‬
‫;)‪System.out.println("This is method inner class "+num‬‬
‫}‬
‫‪}//end of inner class‬‬

‫‪//Accessing the inner class‬‬


‫;)(‪MethodInner_Demo inner = new MethodInner_Demo‬‬
‫;)(‪inner.print‬‬
‫}‬

‫{)][‪public static void main(String args‬‬


‫;)(‪Outerclass outer = new Outerclass‬‬
‫;)(‪outer.my_Method‬‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی وس ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪This is method inner class 23‬‬

‫کالس ّای داخلی بیٌام‬

‫والؼ زاذّی و‪٘ ٝ‬بْ ٘ساقش‪ ٝ‬ثبقس ضا والؼ زاذّی ثی‪ٙ‬بْ ٔی ٘بٔیٓ) زض ایٗ ٘‪ ٔٛ‬والؼ ‪ٞ‬ب ٔب زض ‪ٕٞ‬بٖ ظٔب٘ی و‪ ٝ‬یه والؼ ضا سٗطیف ٔی و‪ٙ‬یٓ یه قئ ‪ ٓٞ‬اظ‬
‫آٖ ٔی ؾبظیٓ) ایٗ والؼ ‪ٞ‬ب زض ظٔب٘ی اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز و‪ ٝ‬قٕب ٔی ذ‪ٛ‬ا‪ٞ‬یس یه ٔشس ضا ‪ Override‬و‪ٙ‬یس ‪ ٚ‬یب اظ یه والؼ ‪ ٚ‬یب ای‪ٙ‬شطفیؽ والؾی ث‪ ٝ‬اضص‬
‫ثجطیس ‪ٕٞ ٚ‬ب٘ؼب آٖ والؼ ضا سٗطیف و‪ٙ‬یس ‪ ٚ‬اظ آٖ اؾشفبز‪ ٜ‬و‪ٙ‬یس) ٘ح‪ٛ٘ ٜٛ‬قشبضی ایٗ ٘‪ ٔٛ‬والؼ ‪ٞ‬ب ث‪ ٝ‬قىُ ظیط اؾز ‪:‬‬

‫‪109‬‬
‫{)(‪AnonymousInneran_inner = new AnonymousInner‬‬
‫{)(‪public void my_method‬‬
‫‪........‬‬
‫‪........‬‬
‫}‬
‫;}‬

‫ثط٘بٔ‪ ٝ‬ظیط ٘كبٖ ٔی ز‪ٞ‬س و‪ ٝ‬چٍ‪ ٝ٘ٛ‬اظ یه والؼ ثی‪ٙ‬بْ اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز ‪ ٚ‬یه ٔشس ضا ‪ٔ override‬ی و‪ٙ‬یٓ‪.‬‬

‫{‪abstract class AnonymousInner‬‬


‫;)(‪public abstract void mymethod‬‬
‫}‬

‫{ ‪public class Outer_class‬‬


‫{)][‪public static void main(String args‬‬
‫{)(‪AnonymousInner inner = new AnonymousInner‬‬
‫{)(‪public void mymethod‬‬
‫;)"‪System.out.println("This is an example of anonymous inner class‬‬
‫}‬
‫;}‬
‫;)(‪inner.mymethod‬‬
‫}‬
‫}‬

‫اٌط ثط٘بٔ‪ ٝ‬ثبال ضا وبٔذبیُ و‪ٙ‬یس ذط‪ٚ‬ػی ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز ‪:‬‬

‫‪This is an example of anonymous inner class‬‬

‫قٕب ٔی س‪ٛ‬ا٘یس ٔشس‪ٞ‬بی والؼ ‪ٞ‬بی ٕٔٗ‪ِٛ‬ی ضا ٔب٘‪ٙ‬س ای‪ٙ‬شطفیؽ ‪ٞ‬ب زض والؼ ‪ٞ‬بی ثی ٘بْ سغییط ز‪ٞ‬یس‪.‬‬

‫کالس داخلی بی ًام بِ عٌَاى پاراهتز ٍرٍدی‬

‫ث‪َٛ ٝ‬ض ٕٔٗ‪ َٛ‬زض ػبیی و‪ ٝ‬یه ٔشس ‪ٚ‬ػ‪ٛ‬ز زاضز و‪ ٝ‬یه قئ اظ یه ای‪ٙ‬شطفیؽ یب والؼ ‪ ٚ abstract‬یب حشی والؼ ٕٔٗ‪ِٛ‬ی ضا ث‪ٖٛٙ ٝ‬اٖ آضٌ‪ٔٛ‬بٖ ‪ٚ‬ض‪ٚ‬زی ٔی‬
‫ٌیطز ٔی س‪ٛ‬ا٘یٓ ‪ٕٞ‬بٖ ای‪ٙ‬شطفیؽ ضا زض ‪ٕٞ‬ب٘ؼب ث‪ٖٛٙ ٝ‬اٖ یه والؼ زاذّی دیبز‪ ٜ‬ؾبظی و‪ٙ‬یٓ ‪ ٚ‬یب والؼ ‪ abstract‬ضا اضص ثطی ٕ٘بییٓ ‪ ٚ‬آ٘‪ٟ‬ب ضا زض لبِت یه‬
‫قئ ث‪ٔ ٝ‬شس دبؼ ثس‪ٞ‬یٓ) زض ‪ٞ‬ط ؾ‪ ٝ‬قىّی و‪ٌ ٝ‬فش‪ ٝ‬قس ٔی س‪ٛ‬اٖ یه والؼ ثی ٘بْ ‪ٕٞ‬ب٘ؼب سٗطیف وطز ‪ ٚ‬ث‪ٖٛٙ ٝ‬اٖ یه قئ ث‪ ٝ‬زاذُ ٔشس ث‪ٖٛٙ ٝ‬اٖ دبضأشط‬
‫‪ٚ‬ض‪ٚ‬زی فطؾشبز) ٘ح‪ٛ٘ ٜٛ‬قشٗ ایٗ ٘‪ ٔٛ‬والؼ ‪ٞ‬ب ث‪ ٝ‬قىُ ظیط اؾز ‪:‬‬

‫{)(‪obj.my_Method(new My_Class‬‬
‫{)(‪public void Do‬‬
‫‪.....‬‬
‫‪.....‬‬
‫}‬

‫‪110‬‬
});

. ٓ‫ ٔی فطؾشی‬ٚ ٜ‫زی یه ٔشس سٗطیف وطز‬ٚ‫ض‬ٚ ‫اٖ دبضأشط‬ٖٛٙ ٝ‫ یه والؼ زاذّی ثی ٘بْ ضا ث‬ٍٝ٘ٛ‫ چ‬ٝ‫س و‬ٞ‫ ظیط ٘كبٖ ٔی ز‬ٝٔ‫ثط٘ب‬

//interface
interface Message{
String greet();
}

public class My_class {


//method which accepts the object of interface Message
public void displayMessage(Message m){
System.out.println(m.greet() +", This is an example of anonymous inner calss as an
argument");
}

public static void main(String args[]){


//Instantiating the class
My_class obj = new My_class();

//Passing an anonymous inner class as an argument


obj.displayMessage(new Message(){
public String greet(){
return "Hello";
}
});
}
}

:‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ ثبال ث‬ٝٔ‫ػی ثط٘ب‬ٚ‫ذط‬

Hello This is an example of anonymous inner class as an argument

‫کالس ّای داخلی استاتیک‬

ٖٚ‫اٖ ثس‬ٛ‫ یىی اظ اًٖبی اؾشبسیه والؼ اؾز) ٔی س‬ٚ ‫ اؾز‬ٜ‫ضر اؾشبسیه زض زاذُ والؼ سٗطیف قس‬ٛ‫ ن‬ٝ‫ ث‬ٝ‫یه والؼ زاذّی اؾشبسیه والؾی اؾز و‬
‫ا٘س ؾبیط اًٖبی اؾشبسیه والؼ ضا سغییط‬ٛ‫یٗ ٔی س‬ٙ‫ٕچ‬ٞ ‫ٔ والؼ‬ٛ٘ ٗ‫ ایٗ والؼ زؾشطؾی زاقز)) ای‬ٝ‫ز ث‬ٛ‫ ق‬ٝ‫ قیئی ؾبذش‬Outer ‫ اؾز والؼ‬ٝ‫ایٗ و‬
ُ‫س قى‬ٙ٘‫ٔ والؼ ٔب‬ٛ٘ ٗ‫قشبضی ای‬ٛ٘ ٜٛ‫ ثبقس) ٘ح‬ٝ‫ اًٖبی اؾشبسیه زؾشطؾی زاقش‬ٝ‫ا٘س ث‬ٛ‫ٔ والؼ فمٍ ٔی س‬ٛ٘ ٗ‫ اًٖبی اؾشبسیه والؼ ای‬ٝ‫س ثمی‬ٙ٘‫س) ٔب‬ٞ‫ثس‬
:‫ظیط اؾز‬

class MyOuter {
static class Nested_Demo{

111
‫}‬
‫}‬

‫ثطای اؾشفبز‪ ٜ‬اظ ایٗ ٘‪ ٔٛ‬والؼ ث‪ ٝ‬قىُ ظیط ُٖٕ ٔی و‪ٙ‬یٓ ‪:‬‬

‫{‪public class Outer‬‬


‫{‪static class Nested_Demo‬‬
‫{)(‪public void my_method‬‬
‫;)"‪System.out.println("This is my nested class‬‬
‫}‬
‫}‬

‫{)][‪public static void main(String args‬‬


‫;)(‪Outer.Nested_Demo nested = new Outer.Nested_Demo‬‬
‫;)(‪nested.my_method‬‬
‫}‬

‫}‬

‫ذط‪ٚ‬ػی ثط٘بٔ‪ ٝ‬ثبال ث‪ ٝ‬قىُ ظیطذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪This is my nested class‬‬

‫‪ٚ‬ضاطز والؾ‪ٟ‬ب ‪ ٚ‬ا٘‪ٛ‬أ آٖ‬

‫یىی اظ ذ‪ٛ‬ال قئ ٌطایی و‪ ٝ‬لجال ‪ ٓٞ‬وٓ ‪ ٚ‬ثیف زض ٔ‪ٛ‬ضز آٖ ٌفشیٓ اضص ثطی یب ‪ inheritance‬اؾز) اضص ثطی ضا ٔی س‪ٛ‬اٖ ایٗ ٌ‪ ٝ٘ٛ‬سٗطیف وطز و‪ ٝ‬یه‬
‫والؼ ذه‪ٛ‬نیبسی ضا اظ یه والؼ زیٍط ث‪ ٝ‬اضص ٔی ثطز) ثب اؾشفبز‪ ٜ‬اظ اضص ثطی اَالٖبر ث‪ ٝ‬اضص ثطز‪ ٜ‬قس‪َ ٜ‬جك اضص ثطی آ٘‪ٟ‬ب لبثُ ٔسیطیز اؾز)‬
‫والؾی و‪ ٝ‬ذه‪ٛ‬نیبر ضا ث‪ ٝ‬اضص ٔی ثطز ظیطوالؼ یب والؼ ٔكشك قس‪ ٜ‬یب والؼ فطظ٘س ٘بْ زاضز ‪ ٚ‬والؾی و‪ ٝ‬ذه‪ٛ‬نیبسی ضا اضص ٔی ز‪ٞ‬س ث‪ٖٛٙ ٝ‬اٖ‬
‫والؼ دبی‪ ٚ ٝ‬یب والؼ ‪ٚ‬اِس ق‪ٙ‬بذش‪ٔ ٝ‬ی ق‪ٛ‬ز ‪.‬‬

‫کلوِ کلیذی‪extends‬‬

‫وّٕ‪ extends ٝ‬وّٕ‪ ٝ‬وّیسی اؾز و‪ ٝ‬ثطای ‪ٚ‬ضاطز ذه‪ٛ‬نیبر اظ یه والؼ اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز) ٘ح‪ ٜٛ‬اؾشفبز‪ ٜ‬اظ ایٗ وّٕ‪ ٝ‬وّیسی زض ازأ‪ ٝ‬آٔس‪ ٜ‬اؾز ‪:‬‬

‫{‪class Super‬‬
‫‪.....‬‬
‫‪.....‬‬
‫}‬

‫{‪class Sub extends Super‬‬


‫‪112‬‬
.....
.....

ٚ Calculation ‫ یىی‬ٝ‫ ایٓ و‬ٜ‫ضز‬ٚ‫ والؼ آ‬ٚ‫ ایٓ)زض ایٗ ٔظبَ ز‬ٜ‫ضز‬ٚ‫ آ‬ٝٔ‫یٓ ٔظبِی زض ازا‬ٙ‫شط ثیبٖ و‬ٟ‫ا ضا ث‬ٚ‫ب زض ظثبٖ ػب‬ٞ ‫ضاطز زض والؼ‬ٚ ٝ‫ثطای ایٗ و‬
ٝ‫ ث‬Calculation ‫ ضا اظ والؼ‬subtraction ٚ addition ‫بی‬ٞ‫ٔشس‬MyCalcuation‫ والؼ‬extends ّٕٝ‫ اظ و‬ٜ‫٘بْ زاضز) ثب اؾشفبز‬MyCalculation‫زیٍطی‬
‫اضص‬
.‫ٔی ثطز‬

class Calculation{
int z;

public void addition(int x, int y){


z = x+y;
System.out.println("The sum of the given numbers:"+z);
}

public void Substraction(int x,int y){


z = x-y;
System.out.println("The difference between the given numbers:"+z);
}

public class MyCalculation extends Calculation{

public void multiplication(int x, int y){


z = x*y;
System.out.println("The product of the given numbers:"+z);
}

public static void main(String args[]){


int a = 20, b = 10;
MyCalculation demo = new My_Calculation();
demo.addition(a, b);
demo.Substraction(a, b);
demo.multiplication(a, b);
}

: ‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ ث‬ٝٔ‫ اػطای ثط٘ب‬ٝ‫یس ٘شیؼ‬ٙ‫ اػطا و‬ٚ ُ‫ ثبال ضا وبٔذبی‬ٝٔ‫حبَ اٌط ثط٘ب‬

The sum of the given numbers:30


113
‫‪The difference between the given numbers:10‬‬
‫‪The product of the given numbers:200‬‬

‫زض ثط٘بٔ‪ ٝ‬ثبال قیئی و‪ ٝ‬اظ والؼ ‪MyCalculation‬ؾبذش‪ٔ ٝ‬ی ق‪ٛ‬ز ‪ ٕٝٞ‬ی ٔشس‪ٞ‬بی والؼ ‪ٚ‬اِس ضا ٘یع ث‪ٕٞ ٝ‬طا‪ ٜ‬ذ‪ٛ‬ز زاضز) ث‪ ٝ‬ایٗ ٔٗ‪ٙ‬ی و‪ ٝ‬ثب اؾشفبز‪ ٜ‬اظ قئ‬
‫فطظ٘س‬
‫ٔی س‪ٛ‬اٖ ث‪ٔ ٝ‬شس‪ٞ‬ب ‪ ٚ‬فیّس‪ٞ‬بی ‪ public‬والؼ ‪ٚ‬اِس ‪ ٓٞ‬زؾشطؾی زاقز) اٌط قٕب قیئی زاقش‪ ٝ‬ثبقیس و‪ ٝ‬اظ والؼ ‪ٚ‬اِس ؾبذش‪ ٝ‬قس‪ ٜ‬ثبقس ایٗ قئ فمٍ ٔی‬
‫س‪ٛ‬ا٘س ث‪ ٝ‬اًٖبی والؼ ‪ٚ‬اِس زؾشطؾی زاقش‪ ٝ‬ثبقس زض حبِی و‪ ٝ‬والؼ اظ والؼ فطظ٘س ‪ ٓٞ‬ث‪ ٝ‬اًٖبی والؼ فطظ٘س ‪ ٓٞ ٚ‬ث‪ ٝ‬اًٖبی والؼ دسض زؾشطؾی‬
‫زاضز) ثطای ٔظبَ زض ثط٘بٔ‪ ٝ‬ثبال اٌط قیئی اظ والؼ ‪ Calculation‬ؾبذش‪ ٝ‬قس‪ ٜ‬ثبقس) ایٗ قئ ٕ٘ی س‪ٛ‬ا٘س ث‪ٔ ٝ‬شس ‪ multiplication‬زؾشطؾی زاقش‪ ٝ‬ثبقس) ظیطا‬
‫و‪ ٝ‬ایٗ ٔشس ٔطث‪ ٌٛ‬ث‪ ٝ‬والؼ فطظ٘س یٗ‪ٙ‬ی ‪ٔMyCalculation‬ی ثبقس) زلز زاقش‪ ٝ‬ثبقیس و‪ ٝ‬یه والؼ فطظ٘س ‪ ٕٝٞ‬ی اًٖب‪$‬فیّس‪ٞ‬ب ‪ٔ ٚ‬شس‪ٞ‬ب ‪ ٚ‬والؼ ‪ٞ‬بی‬
‫زاذّی‪ #‬ضا اظ والؼ ‪ٚ‬اِس ث‪ ٝ‬اضص ٔی ثطز ‪ٞ. Constructor‬ب ػعء ایٗ اًٖب ٔحؿ‪ٛ‬ة ٕ٘ی ق‪٘ٛ‬س ‪ ٚ‬ث‪ ٝ‬اضص ثطز‪ٕ٘ ٜ‬ی ق‪٘ٛ‬س أب ؾبظ٘س‪ ٜ‬والؼ ‪ٚ‬اِس ٔی س‪ٛ‬ا٘س‬
‫اظ زاذُ والؼ فطظ٘س فطاذ‪ٛ‬ا٘ی ق‪ٛ‬ز‪.‬‬

‫کلوِ کلیذی‪super‬‬

‫ایٗ وّٕ‪ ٝ‬وّیسی قجی‪ ٝ‬ث‪ ٝ‬وّٕ‪ٔ this ٝ‬ی ثبقس ‪ِٚ‬ی ایٗ وّٕ‪ ٝ‬وّیسی ثطای اضػبٔ ث‪ ٝ‬والؼ ‪ٚ‬اِس اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز) یىی اظ وبضثطز ‪ٞ‬بی آٖ سفب‪ٚ‬ر لبیُ قسٖ‬
‫ثیٗ اًٖبی ذ‪ٛ‬ز والؼ ‪ ٚ‬اًٖبی والؼ ‪ٚ‬اِس اؾز) ایٗ وبض زض ن‪ٛ‬ضسی و‪٘ ٝ‬بْ یىی اظ اًٖب ‪ ٓٞ‬زض والؼ ‪ٚ‬اِس سٗطیف قس‪ ٜ‬ثبقس ‪ ٓٞ ٚ‬زض والؼ فطظ٘س)‬
‫وبضثطز زیٍط ایٗ وّٕ‪ ٝ‬وّیسی فطاذ‪ٛ‬ا٘ی ‪ constructor‬والؼ ‪ٚ‬اِس اؾز‪.‬‬

‫تفاٍت قایل ضذى بیي اعضا‬

‫اٌط یه والؼ ٔكرهبر ذ‪ٛ‬ز ضا اظ والؼ زیٍطی اضص ثطز‪ ٜ‬ثبقس ‪ ٚ‬اٌط اًٖبی والؼ دسض ٘بْ ‪ٞ‬بیی زاقش‪ ٝ‬ثبق‪ٙ‬س و‪ ٝ‬آٖ ٘بْ زض ثیٗ اًٖبی والؼ فطظ٘س‬
‫٘یع ٔ‪ٛ‬ػ‪ٛ‬ز ثبقس اٌط زض زاذُ والؼ فطظ٘س ٘بْ آٖ ًٖ‪ ٛ‬ضا لطاض ثس‪ٞ‬یٓ‪ ،‬وبٔذبیّط ًٖ‪ٔ ٛ‬طث‪ ٌٛ‬ث‪ ٝ‬والؼ فطظ٘س ضا زض ٘ٓط ٔی ٌیطز ‪ ٚ‬اٌط ثر‪ٛ‬ا‪ٞ‬یٓ ث‪ ٝ‬والؼ‬
‫دسض زؾشطؾی زاقش‪ ٝ‬ثبقیٓ اظ وّٕ‪ ٝ‬وّیسی ‪ super‬اؾشفبز‪ ٜ‬ذ‪ٛ‬ا‪ٞ‬یٓ وطز) ثطای زضن ث‪ٟ‬شط ایٗ وّٕ‪ ٝ‬وّیسی ‪ ٚ‬اؾشفبز‪ ٜ‬اظ آٖ ثطای سفب‪ٚ‬ر لبیُ قسٖ ثیٗ اًٖبی‬
‫والؼ ‪ٚ‬اِس ‪ ٚ‬فطظ٘س ٔظبِی آ‪ٚ‬ضز‪ ٜ‬ایٓ و‪ ٝ‬زض وس ظیط ٔكب‪ٞ‬س‪ٔ ٜ‬ی و‪ٙ‬یس) زض ایٗ ثط٘بٔ‪ ٝ‬یه والؼ ث‪٘ ٝ‬بْ ‪ ٚSubClass‬یه والؼ زیٍط ث‪٘ ٝ‬بْ‪SuperClass‬زاضیٓ‬
‫و‪ٞ ٝ‬ط ز‪ٚ‬ی آٖ ‪ٞ‬ب ثه ٔشس ث‪٘ ٝ‬بْ ‪ display‬زاضز) ‪ٞ‬ط وساْ اظ ایٗ ٔشس‪ٞ‬ب زاضای دیبز‪ ٜ‬ؾبظی ػساٌب٘‪ ٝ‬ای ‪ٞ‬ؿش‪ٙ‬س) زض ثط٘بٔ‪ ٝ‬ظیط ٔی ثی‪ٙ‬یس و‪ٞ ٝ‬طوساْ اظ ایٗ ٔشس‬
‫‪ٞ‬ب ضا چٍ‪ ٝ٘ٛ‬فطاذ‪ٛ‬ا٘ی ٔی و‪ٙ‬یٓ ‪ ٚ‬چٍ‪ ٝ٘ٛ‬ثیٗ آ٘‪ٟ‬ب سفب‪ٚ‬ر ٔی ٌصاضیٓ ‪.‬‬

‫{‪class SuperClass‬‬

‫;‪int num = 20‬‬

‫‪//display method of superclass‬‬


‫{)(‪public void display‬‬
‫;)"‪System.out.println("This is the display method of superclass‬‬
‫}‬
‫‪114‬‬
}

public class SubClass extends Super_class {

int num = 10;

//display method of sub class


public void display(){
System.out.println("This is the display method of subclass");
}

public void myMethod(){

//Instantiating subclass
SubClass sub = new SubClass();

//Invoking the display() method of sub class


sub.display();

//Invoking the display() method of superclass


super.display();

//printing the value of variable num of subclass


System.out.println("value of the variable named num in sub class:"+ sub.num);

//printing the value of variable num of superclass


System.out.println("value of the variable named num in super class:"+ super.num);
}

public static void main(String args[]){


SubClass obj = new SubClass();
obj.myMethod();

}
}

: ‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ ث‬ٝٔ‫ اػطای ثط٘ب‬ٝ‫یس ٘شیؼ‬ٙ‫ اػطا و‬ٚ ُ‫ ثبال ضا وبٔذبی‬ٝٔ‫اٌط ثط٘ب‬

This is the display method of subclass


This is the display method of superclass
value of the variable named num in sub class:10
value of the variable named num in super class:20

115
‫فزاخَاًی ‪ constructor‬کالس ٍالذ اس داخل کالس فزسًذ‬

‫اٌط یه والؼ اظ والؼ زیٍطی اضص ثطز‪ ٜ‬ثبقس‪ ،‬والؼ فطظ٘س ث‪ َٛ ٝ‬دیكفطو والؼ ‪ٚ‬اِس ضا ثب ‪ constructor‬دیكفطو و‪ ٝ‬ثس‪ ٖٚ‬دبضأشط ‪ٚ‬ض‪ٚ‬زی اؾز ث‪ٝ‬‬
‫اضص‬
‫ٔی ثطز) أب اٌط ثر‪ٛ‬ا‪ٞ‬یس یىی اظ ‪ٞ constructor‬بی والؼ ‪ٚ‬اِس و‪ ٝ‬زاضای دبضأشط ‪ٚ‬ض‪ٚ‬زی اؾز ضا فطاذ‪ٛ‬ا٘ی و‪ٙ‬یس ثبیس اظ وّٕ‪ ٝ‬وّیسی ‪ super‬اؾشفبز‪ ٜ‬و‪ٙ‬یس)‬
‫‪ٔ super‬ی س‪ٛ‬اٖ‬ ‫ثطای ٔظبَ ‪ ٚ‬زضن ث‪ٟ‬شط ایٗ وبضثطز ‪ super‬ث‪ ٝ‬ثط٘بٔ‪ ٝ‬ظیط زلز و‪ٙ‬یس) زض ایٗ ثط٘بٔ‪٘ ٝ‬كبٖ ٔی ز‪ٞ‬یٓ و‪ ٝ‬چٍ‪ ٝ٘ٛ‬ثب اؾشفبز‪ ٜ‬اظ وّٕ‪ ٝ‬وّیسی‬
‫‪ٔconstructor‬طث‪ ٌٛ‬ث‪ ٝ‬والؼ ‪ٚ‬اِس ضا فطاذ‪ٛ‬ا٘ی و‪ٙ‬یٓ) ایٗ ثط٘بٔ‪ ٝ‬یه والؼ ‪ٚ‬اِس ‪ ٚ‬یه والؼ فطظ٘س زاضز و‪ ٝ‬والؼ ‪ٚ‬اِس یه ضقش‪ ٝ‬ضا ث‪ٖٛٙ ٝ‬اٖ دبضأشط‬
‫‪ٚ‬ض‪ٚ‬زی ‪ٔ constructor‬ی ٌیطز) ‪ ٚ‬زض والؼ فطظ٘س ثب اؾشفبز‪ ٜ‬اظ وّٕ‪ ٝ‬وّیسی ‪ super‬آٖ ‪ constructor‬فطاذ‪ٛ‬ا٘ی ٔی ق‪ٛ‬ز‪.‬‬

‫{‪class Superclass‬‬

‫;‪int age‬‬

‫{)‪Superclass(int age‬‬
‫;‪this.age = age‬‬
‫}‬

‫{)(‪public void getAge‬‬


‫;)‪System.out.println("The value of the variable named age in super class is: " +age‬‬
‫}‬

‫}‬

‫{ ‪public class Subclass extends Superclass‬‬

‫{)‪Subclass(int age‬‬
‫;)‪super(age‬‬
‫}‬

‫{)][‪public static void main(String argd‬‬


‫;)‪Subclass s = new Subclass(24‬‬
‫;)(‪s.getAge‬‬
‫}‬

‫}‬

‫ذط‪ٚ‬ػی ثط٘بٔ‪ ٝ‬ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪The value of the variable named age in super class is: 24‬‬

‫‪116‬‬
‫رابطِ‪Is-A‬‬

‫اٌط ثر‪ٛ‬ا‪ٞ‬یٓ ثٍ‪ٛ‬ییٓ ایٗ قئ یه ٘‪ ٔٛ‬اظ قئ زیٍطی اؾز یه ضا‪ ٜ‬آٖ اؾشفبز‪ ٜ‬اظ ضاثُ‪ ٝ‬اظ ‪ Is-A‬اؾز) ثطای ٔظبَ ثجط یه حی‪ٛ‬اٖ اؾز) ٔط٘ یه دط٘س‪ ٜ‬اؾز)‬
‫ایٗ ضاثُ‪ ٝ‬زض ثط٘بٔ‪ٛ٘ ٝ‬یؿی وبضثطز ثؿیبض زاضز) ایٗ ض‪ٚ‬ـ ضا ٔی س‪ٛ‬اٖ ثب اؾشفبز‪ ٜ‬اظ اضص ثطی ‪ ٚ‬وّٕ‪ ٝ‬وّیسی ‪ٔ extends‬ی س‪ٛ‬اٖ ؾبذز) ثطای ٔظبَ ث‪ ٝ‬سٗطیف‬
‫والؼ ‪ٞ‬بی ظیط و‪ ٝ‬سٗطیف حی‪ٛ‬ا٘بر اؾز س‪ٛ‬ػ‪ ٝ‬و‪ٙ‬یس ‪:‬‬

‫{‪public class Animal‬‬


‫}‬

‫{‪public class Mammal extends Animal‬‬


‫}‬

‫{‪public class Reptile extends Animal‬‬


‫}‬

‫{‪public class Dog extends Mammal‬‬


‫}‬

‫ثب س‪ٛ‬ػ‪ ٝ‬ث‪ ٝ‬سٗبضیف ثبال ‪َ ٚ‬جك ل‪ٛ‬ا٘یٗ قئ ٌطایی ػّٕ‪ٞ ٝ‬بی ظیط نبزق اؾز ‪:‬‬

‫‪Mammal‬یه ‪ Animal‬اؾز ظیطا اظ آٖ اضص ثطز‪ ٜ‬اؾز‪.‬‬ ‫‪‬‬

‫‪Reptile‬یه ‪ Animal‬اؾز ظیطا اظ آٖ اضص ثطز‪ ٜ‬اؾز‪.‬‬ ‫‪‬‬

‫‪Dog‬یه ‪ Mammal‬اؾز‪.‬‬ ‫‪‬‬

‫‪Dog‬یه ‪ Animal‬اؾز‪.‬‬ ‫‪‬‬

‫‪ Dog‬اظ‬ ‫ثب اؾشفبز‪ ٜ‬اظ وّٕ‪ ٝ‬وّیسی ‪ extends‬والؼ ‪ٞ‬بی فطظ٘س ‪ ٕٝٞ‬ی ذه‪ٛ‬نیبر والؼ ‪ٞ‬بی ‪ٚ‬اِس ضا ث‪ ٝ‬اضص ٔی ثط٘س) ث‪َٛ ٝ‬ض ٔظبَ زض وس ثبال والؼ‬
‫والؼ ‪ Mammal‬اضص ثطز‪ ٜ‬اؾز ‪ِٚ‬ی اظ آ٘ؼب و‪ ٝ‬والؼ ‪ Mammal‬ذ‪ٛ‬ز اظ والؼ ‪ Animal‬ث‪ ٝ‬اضص ثطز‪ ٜ‬اؾز دؽ والؼ ‪ Dog‬ذه‪ٛ‬نیبر والؼ‬
‫‪Animal‬ضا ٘یع ث‪ ٝ‬اضص ذ‪ٛ‬ا‪ٞ‬س ثطز) زلز زاقش‪ ٝ‬ثبقیس و‪ ٝ‬والؼ فطظ٘س ٕ٘ی س‪ٛ‬ا٘س اًٖبی ‪ private‬والؼ ‪ٚ‬اِس ضا ث‪ ٝ‬اضص ثجطز) ثطای ٔظبَ ث‪ ٝ‬وس ظیط زلز‬
‫و‪ٙ‬یس‪.‬‬

‫{‪class Animal‬‬
‫}‬
‫{‪class Mammal extends Animal‬‬
‫}‬
‫{‪class Reptile extends Animal‬‬

‫‪117‬‬
}
public class Dog extends Mammal{

public static void main(String args[]){

Animal a = new Animal();


Mammal m = new Mammal();
Dog d = new Dog();
System.out.println(m instanceof Animal);
System.out.println(d instanceof Mammal);
System.out.println(d instanceof Animal);
}
}

:‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ ثبال ث‬ٝٔ‫ػی ثط٘ب‬ٚ‫ذط‬

true
true
true

‫نیبر‬ٛ‫یٓ ذه‬ٞ‫ا‬ٛ‫ ثر‬ٝ‫ز و‬ٛ‫ ٔی ق‬ٜ‫ وبض ثطز‬ٝ‫ وّیس ظٔب٘ی ث‬ّٕٝ‫ ٔی دطزاظیٓ) ایٗ و‬implements ْٟٛ‫ ثیبٖ ٔف‬ٝ‫ب قسیٓ ث‬ٙ‫ آق‬extends ْٟٛ‫ ثب ٔف‬ٝ‫دؽ اظ ایٗ و‬
‫ا٘س اظ والؾی اضص‬ٛ‫شطفیؽ ٘یع ٕ٘ی س‬ٙ‫ز ای‬ٛ‫ وطز) ذ‬ٜ‫ اؾشفبز‬extends ‫ وّیسی‬ّٕٝ‫اٖ اظ و‬ٛ‫ب ٕ٘ی س‬ٞ ‫شطفیؽ‬ٙ‫ اضص ثجطیٓ) ثطای ای‬ٝ‫شطفیؽ ضا ث‬ٙ‫ز زض یه ای‬ٛ‫ػ‬ٛٔ
:‫یس‬ٙ‫ وس ظیط زلز و‬ٝ‫ثجطز) ثطای ٔظبَ ث‬

public interface Animal {


}
public class Mammal implements Animal{
}
public class Dog extends Mammal{
}

.ٓ‫ی‬ٙ‫ ٔی و‬ٜ‫اؾشفبز‬instaceof ‫ وّیسی‬ّٕٝ‫ اؾز یب ذیط اظ و‬ٜ‫ اضص ثطز‬ٝ‫ یه والؼ اظ والؼ زیٍط ث‬ٝ‫یٓ و‬ٙ‫ ٔكرم و‬ٝ‫ ثطای ایٗ و‬ٝ‫ ثبقیس و‬ٝ‫زلز زاقش‬

Has-Aِ‫رابط‬

‫ ایٗ أط وٕه ٔی‬ٝ‫یؿی قئ ٌطا ث‬ٛ٘ ٝٔ‫ل ضا زاضز یب ذیط) ایٗ ذبنیز زض ثط٘ب‬ٛ‫ ذه‬ٝ‫ آیب یه والؼ یه ذبنیز ث‬ٝ‫ضز اؾز و‬ٛٔ ٗ‫ ثیكشط زض ای‬ُٝ‫ایٗ ضاث‬
. ‫یس‬ٙ‫ وس ظیط زلز و‬ٝ‫یٓ) ثطای ٔظبَ ث‬ٙ‫ز زاضی و‬ٛ‫بی سىطاضی ذ‬ٞ‫قشٗ وس‬ٛ٘ ‫ اظ‬ٝ‫س و‬ٙ‫و‬

public class Vehicle{}


public class Speed{}
public class Van extends Vehicle{
private Speed sp;
118
‫}‬

‫وس ثبال ٘كبٖ ٔی ز‪ٞ‬س و‪ ٝ‬والؼ ‪ Van‬ذه‪ٛ‬نیز ‪ Speed‬ضا زاضز) ثب اؾشفبز‪ ٜ‬اظ والؼ ػساٌب٘‪ ٝ‬ثطای ‪ Speed‬زیٍط ٘یبظی ٘ساضیٓ و‪ ٝ‬وُ وس‪ٞ‬بی والؼ‬
‫‪Speed‬ضا ثطای ‪٘ Van‬یع ثیب‪ٚ‬ضیٓ ‪ ٚ‬فمٍ اظ آٖ اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬یٓ) ثب اؾشفبز‪ ٜ‬اظ ذ‪ٛ‬ال قئ ٌطایی ٘یبظی ٘یؿز و‪ ٝ‬وبضثطاٖ ثسا٘‪ٙ‬س و‪ ٝ‬وبض ‪ٚ‬الٗی ضا وساْ‬
‫والؼ ا٘ؼبْ ٔی ز‪ٞ‬س ‪ ٚ‬ث‪ٟ‬شط اؾز ایٗ ٔؿئّ‪ ٝ‬اظ زیس وبضثط ٔرفی ثبقس) زض ٔظبَ ثبال ‪ ٓٞ‬والؼ ‪ Van‬دیبز‪ ٜ‬ؾبظی ‪ Speed‬ضا اظ زیس وبضثط ٔرفی وطز‪ ٜ‬اؾز)‬
‫س‪ٟٙ‬ب وبضی و‪ ٝ‬والؼ ‪ Van‬اظ ‪ Speed‬ا٘شٓبض زاضز ایٗ اؾز و‪ ٝ‬وبض‪ٞ‬بی ذبنی ضا ا٘ؼبْ ز‪ٞ‬س‪.‬‬

‫اًَاع ارث بزی‬

‫اضص ثطی ا٘‪ٛ‬أ ٔرشّفی زاضز و‪ ٝ‬زض سه‪ٛ‬یط ظیط ٔكب‪ٞ‬س‪ٔ ٜ‬ی و‪ٙ‬یس‬

‫زلز زاقش‪ ٝ‬ثبقیس و‪ ٝ‬ظثبٖ ػب‪ٚ‬ا اظ اضص ثطی چ‪ٙ‬سٌب٘‪ ٝ‬دكشیجب٘ی ٕ٘ی و‪ٙ‬س) ایٗ ث‪ ٝ‬ایٗ ٔٗ‪ٙ‬ی اؾز و‪ ٝ‬ػّ‪ٛ‬ی وّٕ‪ extends ٝ‬فمٍ یه والؼ ٔی س‪ٛ‬اٖ لطاض زاز)‬
‫‪ِٚ‬ی‬
‫ٔی س‪ٛ‬اٖ ثب اؾشفبز‪ ٜ‬اظ ای‪ٙ‬شطفیؽ ‪ٞ‬ب ‪ ٚ‬ؾّؿّ‪ٔ ٝ‬طاست اضص ثطی‪ ،‬اضص ثطی چ‪ٙ‬سٌب٘‪ ٝ‬ضا قجی‪ ٝ‬ؾبظی وطز‬

‫‪119‬‬
‫‪override‬وطزٖ ٔشس‪ٞ‬ب‬

‫زض ُٔبِت لجّی زض ٔ‪ٛ‬ضز والؼ ‪ٞ‬بی ‪ٚ‬اِس ‪ ٚ‬والؼ ‪ٞ‬بی فطظ٘س ‪ٚ ٚ‬ضاطز والؼ ‪ٞ‬ب نحجز وطزیٓ) ‪ٕٞ‬بُ٘‪ٛ‬ض و‪ٌ ٝ‬فشیٓ زض ‪ٚ‬ضاطز ٔشس‪ٞ‬بی والؼ ‪ٚ‬اِس ٘یع ث‪ٝ‬‬
‫والؼ فطظ٘س ث‪ ٝ‬اضص ٔی ضؾس) حبَ اٌط ثر‪ٛ‬ا‪ٞ‬یٓ ‪ٕٞ‬بٖ ٔشس‪ٞ‬ب ضا ثبظ٘‪ٛ‬یؿی و‪ٙ‬یٓ ثبیس چ‪ ٝ‬و‪ٙ‬یٓ) ُٖٕ ثبظ ٘‪ٛ‬یؿی ٔشس‪ٞ‬بی ث‪ ٝ‬اضص ضؾیس‪ ٜ‬ضا ‪ override‬وطزٖ‬
‫‪ override‬و‪ٙ‬یٓ ٘جبیس ایٗ ٔشس زض والؼ ‪ٚ‬اِس ث‪ ٝ‬ن‪ٛ‬ضر ‪ final‬سٗطیف قس‪ ٜ‬ثبقس)‬ ‫ٔشس ٌ‪ٛ‬ی‪ٙ‬س) ثطای ایٗ و‪ ٝ‬ثش‪ٛ‬ا٘یٓ یه ٔشس ضا و‪ ٝ‬ث‪ ٝ‬اضص ضؾیس‪ ٜ‬اؾز ضا‬
‫فبیس‪ ٜ‬ای و‪ override ٝ‬وطزٖ ٔشس‪ٞ‬ب ایٗ اؾز و‪ ٝ‬والؼ ‪ٚ‬اِس یه ٔشس ضا سٗطیف ٔی و‪ٙ‬س و‪ ٝ‬وّیبر ‪ ٚ‬اؾبؼ یه وبض ضا ا٘ؼبْ ٔی ز‪ٞ‬س ‪ٞ ٚ‬ط والؼ فطظ٘س‬
‫ٔی س‪ٛ‬ا٘س ثب س‪ٛ‬ػ‪ ٝ‬ث‪٘ ٝ‬یبظ ذ‪ٛ‬ز اٖٕبِی ضا ث‪ ٝ‬ایٗ ٔشس ايبف‪ ٝ‬و‪ٙ‬س) ث‪ ٝ‬ایٗ ٔٗ‪ٙ‬ی و‪ ٝ‬ث‪ ٝ‬یه وبضثطز اٖٕبَ زیٍطی ضا ايبف‪ ٝ‬و‪ٙ‬یٓ) ثطای ٔظبَ ث‪ ٝ‬ثط٘بٔ‪ ٝ‬ظیط زلز‬
‫و‪ٙ‬یس‪:‬‬

‫{‪class Animal‬‬

‫{)(‪public void move‬‬


‫;)"‪System.out.println("Animals can move‬‬
‫}‬
‫}‬

‫{‪class Dog extends Animal‬‬

‫{)(‪public void move‬‬


‫;)"‪System.out.println("Dogs can walk and run‬‬
‫}‬
‫}‬

‫{‪public class TestDog‬‬

‫{)][‪public static void main(String args‬‬


‫‪Animal a = new Animal(); // Animal reference and object‬‬
‫‪Animal b = new Dog(); // Animal reference but Dog object‬‬

‫‪a.move();// runs the method in Animal class‬‬

‫‪b.move();//Runs the method in Dog class‬‬


‫}‬
‫}‬

‫ذط‪ٚ‬ػی ثط٘بٔ‪ ٝ‬ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪Animals can move‬‬


‫‪Dogs can walk and run‬‬

‫‪120‬‬
move ‫ ایٗ ٔشس‬ٝ‫ٍبٔی و‬ٙٞ ‫ اؾز) دؽ‬ٜ‫ی قس‬ٞ‫ ٔمساضز‬Dog ‫ِی ثب قیئی اظ والؼ‬ٚ ‫ اؾز‬Animal ‫ٔ والؼ‬ٛ٘ ‫ز یه اظ‬ٛ‫ ذ‬b ‫ قئ‬ٝ‫یس و‬ٙ‫زض ٔظبَ ثبال ٔی ثی‬

ُ‫ٍبْ وبٔذبی‬ٙٞ ‫ٔ قئ‬ٛ٘ ٖ‫ ُٖٕ چه وطز‬ٝ‫ز) زِیُ ایٗ ُٖٕ ایٗ اؾز و‬ٛ‫ اػطا ٔی ق‬Dog ‫ والؼ‬ٝ‫ٌ ث‬ٛ‫ ٔطث‬move ‫یٓ ٔشس‬ٙ‫ا٘ی ٔی و‬ٛ‫اظ ایٗ والؼ ضا فطاذ‬
)‫یٗ اسفبلی ٔی افشس‬ٙ‫بثطایٗ زض والؼ ثبال چ‬ٙ‫ز) ث‬ٛ‫ ایٗ والؼ اػطا ٔی ق‬ٝ‫ٌ ث‬ٛ‫ی وطزیٓ ٔشس ٔطث‬ٞ‫ ٔمساض ز‬Dog ‫ٔ قئ ضا ثب والؼ‬ٛ٘ ٖٛ‫ چ‬ٚ ‫ز‬ٛ‫ثطضؾی ٔی ق‬
:‫یس‬ٙ‫ و‬ٝ‫ػ‬ٛ‫ ٔظبَ ظیط س‬ٝ‫حبَ ث‬

class Animal{

public void move(){


System.out.println("Animals can move");
}
}

class Dog extends Animal{

public void move(){


System.out.println("Dogs can walk and run");
}
public void bark(){
System.out.println("Dogs can bark");
}
}

public class TestDog{

public static void main(String args[]){


Animal a = new Animal(); // Animal reference and object
Animal b = new Dog(); // Animal reference but Dog object

a.move();// runs the method in Animal class


b.move();//Runs the method in Dog class
b.bark();
}
}

:‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ ثبال ث‬ٝٔ‫ػی ثط٘ب‬ٚ‫ذط‬

TestDog.java:30: cannot find symbol


symbol : method bark()
location: class Animal
b.bark();
^

121
‫‪ b‬یه قئ اظ والؼ ‪ Animal‬ث‪ٛ‬ز‪ ٚ ٜ‬والؼ ‪ٔ Animal‬شسی ث‪٘ ٝ‬بْ ‪٘ bark‬ساضز ‪ ٚ‬ایٗ ٔشس‬ ‫اػطای ایٗ ثط٘بٔ‪ٕٔ ٝ‬ىٗ ٘ج‪ٛ‬ز‪ ٚ ٜ‬ذُب ٔی ز‪ٞ‬س) ظیطا و‪ ٝ‬قئ‬
‫ٔطث‪ ٌٛ‬ث‪ ٝ‬والؼ ‪ Dog‬اؾز) دؽ اٌط ٔشسی زض والؼ ‪ٚ‬اِس ٔ‪ٛ‬ػ‪ٛ‬ز ثبقس ‪ٔ ٚ‬ب آٖ ضا زض والؼ فطظ٘س ‪ٕ٘ override‬بییٓ‪ ،‬حبَ اٌط قئی اظ ٘‪ ٔٛ‬والؼ ‪ٚ‬اِس‬
‫سٗطیف و‪ٙ‬یٓ ‪ِٚ‬ی ثب یه قئ والؼ فطظ٘س ٔمساض ز‪ٞ‬ی ٕ٘بییٓ زض ایٗ ن‪ٛ‬ضر ٔشس‪ٞ‬بیی و‪ ٝ‬فطاذ‪ٛ‬ا٘ی ٔی و‪ٙ‬یٓ ٔشس‪ٞ‬بی والؼ فطظ٘س ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز) أب اٌط ٔشسی‬
‫فمٍ ٔطث‪ ٌٛ‬ث‪ ٝ‬والؼ فطظ٘س ثبقس ثب اؾشفبز‪ ٜ‬اظ ایٗ ض‪ٚ‬ـ ٕ٘ی س‪ٛ‬اٖ آٖ ٔشس ضا فطاذ‪ٛ‬ا٘ی ٕ٘‪ٛ‬ز ‪.‬‬

‫قَاًیي ‪ override‬کزدى هتذّا‬

‫ل‪ٛ‬اٖس ‪ ٚ‬ل‪ٛ‬ا٘یٗ ظیط ‪ٍٙٞ‬بْ ‪ override‬وطزٖ ٔشس‪ٞ‬ب نبزق اؾز‪.‬‬

‫دبضأشط‪ٞ‬بی ‪ٚ‬ض‪ٚ‬زی ٔشس ٔطث‪ ٌٛ‬ث‪ ٝ‬والؼ فطظ٘س ثبیس زلیمب ‪ٕٞ‬ب٘‪ٙ‬س دبضأشط‪ٞ‬بی ‪ٚ‬ض‪ٚ‬زی ٔشس ٔطث‪ ٌٛ‬ث‪ ٝ‬والؼ دسض ثبقس ‪ ٓٞ ٚ‬اظ ٘ٓط سٗساز دبضأشط‪ٞ‬ب‬ ‫‪‬‬

‫‪ ٓٞ ٚ‬اظ ٘ٓط ٘‪ ٔٛ‬دبضأشط ‪ٞ‬ب یىی ثبقس‪.‬‬

‫٘‪ ٔٛ‬ثبظٌكشی ٔشس ‪ override‬قس‪ ٜ‬ثبیس ‪ ٔٛ٘ ٕٔٛٙٞ‬ثبظٌكشی ٔشس والؼ دسض ثبقس ‪ ٚ‬یب یه ظیط٘‪ (sybtype) ٔٛ‬اظ ٘‪ ٔٛ‬ثبظٌكشی ٔشس والؼ دسض‬ ‫‪‬‬

‫ثبقس‪.‬‬

‫ؾُح زؾشطؾی ٔشس والؼ فطظ٘س ٕ٘ی س‪ٛ‬ا٘س ٔحس‪ٚ‬ز سط اظ والؼ دسض ثبقس ثطای ٔظبَ اٌط زض والؼ ‪ٚ‬اِس ٔشس ث‪ ٝ‬قىُ ‪ public‬سٗطیف قس‪ ٜ‬اؾز‬ ‫‪‬‬

‫ٔشس ‪ override‬قس‪ٕ٘ ٜ‬ی س‪ٛ‬ا٘س ‪ private‬یب ‪ protected‬ثبقس‪.‬‬

‫ٔشسی و‪ ٝ‬ث‪ ٝ‬ن‪ٛ‬ضر ‪ final‬سٗطیف قس‪ ٜ‬ثبقس ٕ٘ی س‪ٛ‬ا٘س ‪ override‬ق‪ٛ‬ز‪.‬‬ ‫‪‬‬

‫ٔشسی و‪ ٝ‬ث‪ ٝ‬ن‪ٛ‬ضر ‪ static‬سٗطیف ق‪ٛ‬ز ضا ٕ٘ی س‪ٛ‬اٖ ‪ override‬وطز أب ٔی س‪ٛ‬اٖ ز‪ٚ‬ثبض‪ ٜ‬سٗطیف وطز‪.‬‬ ‫‪‬‬

‫اٌط ٕ٘ی س‪ٛ‬اٖ ٔشسی ضا ث‪ ٝ‬اضص ثطز ٕ٘ی س‪ٛ‬اٖ آٖ ضا ‪ override‬وطز‪.‬‬ ‫‪‬‬

‫‪ final‬یب ‪ private‬سٗطیف ٘كس‪ ٜ‬اؾز ضا‬ ‫زض زاذُ یه دىیغ یه والؼ فطظ٘س ٔی س‪ٛ‬ا٘س ‪ٔ ٕٝٞ‬شس‪ٞ‬بیی و‪ ٝ‬زض والؼ ‪ٚ‬اِس ذ‪ٛ‬ز زاضز ‪ ٚ‬ث‪ٖٛٙ ٝ‬اٖ‬ ‫‪‬‬

‫‪override‬و‪ٙ‬س) أب اٌط زض دىیغ زیٍط ثبقس ٔشس والؼ ‪ٚ‬اِس ثبیس ‪٘ final‬جبقس ‪ٕٞ ٚ‬چ‪ٙ‬یٗ ‪ public‬یب ‪٘ protected‬یع ثبقس‪.‬‬

‫یه ٔشس ‪ override‬قس‪ ٜ‬زض والؼ فطظ٘س ٔی س‪ٛ‬ا٘س ‪ٞ‬ط ‪ exception‬چه ٘كس‪ ٜ‬ای ضا فطاذ‪ٛ‬ا٘ی و‪ٙ‬س ثس‪ ٖٚ‬ایٗ و‪ ٝ‬الظْ ثبقس و‪ٔ ٝ‬شس والؼ ‪ٚ‬اِس‬ ‫‪‬‬

‫‪ ٓٞ‬آٖ ‪ exception‬ضا فطاذ‪ٛ‬ا٘ی وطز‪ ٜ‬ثبقس) أب زض ٔ‪ٛ‬ضز ‪ٞ exception‬بی چه قس‪ٔ ٜ‬شس والؼ فطظ٘س ٕ٘ی س‪ٛ‬ا٘س ‪ٞ exception‬بی چه قس‪ ٜ‬ی‬
‫ثیكشط اظ ٔشس والؼ ‪ٚ‬اِس ضا نسا و‪ٙ‬س‪.‬‬

‫استفادُ اس کلوِ کلیذی‪super‬‬

‫ث‪ٖٛٙ ٝ‬اٖ یبز آ‪ٚ‬ضی ٔی ٌ‪ٛ‬ییٓ و‪ ٝ‬ثطای ایٗ و‪ ٝ‬زض زاذُ ٔشس ‪ override‬قس‪ ٜ‬ثش‪ٛ‬ا٘یٓ ٔشس والؼ ‪ٚ‬اِس ضا فطاذ‪ٛ‬ا٘ی و‪ٙ‬یس اظ وّٕ‪ ٝ‬وّیسی ‪ super‬اؾشفبز‪ٔ ٜ‬ی‬
‫و‪ٙ‬یٓ ثطای ٔظبَ ث‪ ٝ‬ثط٘بٔ‪ ٝ‬ظیط س‪ٛ‬ػ‪ ٝ‬و‪ٙ‬یس‪:‬‬

‫{‪class Animal‬‬

‫{)(‪public void move‬‬


‫;)"‪System.out.println("Animals can move‬‬

‫‪122‬‬
‫}‬
‫}‬

‫{‪class Dog extends Animal‬‬

‫{)(‪public void move‬‬


‫‪super.move(); // invokes the super class method‬‬
‫;)"‪System.out.println("Dogs can walk and run‬‬
‫}‬
‫}‬

‫{‪public class TestDog‬‬

‫{)][‪public static void main(String args‬‬

‫‪Animal b = new Dog(); // Animal reference but Dog object‬‬


‫‪b.move(); //Runs the method in Dog class‬‬

‫}‬
‫}‬

‫ذط‪ٚ‬ػی ثط٘بٔ‪ ٝ‬ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪Animals can move‬‬


‫‪Dogs can walk and run‬‬

‫‪Abstract‬‬

‫آیب سب ث‪ ٝ‬حبَ ث‪ ٝ‬فطای‪ٙ‬س اضؾبَ یه ایٕیُ زلز وطز‪ ٜ‬ایس) قٕب یه ایٕیُ ضا سبیخ ٔی و‪ٙ‬یس ‪ ٚ‬آزضؼ ٌیط٘س‪ٛٔ ٚ ٜ‬ي‪ ٔٛ‬ضا زاذُ آٖ ٔی ٘‪ٛ‬یؿیس) ؾذؽ ثط ض‪ٚ‬ی‬
‫زوٕ‪ send ٝ‬وّیه ٔی و‪ٙ‬یس) حبَ چ‪ٔ ٝ‬ی ق‪ٛ‬ز) دیبْ قٕب سجسیُ ث‪ ٝ‬چ‪ ٝ‬ثؿش‪ ٝ‬زاز‪ٞ ٜ‬بیی ٔی ق‪ٛ‬ز؟ دیبْ قٕب اظ چ‪ ٝ‬د‪ٛ‬ضسی اضؾبَ ٔی ق‪ٛ‬ز؟ دیبْ قٕب ث‪ ٝ‬وؼب‬
‫اضؾبَ ٔی ق‪ٛ‬ز؟ دیبْ قٕب ثب چ‪ ٝ‬دط‪ٚ‬سىّی اضؾبَ ٔی ق‪ٛ‬ز) چ‪ ٝ‬اٖٕبِی لجُ اظ اضؾبَ ثط ض‪ٚ‬ی دیبْ قٕب ن‪ٛ‬ضر ٔی ٌیطز؟ چ‪ ٝ‬دطزاظـ ‪ٞ‬بیی زض ‪mail server‬‬

‫ثط ض‪ٚ‬ی دیبْ قٕب ا٘ؼبْ ٔی ق‪ٛ‬ز؟ دیبْ قٕب ‪ٚ‬لشی س‪ٛ‬ؾٍ ٌیط٘س‪ ٜ‬زضیبفز قس زض وبٔذی‪ٛ‬سط ٌیط٘س‪ ٜ‬چ‪ ٝ‬دطزاظـ ‪ٞ‬بیی ثط ض‪ٚ‬ی آٖ ا٘ؼبْ ذ‪ٛ‬ا‪ٞ‬س قس؟‬

‫قبیس قٕب ث‪ٞ ٝ‬یچ یه اظ ایٗ ؾ‪ٛ‬االر فىط ٘ىطز‪ ٜ‬ثبقیس) قٕب فمٍ دیبْ ذ‪ٛ‬ز ضا ث‪ ٝ‬آٖ ن‪ٛ‬ضسی و‪ٔ ٝ‬ی ذ‪ٛ‬ا‪ٞ‬یس سبیخ ٔی و‪ٙ‬یس ‪ ٚ‬ثط ض‪ٚ‬ی زوٕ‪ ٝ‬اضؾبَ وّیه‬
‫ٔی و‪ٙ‬یس ‪ ٚ‬ثب ػعئیبر اضؾبَ ٔب٘‪ٙ‬س ‪ٕٞ‬ب٘چ‪ ٝ‬و‪ٌ ٝ‬فش‪ ٝ‬قس وبضی ٘ساضیس) اِجش‪٘ ٝ‬یبظی ‪٘ ٓٞ‬یؿز و‪ ٝ‬ثب آٖ وبضی زاقش‪ ٝ‬ثبقیس) قٕب فمٍ ‪ٕٞ‬یٗ ضا ثسا٘ی و‪ ٝ‬چٍ‪ٝ٘ٛ‬‬
‫‪ٔ abstraction‬ی ٌ‪ٛ‬ی‪ٙ‬س ‪. Abstraction‬ث‪ ٝ‬ایٗ ٔٗ‪ٙ‬ی اؾز و‪ ٝ‬قٕب ثب ایس‪ٞ ٜ‬ب وبض و‪ٙ‬یس ٘‪ٝ‬‬ ‫ثبیس ایٕیُ ضا اضؾبَ و‪ٙ‬یس وبفی اؾز) ث‪ ٝ‬ایٗ ٔف‪ ْٟٛ‬ا٘شعأ یب‬
‫ضذساز‪ٞ‬ب) زض ثط٘بٔ‪ٛ٘ ٝ‬یؿی قئ ٌطا ٔب ثؿیبض اظ ‪ abstraction‬اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬یٓ) ظیطا و‪ ٝ‬ثبیس زض َطاحی ٘طْ افعاض ثؿیبضی اظ ػعئیبر ٘طْ افعاض ضا اظ زیس‬
‫وبضثطاٖ ٔرفی ٍ٘‪ ٝ‬زاقز ‪ ٚ‬فمٍ وبضثطاٖ ثبیس ثب ٘ح‪ ٜٛ‬وبضایی یه ثط٘بٔ‪ ٝ‬آق‪ٙ‬ب ثبق‪ٙ‬س) ث‪ٖ ٝ‬جبضر زیٍط وبضثطاٖ ثبیس اَالٖبسی زض ٔ‪ٛ‬ضز ایٗ و‪ٞ ٝ‬طقئ چ‪ٝ‬‬

‫‪123‬‬
‫وبضی ا٘ؼبْ ٔی ز‪ٞ‬س زاقش‪ ٝ‬ثبق‪ٙ‬س ‪ِٚ‬ی ٘یبظی ٘یؿز و‪ ٝ‬ثسا٘‪ٙ‬س ‪ٞ‬ط قئ چٍ‪ ٝ٘ٛ‬یه ُٖٕ ضا ا٘ؼبْ ٔی ز‪ٞ‬س) زض ظثبٖ ثط٘بٔ‪ٛ٘ ٝ‬یؿی ػب‪ٚ‬ا ٔف‪abstraction ْٟٛ‬‬

‫ضا ٔی س‪ٛ‬اٖ ثب اؾشفبز‪ ٜ‬اظ والؼ ‪ٞ‬بی ‪ٞ interface ٚ abstract‬ب ٔ‪ٛ‬ضز اؾشفبز‪ ٜ‬لطاض زاز) زض ازأ‪ ٝ‬ث‪ ٝ‬ثطضؾی ایٗ لؿٕز ‪ٞ‬بی ػب‪ٚ‬ا ذ‪ٛ‬ا‪ٞ‬یٓ دطزاذز ‪.‬‬

‫کالس ّای‪Abstract‬‬

‫والؾی و‪ ٝ‬ثب وّٕ‪ ٝ‬وّیسی ‪ abstract‬سٗطیف ٔی ق‪ٛ‬ز والؼ ‪٘ abstract‬بٔیس‪ٔ ٜ‬ی ق‪ٛ‬ز) والؼ ‪ٞ‬بی ‪ abstract‬زاضای ذه‪ٛ‬نیبسی ‪ٞ‬ؿش‪ٙ‬س و‪ ٝ‬ایٗ ذه‪ٛ‬نیبر‬
‫ٖجبضس‪ٙ‬س اظ‪:‬‬

‫والؼ ‪ٞ‬بی ‪ٕٔ abstract‬ىٗ اؾز و‪ ٝ‬زض زض‪ ٖٚ‬ذ‪ٛ‬ز ٔشس ‪ abstract‬زاقش‪ ٝ‬ثبق‪ٙ‬س ‪ ٚ‬یب ٘ساقش‪ ٝ‬ثبق‪ٙ‬س) ٔشس ‪ٔabtract‬شسی اؾز و‪ ٝ‬فمٍ سٗطیف قس‪ٜ‬‬ ‫‪‬‬

‫اؾز ‪ٞ ٚ‬یچ ثس٘‪ ٝ‬ای ٘ساضز‪ $‬زض ازأ‪ٕٞ ٝ‬یٗ ُّٔت س‪ٛ‬يیح ٔی ز‪ٞ‬یٓ)‬

‫اٌط یه والؼ ثر‪ٛ‬ا‪ٞ‬س ٔشس ‪ abstract‬زاقش‪ ٝ‬ثبقس ثبیس ذ‪ٛ‬ز آٖ والؼ حشٕب ‪ abstract‬ثبقس‪.‬‬ ‫‪‬‬

‫اظ والؾی و‪ ٝ‬ث‪ ٝ‬قىُ ‪ abstract‬سٗطیف قس‪ ٜ‬ثبقس ٕ٘ی س‪ٛ‬اٖ ‪ٞ‬یچ قیئی ؾبذز‪.‬‬ ‫‪‬‬

‫ثطای ایٗ و‪ ٝ‬اظ یه والؼ ‪ abstract‬اؾشفبز‪ ٜ‬و‪ٙ‬یٓ قٕب ثبیس اظ آٖ ث‪ ٝ‬یه والؼ زیٍط اضص ثطی و‪ٙ‬یس ‪ٔ ٚ‬شس‪ٞ‬بی ‪ abstract‬آٖ ضا زض زض‪ ٖٚ‬والؼ‬ ‫‪‬‬

‫فطظ٘س دیبز‪ ٜ‬ؾبظی ٕ٘بییس‪.‬‬

‫اٌط اظ والؼ ‪ abstract‬اضص ثطی ٕ٘بییٓ ثبیس ‪ ٕٝٞ‬ی ٔشس‪ٞ‬بی ‪ abstract‬آٖ ضا دیبز‪ ٜ‬ؾبظی ٕ٘بییٓ‪.‬‬ ‫‪‬‬

‫ثطای ٔظبَ ثط٘بٔ‪ ٝ‬ای ضا زض ظیط آ‪ٚ‬ضز‪ ٜ‬ایٓ و‪ ٝ‬ثسا٘یس ایٗ ٘‪ ٔٛ‬والؼ چٍ‪ٛٔ ٝ٘ٛ‬ضز اؾشفبز‪ ٜ‬لطاض ٔی ٌیطز) زض ثط٘بٔ‪ ٝ‬ظیط ٔكب‪ٞ‬س‪ٔ ٜ‬ی و‪ٙ‬یس و‪ ٝ‬ثطای سٗطیف‬
‫والؼ ‪ abstract‬اظ وّٕ‪ abstract ٝ‬اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز‪.‬‬

‫‪/* File name : Employee.java */‬‬


‫‪public abstract class Employee‬‬
‫{‬
‫;‪private String name‬‬
‫;‪private String address‬‬
‫;‪private int number‬‬
‫)‪public Employee(String name, String address, int number‬‬
‫{‬
‫;)"‪System.out.println("Constructing an Employee‬‬
‫;‪this.name = name‬‬
‫;‪this.address = address‬‬
‫;‪this.number = number‬‬
‫}‬
‫)(‪public double computePay‬‬
‫{‬
‫;)"‪System.out.println("Inside Employee computePay‬‬
‫;‪return 0.0‬‬
‫}‬
‫)(‪public void mailCheck‬‬
‫{‬
‫‪System.out.println("Mailing a check to " + this.name‬‬
‫‪124‬‬
+ " " + this.address);
}
public String toString()
{
return name + " " + address + " " + number;
}
public String getName()
{
return name;
}
public String getAddress()
{
return address;
}
public void setAddress(String newAddress)
{
address = newAddress;
}
public int getNumber()
{
return number;
}
}

abstract ‫ا ٔی ثبقس) ایٗ والؼ یه والؼ‬ٚ‫ب زض ػب‬ٞ ‫ والؼ‬ٝ‫س ثمی‬ٙ٘‫ ٔب‬Employee ‫ والؼ‬abstract ‫بی‬ٞ‫ غیط اظ ٔشس‬ٝ‫ ث‬ٝ‫یس و‬ٙ‫ ٔی و‬ٜ‫س‬ٞ‫زض وس ثبال ٔكب‬

‫ قىُ ظیط اظ‬ٝ‫ ث‬ٚ ‫ یه قئ ثؿبظیس‬new ‫ وّیسی‬ّٕٝ‫یس ثب و‬ٞ‫ا‬ٛ‫ زاضز) حبَ اٌط اظ ایٗ والؼ ثر‬constructor ‫ یه‬ٚ ‫ ٔشس‬7 ٚ ‫ فیّس‬3 ‫ٕیٗ والؼ‬ٞ ‫ِی‬ٚ ‫اؾز‬
:‫یس‬ٙ‫ و‬ٜ‫آٖ اؾشفبز‬

/* File name : AbstractDemo.java */


public class AbstractDemo
{
public static void main(String [] args)
{
/* Following is not allowed and would raise error */
Employee e = new Employee("George W.", "Houston, TX", 43);

System.out.println("\n Call mailCheck using Employee reference--");


e.mailCheck();
}
}

: ‫س زاز‬ٞ‫ا‬ٛ‫ قٕب ذ‬ٝ‫ ذُبی ظیط ضا ث‬ٝٔ‫یس ثط٘ب‬ٙ‫ ضا اػطا و‬ٝٔ‫ ثط٘ب‬ٚ ‫یس‬ٞ‫اٌط ایٗ وبض ضا ا٘ؼبْ ز‬

125
Employee.java:46: Employee is abstract; cannot be instantiated
Employee e = new Employee("George W.", "Houston, TX", 43);
^
1 error

. ٓ‫ ای‬ٜ‫يیح زاز‬ٛ‫ب ضا س‬ٞ ‫ اظ ایٗ والؼ‬ٜ‫ اؾشفبز‬ٜٛ‫ ٘ح‬ٝٔ‫یچ قیئی ؾبذز) زض ازا‬ٞ ٖ‫ا‬ٛ‫ اؾز ٕ٘ی س‬abstract ٝ‫ اظ والؾی و‬ٝ‫ی اؾز و‬ٙٗٔ ٗ‫ایٗ ثسی‬

Abstract‫ٍراثت اس کالس ّای‬

.ٓ‫ ای‬ٜ‫ اضص ثجطیٓ) ایٗ وبض ضا زض وس ظیط ا٘ؼبْ زاز‬ٝ‫بی زیٍط ث‬ٞ ‫س والؼ‬ٙ٘‫ ضا ٔب‬Employee ‫نیبر والؼ‬ٛ‫ا٘یٓ ذه‬ٛ‫ٔب ٔی س‬

/* File name : Salary.java */


public class Salary extends Employee
{
private double salary; //Annual salary
public Salary(String name, String address, int number, double
salary)
{
super(name, address, number);
setSalary(salary);
}
public void mailCheck()
{
System.out.println("Within mailCheck of Salary class ");
System.out.println("Mailing check to " + getName()
+ " with salary " + salary);
}
public double getSalary()
{
return salary;
}
public void setSalary(double newSalary)
{
if(newSalary>= 0.0)
{
salary = newSalary;
}
}
public double computePay()
{
System.out.println("Computing salary pay for " + getName());
return salary/52;
}
}

126
‫بی والؼ‬ٞ‫ ٔشس‬ٚ ‫ب‬ٞ ‫ اظ سٕبٔی فیّس‬ٚ ‫ قئ ثؿبظیس‬Salary ‫ا٘یس اظ والؼ‬ٛ‫ قیئی ثؿبظیس أب ٔی س‬Employee ‫ا٘یس اظ والؼ‬ٛ‫ قٕب ٕ٘ی س‬ٝٔ‫زض ایٗ ثط٘ب‬
.‫یس‬ٙ‫ و‬ٜ‫س وس ظیط اؾشفبز‬ٙ٘‫ٔب‬Employee

/* File name : AbstractDemo.java */


public class AbstractDemo
{
public static void main(String [] args)
{
Salary s = new Salary("MohdMohtashim", "Ambehta, UP", 3, 3600.00);
Employee e = new Salary("John Adams", "Boston, MA", 2, 2400.00);

System.out.println("Call mailCheck using Salary reference --");


s.mailCheck();

System.out.println("\n Call mailCheck using Employee reference--");


e.mailCheck();
}
}

: ‫ز‬ٛ‫س ث‬ٞ‫ا‬ٛ‫ قىُ ظیط ذ‬ٝ‫ ظیط ث‬ٝٔ‫ػی ثط٘ب‬ٚ‫ذط‬

Constructing an Employee
Constructing an Employee
Call mailCheckusing Salary reference --
Within mailCheck of Salary class
ailing check to MohdMohtashim with salary 3600.0

Call mailCheck using Employee reference--


Within mailCheck of Salary class
ailing check to John Adams with salary 2400.

Abstract‫هتذّای‬

‫ ؾبظی‬ٜ‫س آٖ ٔشس ضا دیبز‬ٙٞ‫ا‬ٛ‫ ٔی ذ‬ٝ‫قی و‬ٚ‫ ض‬ٝ‫طوساْ ث‬ٞ ‫ِی‬ٚ ‫س‬ٙ‫ ثبق‬ٝ‫یؿبٖ یه ٔشس ٔكرم زض زاذُ والؾكبٖ زاقش‬ٛ٘ ٝٔ‫ ی ثط٘ب‬ٕٝٞ ٝ‫یس و‬ٞ‫ا‬ٛ‫اٌط قٕب ثر‬
‫ز ضا‬ٛ‫ ؾبظی ذبل ذ‬ٜ‫بی فطظ٘س دیبز‬ٞ ‫ط وساْ اظ والؼ‬ٞ ٚ ‫یس‬ٙ‫ سٗطیف و‬abstract ‫ضر‬ٛ‫ ن‬ٝ‫اِس ث‬ٚ ‫ا٘یس ثطای ایٗ وبض ٔشس ضا زض والؼ‬ٛ‫ قٕب ٔی س‬،‫س‬ٙٙ‫و‬
.‫س‬ٙ‫نیبر ظیط ٔی ثبق‬ٛ‫ زاضای ذه‬abstract ‫بی‬ٞ ‫س) ٔشس‬ٙ‫ ثبق‬ٝ‫ضز ٘ٓط زاقش‬ٛٔ ‫ ٔشس‬ٝ‫٘ؿجز ث‬

.‫ز‬ٛ‫ ٔی ق‬ٜ‫ضز‬ٚ‫ آ‬abstract ‫ وّیسی‬ّٕٝ‫ب اظ و‬ٞ ‫ثطای سٗطیف ایٗ ٔشس‬ 

127
.‫یس‬ٞ‫ ضا لجُ اظ ٘بْ ٔشس لطاض ز‬abstract ‫ وّیسی‬ّٕٝ‫ ثبیس و‬abstract ‫ٍبْ سٗطیف ٔشس‬ٙٞ ‫قٕب‬ 

.‫ ای ٘ساضز‬ٝ٘‫یچ ثس‬ٞ ‫ِی ایٗ ٔشس‬ٚ ‫ فمٍ لؿٕز سٗطیف ٔشس ضا زاضز‬abstract ‫یه ٔشس‬ 

.‫ز‬ٛ‫ ٔی ق‬ٜ‫ِٗ یب ; اؾشفبز‬ٛ‫ ثطای ٔشس اظ ٖالٔز ؾٕی و‬ٝ٘‫قشٗ ثس‬ٛ٘ ٚ ‫ن‬ّٛ‫ دبیبٖ یه ث‬ٚ ٔٚ‫ ػبی ٖالٔز قط‬ٝ‫ ث‬abstract ‫زض یه ٔشس‬ 

.‫ اؾز‬ٜ‫ قس‬ٜ‫ضز‬ٚ‫ آ‬abstract ‫زض وس ظیط یه ٔظبَ اظ ٔشس‬

public abstract class Employee


{
private String name;
private String address;
private int number;

public abstract double computePay();

//Remainder of class definition


}

‫ اظ‬ٝ‫ط والؾی و‬ٞ ٗ‫ی‬ٙ‫ٕچ‬ٞ ٚ ‫ ثبقس‬ٜ‫ سٗطیف قس‬abstract ‫ضر‬ٛ‫ ن‬ٝ‫ ٔشس ثبیس ث‬ٜ‫ والؼ زض ثط ٌیط٘س‬ٝ‫ ٔی ٌیطیٓ و‬ٝ‫ ٔیطؾیٓ ٘شیؼ‬abstract ‫ یه ٔشس‬ٝ‫لشی ث‬ٚ
‫ ؾبظی‬ٜ‫ضا دیبز‬computePay ‫ ٔشس‬ٝ‫ ٕ٘بییس و‬ٝ‫ػ‬ٛ‫ وس ظیط س‬ٝ‫س) ثطای ٔظبَ ث‬ٙ‫ ؾبظی و‬ٜ‫ ضا دیبز‬abstract ‫ ثبقس ثبیس ٔشس‬ٜ‫ ٔشس اضص ثطی وطز‬ٜ‫والؼ زض ثطٌیط٘س‬
.‫س‬ٙ‫ٔی و‬

/* File name : Salary.java */


public class Salary extends Employee
{
private double salary; // Annual salary

public double computePay()


{
System.out.println("Computing salary pay for " + getName());
return salary/52;
}

//Remainder of class definition


}

128
‫ای‪ٙ‬شطفیؽ ‪ٞ‬ب‬

‫ای‪ٙ‬شطفیؽ یه ٘‪ ٔٛ‬زض ػب‪ٚ‬ا اؾز و‪ ٝ‬قجی‪ ٝ‬والؾی اؾز و‪ ٝ‬زاضای ٔشس‪ٞ‬بی ‪ abstract‬اؾز ‪ٞ ٚ‬یچ ٔشسی ٘ساضز و‪ ٝ‬دیبز‪ ٜ‬ؾبظی وطز‪ ٜ‬ثبقس) اٌط والؾی ثر‪ٛ‬ا‪ٞ‬س‬
‫‪ implements‬اؾشفبز‪ ٜ‬و‪ٙ‬س) ‪ٕٞ‬ب٘‪ٙ‬س والؼ ‪ٞ‬بی ‪ abstract‬زض زاذُ‬ ‫اظ یه ای‪ٙ‬شطفیؽ اضص ثطی زاقش‪ ٝ‬ثبقس ثبیس آٖ ضا دیبز‪ ٜ‬ؾبظی و‪ٙ‬س ‪ ٚ‬اظ وّٕ‪ ٝ‬وّیسی‬
‫ای‪ٙ‬شطفیؽ ٔی س‪ٛ‬اٖ طبثز ‪ٔ ٚ‬شس دیف فطو ‪ٔ ٚ‬شس اؾشبسیه ‪ )) ٚ‬زاقز) ٔشس‪ٞ‬بی اؾشبسیه ضا ٔی س‪ٛ‬اٖ زض زاذُ ای‪ٙ‬شطفیؽ سٗطیف وطز) ٘‪ٛ‬قشٗ یه ای‪ٙ‬شطفیؽ‬
‫قجی‪ٛ٘ ٝ‬قشٗ یه والؼ اؾز) أب یه والؼ ‪ٚ‬یػٌی ‪ٞ‬ب ‪ ٚ‬ضفشبض‪ٞ‬بی اقیبء ضا قطح ٔی ز‪ٞ‬س ‪ِٚ‬ی یه ای‪ٙ‬شطفیؽ قبُٔ ضفشبض‪ٞ‬بیی اؾز و‪ ٝ‬والؼ ‪ٞ‬بیی و‪ٝ‬‬
‫لطاض اؾز ای‪ٙ‬شطفیؽ ضا دیبز‪ ٜ‬ؾبظی و‪ٙٙ‬س ثبیس اظ آٖ ضفشبض ‪ٞ‬ب سجٗیز و‪ٙٙ‬س) ثطذالف والؼ ‪ٞ‬ب ٔشس‪ٞ‬بی ٔ‪ٛ‬ػ‪ٛ‬ز زض ای‪ٙ‬شطفیؽ زض ذ‪ٛ‬ز ای‪ٙ‬شطفیؽ سٗطیف ٕ٘ی‬
‫ق‪٘ٛ‬س ‪ ٚ‬والؾی و‪ ٝ‬ای‪ٙ‬شطفیؽ ضا دیبز‪ ٜ‬ؾبظی ٔی و‪ٙ‬س ثبیس آٖ ٔشس‪ٞ‬ب ضا سٗطیف و‪ٙ‬س) قجب‪ٞ‬ز ‪ٞ‬بی ای‪ٙ‬شطفیؽ ‪ ٚ‬والؼ زض ثرف ‪ٞ‬بی ظیط اؾز ‪:‬‬

‫یه ای‪ٙ‬شطفیؽ ٔی س‪ٛ‬ا٘س ٔب٘‪ٙ‬س والؼ ‪ٞ‬ب ث‪ٞ ٝ‬ط سٗساز و‪ٔ ٝ‬ی ذ‪ٛ‬ا‪ٞ‬س ٔشس زاقش‪ ٝ‬ثبقس‪.‬‬ ‫‪‬‬

‫‪ٕٞ‬ب٘‪ٙ‬س والؼ ‪ٞ‬ب ای‪ٙ‬شطفیؽ ‪ٞ‬ب ضا زض زاذُ فبیُ ‪ٞ‬بیی ثب دؿ‪٘ٛ‬س ‪ٔ .java‬ی ٘‪ٛ‬یؿیٓ‪.‬‬ ‫‪‬‬

‫‪ٚ‬لشی و‪ ٝ‬یه ای‪ٙ‬شطفیؽ ضا وبٔذبیُ ٔی و‪ٙ‬یٓ ‪ ٚ‬انُالحبً ثبیز وس ث‪ٚ ٝ‬ػ‪ٛ‬ز ٔی آیس فبیُ ‪ٞ‬بی ثبیز وس ثب دؿ‪٘ٛ‬س ‪ .class‬ؾبذش‪ٔ ٝ‬ی ق‪ٛ‬ز‪.‬‬ ‫‪‬‬

‫ای‪ٙ‬شطفیؽ ‪ٞ‬ب زض دىیغ ‪ٞ‬ب لطاض زاض٘س ‪ ٚ‬ثبیز وس آ٘‪ٟ‬ب زض ؾبذشبض زایطوش‪ٛ‬ضی ٔش‪ٙ‬بْط لطاض زاضز ‪.‬‬ ‫‪‬‬

‫سفب‪ٚ‬س‪ٟ‬بیی و‪ ٝ‬یه ای‪ٙ‬شطفیؽ ثب یه والؼ زاضز چ‪ٙ‬سیٗ ٔ‪ٛ‬ضز اؾز و‪ٔ ٝ‬ی س‪ٛ‬اٖ ٔ‪ٛ‬اضز ظیط ضا ٘بْ ثطز ‪.‬‬

‫قٕب ٕ٘ی س‪ٛ‬ا٘یس اظ یه ای‪ٙ‬شطفیؽ یه قئ ثؿبظیس‪.‬‬ ‫‪‬‬

‫یه ای‪ٙ‬شطفیؽ ٕ٘ی س‪ٛ‬ا٘س ‪ constructor‬زاقش‪ ٝ‬ثبقس) ظیطا و‪ٕ٘ ٝ‬ی س‪ٛ‬اٖ ثب اؾشفبز‪ ٜ‬اظ وّٕ‪ ٝ‬وّیسی ‪ new‬یه قئ اظ ای‪ٙ‬شطفیؽ ؾبذز‪.‬‬ ‫‪‬‬

‫‪ ٕٝٞ‬ی ٔشس‪ٞ‬بی یه ای‪ٙ‬شطفیؽ اظ ٘‪ٔ abstract ٔٛ‬ی ثبق‪ٙ‬س ‪ ٚ‬ثس٘‪٘ ٝ‬ساض٘س‪.‬‬ ‫‪‬‬

‫یه ای‪ٙ‬شطفیؽ ٕ٘ی س‪ٛ‬ا٘س فیّس اؾشبسیه زاقش‪ ٝ‬ثبقس) س‪ٟٙ‬ب فیّس‪ٞ‬بیی و‪ٔ ٝ‬ی س‪ٛ‬ا٘س زض زاذُ ای‪ٙ‬شطفیؽ ‪ٚ‬ػ‪ٛ‬ز زاقش‪ ٝ‬ثبقس فیّس ‪ٞ‬بیی ‪ٞ‬ؿش‪ٙ‬س و‪ ٝ‬ثبیس ‪ٓٞ‬‬ ‫‪‬‬

‫ث‪ ٝ‬ن‪ٛ‬ضر ‪ ٓٞ ٚ final‬ث‪ ٝ‬ن‪ٛ‬ضر ‪ static‬سٗطیف ق‪٘ٛ‬س‪.‬‬

‫یه ای‪ٙ‬شطفیؽ ضا ٕ٘ی س‪ٛ‬اٖ ثب اؾشفبز‪ ٜ‬اظ وّٕ‪ ٝ‬وّیسی ‪ extends‬آ‪ٚ‬ضز ‪ ٚ‬ثطای ‪ٚ‬ضاطز حشٕب ثبیس اظ وّٕ‪ ٝ‬وّیسی ‪ implements‬اؾشفبز‪ ٜ‬وطز‪.‬‬ ‫‪‬‬

‫یه ای‪ٙ‬شطفیؽ ٔی س‪ٛ‬ا٘س چ‪ٙ‬سیٗ ای‪ٙ‬شطفیؽ زیٍط ضا ‪ extend‬و‪ٙ‬س ‪ ٚ‬اظ آ٘‪ٟ‬ب اضص ثجطز‪.‬‬ ‫‪‬‬

‫تعزیف ایٌتزفیس‬

‫زض وس ظیط سٗطیف ای‪ٙ‬شطفیؽ آ‪ٚ‬ضز‪ ٜ‬قس‪ ٜ‬اؾز‪:‬‬

‫‪/* File name : NameOfInterface.java */‬‬


‫;*‪import java.lang.‬‬
‫‪//Any number of import statements‬‬

‫‪public interface NameOfInterface‬‬


‫{‬
‫‪//Any number of final, static fields‬‬
‫‪129‬‬
‫\‪//Any number of abstract method declarations‬‬
‫}‬

‫ای‪ٙ‬شطفیؽ ‪ٞ‬ب ٔكرهبر ظیط ضا زاض٘س‪.‬‬

‫یه ای‪ٙ‬شطفیؽ ث‪ ٝ‬ن‪ٛ‬ضر يٕ‪ٙ‬ی یه ‪ abstract‬اؾز ‪ ٚ‬الظْ ٘یؿز و‪ ٝ‬قٕب اظ وّٕ‪ ٝ‬وّیسی ‪ٍٙٞ abstract‬بْ سٗطیف ای‪ٙ‬شطفیؽ اؾشفبز‪ ٜ‬و‪ٙ‬یس‪.‬‬ ‫‪‬‬

‫‪ٞ‬ط ٔشسی و‪ ٝ‬زض یه ای‪ٙ‬شطفیؽ اؾز ٘یع ث‪َٛ ٝ‬ض يٕ‪ٙ‬ی ‪ abstract‬اؾز ث‪ٙ‬بثطایٗ ‪ٍٙٞ‬بْ سٗطیف ٔشس‪ٞ‬ب ٘یبظی ث‪ ٝ‬اؾشفبز‪ ٜ‬اظ وّٕ‪ ٝ‬وّیسی ‪abstract‬‬ ‫‪‬‬

‫٘یؿز‪.‬‬

‫ٔشس‪ٞ‬بی ٔ‪ٛ‬ػ‪ٛ‬ز زض ای‪ٙ‬شطفیؽ ث‪ ٝ‬ن‪ٛ‬ضر يٕ‪ٙ‬ی ‪ٞ public‬ؿش‪ٙ‬س) ثطای ٔظبَ ث‪ ٝ‬وس ظیط زلز و‪ٙ‬یس‪:‬‬ ‫‪‬‬

‫‪/* File name : Animal.java */‬‬


‫{ ‪interface Animal‬‬

‫;)(‪public void eat‬‬


‫;)(‪public void travel‬‬
‫}‬

‫پیادُ ساسی ایٌتزفیس ّا‬

‫‪ٚ‬لشی یه والؼ یه ای‪ٙ‬شطفیؽ ضا دیبز‪ ٜ‬ؾبظی ٔی و‪ٙ‬س قٕب یه لطاض زاز ضا أًب ٔی و‪ٙ‬یس و‪ّٕٖ ٝ‬یبر ٌفش‪ ٝ‬قس‪ ٜ‬زض ای‪ٙ‬شطفیؽ ضا زض‪ ٖٚ‬والؼ ذ‪ٛ‬ز دیبز‪ٜ‬‬
‫‪ٗٔ abstract‬طفی ق‪ٛ‬ز ‪ ٚ‬زض غیط ایٗ‬ ‫ؾبظی و‪ٙ‬یس) اٌط یه والؼ ‪ ٕٝٞ‬ی ٔشس‪ٞ‬بی ٔ‪ٛ‬ػ‪ٛ‬ز زض ای‪ٙ‬شطفیؽ ضا دیبز‪ ٜ‬ؾبظی ٘ى‪ٙ‬س ثبیس ٔشس ٔطث‪ َٝٛ‬ث‪ ٝ‬ن‪ٛ‬ضر‬
‫ن‪ٛ‬ضر ثط٘بٔ‪ ٝ‬ذُب ذ‪ٛ‬ا‪ٞ‬س زاقز) یه والؼ ثطای ایٗ و‪ ٝ‬یه ای‪ٙ‬شطفیؽ ضا دیبز‪ ٜ‬ؾبظی ٕ٘بیس اظ وّٕ‪ ٝ‬وّیسی ‪ implements‬اؾشفبز‪ ٜ‬ذ‪ٛ‬ا‪ٞ‬س وطز) ایٗ وّٕ‪ٝ‬‬
‫وّیسی زض ظٔبٖ سٗطیف والؼ آ‪ٚ‬ضز‪ٔ ٜ‬ی ق‪ٛ‬ز ‪ٔ ٚ‬ب٘‪ٙ‬س وس ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪/* File name : MammalInt.java */‬‬


‫{‪public class MammalInt implements Animal‬‬

‫{)(‪public void eat‬‬


‫;)"‪System.out.println("Mammal eats‬‬
‫}‬

‫{)(‪public void travel‬‬


‫;)"‪System.out.println("Mammal travels‬‬
‫}‬

‫{)(‪public int noOfLegs‬‬


‫;‪return 0‬‬
‫}‬

‫‪130‬‬
‫{)][‪public static void main(String args‬‬
‫;)(‪MammalInt m = new MammalInt‬‬
‫;)(‪m.eat‬‬
‫;)(‪m.travel‬‬
‫}‬
‫}‬

‫ذط‪ٚ‬ػی ثط٘بٔ‪ ٝ‬ثبال ث‪ ٝ‬قىُ ظیط ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪:‬‬

‫‪Mammal eats‬‬
‫‪Mammal travels‬‬

‫ل‪ٛ‬ا٘ی‪ٙ‬ی ثطای دیبز‪ ٜ‬ؾبظی ٔشس‪ٞ‬بی ٔ‪ٛ‬ػ‪ٛ‬ز زض ای‪ٙ‬شطفیؽ ‪ٚ‬ػ‪ٛ‬ز زاضز و‪ ٝ‬ایٗ ل‪ٛ‬ا٘یٗ ٖجبضس‪ٙ‬س اظ ‪:‬‬

‫‪ٍٙٞ‬بْ دیبز‪ ٜ‬ؾبظی ٔشس ٖال‪ ٜٚ‬ثط ‪ٞ exception‬بی چه قس‪ ٜ‬ای و‪ ٝ‬زض ٔشس ای‪ٙ‬شطفیؽ ٔٗطفی قس‪ ٜ‬ا٘س ٘جبیس ‪ exception‬زیٍطی ضا ٔٗطفی وطز‪.‬‬ ‫‪‬‬

‫زض ٔشسی و‪ ٝ‬زض حبَ دیبز‪ ٜ‬ؾبظی اؾز سٗساز آضٌ‪ٔٛ‬بٖ ‪ٞ‬ب ‪ٔ ٔٛ٘ ٚ‬مساض ثبظٌكشی ثبیس ثب سٗساز آضٌ‪ٔٛ‬بٖ ‪ٔ ٚ‬مساض ثبظٌكشی ٔشس ای‪ٙ‬شطفیؽ یىی ثبقس ‪.‬‬ ‫‪‬‬

‫والؾی و‪ ٝ‬لهس دیبز‪ ٜ‬ؾبظی ای‪ٙ‬شطفیؽ ضا زاضز ٔی س‪ٛ‬ا٘س ذ‪ٛ‬ز ث‪ ٝ‬ن‪ٛ‬ضر ‪ abstract‬سٗطیف ق‪ٛ‬ز ث‪ٙ‬بثطایٗ ٘یبظی ٘یؿز و‪ٔ ٝ‬شس‪ٞ‬ب ضا دیبز‪ ٜ‬ؾبظی و‪ٙ‬س ‪.‬‬ ‫‪‬‬

‫‪ٍٙٞ‬بْ دیبز‪ ٜ‬ؾبظی ای‪ٙ‬شطفیؽ ‪ٞ‬ب ث‪ ٝ‬ل‪ٛ‬ا٘یٗ ظیط س‪ٛ‬ػ‪ ٝ‬و‪ٙ‬یس ‪:‬‬

‫یه والؼ ٔی س‪ٛ‬ا٘س زض یه ظٔبٖ چ‪ٙ‬س ای‪ٙ‬شطفیؽ ضا دیبز‪ ٜ‬ؾبظی ٕ٘بیس‪.‬‬ ‫‪‬‬

‫یه والؼ ٔی س‪ٛ‬ا٘س فمٍ اظ یه والؼ اضص ثجطز ‪ِٚ‬ی چ‪ٙ‬س ای‪ٙ‬شطفیؽ ضا دیبز‪ ٜ‬ؾبظی و‪ٙ‬س ‪.‬‬ ‫‪‬‬

‫یه ای‪ٙ‬شطفیؽ ٔی س‪ٛ‬ا٘س اظ ای‪ٙ‬شطفیؽ زیٍط اضص ثطی زاقش‪ ٝ‬ثبقس)‪ٕٞ‬بٖ َ‪ٛ‬ض و‪ ٝ‬یه والؼ ٔی س‪ٛ‬ا٘س اظ والؼ زیٍط اضص ثجطز ‪.‬‬ ‫‪‬‬

‫ارث بزی ایٌتزفیس ّا‬

‫یه ای‪ٙ‬شطفیؽ ٔی س‪ٛ‬ا٘س اظ ای‪ٙ‬شطفیؽ زیٍط اضص ثطی زاقش‪ ٝ‬ثبقس) ثب اؾشفبز‪ ٜ‬اظ وّٕ‪ ٝ‬وّیسی ‪ extends‬یه ای‪ٙ‬شطفیؽ ٔی س‪ٛ‬ا٘س اظ ای‪ٙ‬شطفیؽ زیٍط اضص ثجطز) زض‬
‫ٔظبَ ظیط ای‪ٙ‬شطفیؽ ‪ٞ‬بی ‪ hokey ٚ football‬اظ ای‪ٙ‬شطفیؽ ‪ sports‬اضص ثطی زاقش‪ ٝ‬ا٘س‪.‬‬

‫‪//Filename: Sports.java‬‬
‫‪public interface Sports‬‬
‫{‬
‫;)‪public void setHomeTeam(String name‬‬
‫;)‪public void setVisitingTeam(String name‬‬
‫}‬

‫‪//Filename: Football.java‬‬
‫‪public interface Football extends Sports‬‬
‫{‬

‫‪131‬‬
‫;)‪public void homeTeamScored(int points‬‬
‫;)‪public void visitingTeamScored(int points‬‬
‫;)‪public void endOfQuarter(int quarter‬‬
‫}‬

‫‪//Filename: Hockey.java‬‬
‫‪public interface Hockey extends Sports‬‬
‫{‬
‫;)(‪public void homeGoalScored‬‬
‫;)(‪public void visitingGoalScored‬‬
‫;)‪public void endOfPeriod(int period‬‬
‫;)‪public void overtimePeriod(int ot‬‬
‫}‬

‫ای‪ٙ‬شطفیؽ ‪ Hokey‬زاضای ‪ٔ 4‬شس اؾز أب ایٗ ای‪ٙ‬شطفیؽ ‪ٔ 2‬شس ضا ٘یع اظ ای‪ٙ‬شطفیؽ ‪ Sports‬ث‪ ٝ‬اضص ثطز‪ ٜ‬اؾز) ث‪ٙ‬بثطایٗ والؾی و‪ ٝ‬ای‪ٙ‬شطفیؽ ‪ Hokey‬ضا دیبز‪ٜ‬‬
‫ؾبظی ٔی و‪ٙ‬س ثبیس ‪ٔ 6‬شس ضا دیبز‪ ٜ‬ؾبظی ٕ٘بیس) ‪ٕٞ‬بُ٘‪ٛ‬ض ثطای ای‪ٙ‬شطفیؽ ‪٘ Football‬یع ‪ٞ‬ط والؾی و‪ ٝ‬ثر‪ٛ‬ا‪ٞ‬س ایٗ ای‪ٙ‬شطفیؽ ضا دیبز‪ ٜ‬ؾبظی و‪ٙ‬س ثبیس ‪ٔ 5‬شس ضا‬
‫دیبز‪ ٜ‬ؾبظی ٕ٘بیس‪.‬‬

‫ارث بزی اس چٌذ ایٌتزفیس‬

‫یه والؼ ػب‪ٚ‬ا فمٍ ٔی س‪ٛ‬ا٘س اظ یه والؼ ػب‪ٚ‬ای زیٍط اضص ثطی زاقش‪ ٝ‬ثبقس) اضص ثطی چ‪ٙ‬سٌب٘‪ ٝ‬زض ػب‪ٚ‬ا ٔؼبظ ٘یؿز) أب ای‪ٙ‬شطفیؽ ‪ٞ‬ب ایٗ ٔحس‪ٚ‬زیز‬
‫‪ extends‬اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬یٓ ‪ ٚ‬ای‪ٙ‬شطفیؽ‬ ‫ضا ٘ساض٘س ‪ٔ ٚ‬ی س‪ٛ‬ا٘‪ٙ‬س اظ ثیف اظ یه ای‪ٙ‬شطفیؽ اضص ثطی زاقش‪ ٝ‬ثبق‪ٙ‬س) ثطای اضص ثطی ای‪ٙ‬شطفیؽ ‪ٞ‬ب اظ وّٕ‪ ٝ‬وّیسی‬
‫‪ٞ‬بی ‪ٚ‬اِس ضا ثب اؾشفبز‪ ٜ‬اظ ٖالٔز ' ػسا ٔی ٕ٘بییٓ) ثطای ٔظبَ ث‪ ٝ‬وس ظیط س‪ٛ‬ػ‪ ٝ‬و‪ٙ‬یس ‪:‬‬

‫‪public interface Hockey extends Sports, Event‬‬

‫ایٌتزفیس ّای تگ‬

‫‪MouseListener‬یه ای‪ٙ‬شطفیؽ سً اؾز و‪ ٝ‬زض‬ ‫ث‪ ٝ‬ای‪ٙ‬شطفیؽ ‪ٞ‬بیی و‪ٞ ٝ‬یچ ٔشسی ٘ساض٘س ای‪ٙ‬شطفیؽ سً ٔی ٌ‪ٛ‬ی‪ٙ‬س) ثطای ٔظبَ ای‪ٙ‬شطفیؽ‬
‫وشبثرب٘‪java.awtٝ‬لطاض زاضز ‪ ٚ‬اظ‪java.util.EventListener‬اضص ثطی وطز‪ ٜ‬اؾز و‪ ٝ‬ث‪ ٝ‬ن‪ٛ‬ضر ظیط سٗطیف قس‪ ٜ‬اؾز ‪:‬‬

‫;‪package java.util‬‬
‫‪public interface EventListener‬‬
‫}{‬

‫اؾشفبز‪ ٜ‬اظ ای‪ٙ‬شطفیؽ ‪ٞ‬بی ثس‪ٔ ٖٚ‬شس و‪ ٝ‬ای‪ٙ‬شطفیؽ سً ‪ ٓٞ‬ث‪ ٝ‬آ٘‪ٟ‬ب ٔی ٌ‪ٛ‬ی‪ٙ‬س ز‪ ٚ‬زِیُ ٖٕس‪ ٜ‬زاضز و‪ٖ ٝ‬جبضس‪ٙ‬س اظ ‪:‬‬

‫‪132‬‬
‫ؾبذشٗ یه ای‪ٙ‬شطفیؽ ‪ٚ‬اِس ٖٕ‪ٔٛ‬ی‪ٔ 5‬ب٘‪ٙ‬س ای‪ٙ‬شطفیؽ ‪EventListener‬و‪ ٝ‬ای‪ٙ‬شطفیؽ ‪ٞ‬بی ظیبزی اظ آٖ اضص ثطی وطز‪ ٜ‬ا٘س ٔی س‪ٛ‬ا٘س یه ای‪ٙ‬شطفیؽ‬ ‫‪‬‬

‫ثس‪ٔ ٖٚ‬شس ؾبذز فمٍ ث‪ ٝ‬ایٗ ٔ‪ٛٓٙ‬ض و‪ ٝ‬ای‪ٙ‬شطفیؽ ‪ٚ‬اِس آٖ ‪EventListener‬ثبقس) ایٗ وبض ثطای اٖٕبَ ذبنی ٔ‪ٙ‬بؾت اؾز) ثطای ٔظبَ ‪ٚ‬لشی یه‬
‫ای‪ٙ‬شطفیؽ اظ‪EventListener‬اضص ثطی وطز‪ ٜ‬ثبقس‪jvm‬سكریم ٔی ز‪ٞ‬س و‪ ٝ‬ای‪ٙ‬شطفیؽ ٔ‪ٛ‬ضز ٘ٓط یه ض‪ٚ‬یساز ضا دیبز‪ ٜ‬ؾبظی ذ‪ٛ‬ا‪ٞ‬س وطز‪.‬‬

‫ايبف‪ ٝ‬وطزٖ یه ٘‪ ٔٛ‬زاز‪ ٜ‬ذبل ث‪ ٝ‬ای‪ٙ‬شطفیؽ زیٍط) ایٗ وبض ثطای اٖٕبَ چ‪ٙ‬سضیرشی ث‪ ٝ‬وبض ثطز‪ٔ ٜ‬ی ق‪ٛ‬ز ‪.‬‬ ‫‪‬‬

‫جاٍا)‪(Java Graphic‬‬ ‫گزافیک در‬


‫‪Swing‬چیست ؟‬

‫‪ٞ GUI‬ب ‪ ٚ‬ايبف‪ ٝ‬وطزٖ لبثّیز‬ ‫‪Swing‬لؿٕشی اظ ‪ٔ JFC‬ی ثبقس ثؿش‪ Swing ٝ‬قبُٔ یه ٔؼٕ‪ ٖٝٛ‬اظ وبٔذ‪ٙ٘ٛ‬ز ‪ٞ‬ب اؾز و‪ ٝ‬ثـطای ایؼـبز‬ ‫‪‬‬

‫ٔحب‪ٚ‬ض‪ ٜ‬ای ث‪ ٝ‬ثط٘بٔ‪ٞ ٝ‬بی وبضثطزی ػب‪ٚ‬ا ٔ‪ٛ‬ضزاؾشفبز‪ٞ‬مطاضٔیٍیطز‪.‬‬

‫‪Swing‬ؾط٘بْ یب ٔرفف ٖجبضر ذبنی ٕ٘ی ثبقس) دط‪ٚ‬غ‪ Swing ٜ‬زض ا‪ٚ‬اذط ؾبَ ‪ ,441‬قـط‪ ٚ ٔٚ‬زض ؾبَ ‪٘ ,443‬ؿر‪ ٝ‬ا‪ َٚ‬آٖ ٖطي‪ٌ ٝ‬طزیس)‬ ‫‪‬‬

‫٘ؿر‪ ,٫+ ٝ‬ایٗ ثؿش‪ ٝ‬قبُٔ حس‪ٚ‬زا ‪ -0+‬والؼ ‪ٚ 3+ ٚ‬اؾٍ ٔی ثبقس ‪. Swing 1.0‬ثطای اػطا قسٖ ث‪٘ JDK 0٫,٫, ٝ‬یبظ زاقز‪.‬‬

‫‪Swing‬قبُٔ ‪ ,3‬ثؿش‪ (package) ٝ‬انّی ٔیجبقس و‪ ٝ‬ز‪ ٚ‬ثؿش‪ ٝ‬ظیط اظ آٖ ثیكشطیٗ اؾشفبز‪ ٜ‬ضازاضٖز‪5‬‬

‫‪javax.swing‬‬

‫‪javax.swing.event‬‬

‫‪AWT‬چیست ؟‬
‫‪٘AWT‬یع ٔب٘‪ٙ‬س ‪ Swing‬ثطای س‪ٛ‬ؾٗ‪ٞ GUI ٝ‬ب ٔ‪ٛ‬ضز اؾشفبز‪ ٜ‬لطاض ٔی ٌیطز) حبَ ؾـ‪ٛ‬اَ ای‪ٙ‬ؼبؾـز و‪ ٝ‬چطا ثب ‪ٚ‬ػ‪ٛ‬ز ‪ AWT‬ث‪٘ Swing ٝ‬یبظ ٔی ثبقس؟ آیب‬
‫‪Swing‬ػبیٍعی‪ٙ‬ی ثطای ‪ٔ AWT‬ی ثبقس؟‬

‫ثطای دبؾد ث‪ ٝ‬ؾئ‪ٛ‬االر ف‪ٛ‬ق ثبیس ث‪٘ ٝ‬ىبر ظیط زلز ٕ٘بییس ‪:‬‬

‫زض ظٔبٖ س‪ٛ‬ؾٗ‪ ٝ‬ا‪ِٚ‬یٗ ٘ؿر‪ ٝ‬ػب‪ٚ‬ا‪٘AWT ،‬یع ث‪ٕٞ ٝ‬طا‪ ٜ‬آٖ ث‪ٖٛٙ ٝ‬اٖ اثـعاض َطاحـی ‪ٞ GUI‬ـبی ٔ‪ٛ‬ضز ٘یبظ ثط٘بٔ‪ٛ٘ ٝ‬یؿبٖ اضائ‪ٌ ٝ‬طزیس) ‪ $‬ا‪ِٚ‬ـیٗ‬ ‫‪‬‬

‫٘ؿـر‪ Swing ٝ‬زض ؾـبَ ‪ ,443‬اضائـ‪ٌ ٝ‬طزیـس ‪ #‬دـؽ اثعاض‪ٞ‬بی ثیكشطی اظ آٖ دكشیجب٘ی ٔی و‪ٙٙ‬س) ٔظال ‪ٞ Applet‬بیی و‪ ٝ‬ثب ‪ٛ٘Awt‬قش‪ٔ ٝ‬ـی قـ‪٘ٛ‬س‬
‫زض ٔط‪ٚ‬ضٌط‪ٞ‬بی ثیكشطی اػطا ٔیك‪٘ٛ‬س‪.‬‬
‫‪ Swing‬انــُالحب ؼثه ‪ٚ‬ظٖ‬ ‫)‪ ٚ(HeavyWeight‬وبٔذ‪ٙ٘ٛ‬ــز ‪ٞ‬ــبی‬ ‫‪ AWT‬انــُالحب ؾ‪ٍٙ‬یٗ ‪ٚ‬ظٖ‬ ‫وبٔذ‪ٙ٘ٛ‬ــز ‪ٞ‬ــبی‬ ‫‪‬‬

‫‪٘#LightWeight$‬بٔیس‪ٔ ٜ‬ـی قـ‪٘ٛ‬س ) سفـب‪ٚ‬ر ز‪ٔ ٚ‬ـ‪ٛ‬ضز فـ‪ٛ‬ق زض ایـٗ اؾـز وـ‪ ٝ‬وبٔذ‪ٙ٘ٛ‬ـز ‪ٞ‬ـبی ‪HeavyWeight‬اظ ‪ٞ Peer Component‬ب‬
‫اؾشفبز‪ٔ ٜ‬ی و‪ٙٙ‬س ‪ ٚ‬زض ‪ٚ‬الٕ ث‪ ٝ‬آ٘‪ٟ‬ب ‪ٚ‬اثؿش‪ ٝ‬ا٘ـس ) زض ن‪ٛ‬ضسیى‪ ٝ‬وبٔذ‪ٙ٘ٛ‬ز ‪ٞ‬بی ‪LightWeight‬ث‪ ٝ‬ن‪ٛ‬ضر ٔؿشمُ اظ ‪ٞ Component Peer‬ب ُٖٕ ٔی‬
‫و‪ٙٙ‬س‪.‬‬
‫ػـب‪ٚ‬ا زضؾیؿشٓ ٖبُٔ ٔ‪ٛ‬ضز٘ٓط ‪ٔ $‬یعثبٖ ‪ٔ #‬یجبقس)‬ ‫ٔ‪ٛٓٙ‬ض اظ ‪ٞ Component Peer‬ب زض حمیمز وبٔذ‪ٙ٘ٛ‬ز ‪ٞ‬بی ٔٗـبزَ وبٔذ‪ٙ٘ٛ‬ـز ‪ٞ‬ـبی‬

‫‪133‬‬
‫ٔیسا٘یٓ و‪ ٝ‬ؾیؿشٓ ٖبّٔ‪ٟ‬ب ٘یع ثطای ٕ٘بیف ‪ٚ‬اؾـٍ‪ ٜ‬ی ٌطافیىی ذ‪ٛ‬ز اظ یىؿطی وبٔذ‪ٙ٘ٛ‬ز ‪ٔ ٚ‬شس‪ٞ‬بی ‪ٚ‬یػ‪ٚ ٜ‬ذبل ذ‪ٛ‬ز اؾشفبز‪ٔ ٜ‬یى‪ٙٙ‬س) ‪ٕٞ‬چ‪ٙ‬ـیٗ‬
‫ٔیسا٘یٓ و‪ ٝ‬ثًٗی اظظثب٘‪ٟ‬بی ثطٖأ‪ٛ٘ ٝ‬یؿی لبزضث‪ ٝ‬اؾشفبز‪ ٜ‬اظایٗ اػعا ٔیجبق‪ٙ‬س) حبَ ٘ىش‪ٚ ٟٓٔ ٝ‬اؾبؾی زض ایٗ اؾز و‪ ٝ‬ثط٘بٔ‪ٞ ٝ‬بیی و‪ ٝ‬اظ ایٗ‬
‫وبٔذ‪ٙ٘ٛ‬ش‪ٟ‬ب ‪ٔٚ‬شس‪ٞ‬ب اؾشفبز‪ٔ ٜ‬ـیى‪ٙٙ‬ـسزض ‪ٚ‬الٕ ث‪ٔ ٝ‬حیٍ ف‪ٛ‬ق ‪ٚ‬اثؿش‪ ٝ‬قس‪ٚ ٜ‬لبثّیز ا٘شمبَ ذ‪ٛ‬ز ضا اظ زؾز ٔیس‪ٙٞ‬س‪.‬‬
‫ٖٕس‪ ٜ‬زِیُ سفب‪ٚ‬ر ثیٗ ‪ٚ Swing ٚ AWT‬ػ‪ٛ‬ز ٔكىُ ف‪ٛ‬ق زض ‪ٔ AWT‬ـی ثبقـس ) زض ٘شیؼـ‪ٚ ٚ AWT ٝ‬اؾٍ ‪ٞ‬بی س‪ِٛ‬یسی ثب آٖ زض ‪ٚ‬الٕ اظ‬ ‫‪‬‬

‫‪ٔNative GUI Toolkit‬حیٍ ‪ٞ‬ب ‪$‬ؾیؿشٓ ٖبُٔ ‪ٞ‬بی ٔیعثبٖ‪ #‬ذ‪ٛ‬ز اؾشفبز‪ٔ ٜ‬ی و‪ٙٙ‬س) ایٗ أط ؾجت آٖ ٔی ق‪ٛ‬ز و‪ٚ ٝ‬لشی ‪ٚ‬اؾٍ وبضثطی َطاحی‬
‫قس‪ ٜ‬زض یه ؾیؿشٓ ٖبُٔ ضا زض ؾیؿشٓ ٖبُٔ زیٍطی اػطا و‪ٙ‬یٓ ٕٔىٗ اؾز ثب چیـعی وـ‪ٔ ٝ‬ـب زض اثشـسا َطاحی وطز‪ ٜ‬ایٓ ٔشفب‪ٚ‬ر ثبقس ‪.‬‬
‫وبٔذ‪ٙ٘ٛ‬ز ‪ٞ‬بی ‪ Swing‬و‪ٙ‬سسط اظ ‪ AWT‬ثبضٌصاضی ٔی ق‪٘ٛ‬س) زض ٖ‪ٛ‬و ‪ Swing‬اظ ٔسَ و‪ٙ‬شطَ ض‪ٚ‬یساز ٔ‪ٛ‬ططسطی ٘ؿجز ث‪ AWT ٝ‬اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬س)‬ ‫‪‬‬

‫‪ AWT‬اػطا ٔی ق‪٘ٛ‬س) یٗ‪ٙ‬ی ؾطیٗشط ث‪ ٝ‬ض‪ٚ‬یساز‪ٞ‬ب ‪ٚ‬اوـ‪ٙ‬ف ٘كـبٖ‬ ‫زض ٘شیؼـ‪ ٝ‬وبٔذ‪ٙ٘ٛ‬ـز ‪ٞ‬ـبی ‪ Swing‬ؾطیٗشط اظ وبٔذ‪ٙ٘ٛ‬ز ‪ٞ‬بی ٔكبث‪ ٝ‬زض‬
‫ٔی ز‪ٙٞ‬س‪.‬‬

‫‪ٚ‬یػٌی‪ٟ‬بی‪Swing‬‬ ‫ثطذی اظ‬

‫٘بْ وبٔذ‪ٙ٘ٛ‬ز ‪ٞ‬بی ‪ Swing‬ثب حطف ‪ J‬قـط‪ٔ ٔٚ‬ـی قـ‪٘ٛ‬س ) ٔب٘‪ٙ‬ـس‪JtableٚJtabbedPane‬‬ ‫‪‬‬

‫وبٔذ‪ٙ٘ٛ‬ز ‪ٞ‬بی ‪ Swing‬زاضای ذبنیز ‪ٔ Tooltips‬ی ثبق‪ٙ‬س‪.‬‬ ‫‪‬‬

‫ثؿش‪ Swing ٝ‬لبثُ حُٕ سط اظ ‪ٔ AWT‬ی ثبقس‬ ‫‪‬‬

‫وبٔذ‪ٙ٘ٛ‬ز ‪ٞ‬بی ‪ Swing‬اظ لبثّیـز ‪ Redo/Undo‬دكـشیجب٘ی ٔـی و‪ٙٙ‬ـس ) ٔـظال ثـ‪ ٝ‬وٕـه ذبنیز ‪ Undo‬یه ٖ‪ٙ‬هط حصف قس‪ ٜ‬اظ ‪Jtable‬ضا‬ ‫‪‬‬

‫ٔی س‪ٛ‬اٖ ثبظ ٌطزا٘س ‪ ٚ‬یب یه ٔشٗ سغییط یبفش‪ ٝ‬ضا زض‪JtextField‬ث‪ ٝ‬حبِز لجُ ثبظٌطزا٘س‬
‫ثؿش‪ Swing ٝ‬قبُٔ وبٔذ‪ٙ٘ٛ‬ز ‪ٞ‬بی ػسیس ‪ٔ ٚ‬فیسی ٔب٘‪ٙ‬س ‪ٔ… ٚ , JprogressBar , JtreeJInternalFrame , Jtable‬یجبقس‪.‬‬ ‫‪‬‬

‫دكشیجب٘ی اظ ذبنیز ‪ Look and Feel‬یب ث‪ ٝ‬اذشهبض ‪ L&F‬یب‪LnF‬س‪ٛ‬ؾٍ ‪ Swing‬و‪ ٝ‬یىی اظ ‪ٚ‬یػٌی ‪ٞ‬بی ثؿیبض ٔ‪ ٟٓ‬زض َطاحی ‪ٚ‬اؾٍ س‪ٛ‬ؾٍ‬ ‫‪‬‬

‫)‪(Run Time‬‬ ‫‪ٔSwing‬ی ثبقـس ) س‪ٛ‬ؾـٍ ایـٗ لبثّیـز‪ ،‬ثط٘بٔ‪ٞ ٝ‬ب زض یه ٔحیٍ ػسیس ‪$‬ؾیؿشٓ ٖبُٔ زیٍط ‪ #‬ثس‪٘ ٖٚ‬یبظ ث‪ ٝ‬وبٔذبیُ ٔؼـسز‬
‫وبٔذ‪ٙ٘ٛ‬ز ‪ٞ‬بی ذ‪ٛ‬ز ضا س‪ٓٙ‬یٓ ٔی و‪ٙٙ‬س‪.‬‬

‫ایٗ س‪ٓٙ‬یٕبر ٔیش‪ٛ‬ا٘س ث‪ ٝ‬یىی اظ ز‪ ٚ‬قىُ ظیطثبقس‪:‬‬

‫‪ ),‬ث‪ ٌٝ٘ٛ ٝ‬ای ُٖٕ و‪ٙ‬یٓ سب ‪ٚ‬اؾٍ َطاحی قس‪ ٜ‬زض سٕبٔی ؾیؿشٓ ٖبٔـُ ‪ٞ‬ـب ثـ‪ ٝ‬یـه نـ‪ٛ‬ضر ٕ٘بیف زاز‪ ٜ‬ق‪٘ٛ‬س)‪$‬ثس‪ ٖٚ‬سغییط زض ْب‪ٞ‬ط‬
‫اػعا‪#‬‬
‫‪ )-‬ث‪ ٌٝ٘ٛ ٝ‬ای ُٖٕ و‪ٙ‬یٓ سب وبٔذ‪ٙ٘ٛ‬ز ‪ٞ‬بی ‪ٚ‬اؾٍ َطاحی قس‪ ٜ‬زض ‪ٞ‬ـط ؾیؿـشٓ ٖبٔـُ ٔكـبث‪ ٝ‬وبٔذ‪ٙ٘ٛ‬ز ‪ٞ‬بی ؾیؿشٓ ٖبُٔ ٔ‪ٛ‬ضز ٘ٓط سغییط‬
‫قىُ ز‪ٙٞ‬س‪.‬‬

‫والؼ‪JFrame‬‬

‫ثط٘بٔ‪ٟٛ‬یػ‪ٚ‬اِیسضػب‪ٚ‬ا‪،‬ایؼبزیىفطٔیبفطیٕیبد‪ٙ‬ؼط‪ٕٞ‬یجبقسو‪ ٝ‬ؾبیط اػعا ثط٘بٔ‪ ،ٝ‬ثط ض‪ٚ‬ی آٖ لطاض‬ ‫ٔ‪ٕٟ‬شطیٗ ٖ‪ٙ‬هط ‪ ٚ‬ث‪ٖ ٝ‬جبضر زیٍط ٘مُ‪ ٝ‬قط‪َ ٔٚ‬طاحی یه‬
‫‪ ((Container‬زیٍـطوبٔذ‪ٙ٘ٛ‬ز ‪ٞ‬ـبی ‪ٔ Swing‬ب٘‪ٙ‬ـس‬ ‫ٔی ٌیـطز ‪ .‬یـه ‪ ٕٝ٘ٛ٘، Frame‬ای اظوالؼ ‪ٔ JFrame‬ی ثبقس و‪ٕٞ ٝ‬ب٘‪ٙ‬ـس یـه ْـطف‬
‫‪… ٚjCheckBox، JTextField‬ضازضذـ‪ٛ‬زٍ٘‪ٟ‬ـساضی ٔـی و‪ٙ‬س‪.‬‬

‫‪134‬‬
‫یه ‪ Frame‬د‪ٙ‬ؼط‪ ٜ‬ای اؾز و‪ ٝ‬زاضای ٘‪ٛ‬اض ٖ‪ٛٙ‬اٖ )‪ ، (Title Bar‬زوٕ‪ٞ ٝ‬بیی ثطای سغییط ا٘ساظ‪ ٚ ٜ‬ثؿشٗ فطیٓ ‪ ٚ‬أىب٘ی ثطای لطاضزازٖ آیى‪ ٖٛ‬زض ٘‪ٛ‬اض ٖ‪ٛٙ‬اٖ‬
‫اؾز ‪ٞ. Frame‬ب اظ ِحبِ ‪ٚ‬یػ‪ٚ‬اِـی یب ثهطی‪ ،‬زض ثبالسطیٗ ؾُح والؾ‪ٟ‬بی ‪ swing‬لطاض زاض٘س‪.‬‬

‫ایؼبز یه فطیٓ‬
‫ثطای ؾبذز فطیٓ‪ ،‬ا‪ِٚ‬یٗ ض‪ٚ‬ـ‪ ،‬اضص ثطزٖ والؼ انّی ثط٘بٔ‪ ٝ‬اظ وـالؼ ‪JFrame‬اؾـز ) ثـطای ا٘ؼـبْ ای‪ٙ‬ىـبض ثه‪ٛ‬ضر ظیط ُٖٕ ٔی ٕ٘بییٓ ‪:‬‬

‫;)(‪JFrameframe=newJFrame‬‬

‫ايبف‪ ٝ‬وطزٖ ٖ‪ٛٙ‬اٖ ث‪ ٝ‬یه فطیٓ‬


‫‪ٕٞ‬بُ٘‪ٛ‬ض و‪ ٝ‬زض لؿٕز لجُ زیسیٓ‪ ،‬ث‪ ٝ‬ز‪ ٚ‬ن‪ٛ‬ضر ٔی س‪ٛ‬اٖ یه فطیٓ ضا ایؼبز ٕ٘‪ٛ‬ز) ثؿش‪ ٝ‬ث‪ ٝ‬ای‪ٙ‬ى‪ ٝ‬اظ وساْ ض‪ٚ‬ـ اؾشفبز‪ ٜ‬و‪ٙ‬یٓ‪ ،‬ز‪ ٚ‬قی‪ٔ ٜٛ‬شفب‪ٚ‬ر ثطای سٗییٗ‬
‫ٖ‪ٛٙ‬اٖ یه فطیٓ ‪ٚ‬ػ‪ٛ‬ز زاضز‪.‬‬

‫اٌط فطیٓ س‪ٛ‬ؾٍ ض‪ٚ‬ـ ا‪ َٚ‬ایؼبز قس‪ ٜ‬ثبقس‪ٔ ،‬ی س‪ٛ‬اٖ ث‪ٚ ٝ‬ؾیّ‪ ٝ‬ث‪ ٝ‬وبضٌیطی ٔشس ‪ super‬زض ٔشس ؾبظ٘س‪ ٜ‬والؼ‪ٖٛٙ ،‬اٖ فطیٓ ضا سٗییٗ ٕ٘‪ٛ‬ز‪:‬‬

‫{‪1 PublicclassFrameextendsJFrame‬‬

‫{)(‪2 PublicFrame‬‬

‫;)" عنوان پنجره"(‪3 super‬‬

‫‪4 ...‬‬

‫}‪5‬‬

‫}‪6‬‬

‫اٌط زض والؾی و‪ ٝ‬اظیه والؼ زیٍط اضص ثطز‪ ٜ‬اؾز‪،‬اظٔشس ‪ super‬اؾشفبز‪ٕ٘ ٜ‬بییس‪ ،‬زض ‪ٚ‬الٕ ٔشس ؾبظ٘س‪ ٜ‬والؼ دسض ضا ٔمساضز‪ٞ‬ی وطز‪ ٜ‬ایس) ثطای زضن ث‪ٟ‬شط‬
‫ایٗ ٘ىش‪ ،ٝ‬زض ای‪ٙ‬ؼب والؼ ثط٘بٔ‪ ٝ‬یٗ‪ٙ‬ی والؼ ‪ Frame‬اظ والؼ‪JFrame‬اضص ثطی ٔی و‪ٙ‬س ‪ ٚ‬ث‪ٚ ٝ‬ؾیّ‪ٔ ٝ‬شس ‪super‬آٖ ضا ٔمساض ز‪ٞ‬ی وطز‪ ٜ‬اؾز) ایٗ‬
‫ٔمساض ز‪ٞ‬ی ؾجت سٗییٗ ٖ‪ٛٙ‬اٖ فطیٓ ٔی ق‪ٛ‬ز‪.‬‬

‫حبَ اٌط س‪ٛ‬ؾٍ ض‪ٚ‬ـ ز‪ ْٚ‬یه فطیٓ ضا ایؼبز وطز‪ ٜ‬ثبقیس‪ٔ ،‬ی س‪ٛ‬ا٘یس ث‪ ٝ‬ؾبزٌی زض ٔشس ؾبظ٘س‪ٕٞ،ٜ‬بٖ ظٔب٘ى‪ ٝ‬قئ والؼ ضاسٗطیف ٔی‪ٕٙ‬بییس‪ ،‬ثطای فطیٓ ٘یع‬
‫یه ٖ‪ٛٙ‬اٖ لطاضز‪ٞ‬یس) ث‪ٖ ٝ‬جبضر ظیطس‪ٛ‬ػ‪ ٝ‬و‪ٙ‬یس‪:‬‬

‫;)عنوان پنجره“(‪1 JFrameframe=newJFrame‬‬

‫تعییي اًذاسُ یک فزین‬


‫٘ىش‪ ٟٓٔ ٝ‬زیٍط زض ایؼبز یه فطیٓ‪ ،‬سٗییٗ ا٘ساظ‪ ٜ‬آٖ فطیٓ ٔی ثبقس‪.‬‬

‫ثطای ا٘ؼبْ ایٗ وبض ز‪ ٚ‬ض‪ٚ‬ـ ا‪ َٚ‬آ٘ى‪ ٝ‬ثه‪ٛ‬ضر ٔؿشمیٓ ‪ ٚ‬ثب وٕه ٔشس‪setSize‬ا٘ساظ‪ ٜ‬فطیٓ ٔ‪ٛ‬ضز ٘ٓط سٗییٗ ٕ٘بییس) ث‪ٖ ٝ‬جبضر ظیط س‪ٛ‬ػ‪ ٝ‬و‪ٙ‬یس‪:‬‬

‫;)‪1 setSize(200,200‬‬

‫‪135‬‬
‫ز‪ٔٚ‬یٗ ض‪ٚ‬ـ آٖ اؾز و‪ ٝ‬ا٘ساظ‪ ٜ‬فطیٓ ضا ثط اؾبؼ ا٘ساظ‪ ٜ‬وبٔذ‪ٙ٘ٛ‬ز ‪ٞ‬بی زض‪ ٖٚ‬آٖ سٗییٗ و‪ٙ‬یس) یٗ‪ٙ‬ـی ثطضؾی و‪ٙ‬یس و‪ ٝ‬ثطای لطاض ٌطفشٗ وبٔذ‪ٙ٘ٛ‬ز ‪ٞ‬بی ٔ‪ٛ‬ضز‬
‫٘یبظ زض فطیٓ‪ ،‬چمسض فًب ٘یبظ اؾز) ثطای ا٘ؼبْ چ‪ٙ‬یٗ وبضی ٔی س‪ٛ‬اٖ اظ ٔشس ‪ pack‬ث‪ٟ‬ط‪ ٜ‬ثطز‪.‬‬

‫٘ىش‪ ٟٓٔ ٝ‬زض ایٗ ٔشس آٖ اؾز و‪ٔ ٝ‬شس فـ‪ٛ‬ق سٕـبٔی ثطضؾی ‪ٞ‬بی الظْ ضا ثه‪ٛ‬ضر ذ‪ٛ‬زوبض ا٘ؼبْ زاز‪ ٚ ٜ‬ا٘ساظ‪ ٜ‬فطیٓ ضا ثط اؾـبؼ ٔحش‪ٛ‬یـبر آٖ سٗیـیٗ‬
‫ٔـی و‪ٙ‬س) ثطای اؾشفبز‪ ٜ‬اظ ایٗ ٔشس ثه‪ٛ‬ضر ظیط ُٖٕ ٔی و‪ٙ‬یٓ‪:‬‬

‫;)(‪1 pack‬‬

‫زلز و‪ٙ‬یس و‪ ٝ‬زض ظٔبٖ اؾشفبز‪ ٜ‬اظ ٔشس‪ٞ‬بی لجُ‪ ،‬اٌط زض ٔشس ؾبظ٘س‪ ٜ‬ثط٘بٔ‪ ٝ‬اظ ایٗ ٔشس‪ٞ‬ب اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬یس ٘یبظی ث‪ ٝ‬شوط ٘بْ فطیٓ ٔ‪ٛ‬ضز اؾشفبز‪ٕ٘ ٜ‬ی ثبقس ) ‪ِٚ‬ی‬
‫اٌط زض ثیط‪ ٖٚ‬اظ ٔشس ؾبظ٘س‪ ٜ‬ثط٘بٔ‪ٔ ٝ‬ظال زض ٔشس ‪ main‬لهس اؾشفبز‪ ٜ‬اظ ایٗ ٔشس‪ٞ‬ب ضا زاضیس‪ ،‬ثبیس ثه‪ٛ‬ضر ظیط ُٖٕ ٕ٘بییس‪:‬‬

‫;)(‪1 frame.pack‬‬

‫کٌتزل دکوِ‪Close‬یا ضزبذر باالی فزین‬


‫اؾــــشفبز‪ ٜ‬اظ ٔشــــس ‪ setDefaultCloseOperatio‬ؾجت ٔی ق‪ٛ‬ز سـب ظٔـب٘ی و‪ ٝ‬وبضثط ثط ض‪ٚ‬ی زوٕ‪ close ٝ‬ثبالی فطیٓ وّیه و‪ٙ‬س‪ ،‬فطیٓ ثؿش‪ٝ‬‬
‫ق‪ٛ‬ز) ایٗ ٔشـس زاضای چ‪ٟ‬ـبض آضٌ‪ٔٛ‬بٖ ‪ٚ‬ض‪ٚ‬زی ٔی ثبقس و‪JDialog ٝ‬اؾشفبز‪ ٜ‬ق‪٘ٛ‬س‪ٖ ،‬جبضس‪ٙ‬س اظ‪:‬‬

‫‪DO_NOTHING_ON_CLOSE‬‬

‫ثب اضؾبَ ایٗ آضٌ‪ٔٛ‬بٖ ث‪ٔ ٝ‬شس ف‪ٛ‬ق‪ٚ ،‬لشی وبضثط ثط ض‪ٚ‬ی زوٕ‪ close ٝ‬وّیه و‪ٙ‬س‪ٞ ،‬یچ اسفبلی ٕ٘ی افشس ‪ ٚ‬فطْ ثؿش‪٘ ٝ‬ر‪ٛ‬ا‪ٞ‬س قس‪.‬‬

‫‪DO_NOTHING_ON_CLOSE‬‬

‫ثب اضؾبَ ایٗ آضٌ‪ٔٛ‬بٖ ث‪ٔ ٝ‬شس ف‪ٛ‬ق‪ٚ ،‬لشی وبضثط ثط ض‪ٚ‬ی زوٕ‪ close ٝ‬وّیه و‪ٙ‬س‪ٞ ،‬یچ اسفبلی ٕ٘ی افشس ‪ ٚ‬فطْ ثؿش‪٘ ٝ‬ر‪ٛ‬ا‪ٞ‬س قس‪.‬‬

‫‪HIDE_ON_CLOSE‬‬

‫ایٗ آضٌ‪ٔٛ‬بٖ‪ٔ ،‬مساض دیف فطو ٔشس ف‪ٛ‬ق ٔی ثبقس) ثب ا٘شربة ایٗ ٔمساض زض ‪ٚ‬الـٕ ظٔـب٘ی وـ‪ ٝ‬وـبضثط زوٕ‪ close ٝ‬ضا وّیه ٔی و‪ٙ‬س‪ ،‬فطیٓ ثؿش‪ٕ٘ ٝ‬ی ق‪ٛ‬ز‬
‫ثّى‪ٔ ٝ‬رفی ٔی ق‪ٛ‬ز« ‪ٔ ٚ «Hide‬ی سـ‪ٛ‬اٖ زض ٔطاحُ ثٗس ز‪ٚ‬ثبض آٖ فطیٓ ضا ث‪ ٝ‬وٕه ٔشس‪ٞ‬بی زیٍط ٕ٘بیف زاز ‪.‬‬

‫‪DISPOSE_ON_CLOSE‬‬

‫ایٗ ٔمساض ؾجت ثؿش‪ ٝ‬قسٖ فطیٓ ٔی ق‪ٛ‬ز) ٖال‪ ٜٚ‬ثط ثؿشٗ فطیٓ ٔ‪ٛ‬ضز ٘ٓط‪ ،‬سٕبٔی ٔ‪ٙ‬بثٕ ؾیؿشٓ وـ‪ ٝ‬زض اذشیبض فطیٓ اؾز ٘یع آظاز قس‪ ٚ ٜ‬ث‪ ٝ‬ؾیؿشٓ ثبظ‬
‫ٌطزا٘س‪ٔ ٜ‬ی ق‪٘ٛ‬س‪.‬‬

‫‪EXIT_ON_CLOSE‬‬

‫ثب اضؾبَ ایٗ آضٌ‪ٔٛ‬بٖ ث‪ٔ ٝ‬شس‪ ،‬ثط٘بٔ‪ ٝ‬ذبسٕ‪ٔ ٝ‬ی یبثس)ایٗ آضٌ‪ٔٛ‬بٖ ٔٗبزَ زؾش‪ٛ‬ض ظیط ُٖٕ ٔی و‪ٙ‬س)‬

‫;)‪System.exit(0‬‬

‫‪136‬‬
‫ٕ٘بیف ٌطافیىی زضػب‪ٚ‬ا‪5‬‬

‫والؼ ‪ٔGraphics‬شس‪ٞ‬بی فطا‪ٚ‬ا٘ی ضا ثطای ایؼبز ثط٘بٔ‪ٞ ٝ‬بی ٌطافیىی فطا‪ ٓٞ‬وطز‪ ٜ‬اؾز)ثطای اؾشفبز‪ ٜ‬اظ ایٗ والؼ ‪ ٚ‬زؾشطؾی ث‪ٚ ٝ‬یػٌی ‪ٞ‬ب ‪ ٚ‬ضفشبض‪ٞ‬بی آٖ‬
‫ثبیس دىیغ ظیط ضا زض ثبالی والؼ ذ‪ٛ‬ز‪import‬و‪ٙ‬یس‪:‬‬

‫;‪Import java.awt.Graphics‬‬

‫دطوبضثطزسطیٗ ٔشس‪ٞ‬بی والؼ‪Graphics‬زض ػب‪ٚ‬ا‪:‬‬

‫)‪public abstract void drawString(String str, intx, inty‬‬

‫•ثطای ضؾٓ ضقش‪ٔ(String) ٝ‬كرم اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز)‬

‫)‪public void drawRect(int x, int y, int width, int height‬‬

‫•ثطای ضؾٓ یه ٔؿشُیُ یب ٔطثٕ ثب ٖطو ‪ ٚ‬اضسفبٔ ٔكرم اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز ‪.‬‬

‫)‪public abstract void fillRect(intx, inty, intwidth, intheight‬‬

‫•ثطای ایؼبز یه ٔؿشُیُ یب ٔطثٕ س‪ ٛ‬دط ثب ضً٘ دیكفطو )‪ٖ ٚ(default‬طو ‪ ٚ‬اضسفبٔ ٔكرم اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز)‬

‫)‪public abstract void drawOval(intx, int y, intwidth, intheight‬‬

‫•ثطای ضؾٓ یه ثیًی یب زایط‪ ٜ‬ثب ٖط و ‪ ٚ‬اضسفبٔ ٔكرم اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز)‬

‫)‪public abstract void fillOval(intx, int y, int width, int height‬‬

‫ثطای ایؼبز یه ثیًی یب زایط‪ ٜ‬س‪ ٛ‬دط ثب ضً٘ دیكفطو )‪ٖ ٚ (default‬طو ‪ ٚ‬اضسفبٔ ٔكرم اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز)‬

‫)‪public abstract void drawLine(int x1, inty1, intx2, int y2‬‬

‫•ثطای ضؾٓ ذٍ ثیٗ ٘مُ‪٘ ٚ (x1,y1)ٝ‬مُ‪(x2,y2) ٝ‬زض ثط٘بٔ‪ ٝ‬اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز)‬

‫‪137‬‬
‫)‪public abstract boolean drawImage(Imageimg, int x, inty, ImageObserver observer‬‬

‫•ثطای ضؾٓ سه‪ٛ‬یط ٔكرم زض ثط٘بٔ‪ ٝ‬اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز)‬

‫)‪public abstract void drawArc(intx, int y, intwidth,intheight, intstartAngle, intarcAngle‬‬

‫•ثطای ضؾٓ ل‪ٛ‬ؼ زایط‪ ٜ‬ای یب ثیً‪ٛ‬ی اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز)‬

‫)‪public abstract void fillArc(intx, inty, int width, intheight, intstartAngle, intarcAngle‬‬

‫•ثطای ضؾٓ ل‪ٛ‬ؼ زایط‪ ٜ‬ای یب ثیً‪ٛ‬ی س‪ٛ‬دط اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز ‪.‬‬

‫)‪public abstract void setColor(Color c‬‬

‫•ثطای س‪ٓٙ‬یٓ ضً٘ ٔ‪ٛ‬ضز ٘ٓط ثطای ضً٘ فّٗی اقىبَ ٌطافیىی ضؾٓ قس‪ ٜ‬اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز ‪.‬‬

‫)‪public abstract void setFont(Font font‬‬

‫•ثطای س‪ٓٙ‬یٓ ف‪٘ٛ‬ز ٔ‪ٛ‬ضز ٘ٓط ثطای ف‪٘ٛ‬ز فّٗی ضقش‪ٌ ٝ‬طافیىی ضؾٓ قس‪ ٜ‬اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز ‪.‬‬

‫‪: Component‬‬ ‫کالس‬

‫یىی اظ اػعای ٌطافیىی قىُ ز‪ٙٞ‬س‪ ٜ‬ثط٘بٔ‪ٚ ٝ‬ی‪ٙ‬س‪ٚ‬ظی ٔب ٔی ثبقس ‪.‬‬

‫ًکتِ ‪ٔ:‬ب ث‪ٞ ٝ‬ط یه اظ اػعای ٌطافیىی زض جاٍا یه ‪ٔ component‬ی ٌ‪ٛ‬ییٓ)ٔظال والؼ ‪JButton‬یه ‪ٔ component‬ی ثبقس ‪ ٕٝ٘ٛ٘ .‬ای اظ ایٗ‬
‫وبٔذ‪ٙ٘ٛ‬ش‪ٟ‬ب ٖجبضس‪ٙ‬س اظ‪5‬‬
‫‪:JTextArea‬‬
‫‪ JTextArea‬قی ایؼبز ٔی و‪ٙ‬یٓ یه ٘بحی‪ ٝ‬ای ثطای ٕ٘بیف ٔشٗ ایؼبز ٔی ق‪ٛ‬ز)ایٗ ٘بحی‪ٔ ٝ‬ش‪ٙ‬ی ایؼبز قس‪ ٜ‬ثط‬ ‫‪ٚ‬لشی اظ والؼ‬
‫ذالف‪TextField‬چ‪ٙ‬سذُی یب چ‪ٙ‬س ؾُطی ٔی ثبقس‪ ،‬یٗ‪ٙ‬ی ٔی س‪ٛ‬اٖ ثٗس اظ دبیبٖ ؾُط ا‪ َٚ‬ث‪ ٝ‬ؾُط ز‪ )))ٚ ْٚ‬ثطای ٘‪ٛ‬قشٗ ٔشٗ ثط‪ٚ‬یٓ) ‪ٕٞ‬چ‪ٙ‬یٗ قی ایؼبز‬
‫قس‪ ٜ‬اظ والؼ ‪ JTextArea‬ث‪ٔ ٝ‬ب اػبظ‪ٚ ٜ‬یطایف سٕبْ ذُ‪ ٌٛ‬ضا ٔی ز‪ٞ‬س‪.‬‬

‫‪138‬‬
‫پس کالس‪ٍJTextArea‬یژگی ّای سیز را دارا هی باضذ ‪:‬‬

‫‪ )1‬ثطای ٕ٘بیف ٔشٗ اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز‪.‬‬

‫‪ )2‬یه ٔشٗ ضا ٔی س‪ٛ‬اٖ زض چ‪ٙ‬س ؾُط زض آٖ لطاض ز‪ٞ‬یٓ‪.‬‬

‫‪ٔ )3‬شٗ ‪ٞ‬بی زاذُ آٖ لبثُ ‪ٚ‬یطایف ٔی ثبق‪ٙ‬س‪.‬‬

‫‪:JLabel‬‬
‫ثطای ٕ٘بیف هتي یب تػَیز زض ثط٘بٔ‪ٌ ٝ‬طافیىی ذ‪ٛ‬ز اظ کالس ‪ JLabel‬اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬یٓ) اظ ‪ٚ‬یػٌی اػعای ٌطفیىی ‪ JLable‬ایٗ اؾز و‪ٔ ٝ‬شٗ ٕ٘بیف‬
‫زاز‪ ٜ‬قس‪ ٜ‬زض آٖ س‪ٟٙ‬ب ثب ثط٘بٔ‪ ٝ‬وبضثطزی ٘‪ٛ‬قش‪ ٝ‬قس‪ ٜ‬لبثُ سغییط ٔی ثبقس ‪ ٚ‬وبضثط س‪ٛ‬ا٘بیی ‪ٚ‬یطایف ٔشٗ ٕ٘بیف زاز‪ ٜ‬قس‪ ٜ‬ضا ٘ساضز) ثطای ٔظبَ زض ثط٘بٔ‪ٔ ٝ‬بقیٗ‬
‫حؿبة ‪ٚ‬ی‪ٙ‬س‪ٚ‬ظ ثطای ٕ٘بیف ٔمساض اٖساز ‪٘ ٚ‬شیؼ‪ٔ ٝ‬حبؾجبر اظ والؼ ‪ JLable‬اؾشفبز‪ ٜ‬قس‪ ٜ‬اؾز وبفی اؾز ‪ٕٞ‬یٗ االٖ ٔبقیٗ حؿبة ‪ٚ‬ی‪ٙ‬س‪ٚ‬ظ ض‪ ٚ‬ثبظ‬
‫و‪ٙ‬یس ٔش‪ٛ‬ػ‪ ٝ‬ذ‪ٛ‬ا‪ٞ‬یس قس و‪ ٝ‬نفح‪ٕ٘ ٝ‬بیف ٔبقیٗ حؿبة س‪ٛ‬ؾٍ وبضثط غیط لبثُ ‪ٚ‬یطایف ‪ ٚ‬زؾشىبضی ٔی ثبقس‪ ،‬أب اظ َطیك زوٕ‪ٞ ٝ‬بی ٔبقیٗ حؿبة‬
‫‪$‬ثط٘بٔ‪ #ٝ‬لبثُ سغییط ٔی ثبقس ایٗ ‪ٕٞ‬بٖ ذبنیز ‪ٔ label‬ی ثبقس‬

‫‪:JCheckBox‬‬
‫ثطای ایؼبز یه چه ثبوؽ اظ والؼ ‪ JCheckBox‬قی ایؼبز ٔی و‪ٙ‬یٓ) ٌعی‪ٞ ٝٙ‬بی ٔطثٕ قىُ و‪ ٝ‬ث‪ ٝ‬ثب سیه ظزٖ آ٘‪ٟ‬ب وبض ذبنی ضا ثطای ٔب ا٘ؼبْ‬
‫ٔی ز‪ٙٞ‬س چه ثبوؽ ‪ٞ‬ؿش‪ٙ‬س)‬

‫)‪ (checkbox‬حبِز ض‪ٚ‬قٗ )‪ٚ(on‬‬ ‫•چک باکس ّا ز‪ٌ ٚ‬عی‪ ٝٙ‬ض‪ٚ‬قٗ )‪ (turn‬یب ذبٔ‪ٛ‬ـ )‪ (off‬زاض٘س‪ ،‬ثب وّیه وطزٖ ض‪ٚ‬ی یه چه ثبوؽ‬
‫ذبٔ‪ٛ‬ـ )‪ (off‬آٖ سغییط ٔی و‪ٙ‬س) ٌعی‪ ٝٙ‬ض‪ٚ‬قٗ ٔٗبزَ ٔمساض ‪ٌ ٚ true‬عی‪ ٝٙ‬ذبٔ‪ٛ‬ـ ٔٗبزَ ٔمساض ‪ٔ false‬ی ثبقس‪.‬‬

‫‪:JComboBox‬‬

‫کالس ‪ JComboBox‬ػعیی اظ پکیج ‪ Swing‬زض ػب‪ٚ‬ا اؾز و‪ ٝ‬یه لیست کطَیی ا٘شربثی ضا اضائ‪ٔ ٝ‬ی و‪ٙ‬س ‪ ٚ‬ث‪ ٝ‬وبضثط اػبظ‪ٔ ٜ‬ی ز‪ٞ‬س یه آیشٓ اظ‬
‫ٔیبٖ ِیؿز ٔ‪ٛ‬ػ‪ٛ‬ز ضا ا٘شربة و‪ٙ‬س)‬

‫‪:JButton‬‬

‫‪139‬‬
‫یىی اظ اػعای ٌطافیىی یب ‪ٔ component‬ب کالس ‪ JButton‬یب ‪ٓٞ‬ا ٖ زوٕ‪ٔ ٝ‬ی ثبقس )ٔظبِی و‪ ٝ‬اظ ‪ button‬ثطای زضن ثیكشط ٔی س‪ٛ‬ا٘یٓ ثع٘یٓ‪،‬‬
‫زوٕ‪ٞ ٝ‬بی ثط٘بٔ‪ ٝ‬وبضثطزی ٔبقیٗ حؿبة ٔی ثبقس ‪.‬‬

‫‪:JTextField‬‬

‫زض ‪ٚ‬الٕ أىبٖ ‪ٚ‬ض‪ٚ‬ز‬ ‫کالس ‪ JTextField‬اػعای ٌطافیىی "ٔش‪ٙ‬ی" اؾز و‪ ٝ‬ثب قی ؾبذشٗ اظ آٖ ث‪ ٝ‬قٕب اػبظ‪ٔ ٜ‬ی ز‪ٞ‬س یه ذٍ ٔشٗ ضا ‪ٚ‬یطایف و‪ٙ‬یس)‬
‫اَالٖبر ث‪ ٝ‬وبضثط ضا ٔی ز‪ٞ‬س) احشٕبال ثب ‪ٕٞ‬چیٗ اػعای ٌطافیىی ظیبز ثطذ‪ٛ‬ضز وطز‪ ٜ‬ثبقیس ٔظال ‪ٍٙٞ‬بْ طجز ٘بْ ‪ٚ ٚ‬اضز وطزٖ اَالٖبر وبضثطی ) ٔش‪ٙ‬ی و‪ ٝ‬زض‬
‫ایٗ اػعای ٌطافیىی ‪ٚ‬اضز ٔیى‪ٙ‬یٓ زاضای ‪ٚ‬یػٌی ‪ٞ‬بی ظیط ٔی ثبقس ‪:‬‬

‫ثه‪ٛ‬ضر یه ذٍ یب یه ؾُط ٔی ثبقس‪.‬‬ ‫‪)1‬‬

‫سه ٔشٗ ‪ٞ‬ؿز یٗ‪ٙ‬ی ٘مُ‪ ٝ‬ؾط ذٍ ٘ساضیٓ! ‪ #(5‬ؾُط ثٗس ٘ساضز! یٗ‪ٙ‬ی ٕ٘ی س‪ٛ‬ا٘یٓ ٔش‪ٙ‬ی ‪ٚ‬اضز آٖ و‪ٙ‬یٓ ‪ٔ ٚ‬شٗ ػسیسی زض ؾُط ثٗس ‪ٚ‬اضز و‪ٙ‬یٓ!‬ ‫‪)2‬‬

‫ثط ذالف ‪ JLabel‬س‪ٛ‬ؾٍ وبضثط ٘یع لبثُ ‪ٚ‬یطایف ‪ٞ‬ؿز یٗ‪ٙ‬ی قٕب ٔیش‪ٛ‬ا٘یس ٔشٗ ٔ‪ٛ‬ضز ٘ٓط ضا ػبیٍعیٗ ٔشٗ لجُ و‪ٙ‬یس ‪.‬‬ ‫‪)3‬‬

‫‪:JPasswordField‬‬
‫والؼ ‪ JPasswordField‬یىی اظ اػعای ٌطافیىی ٔش‪ٙ‬ی اذشهبنی ثطای ‪ٚ‬اضز وطزٖ دؿ‪ٛ‬ضز ٔی ثبقس)ثب قی ؾبذشٗ اظ آٖ ٔی س‪ٛ‬ا٘یٓ اظ ایٗ اػعای‬
‫ٌطافیىی ث‪ٟ‬ط‪ٙٔ ٜ‬س ق‪ٛ‬یٓ) س‪ٟٙ‬ب زض یه ؾُط ٔی س‪ٛ‬ا٘یٓ ٔشٗ ذ‪ٛ‬ز ضا ‪ٚ‬اضز یه ‪JPasswordField‬و‪ٙ‬یٓ و‪ ٝ‬لبثُ ‪ٚ‬یطایف ٔی ثبقس‪.‬‬

‫‪:JRadioButton‬‬

‫اظ کالس ‪JRadioButton‬ثطای ؾبذز دکوِ ّای رادیَیی زض ثط٘بٔ‪ ٝ‬اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز) ‪ٞRadioButton‬ب زوٕ‪ٞ ٝ‬بیی زایط‪ ٜ‬ای قىُ ‪ٞ‬ؿش‪ٙ‬س و‪ ٝ‬ثط‬
‫ذالف ‪ٞ CheckBox‬ب س‪ٟٙ‬ب ٔی س‪ٛ‬اٖ یه ٌعی‪ ٝٙ‬اظ ٔیبٖ چ‪ٙ‬سیٗ ٌعی‪ ٝٙ‬ضا اظ ٔیبٖ آ٘‪ٟ‬ب ا٘شربة وطز)اظ زوٕ‪ٞ ٝ‬بی ضازی‪ٛ‬یی ثه‪ٛ‬ضر ٌؿشطز‪ ٜ‬زض ؾیؿشٓ ‪ٞ‬بی‬
‫أشحب٘ی یب و‪ٛ‬ئیع ‪ٓ٘ ٚ‬طؾ‪ٙ‬ؼی اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز ‪.‬‬

‫چ‪ٔ ٖٛ‬ی ذ‪ٛ‬ا‪ٞ‬یٓ و‪ ٝ‬زض ‪ٞ‬ط ِحٓ‪ٝ‬‬ ‫ثطای سٗطیف زوٕ‪ٞ ٝ‬بی ضازی‪ٛ‬یی ثبیس دؽ اظ سٗطیف آ٘‪ٟ‬ب ‪ٞ‬ط چ‪ٙ‬س سبیی و‪ ٝ‬ث‪ٚ ٓٞ ٝ‬اثؿش‪ ٝ‬ثبقس ضا زض یه ٌط‪ ٜٚ‬لطاض زاز‬
‫فمٍ یىی اظ آ٘‪ٟ‬ب ا٘شربة قس‪ ٜ‬ثبقس)‬

‫‪:PopupMenu‬‬

‫‪140‬‬
‫کالس ‪ٛٙٔPopupMenu‬یی اؾز و‪ٔ ٝ‬ی س‪ٛ‬ا٘س ثه‪ٛ‬ضر د‪ٛ‬یب زض یه ٔ‪ٛ‬لٗیز ٔكرم زض یه اػعای ٌطافیىی ْ‪ٟٛ‬ض و‪ٙ‬س) ثطای زضن ث‪ٟ‬شط اظ قىُ‬
‫‪ٚ‬لشی ٔب زض یه ٔ‪ٛ‬لٗیز ٔكرم اظ نفح‪ٝ‬‬ ‫ْب‪ٞ‬طی ‪ٔ PopupMenu‬ی س‪ٛ‬ا٘یٓ ث‪ٔ ٝ‬ظبَ وّیه ؾٕز ضاؾز زض نفح‪ ٝ‬زؾىشبح وبٔذی‪ٛ‬سط اقبض‪ ٜ‬و‪ٙ‬یٓ‪،‬‬
‫زؾىشبح ثب ٔ‪ٛ‬ؼ وّیه ؾٕز ضاؾز ٔی و‪ٙ‬یٓ یه ِیؿشی اظ ٌعی‪ٞ ٝٙ‬ب ٕ٘بیف زاز‪ٔ ٜ‬ی ق‪ٛ‬ز و‪ ٝ‬ایٗ ِیؿز ‪ٕٞ‬بٖ ‪ٔPopupMenu‬ی ثبقس)‬

‫‪5 JProgressBar‬‬
‫والؼ ‪ JProgressBar‬ثطای ٕ٘بیف دیكطفز وبض زض ثط٘بٔ‪ ٝ‬اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز) ُٕٔئ‪ٙ‬ب ‪ JProgressBar‬ثطای ٔب آق‪ٙ‬ب ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز‪ ،‬چطا و‪ ٝ‬اٖ اػعای‬
‫ٌطافیىی ضا زض ػب‪ٞ‬بی ٔرشّف اظ وبٔذی‪ٛ‬سط ذ‪ٛ‬ز زیس‪ ٜ‬ایٓ ٔظال ‪ٍٙٞ‬بْ زاّ٘‪ٛ‬ز ‪ ،‬فطآی‪ٙ‬س دیكطفز زاّ٘‪ٛ‬ز ضا ثب ایٗ اثعاض ٌطافیىی ٕ٘بیف ٔی ز‪ٙٞ‬س ‪.‬‬

‫‪:Jtable‬‬

‫پکیج‪ Swing‬والؼ ‪ٔJTable‬ی ثبقس ‪.‬کالس ‪JTable‬ثطای ٕ٘بیف زاز‪ٞ ٜ‬ب زض یه فطْ ػس‪ِٚ‬ی اؾشفبز‪ٜ‬‬ ‫یىی زیٍط اظ والؼ ‪ٞ‬بی ٔ‪ٛ‬ػ‪ٛ‬ز زض‬
‫ٔی ق‪ٛ‬ز)‪ٕٞ‬بٖ َ‪ٛ‬ض و‪ٞ ٝ‬ط ػس‪ِٚ‬ی زاضای ؾُط ‪ ٚ‬ؾش‪ٔ ٖٛ‬ی ثبقس ‪ ،‬قی ایؼبز قس‪ ٜ‬اظ والؼ ‪ JTable‬سطویجی اظ ؾُط ‪ ٚ‬ؾش‪ٔ ٖٛ‬ی ثبقس)‬

‫‪:JOptionPane‬‬

‫کالس ‪ OptionPane‬یه ػٗج‪ٔ ٝ‬حب‪ٚ‬ض‪ ٜ‬ای اؾشب٘ساضز ضا فطا‪ ٓٞ‬وطز‪ ٜ‬اؾز ‪. JOptionPane‬ثطای ٕ٘بیف اَالٖبر‪،‬زضیبفز ‪ٚ‬ض‪ٚ‬زی اظ وبضثط‪ٕ٘،‬بیف‬
‫دیبْ سبییس اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز ‪ .‬زض وُ ‪ٍٙٞ‬بْ اؾشفبز‪ ٜ‬اظ ‪ JOptionPane‬یه د‪ٙ‬ؼط‪ ٜ‬و‪ٛ‬چه ْب‪ٞ‬ط ٔی ق‪ٛ‬ز و‪ ٝ‬اَالٖبسی ضا ٕ٘بیف یب زض ذ‪ٛ‬اؾز ‪ٚ‬ض‪ٚ‬زی ‪ٚ‬‬
‫سبییس اظ وبضثط ٔی و‪ٙ‬س)‬

‫اظ وبزض‪ٞ‬بی ٕ٘بیف دیغبْ ثطای ٕ٘بیف اذُبض‪ٞ‬ب زض ضاثٍ ‪ٞ‬بی ٌطافیىی ‪٘ ،‬شبیغ ّٖٕیبر یب زضیبفز سبئیس اظ وبضثط اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز ‪.‬‬

‫ایٗ والؼ چ‪ٙ‬سیٗ ٔشس زاضز )ٔب ث‪ ٝ‬ز‪ٔ ٚ‬شسی و‪ ٝ‬ثیكشطیٗ وبضثطز ضا زاض٘س اقبض‪ٔ ٜ‬ی و‪ٙ‬یٓ ‪showMessageDialog ٚ showConfirmDialog‬‬

‫ٔشس ‪ showMessageDialog‬وبزض ٕ٘بیف دیغبْ ث‪ٕٞ ٝ‬ـطا‪ ٜ‬زوٕـ‪ٔ OK ٝ‬ـی ثبقـس ) أـب ٔشـس ‪ showConfirmDialog‬وبزض ٕ٘بیف دیغبْ ث‪ٕٞ ٝ‬طا‪ٜ‬‬
‫چ‪ٙ‬سیٗ زوٕ‪ ٝ‬اظ لجیُ ‪no,yes‬یب‪ٔCancel,no,Yes‬ی ثبقس) ثب اؾشفبز‪ ٜ‬اظ ایٗ ٔشس ٔی س‪ٛ‬اٖ ثط اؾبؼ ذط‪ٚ‬ػی سبثٕ ٔٗـیٗ وـطز چ‪ّٕٖ ٝ‬ی ا٘ؼـبْ قـ‪ٛ‬ز )‬
‫ٔـظال ثـب ظزٖ وّیـس ‪ yes‬چـ‪ ٝ‬اسفـبلی ثیفشـس ‪ ٚ‬ثـ‪ٕٞ ٝ‬ـیٗ سطسیـت ثـطای ؾبیطوّیس‪ٞ‬بی وبزض دیغبْ ٘یع ‪ٕٞ‬یٗ َ‪ٛ‬ض ‪.‬‬

‫;)”٘بْ قی فطیٓ”‪“,‬دیغبْ”‪ٖٛٙ”,‬اٖ د‪ٙ‬ؼط‪ ٜ‬دیغبْ”‪ ٔٛ٘,‬آیى‪JOptionPane)showMessageDialog(“ٖٛ‬‬

‫‪141‬‬
‫‪ٞ‬ط وبزض دیبْ ٔی س‪ٛ‬ا٘س قبُٔ یه آیى‪ٔ ٖٛ‬طسجٍ ثب ٘‪ ٔٛ‬دیبْ ثبقس و‪ ٝ‬زض ازأ‪٘ ٝ‬ح‪ ٜٛ‬اؾشفبز‪ ٜ‬اظ آ٘‪ٟ‬ب ضا ٔی ٌ‪ٛ‬ییٓ ‪.‬‬

‫وبزض ٕ٘بیف دیغبْ ث‪ٕٞ ٝ‬طا‪ ٜ‬وّیس‪Ok‬‬

‫ثطای ٔكرم وطزٖ ٘‪ ٔٛ‬آیى‪ ٖٛ‬ثبیس ای‪ٛ٘ ٍٝ٘ٛٙ‬قز‪:‬‬

‫‪ JOptionPane.WARNING_MESSAGE‬آیى‪ ٖٛ‬اذُبض‬
‫آیىٗ ذُب‬ ‫‪JOptionPane.ERROR_MESSAGE‬‬
‫‪ JOptionPane.MESSAGE_PLAIN‬وبزض ثس‪ ٖٚ‬آیى‪ٖٛ‬‬

‫وبزض ٕ٘بیف دیغبْ ث‪ ٝ‬ن‪ٛ‬ضر سٗبّٔی‬

‫ثطای ٕ٘بیف وبزض دیغبٔی و‪ ٝ‬ثب ظزٖ یه زوٕ‪ ٝ‬آٖ ّٖٕی ثطاؾـبؼ ٘یـبظ وـبضثط ا٘ؼـبْ قـ‪ٛ‬ز‪،‬اظ ٔشـس ‪showConfirmDialog‬اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز ) ذط‪ٚ‬ػی‬
‫ایٗ سبثٕ اظ ٘‪ٔ int ٔٛ‬ی ثبقس‪ ٚ‬دـؽ اظ ٕ٘بیف دیغبْ ٔی س‪ٛ‬اٖ ثب زؾش‪ٛ‬ض ‪ ُٕٖ if‬ثٗسی ضا ٔسیطیز وطز‪.‬‬

‫;)ا٘‪ٛ‬أ زوٕ‪ٞ ٝ‬ب‪ٖٛٙ",‬اٖ د‪ٙ‬ؼط‪” , "ٜ‬دیغـبْ"‪٘ ",‬بْ قـی فـطیٓ"(‪intresult=JOptionPane.showConfirmDialog‬‬

‫ٔظبَ‪:‬‬

‫‪Int result=JOptionPane.showConfirmDialog(frame,"Would you like green eggs and ham?","An Inane‬‬


‫;)‪Question",JOptionPane.YES_NO_OPTION‬‬

‫{)‪if(result==JOptionPane.YES_OPTION‬‬

‫ّٖٕی و‪ ٝ‬زضن‪ٛ‬ضر ظزٖ وّیس‪yes‬ا٘ؼبْ ق‪ٛ‬ز‬

‫}‬

‫{‪else‬‬

‫ّٖٕی و‪ ٝ‬زضن‪ٛ‬ضر ظزٖ وّیس‪no‬ا٘ؼبْ ق‪ٛ‬ز‬

‫}‬

‫اپلت چیست؟‬

‫٘مُ‪ ٝ‬قط‪ٔ ٔٚ‬حج‪ٛ‬ثیز ػب‪ٚ‬ا‪ ،‬ادّز ‪ٞ‬بی ػب‪ٚ‬ا « ‪ٔ » Applet Java‬ی ثبق‪ٙ‬س) اظ ِحبِ ظٔب٘ی‪ ،‬ظثبٖ ثط٘بٔ‪ٛ٘ ٝ‬یؿی ػب‪ٚ‬ا‪ٚ ،‬لشی دب ث‪ٖ ٝ‬طن‪ٚ ٝ‬ػ‪ٛ‬ز ٌصاقز و‪ٝ‬‬
‫ز٘یبی ای‪ٙ‬شط٘ز زض ٔطاحُ آغبظیٗ ضقس لطاض زاقز ‪ ٚ‬ث‪ ٝ‬یه ظثبٖ ثط٘بٔ‪ٛ٘ ٝ‬یؿی ٔؿشمُ اظ ٔحیٍ ٘یبظ زاقز سب ثش‪ٛ‬ا٘س لبثّیز ‪ٞ‬بی ذ‪ٛ‬ز ضا ث‪َٛ ٝ‬ض وبُٔ‬
‫قى‪ٛ‬فب و‪ٙ‬س) ػب‪ٚ‬ا ث‪ ٝ‬وٕه ایٗ سى‪ِٛٛٙ‬غی س‪ٛ‬ا٘ؿز ایٗ ٘یبظ ضا ضفٕ ٕ٘بیس)‬

‫‪142‬‬
‫انُالح ادّز س‪ٛ‬ؾٍ ‪ ٚ appletScript‬زض ؾبَ ‪ُٔ 1993‬طح ٌطزیس) ث‪َٛ ٝ‬ض وّی ‪ٚ‬اغ‪ ٜ‬ادّز « ‪ » Applet‬ث‪ ٝ‬ثط٘بٔ‪ٞ ٝ‬بیی اَالق ٔی ٌطزز و‪ ٝ‬زض ظٔی‪ٝٙ‬‬
‫ثط٘بٔ‪ٞ ٝ‬بی زیٍط اػطا ٔی ق‪٘ٛ‬س) ث‪ٖٛٙ ٝ‬اٖ ٔظبَ فبیّ‪ٟ‬بی فّف و‪ ٝ‬زض نفحبر ‪ٚ‬ة لطاض ٌطفش‪ ٚ ٝ‬س‪ٛ‬ؾٍ ٔط‪ٚ‬ضٌط اػطا ٔی ٌطز٘س‪ٖٛ٘ ،‬ی اظ ادّز ‪ٞ‬ب ٔی ثبق‪ٙ‬س)‬

‫ثطذی اظ ذه‪ٛ‬نیبر ادّز ‪ٞ‬ب ٖجبضس‪ٙ‬س اظ‪5‬‬

‫‪ٔ servlet‬ی ثبقس و‪ ٝ‬زض ٔبقیٗ ؾط‪ٚ‬یؽ ز‪ٙٞ‬س‪ ٜ‬اػطا ٔی ق‪ٛ‬ز ‪٘ ٚ‬شیؼ‪ٝ‬‬ ‫«‪ »1‬فمٍ زض ٔبقیٗ ؾط‪ٚ‬یؽ ٌیط٘س‪ ٜ‬اػطا ٔی ق‪٘ٛ‬س) زض ػب‪ٚ‬ا ٘مُ‪ٔ ٝ‬مبثُ ادّز‪،‬‬
‫حبنُ اظ آٖ ث‪ٔ ٝ‬بقیٗ ؾط‪ٚ‬یؽ ٌیط٘س‪ٙٔ ٜ‬شمُ ٔی ٌطزز)‬

‫«‪ٕٛٗٔ »2‬ال زاضای یه ‪ْٚ‬یف‪ ٝ‬ذبل ‪ٗٔ ٚ‬ی‪ٙ‬ی ٔی ثبق‪ٙ‬س) «ٕٔٗ‪ٛ‬ال ثه‪ٛ‬ضر سه ٔ‪ٛٓٙ‬ض‪ٔ ٜ‬ی ثبق‪ٙ‬س)»‬

‫«‪ »3‬ادّز ‪ٞ‬ب ثط ٖىؽ ثط٘بٔ‪ٞ ٝ‬بی زیٍط ػب‪ٚ‬ا‪ٕ٘ ،‬ی س‪ٛ‬ا٘‪ٙ‬س ثه‪ٛ‬ضر ٔؿشمیٓ اػطا ق‪٘ٛ‬س) ؾبذشبض یه ادّز حب‪ٚ‬ی یه ضاثٍ ٌطافیىی لسضسٕ‪ٙ‬س اؾز و‪ ٝ‬ث‪ٝ‬‬
‫‪ » GUI‬آٖ اؾز و‪ ٝ‬یه ادّز ثبیس زض ٔحیُی و‪ٝ‬‬ ‫وٕه آٖ ٔی س‪ٛ‬اٖ ثب وبضثط ث‪ ٝ‬ن‪ٛ‬ضر فُٗ ‪ ٚ‬ا٘فٗبِی زض اضسجبٌ ث‪ٛ‬ز) ّٖز ٘یبظ ادّز ث‪ ٝ‬ضاثٍ ٌطافیىی «‬
‫ٔط‪ٚ‬ضٌط زض اذشیبض آٖ لطاض ٔی ز‪ٞ‬س‪ ،‬اػطا ق‪ٛ‬ز) «ٔحیٍ ٌطافیىی ٔط‪ٚ‬ضٌط‪ٞ‬ب ذیّی ٔحس‪ٚ‬ز ٔی ثبق‪ٙ‬س)»‬

‫«‪ »4‬ادّز ‪ٞ‬ب زض لبِجی و‪ ٝ‬س‪ٛ‬ؾٍ ثط٘بٔ‪ٔ ٝ‬یعثبٖ ‪ ٚ‬اظ َطیك ‪ Plug-in‬اؾز‪ ،‬اػطا ٔی ق‪ٛ‬ز ‪ ٚ‬یب زض ثط٘بٔ‪ٞ ٝ‬بی وبضثطزی لبثُ حُٕ و‪ ٝ‬اظ ٔسَ ثط٘بٔ‪ٛ٘ ٝ‬یؿی‬
‫ادّز دكشیجب٘ی ٔی و‪ٙٙ‬س‪ ،‬اػطا ٔی ق‪ٛ‬ز)‬

‫‪ٚ Player Media‬ی‪ٙ‬س‪ٚ‬ظ و‪ ٝ‬ثطای ٘كبٖ زازٖ فبیُ ‪ٞ‬بی ‪ٚ‬یسئ‪ٛ‬یی زض ٘طْ‬ ‫اظ ػّٕ‪ٗٔ ٝ‬ط‪ٚ‬ف سطیٗ ادّز ‪ٞ‬ب ٔی س‪ٛ‬اٖ ث‪ ٝ‬ادّز ‪ٞ‬بی ػب‪ٚ‬ا‪ ،‬فیّٓ ‪ٞ‬بی فّف ‪ٚ‬‬
‫افعاض‪ٞ‬بی ٔط‪ٚ‬ضٌط ‪ٚ‬ة ٔب٘‪ٙ‬س ای‪ٙ‬شط٘ز اوؿذّ‪ٛ‬ض‪ ،‬ث‪ ٝ‬ن‪ٛ‬ضر ‪ Plug-in‬اؾشفبز‪ٔ ٜ‬ی ق‪٘ٛ‬س‪ ،‬اقبض‪ٕٛ٘ ٜ‬ز)‬

‫زض ‪ٚ‬الٕ ادّز‪ٞ‬بی ػب‪ٚ‬ا‪ ،‬ثط٘بٔ‪ٞٝ‬بی و‪ٛ‬چىی ‪ٞ‬ؿش‪ٙ‬س و‪ ٝ‬زض نفحبر ‪ٚ‬ة لطاض ٌطفش‪ ٚ ٝ‬س‪ٛ‬ؾٍ ٔط‪ٚ‬ضٌط‪ٞ‬بیی و‪ ٝ‬لبزض ث‪ ٝ‬دكشیجب٘ی اظ ػب‪ٚ‬ا‬
‫« ‪ٔ » browser enabled Java‬یثبق‪ٙ‬س‪ ،‬اػطا ٔی ق‪٘ٛ‬س) ث‪َٛ ٝ‬ض وّی ٔی س‪ٛ‬اٖ ذه‪ٛ‬نیبر ادّز ‪ٞ‬بی ػب‪ٚ‬ا ضا ث‪ ٝ‬ن‪ٛ‬ضر ظیط ثیبٖ ٕ٘‪ٛ‬ز‪5‬‬

‫«ٔعایب»‬

‫«‪ »1‬ث‪ ٝ‬ضاحشی ٔی س‪ٛ‬اٖ یه ادّز ضا س‪ِٛ‬یس ٕ٘‪ٛ‬ز ‪ ٚ‬زض ٔط‪ٚ‬ضٌط‪ٞ‬بی ٔرشّف ثب لبثّیز دكشیجب٘ی اظ ػب‪ٚ‬ا‪ ،‬اػطا وطز)‬

‫«‪ »2‬ادّز ‪ٞ‬ب زض سٕبٔی ٘ؿر‪ٞ ٝ‬بی ػب‪ٚ‬ا لبثُ اػطا ٔی ثبق‪ٙ‬س)‬

‫«‪ »3‬زض ن‪ٛ‬ضر سغییط وس یه ادّز‪ ،‬ؾط‪ٚ‬یؽ ٌیط٘س‪« ٜ‬والی‪ٙ‬ز» ثب ا‪ِٚ‬یٗ ٔطاػٗ‪ ٝ‬ث‪ ٝ‬ؾط‪ٚ‬یؽ ز‪ٙٞ‬س‪٘ ،ٜ‬ؿر‪ ٝ‬ثط‪ٚ‬ظ قس‪ ٜ‬آٖ ضا زضیبفز ٔی و‪ٙ‬س)‬

‫«‪ »4‬ادّز ‪ٞ‬ب زض ن‪ٛ‬ضر ٔ‪ٛ‬افمز وبضثط ٔی س‪ٛ‬ا٘‪ٙ‬س زؾشطؾی وبُٔ ث‪ٔ ٝ‬بقیٗ ؾط‪ٚ‬یؽ ٌیط٘س‪ ٜ‬زاقش‪ ٝ‬ثبق‪ٙ‬س)‬

‫«‪ »5‬یه ادّز زض ‪ٚ‬الٕ ظیط والؾی اظ والؼ ‪ٔ java.applet.Applet‬ی ثبقس)‬

‫«‪ٚ‬یػٌی ‪ٞ‬بی أ‪ٙ‬یشی»‬

‫«‪ »6‬ادّز ‪ٞ‬ب ػع زض ٔ‪ٛ‬اضز ٔكرم قس‪ ،ٜ‬اػبظ‪ٞ ٜ‬یچٍ‪ ٝ٘ٛ‬زؾشطؾی ث‪ ٝ‬فبیّ‪ٟ‬بی ٔبقی‪ٙ‬ی و‪ ٝ‬زض آٖ زض حبَ اػطاؾز ٘ساضز) حشی زض ثًٗی اظ ٔط‪ٚ‬ضٌط‪ٞ‬ب‪ ،‬اػبظ‪ٜ‬‬
‫‪ٕٞ‬یٗ ٔمساض زؾشطؾی ٘یع زاز‪ٕ٘ ٜ‬ی ق‪ٛ‬ز)‬
‫‪143‬‬
‫«‪ »7‬ادّز ثب ‪ٞ‬یچ ٘مُ‪ ٝ‬ای اظ قجى‪ ٝ‬ػع ؾیؿشٕی و‪ ٝ‬اظ آ٘ؼب ثبض ٌصاضی قس‪ ٜ‬اؾز‪ٕ٘ ،‬ی س‪ٛ‬ا٘س سٕبؼ ثٍیطز)‬

‫«‪ »8‬ادّز ٕ٘ی س‪ٛ‬ا٘س ‪ٞ‬یچ ثط٘بٔ‪ ٝ‬ای ضا ض‪ٚ‬ی ؾیؿشٓ اػطا و‪ٙٙ‬س‪ ٜ‬آٖ‪ ،‬اػطا و‪ٙ‬س)‬

‫‪ SandBox‬اػطا ٔی ق‪ٛ‬ز) ّٖز‬ ‫«‪ »9‬ظٔب٘ی و‪ ٝ‬یه ادّز اظ ای‪ٙ‬شط٘ز زاّ٘‪ٛ‬ز ٔی ق‪ٛ‬ز ‪ ٚ‬زض ٔط‪ٚ‬ضٌط ‪ٚ‬ة اػطا ٔی ق‪ٛ‬ز‪ ،‬اثشسا ادّز زض یه ٔحیٍ أٗ ثب ٘بْ‬
‫ایٗ أط آٖ اؾز و‪ ٝ‬ادّز ٘ش‪ٛ‬ا٘س ّٖٕیبر ٔرطثی ض‪ٚ‬ی وبٔذی‪ٛ‬سط ٔمهس ا٘ؼبْ ز‪ٞ‬س) ٔب٘‪ٙ‬س ذ‪ٛ‬ا٘سٖ یب ٘‪ٛ‬قشٗ ض‪ٚ‬ی فبیُ ‪ٞ‬ب)‬

‫«ٔٗبیت»‬

‫«‪ٔ »10‬ط‪ٚ‬ضٌط‪ٞ‬ب ثطای اػطای یه ادّز‪ٕٞ ،‬یك‪ ٝ‬ث‪ Plug-in ٝ‬ػب‪ٚ‬ا ٘یبظ زاضز)‬

‫«‪ »11‬سب ‪ٚ‬لشی و‪ JVM ٝ‬ضا‪ ٜ‬ا٘ساظی ٘كس‪ ٜ‬ثبقس‪ٕ٘ ،‬ی س‪ٛ‬اٖ یه ادّز ػب‪ٚ‬ا ضا اػطا ٕ٘‪ٛ‬ز)‬

‫«‪ »12‬ثطای اػطای ادّز زض ٔبقیٗ ؾط‪ٚ‬یؽ ٌیط٘س‪ ٜ‬ثبیس ‪ JRE‬یب ‪٘ Enviroment Runtime Java‬هت قس‪ ٜ‬ثبقس)‬

‫‪ٔ java.applet.Applet‬ی ثبقس و‪ ٝ‬یه ‪ٚ‬اؾٍ اؾشب٘ساضز ثیٗ ادّز ‪ٔ ٚ‬حیٍ ٔط‪ٚ‬ضٌط فطا‪ٓٞ‬‬ ‫‪ٕٞ‬بُ٘‪ٛ‬ض و‪ٌ ٝ‬فش‪ ٝ‬قس‪ ،‬ادّز ظیط والؾی اظ والؼ‬
‫‪ Applet‬ثب ٘بْ ‪ javax.swing.JApplet‬زاضز و‪ ٝ‬ثطای ادّز ‪ٞ‬بیی و‪ٔ ٝ‬ی ذ‪ٛ‬ا‪ٙٞ‬س اظ وبٔذ‪ٙ٘ٛ‬ز‬ ‫ٔی و‪ٙ‬س) ‪٘ Swing‬یع یه ظیط والؼ ‪ٚ‬یػ‪ ٜ‬اظ‬
‫‪ JApplet‬ایؼبز ٔی ق‪٘ٛ‬س‪ ٚ Applet Swing ،‬ادّز ‪ٞ‬بیی و‪ ٝ‬ثط اؾبؼ‬ ‫‪ٞ‬بی ‪ Swing‬اؾشفبز‪ ٜ‬و‪ٙٙ‬س‪ ،‬ث‪ ٝ‬وبض ٔی ض‪ٚ‬ز) ادّز ‪ٞ‬بیی و‪ ٝ‬ثط اؾبؼ والؼ‬
‫والؼ ‪ Applet‬ؾبذش‪ٔ ٝ‬ی ق‪٘ٛ‬س‪٘ Pre-Swing Applet ،‬بْ زاض٘س)‬

‫‪ٕٞ‬بُ٘‪ٛ‬ض و‪ٌ ٝ‬فش‪ ٝ‬قس‪ ،‬زض ‪ Applet Swing‬اظ وبٔذ‪ٙ٘ٛ‬ز ‪ٞ‬بی ‪ Swing‬اؾشفبز‪ٔ ٜ‬ی ق‪ٛ‬ز ‪ ٚ‬اظ َطفی ٔی زا٘یٓ و‪ ٝ‬زض ثط٘بٔ‪ٞ ٝ‬بی زیٍط ػب‪ٚ‬ا ثطای افع‪ٚ‬زٖ ایٗ‬
‫٘‪ ٔٛ‬اظ وبٔذ‪ٙ٘ٛ‬ز ‪ٞ‬ب‪ ،‬ثط٘بٔ‪ ٝ‬ثبیس اظ والؼ ‪ JFrame‬اضص ثطی ٕ٘بیس) حبَ آ٘ى‪ ٝ‬زض ‪ Applet Swing‬اظ والؼ ‪ JFrame‬اضص ثطی ٕ٘ی و‪ٙ‬یٓ)‬

‫ٔظبَ‪5‬‬

‫;‪import java.applet.Applet‬‬
‫;*‪import java.awt.‬‬

‫‪ٔ''.‬ظبِی اظ ادّز ثطای ثط٘بٔ‪'' ٝ‬ؾالْ ز٘یب ‪//‬‬


‫‪//‬ایٗ ثط٘بٔ‪ ٝ‬ثبیس سحز ٘بْ "‪ "HelloWorld.java‬شذیط‪ ٜ‬ق‪ٛ‬ز‪.‬‬
‫{ ‪public class HelloWorld extends Applet‬‬
‫‪ //‬ایٗ ٔشس اػجبضی اؾز و‪ ٝ‬اِجش‪ٔ ٝ‬یس‪ٛ‬ا٘س ذبِی ثبقس‪ $‬حا‪ٚ‬ی ‪ٞ‬یچ وسی ٘جبقس ‪.#‬‬
‫} { )(‪public void init‬‬

‫ایٗ ٔشس ‪ٚ‬ػ‪ٛ‬زـ يط‪ٚ‬ضی اؾز ‪ِٚ‬ی ٔیس‪ٛ‬ا٘س ذبِی ثبقس ‪//‬‬
‫} { )(‪public void stop‬‬

‫‪.‬ایٗ ٔشس ٖ‪ٙ‬بنط ض‪ٚ‬ی ادّز ضا سطؾیٓ ٔی و‪ٙ‬س‪//‬‬


‫‪ٞ //‬ط سغییطی و‪ ٝ‬ثط ض‪ٚ‬ی ادّز ایؼبز ق‪ٛ‬ز ایٗ ٔشس ثب اؾشفبز‪ ٜ‬اظ زؾش‪ٛ‬ض‬
‫‪.‬فطاذ‪ٛ‬ا٘ی ٔؼسز ٔی ق‪ٛ‬ز )(‪//repaint‬‬
‫‪144‬‬
‫{ )‪public void paint(Graphics g‬‬
‫‪.‬ضً٘ لّٓ ضا ث‪ ٝ‬لطٔع س‪ٓٙ‬یٓ ٔی و‪ٙ‬س‪//‬‬
‫;)‪g.setColor(Color.red‬‬
‫‪.‬ا٘ساظ‪ ٔٛ٘ ٚ ٜ‬لّٓ ضا ث‪ ٝ‬ض‪ٚ‬ـ ظیط س‪ٓٙ‬یٓ و‪ٙ‬یس‪//‬‬
‫;))‪g.setFont(new Font("TimesRoman", Font.PLAIN, 10‬‬
‫‪ //‬ضقش‪ “Hello World” ٝ‬ضا زض ٔرشهبر ‪ #20,10$‬ثط ض‪ٚ‬ی ادّز ٔی ٍ٘بضز‪.‬‬
‫;)‪g.drawString("Hello, world!", 20,10‬‬
‫}‬
‫}‬

‫‪ 4‬هتذ اغلی اپلت ّا‪:‬‬

‫‪5 init‬‬ ‫‪‬‬

‫ایٗ ٔشس ثطای ٔمساضز‪ٞ‬ی ا‪ِٚ‬ی‪ٞ ٝ‬ط ادّز ٔ‪ٛ‬ضز ٘یبظ اؾز)‬

‫‪5 start‬‬ ‫‪‬‬

‫ایٗ ٔشس ث‪ ٝ‬ن‪ٛ‬ضر ذ‪ٛ‬زوبض دؽ اظ فطاذ‪ٛ‬ا٘ی ٔط‪ٚ‬ضٌط اظ ٔشس ‪ init‬ثسؾز ٔی آیس)‬

‫‪5 stop‬‬ ‫‪‬‬

‫ایٗ ٔشس ث‪ ٝ‬ن‪ٛ‬ضر ذ‪ٛ‬زوبض ظٔب٘ی فطاذ‪ٛ‬ا٘ی ٔی ق‪ٛ‬ز و‪ ٝ‬وبضثط نفح‪ ٝ‬ای ضا و‪ ٝ‬ض‪ٚ‬ی آٖ ادّز ٘كؿش‪ ٝ‬اؾز ضا حطوز ثس‪ٞ‬س)‬

‫‪5 destroy‬‬ ‫‪‬‬

‫ایٗ ٔشس س‪ٟٙ‬ب ظٔب٘ی فطاذ‪ٛ‬ا٘ی ٔی ق‪ٛ‬ز و‪ٔ ٝ‬ط‪ٚ‬ضٌط ث‪َٛ ٝ‬ض ٕٔٗ‪ َٛ‬ثؿش‪ ٝ‬ق‪ٛ‬ز)‬

‫‪5 paint‬‬ ‫‪‬‬

‫ثالفبنّ‪ ٝ‬دؽ اظ ٔشس ‪ٕٞ ٚ start #$‬چ‪ٙ‬یٗ ‪ٞ‬ط ظٔبٖ و‪ ٝ‬ادّز ثبیس ذ‪ٛ‬ز ضا زض ٔط‪ٚ‬ضٌط ٔؼسزا دطی‪ٙ‬ز ثٍیطز‪ ،‬فطاذ‪ٛ‬ا٘ی ٔی ق‪ٛ‬ز)‬

‫کاربزد ّای کالس اپلت‪:‬‬

‫زضیبفز دبضأشط‪ٞ‬بی ادّز)‬ ‫‪‬‬

‫ٔحُ قجى‪ ٝ‬فبیُ ‪ HTML‬و‪ ٝ‬حب‪ٚ‬ی ادّز ثبقس ضا زضیبفز ٔی و‪ٙ‬س)‬ ‫‪‬‬

‫ٔحُ قجى‪ ٝ‬زض زایطوش‪ٛ‬ضی والؼ ادّز ضا زضیبفز ٔی و‪ٙ‬س)‬ ‫‪‬‬

‫دیبْ ‪ٚ‬يٗیز ضا زض ٔط‪ٚ‬ضٌط چبح ٔی و‪ٙ‬س)‬ ‫‪‬‬

‫سه‪ٛ‬یط ضا ثطٔی زاضز)‬ ‫‪‬‬

‫وّیخ ن‪ٛ‬سی ضا ثطٔی زاضز)‬ ‫‪‬‬

‫وّیخ ن‪ٛ‬سی درف ٔی و‪ٙ‬س)‬ ‫‪‬‬

‫‪145‬‬
‫سغییط ا٘ساظ‪ ٜ‬ادّز)‬ ‫‪‬‬

‫اکٌَى هیخَاّین بِ ٍیژگی بزتز اپلت ّا ًسبت بِ اپلیکیطي ّا بپزداسین‪:‬‬

‫ادّز ‪ٞ‬ب حؼٓ ث‪ٔ ٝ‬طاست وٕشطی ٘ؿجز ث‪ ٝ‬ادّیىیكٗ ‪ٞ‬ب زاض٘س‬ ‫‪‬‬

‫ادّز ‪ٞ‬ب ضا ٔیش‪ٛ‬ا٘یس ث‪ ٝ‬ن‪ٛ‬ضر ِی‪ٙ‬ه یب اَالٖبسی زض یه‬ ‫‪ instance‬آ٘‪ٟ‬ب ‪ٚ‬ػ‪ٛ‬ز ذ‪ٛ‬ا‪ٞ‬س زاقز)‬ ‫زض ٘شیؼ‪ ٝ‬أىبٖ ث‪ ٝ‬اقشطان ٌصاضی ‪ ٚ‬اػطای‬
‫سً ‪ NFC‬یب ‪ QR Code‬ضز ‪ ٚ‬ثسَ ٕ٘بییس)‬

‫أ‪ٙ‬یز ثبالی ادّز ‪ٞ‬ب‬ ‫‪‬‬

‫ث‪ ٝ‬زِیُ سٕطوع ثط ض‪ٚ‬ی أ‪ٙ‬یز ‪ ٚ‬حفّ حطیٓ قرهی زض ‪ٞ‬ؿش‪ ٝ‬ثط٘بٔ‪ ٝ‬س‪ٛ‬ؾٍ افطاز ٔشرهم‪ ،‬ثّ‪ٛ‬ن ‪ٞ‬بی ؾبظ٘س‪ ٜ‬ادّز ‪ٞ‬ب اظ اٍِ‪ٞٛ‬بی اؾشب٘ساضزی دیط‪ٚ‬ی ٔی‬
‫ٕ٘بی‪ٙ‬س و‪ ٝ‬حساوظط وبضایی ‪ ٚ‬أ‪ٙ‬یز ضا سًٕیٗ ذ‪ٛ‬ا‪ٞ‬س ٕ٘‪ٛ‬ز)‬

‫ا٘شكبض ؾطیٕ‬ ‫‪‬‬

‫زض ثبظاض دط ضلبثز و‪٘ٛٙ‬ی ثب نس ‪ٞ‬ب ٔیّی‪ ٖٛ‬ادّیىیكٗ‪ ،‬حشی ثب نطف ‪ٞ‬عی‪ٞ ٝٙ‬بی ثؿیبض ظیبز سجّیغبر ث‪ ٝ‬ؾبزٌی ادّیىیكٗ قٕب زض ٔیبٖ زیٍط ادّیىیكٗ ‪ٞ‬ب ٌٓ‬
‫ذ‪ٛ‬ا‪ٞ‬س قس) اوظط وبضثطاٖ ثط اؾبؼ ٘یبظ ‪ٛٔ ٚ‬لٗیشی و‪ ٝ‬زض آٖ لطاض ٔی ٌیط٘س ٘یبظ ث‪ ٝ‬اؾشفبز‪ ٜ‬اظ ادّیىیك‪ٙ‬ی ضا احؿبؼ ٔی ٕ٘بی‪ٙ‬س) أب ‪ٚ‬الٗب چ‪ ٝ‬وؿی ٔی ذ‪ٛ‬ا‪ٞ‬س‬
‫سٗساز ظیبزی ادّیىیكٗ ثط ض‪ٚ‬ی ٌ‪ٛ‬قی ذ‪ٛ‬ز ٘هت زاقش‪ ٝ‬ثبقس؟! أب ادّز ‪ٞ‬ب ضا ٔی س‪ٛ‬ا٘یس ث‪ ٝ‬ن‪ٛ‬ضر یه ِی‪ٙ‬ه ؾبز‪ ٚ ٜ‬ثب حؼٓ وٓ زض ‪ٞ‬ط ٘مُ‪ ٝ‬ای و‪ٝ‬‬
‫وبضثطاٖ قٕب ‪ٚ‬ػ‪ٛ‬ز زاض٘س‪ ،‬زض زؾشطؼ آٖ ‪ٞ‬ب لطاض ز‪ٞ‬یس)‬

‫وب‪ٞ‬ف چكٍٕیط ‪ٞ‬عی‪ٞ ٝٙ‬بی َطاحی ‪ٖ ٚ‬یت یبثی‬ ‫‪‬‬

‫سیٓ ‪ٞ‬بی ٔشرهم‪ٞ ،‬ؿش‪ ٝ‬اػطایی ثط٘بٔ‪ ٝ‬ضا َطاحی ‪ ٚ‬س‪ٛ‬ؾٗ‪ ٝ‬ذ‪ٛ‬ا‪ٙٞ‬س زاز)‬

‫أب زض ادّز ‪ٞ‬ب س‪ٟٙ‬ب ‪َ ٚ Logic ،Concept‬طاحی ‪ٚ‬اؾٍ وبضثطی لطاض زاضز و‪ ٝ‬ثب سغییط وس ‪ٞ‬بی ‪ٞ‬ؿش‪ ٝ‬ثط٘بٔ‪٘ ،ٝ‬یبظی ث‪ ٝ‬سغییط زض ادّز ‪ٞ‬ب ٘ر‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز)‬

‫وٓ حؼٓ ‪ ٚ‬ؾطیٕ‬ ‫‪‬‬

‫سٕطوع انّی َطاحی ‪ٞ‬ؿش‪ ، ٝ‬ثط ؾ‪ ٝ‬انُ اهٌیت‪ ،‬بْیٌِ ساسی ‪ ٚ‬تَسعِ پذیزی ث‪ٛ‬ز‪ ٜ‬اؾز) ثط ایٗ اؾبؼ ‪ٞ‬ؿش‪ ٝ‬ثط٘بٔ‪ ٝ‬ث‪٘ ٝ‬ح‪ٛ‬ی َطاحی قس‪ ٜ‬اؾز و‪ٖ ٝ‬ال‪ٜٚ‬‬
‫‪ 64‬ثیشی سب ٔیىط‪ٚ‬و‪ٙ‬شطِط ‪ٞ‬بی ‪ 8‬ثیشی ‪ ٚ‬ؾیؿشٓ ‪ٞ‬بی ٖبُٔ ٔب٘‪ٙ‬س‬ ‫ثط حؼٓ ثؿیبض وٓ لبثّیز دیبز‪ ٜ‬ؾبظی ثط ض‪ٚ‬ی سٕبْ ا٘‪ٛ‬أ ؾرز افعاض ‪ٞ‬ب اظ دطزاظ٘س‪ٞ ٜ‬بی‬
‫ا٘سض‪ٚ‬یس‪ ٚ Windows ،iOS ،‬غیط‪ ٜ‬ضا زاقش‪ ٝ‬ثبقس)‬

‫یه َطاحی ثطای سٕبْ زؾشٍب‪ٞ ٜ‬ب‬ ‫‪‬‬

‫ث‪ ٝ‬ظ‪ٚ‬زی أىبٖ اػطای ادّز ‪ٞ‬ب ثط ض‪ٚ‬ی اوظط ؾیؿشٓ ‪ٞ‬بی ٖبُٔ ذ‪ٛ‬ا‪ٞ‬س ث‪ٛ‬ز)‬

‫ٔحیٍ س‪ٛ‬ؾٗ‪ ٝ‬ادّز ‪ #Applet IDE$‬ثط ض‪ٚ‬ی ؾیؿشٓ ‪ٞ‬بی ٖبُٔ ٌ‪ٛ‬قی ‪ٞ‬بی سّفٗ ‪ٕٞ‬طا‪ٜ‬‬ ‫‪‬‬

‫زض حبَ حبْط ٔی س‪ٛ‬اٖ ادّز ‪ٞ‬ب ضا ثط ض‪ٚ‬ی ٌ‪ٛ‬قی ‪ٞ‬بی سّفٗ ‪ٕٞ‬طا‪ ٜ‬ثب ؾیؿشٓ ٖبُٔ ا٘سض‪ٚ‬یس ایؼبز ٕ٘‪ٛ‬ز)‬

‫‪146‬‬
‫والْ آذط‪5‬‬

‫ادّز ث‪ٖٛٙ ٝ‬اٖ یه والؼ یب یه افع‪ ٝ٘ٚ‬زض ػب‪ٚ‬ا ث‪ ٝ‬قٕب لبثّیز اػطای وس‪ٞ‬بی ػب‪ٚ‬ا زض ‪ html‬ضا ٔی ز‪ٞ‬س ‪ ٚ‬ثب اؾشفبز‪ ٜ‬اظ وس‪ٞ‬بی ػب‪ٚ‬ا ٔی س‪ٛ‬ا٘یس سه‪ٛ‬یطی‬
‫یب ٔشٗ یب فبیُ چ‪ٙ‬سضؾب٘‪ ٝ‬ای ضا زض وس ‪ html‬ایؼبز و‪ٙ‬یس)‬

‫زضذ‪ٛ‬اؾز یه ‪5Applet‬‬
‫‪ applet‬یب ٔط‪ٚ‬ضٌط ‪Java-‬‬ ‫‪ٔ ٚ HTML‬كب‪ٞ‬س‪ ٜ‬ی فبیُ اظ َطیك یه ٘ٓبض‪ٌ ٜ‬ط‬ ‫یه ‪ٕٔ applet‬ىٗ اؾز ث‪ٚ ٝ‬ؾیّ‪ ٝ‬ی سٗجی‪ ٝ‬ی ٔؿیط‪ٞ‬بیی زض یه فبیُ‬
‫‪ ،enabled‬زضذ‪ٛ‬اؾز ق‪ٛ‬ز) زض ظیط ٔظبِی اظ زضذ‪ٛ‬اؾز ‪ "Hello, World" applet‬ضا ٔكب‪ٞ‬س‪ٔ ٜ‬ی و‪ٙ‬یس‪5‬‬
‫>‪<html‬‬
‫>‪<title>The Hello, World Applet</title‬‬
‫>‪<hr‬‬
‫>"‪<applet code="HelloWorldApplet.class" width="320" height="120‬‬
‫"‪If your browser was Java-enabled, a "Hello, World‬‬
‫‪message would appear here.‬‬
‫>‪</applet‬‬
‫>‪<hr‬‬
‫>‪</html‬‬

‫سجسیُ ثط٘بٔ‪ ٝ‬ث‪5applet ٝ‬‬


‫سجسیُ یه ثط٘بٔ‪ ٝ‬ی ٌطافیىی ػب‪ٚ‬ا ‪$‬ثط٘بٔ‪ ٝ‬ای اؾز و‪ ٝ‬اظ ‪ AWT‬اؾشفبز‪ٔ ٜ‬ی و‪ٙ‬س ‪ ٚ‬قٕب ٔی س‪ٛ‬ا٘یس ثب آغبظٌط ػب‪ٚ‬ا آٖ ضا قط‪ ٔٚ‬و‪ٙ‬یس)‪ )#‬ث‪ ٝ‬یه ‪ applet‬و‪ٝ‬‬
‫ٔی س‪ٛ‬ا٘یس زض یه نفح‪ ٝ‬ی ‪ٚ‬ة ػبی ز‪ٞ‬یس‪ ،‬آؾبٖ ٔی ثبقس)‬
‫زض ای‪ٙ‬ؼب ٔطاحُ ٔٗی‪ٙ‬ی ثطای سجسیُ یه ثط٘بٔ‪ ٝ‬ث‪ ٝ‬یه ‪ applet‬ضا ٔكب‪ٞ‬س‪ٔ ٜ‬ی و‪ٙ‬یس‪5‬‬
‫ثب ثطچؿت ٔ‪ٙ‬بؾت یه نفح‪ ٝ‬ی ‪ HTML‬ثطای ثبضٌصاضی وس ‪ applet‬ایؼبز و‪ٙ‬یس)‬ ‫·‬
‫یه ظیطٔؼٕ‪ ٖٝٛ‬اظ ٌط‪ JApplet ٜٚ‬سٗییٗ وطز‪ ٚ ٜ‬ایٗ ٌط‪ ٜٚ‬ضا ٖٕ‪ٔٛ‬ی ؾبظیس) زض غیط ایٗ ن‪ٛ‬ضر ‪ٕ٘ applet‬ی س‪ٛ‬ا٘س ثبضٌصاضی ق‪ٛ‬ز)‬ ‫·‬
‫ٔش‪ٛ‬ز انّی ضا زض ثط٘بٔ‪ ٝ‬حصف و‪ٙ‬یس) ٘یبظی ث‪ ٝ‬ؾبذز یه چبضچ‪ٛ‬ة د‪ٙ‬ؼط‪ #frame window $ ٜ‬ثطای ثط٘بٔ‪٘ ٝ‬یؿز) ثط٘بٔ‪ ٝ‬ی قٕب زض‬ ‫·‬
‫زاذُ ٔط‪ٚ‬ضٌط ٕ٘بیف زاز‪ ٜ‬ذ‪ٛ‬ا‪ٞ‬س قس)‬
‫‪ init‬اظ ‪ applet‬حطوز ز‪ٞ‬یس) الظْ ٘یؿز‬ ‫‪ٞ‬ط وس ز‪ٞ‬ی ا‪ِٚ‬ی‪ #initialization code $ ٝ‬ضا اظ چبضچ‪ٛ‬ة د‪ٙ‬ؼط‪ ٜ‬ی ؾبظ٘س‪ ٜ‬ث‪ٔ ٝ‬ش‪ٛ‬ز‬ ‫·‬
‫آثؼىز ‪ applet‬ضا ث‪َٛ ٝ‬ض ‪ٚ‬ايح ثؿبظیس) ٔط‪ٚ‬ضٌط ثطای قٕب ٕ٘‪ٌ ٝ٘ٛ‬صاضی وطز‪ٔ ٚ ٜ‬ش‪ٛ‬ز ‪ init‬ضا ثطای قٕب فطأی ذ‪ٛ‬ا٘س)‬
‫فطاذ‪ٛ‬ا٘ی ث‪ setSize ٝ‬ضا حصف و‪ٙ‬یس؛ ثطای ‪ٞ applet‬ب ا٘ساظ‪ٌ ٜ‬یطی ثب َ‪ٖ ٚ َٛ‬طو دبضأشط‪ٞ‬ب زض فبیُ ‪ HTML‬ا٘ؼبْ ٔی ق‪ٛ‬ز)‬ ‫·‬
‫فطاذ‪ٛ‬ا٘ی ث‪ setDefaultCloseOperation ٝ‬ضا حصف و‪ٙ‬یس) یه ‪ applet‬ثؿش‪ٕ٘ ٝ‬ی ق‪ٛ‬ز‪ ،‬ثّى‪ٚ ٝ‬لشی ٔط‪ٚ‬ضٌط ذبضع ٔی ق‪ٛ‬ز‪ ،‬ذبسٕ‪ٝ‬‬ ‫·‬
‫ٔی یبثس)‬
‫اٌط ثط٘بٔ‪ setTitle ٝ‬ضا فطا ٔی ذ‪ٛ‬ا٘س‪ ،‬فطاذ‪ٛ‬ا٘ی ٔش‪ٛ‬ز ضا حصف و‪ٙ‬یس) ‪ٞ Applet‬ب ٕ٘ی س‪ٛ‬ا٘‪ٙ‬س زاضای ٘‪ٛ‬اض ٖ‪ٛٙ‬اٖ ‪ #title bar $‬ثبق‪ٙ‬س) ‪$‬‬ ‫·‬
‫اِجش‪ ٝ‬قٕب ٔی س‪ٛ‬ا٘یس ذ‪ٛ‬ز نفح‪ ٝ‬ی ‪ٚ‬ة ضا ثب اؾشفبز‪ ٜ‬اظ ثطچؿت ٖ‪ٛٙ‬اٖ ‪٘ HTML‬بْ ٌصاضی و‪ٙ‬یس) ‪#‬‬
‫)‪ setVisible(true‬ضا فطا ٘ر‪ٛ‬ا٘یس) ‪ Applet‬ث‪َٛ ٝ‬ض ذ‪ٛ‬زوبض ٕ٘بیف زاز‪ٔ ٜ‬ی ق‪ٛ‬ز)‬ ‫·‬

‫‪147‬‬
148

You might also like