You are on page 1of 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