ـJava
ـJava
ضی گزایی :زض ػبٚا ٕٝٞچیع یه قی اؾز ٚاظ والؼ Objectاؾز) ػبٚا ث ٝذبَط ٔسَ قی ٌطایی ث ٝضاحشی لبثُ ٌؿشطـ اؾز .
بِ پلتفزم خاغی ٍابستِ ًیست 5ثطذالف ثؿیبضی اظ ظثبٖ ٞبی ثط٘بٔٛ٘ ٝیؿی ٔظُ ٚ ،c++ٚ cلشی و ٝػبٚا وبٔذبیُ قس ثطای یه دّشفطْ ذبل
وبٔذبیُ ٘كس ٜاؾز ثّى ٝثبیز وس سِٛیس قس ٜثطای ٞط دّشفطٔی لبثُ اؾشفبز ٜاؾز) ثبیز وس ٕٞبٖ اػعای وبٔذبیُ قس ٜی ػبٚا اؾز) وسٞبی ػبٚا
سٛؾٍ ٔبقیٗ ٔؼبظی ػبٚا ) (JVMوبٔذبیُ ٔی ق٘ٛس.
سادگی :ػبٚا ث ٌٝ٘ٛ ٝای َطاحی قس ٜاؾز و ٝث ٝضاحشی لبثُ یبزٌیطی ثبقس) اٌط قٕب ان َٛقی ٌطایی ضا زضن وٙیس ث ٝضاحشی ٔی سٛا٘یس زض
ثب اؾشفبز ٜاظ ؾیؿشٓ runtimeػبٚا ،فبیُ ٞبی وبٔذبیُ قس ٜثطضٚی ثؿیبضی اظ دطزاظ٘سٞ ٜب لبثُ اػطا ٞؿشٙس .
قابل حول :ثّٖ ٝز ذٙضی ثٛزٖ زض ٔ ٛضز ٕٔٗبضی دطزاظ٘س٘ ٚ ٜساقشٗ ٞیچ ٚاثؿشٍی دیبز ٜؾبظی ػبٚا لبثُ حُٕ اؾز) وبٔذبیّط ػبٚا ثب ظثبٖ
ٛ٘ANSI Cقش ٝقس ٜاؾز ٕٝٞ ٚلبثّیز ٞبی حُٕ زض آٖ ِحبِ قس ٜاؾز .
قابل اعتواد بَدى :ػبٚا سالـ وطز ٜاؾز وٚ ٝيٗیز ٞبیی ضا ؤٕ ٝىٗ اؾز سِٛیس ذُب وٙس ضا حصف وٙس ٚسكریم ذُب ضا زض حبِز اػطا ٚ
ٚیػٌی ث ٝثط٘بٔٛ٘ ٝیؿبٖ ایٗ أىبٖ ضا ٔی زٞس و ٝثط٘بٔٞ ٝبی فٗبَ ٔ ٚحبٚض ٜای ٚچٙس ْٚیف ٝای سِٛیس وٙٙس .
هفسزی :ثبیز وس ٞبی ػبٚا زض ظٔبٖ اػطا ث ٝظثبٖ ٔبقیٗ سطػٕٔ ٝی ق٘ٛس ٚاػطا ٔی ق٘ٛس ٞ ٚیچ ػبیی شذیطٕ٘ ٜی ٌطز٘س) ثٕٞ ٝیٗ ٔٛٓٙض
تَسیع ضذگی :ػبٚا ث ٌٝ٘ٛ ٝای َطاحی قس ٜاؾز و ٝزض ٔحیٍ ٞبی سٛظیٕ قس ٜایٙشط٘ز ثٟشطیٗ وبضایی ضا زاقش ٝثبقس .
پَیا ) (Dynamicبَدى :ظثبٖ ػبٚا ثؿیبض دٛیبسط اظ ظثبٖ ٞبی C ٚ C++اؾز) چ ٖٛایٗ ظثبٖ َطاحی قس ٜاؾز سب ثب ٔحیٍ ٞبی ٌ٘ٛبٌٖٛ
1
خػَغیات بزًاهِ ّای جاٍا
٘ىبر ثب إٞیشی و ٝزض ٔٛضز ظثبٖ ػبٚا ثبیس ثسا٘یس ٖجبضسٙس اظ:
),حؿبؾیز ػبٚا ث ٝثعضي ٚوٛچه ثٛزٖ ٘ٛقشٞ ٝب ) (Case Sensitivityحؿبؾیز ػبٚا ث ٝثعضٌی ٚوٛچىی حطٚف ث ٝایٗ قىُ اؾز وٝ
ػبٚا ثیٗ وّٕ hello ٚ Hello ٝسفبٚر لبیُ ٔی قٛز ٚایٗ ز ٚضا یىی ٕ٘ی زا٘س.
)-حطف ا٘ َٚبْ والؼ ٞب زض ػبٚا ثبیس ثب حطٚف ثعضي ٘ٛقش ٝق٘ٛس ٔب٘ٙس ListیبArray
).ثّٖ ٝز ایٗ و ٝفبنّ ٝثیٗ ٘بٟٔب ٔؼبظ ٘یؿز ثطای ٔكرم وطزٖ ٘بْ والؼ ٞب ٚاقیب ٔ ٚشس ٞب اٌط اظ چٙس وّٕ ٝسكىیُ قس ٜاؾز ثبیس حطف
اٞ َٚطوّٕ ٝث ٝنٛضر حطٚف ثعضي ٘ٛقش ٝقٛز) ایٗ وبض ث ٝذٛا٘بیی وس ثؿیبض وٕه ٔی وٙس) ثٖٛٙ ٝاٖ ٔظبَ ItProFirstClass.
٘ )/بْ ٔشسٞب ثب حطٚف وٛچه قطٔ ٔٚی ق٘ٛس ٚثطذالف والؼ ٞب ٘جبیس حطف أ َٚشس حطف ثعضي ثبقس) اٌط ٘بْ ٔشس اظ چٙس وّٕ ٝسكىیُ قسٜ
ثبقس ثبیس غیط اظ وّٕ ٝا َٚثطای ثمی ٝوّٕٞ ٝب حطف اِٚكبٖ ثعضي ثبقس .
)0فبیُ ٞبی ثط٘بٔ ٝو ٝوالؼ ٔب زض آٖ لطاض زاض٘س ثبیس زلیمب ثب والؼ زاذُ فبیُ ٕٙٞبْ ثبقٙس) دؿ٘ٛس فبیُ ٞبی ثط٘بٔ ٝػبٚا .javaاؾز.
ٕٝٞثط٘بٔٞ ٝبی ػبٚا ثطای اػطا اظ یه ٔشس ث٘ ٝبْ mainقطٔ ٔٚی ق٘ٛس و ٝایٗ ٔشس ث ٝقىُ ظیط سٗطیف ٔی قٛز. )1
ػبٚا یه ٔحیٍ اػطا ثطای ثط٘بٔٞ ٝبی ٘ٛقش ٝقس ٜث ٝایٗ ظثبٖ فطأ ٓٞی ؾبظز و ٝثٛٔ JRE (Java Runtime Environment) ٝؾ ْٛاؾز) ٕٞچٙیٗ
ایٗ ظثبٖ زاضای سٛاثٕ ٚوالؼ ٞبی اظ دیف ٘ٛقش ٝاؾز و ٚ Java API ٝزیٍط أىب٘بر آٖ ضا قبُٔ ٔی قٛز) ثطای ثط٘بٔٛ٘ ٝیؿبٖ ٚسٛؾٗ ٝزٙٞسٌبٖ ػبٚا
ثؿش ٝای ٔٛؾ ْٛث JDK(Java Development Kit) ٝاضائٔ ٝی قٛز و ٝقبُٔ ٕٝٞ ٚ JREزیٍط ٔٛاضز فٛق اؾز .دؽ ثطای ایٗ و ٝقط ٔٚث ٝثط٘بٔٝ
٘ٛیؿی ظثبٖ ػبٚا ٕ٘بییس ،ثبیس لجُ اظ آٖ ثؿش٘ ٝطْ افعاضی JDKضا ضٚی ؾیؿشٓ ذٛز ٘هت وطز ٜثبقیس) ایٗ ثؿش ٝثطای اػطا ٚوبٔذبیُ ثط٘بٔٞ ٝبی ػبٚا
الظْ اؾز ظیطا ؤ ٝبقیٗ ٔؼبظی ػبٚا ٚوشبثرب٘ٞ ٝبی ػبٚا زض آٖ لطاض زاز ٜقس ٜاؾز) اٌط قٕب وبضثط ٚیٙسٚظ ثبقیس ثب ٘هت ثؿشjdk ٝوبض ٘هت ایٗ ثؿشٝ
سٕبْ ٔی قٛز ٚػبٚا ثط ضٚی ؾیؿشٓ قٕب اػطا ذٛاٞس قس) دؽ اظ ایٗ و ٝایٗ ثؿش٘ ٝطْ افعاض ٘هت قس ثبیس ٔحیٍ ثط٘بٔٛ٘ ٝیؿی ػبٚا ضا ٘هت وٙیٓ) ثطای
ثط٘بٔٛ٘ ٝیؿی ػبٚا ٔی سٛا٘یس اظ یه ٔحیٍ ٔشٙی ؾبزٔ ٜب٘ٙس ٓٞ notepadاؾشفبز ٜوٙیس) ِٚی ٔحیٍ ٞبی ثؿیبض ذٛثی ثطای ػبٚا ٚػٛز زاضز و ٝوبض ثط٘بٔٝ
٘ٛیؿی ضا ثؿیبض آؾبٖ ٔی ٕ٘بیس . IDEیب ٔحیٍ ٞبی ٔٗطٚف ثط٘بٔٛ٘ ٝیؿی ػبٚا ٖجبضسٙس اظ :
Eclips ),
2
netbeansٚ eclipseضایٍبٖ ثٛزٔ ٚ ٜی سٛا٘یس ث ٝضاحشی اظ ایٙشط٘ز زاّ٘ٛز ٘هت ٚاؾشفبز ٜوٙیس) ِٚی ٘طْ اظ ٔحیٍ ٞبی ٔٗطفی قس٘ ٜطْ افعاض ٞبی
افعاض intellij Ideaؤ ٝحه َٛقطوز jetbrainsاؾز یه ٘طْ افعاض سؼبضی اؾز و ٝثطای اؾشفبز ٜثیف اظ یه ٔب ٜاظ آٖ ثبیس الیؿٙؽ آٖ ضا ذطیساضی
ٕ٘بییس) ِٚی لبثّیز ٞبی ثؿیبضی ثبٖض ٔی قٛز و ٝایٗ ٘طْ افعاض وبض ضا آؾبٖ سط وٙس .
تَضیحات در جاٍا
زض ظثبٖ ػبٚا أىب٘ی ٚػٛز زاضز و ٝزض زاذُ وس ػٕالسی ثطای سٛيیحبر لطاض زاز ٜقٛز) ایٗ سٛيیحبر ٔی سٛا٘س ثطای ف ٟٓثٟشط وس ٔٙبؾت ثبقس) ػبٚا
ٓٞاظ سٛيیحبر یه ذُی ٓٞ ٚاظ سٛيیحبر چٙس ذُی دكشیجب٘ی ٔی وٙس) سٛيیحبر زض ػبٚا ثؿیبض قجی ٝث ٝسٛيیحبر زض ظثبٖ ٞبی ٔ c , c++ی ثبقس)
ٖ ٕٝٞجبضاسی و ٝزض زاذُ سٛيیحبر ٘ٛقش ٝقٛز لبثّیز وس ٚاػطا ٘ساضز ٚوبٔذبیّط ػبٚا آٟ٘ب ضا ٘بزیس ٜذٛاٞس ٌطفز) زض وس ظیط سٛيیحبر یه ذُی ٚ
چٙس ذُی آٚضز ٜقس ٜاؾز.
ٕٞبُ٘ٛض و ٝزض وس ثبال ٘كبٖ زاز ٜقس ٜاؾز اٌط زض لؿٕز اظ وس اظ ز ٚوبضاوشط ** اؾشفبز ٜقٛز ٔبثمی آٖ ذٍ ثٖٛٙ ٝاٖ سٛيیحبر زض ٘ٓط ٌطفشٔ ٝی قٛز)
ٕٞچٙیٗ ثطای قط ٔٚسٛيیحبر چٙس ذُی اظ ٖالٔز اؾّف ٚؾشبض ٍ ٜبزای پایاى تَضیحات چٌذ خطی اس ستارُ ٍ اسلص اؾشفبزٔ ٜی قٛز.
سهٛیط ظیط ِیؿشی اظ وّٕبر ضظض ٚقس ٜزض ػبٚا ضا ٘كبٖ ٔی زٞس) ایٗ وّٕبر ضظض ٚقس ٜثطای اؾشفبز ٜثٖٛٙ ٝاٖ ٔشغیط ٚیب ؾبیط ٞ Identifierب ٔٛضز اؾشفبزٜ
لطاض ٌیطز.
3
لیتزال ّا در جاٍا
ِیشطاَ لؿٕشی اظ وس اؾز و ٝثطای ٘كبٖ زازٖ ٔمبزیط طبثز ث ٝوبض ٔی ضٚز) ٔظال ایٗ و ٝچٍ ٝ٘ٛیه ٖسز یب وبضاوشط ضا زض زاذُ وس ٘كبٖ ثسٞیٓ) ِیشطاَ ٞب ٔی
سٛا٘ٙس ثَٛ ٝض ٔؿشمیٓ ثٞ ٝط ٔشغیط اظ ٘ ٔٛزاز ٜانّی ا٘شؿبة زاز ٜق٘ٛس) ثطای ٔظبَ ث ٝوس ظیط سٛػ ٝوٙیس .
;byte a = 68
'char a = 'A
ا٘ٛأ زازٔ byte, int, short ٜی سٛا٘ٙس ثب ٔمبزیط زٞسٞی $دبیٍٞ ٚ #10 ٝعازؾیٕبَ ٔ$جٙبی ٚ #16یب اٚوشبَٔ$جٙبی ٔ #8مساضزٞی ق٘ٛس) ثطای ایٗ ؤ ٝكرم
وٙیٓ ٖسز اظ ٘ ٔٛاٚوشبَ اؾز لجُ اظ ٖسز آٖ یه ٖسز ٔ 0ی ٌصاضیٓ ٚثطای ایٗ ؤ ٝكرم وٙیٓ وٖ ٝسز ٍٞعازؾیٕبَ اؾز لجُ اظ ٖسز آٖ ا ظ 0xاؾشفبزٜ
ٔی وٙیٓ) ثطای ٔظبَ
4
ِیشطاَ ٞبی ضقش ٝای زض ػبٚا ٔب٘ٙس ثؿیبضی اظ ظثبٖ ٞب ثیٗ زٖ ٚسز وٛسیكٗ لطاض زازٔ ٜی ق٘ٛس)ثطای ٔظبَ ضقشٞ ٝبی ظیط ٕ٘ٞ ٝ٘ٛبیی اظ ِیشطاَ ٞبی ضقش ٝای
ٞؿشٙس:
""Hello World
""two\nlines
""\"\"This is in quotes
٘ ٔٛزازٞ ٜبی ٔ String ٚ charی سٛا٘ٙس ٞط وبضاوشط ی٘ٛیىس ضا زاذُ ذٛز زاقش ٝثبقٙس) ثطای ٔظبَ :
;'char a = '\u0001
;"String a = "\u0001
زض زاذُ ضقشٞ ٝب ثًٗی وبضاوشط ٞب ٔٗٙی ٔ ٚف ْٟٛذبنی زاض٘س) ث ٝایٗ ٔٗٙی و ٝوبٔذبیّط ػبٚا آٟ٘ب ضا ثٖٛٙ ٝاٖ ضقشِٕٛٗٔ ٝی زض ٘ٓط ٕ٘ی ٌیطز ٚثطای
وبٔذبیّط ٔٗٙی ذبنی زاض٘س) ػس َٚایٗ وبضاوشط ٞب زض قىُ ظیط آٚضز ٜقس ٜاؾز وٙٗٔ ٝی ٞطوساْ ضا سٛيیح ٔی زٞس .
ٕٞبُ٘ٛض و ٝزض ػسٔ َٚكبٞسٔ ٜی ٕ٘بییس وبضاوشط backslashزض ٔ ٕٝٞكشطن اؾز ثطای ایٗ و ٝزض ٔشٗ یه وبضاوشط backslashلطاض ثسٞیس ثبیس زٚثبض
ایٗ وبضاوشط ضا سىطاض وٙیس)
5
هتغیزّا
ٔشغیطٞب ٔحُ ٞبیی اظ حبفٓ ٝوبٔذیٛسط )ٞ (Ramؿشٙس و ٝثطای ٍٟ٘ساضی ٔمبزیط زض ٘ٓط ٌطفش ٝقس ٜا٘س) ایٗ ث ٝایٗ ٔٗٙی اؾز وٚ ٝلشی قٕب ٔشغیطی ضا
) ثب سٛػ ٝث ٔٛ٘ ٝزاز ٜای و ٝقٕب اظ آٖ ٔشغیط ٔی ؾبظیس ؾیؿشٓ ٖبُٔ ٔمساض ٔٗطفی ٔی وٙیس یه ٔحُ اظ حبفٓ ٝضا ضظضٔ ٚی وٙیس سب اظ آٖ اؾشفبز ٜوٙیس
ذبنی فًب ث ٝقٕب اذشهبنٕی زٞس) ٕٞچٙیٗ ثب اؾشفبز ٜاظ ٘ ٔٛزازٔ ٜكرم قس ٜسهٕیٓ ٌطفشٔ ٝی قٛز و ٝزض ٔحُ ٔٛضز ٘ٓط اظ حبفٓ ٝچٔ ٝمبزیطی
شذیط ٜقٛز) ثٙبثطایٗ ا٘ٛأ زاز ٜزض ظثبٖ ػبٚا ثؿیبض ٔٞ ٟٓؿشٙس) یىی اظ زالیُ ایٗ ا٘ٛأ زاز ٜایٗ اؾز و ٝاٌط قٕب یه ٔشغیط ٔٗطفی وطز ٜثبقیس و ٝفمٍ زض
آٖ ٖسز نحیح شذیط ٜوٙیس ث ٝقٕب ایٗ اػبظ ٜزازٕ٘ ٜی قٛز و ٝثشٛا٘یس زض آٖ ٔشغیط ٔشٗ یب ظٔبٖ شذیط ٜوٙیس) ا٘ٛأ زاز ٜز ٚزؾشٞ ٝؿشٙس و ٝزض ازأ ٝآٔس ٜا٘س .
زض ظثبٖ ػبٚا ٔٛ٘ 8زاز ٜانّی ٚػٛز زاضز) ا٘ٛأ زاز ٜانّی زض ظثبٖ ػبٚا اظ لجُ سٗطیف قس ٜا٘س ٚلبثُ ٌؿشطـ ٘یؿشٙس) ثٖ ٝجبضر زیٍط ا٘ٛأ زاز ٜانّی
ثٖٛٙ ٝاٖ دبی ٝا٘ٛأ زازٞ ٜبی زیٍط ٔی ثبقس) ا٘ٛأ زاز ٜانّی زاضای ٘بْ ٞبیی ٞؿشٙس و ٝایٗ ٘بْ ٞب ػعء وّٕبر وّیسی اؾز) زض ازأ ٝثٗٔ ٝطفی ایٗ ا٘ٛأ
زازٔ ٜی دطزاظیٓ ٚآٟ٘ب ضا قطح ذٛاٞیٓ زاز.
byte
٘ ٔٛزاز byte ٜزاضای ذٛال ظیط اؾز.
فمٍ ٔی سٛاٖ ٖسز ثسٕٔ ٖٚیع زض ایٗ ٘ ٔٛزاز ٜشذیط ٜوطز
ایٗ ٘ ٔٛزاز ٜوٛچىشطیٗ ٖسزی ضا ؤ ٝی سٛا٘س زض ذٛز ٍ٘ ٝزاضز ( 128اؾز
ثعضٌشطیٗ ٖسزی و ٝایٗ ٘ ٔٛزازٔ ٜی سٛا٘س زض ذٛز ٍ٘ ٝزاضز ٔ 127ی ثبقس.
ٔمساض دیكفطو ایٗ ٘ ٔٛزاز 0 ٜاؾز) ث ٝایٗ ٔٗٙی وٚ ٝلشی و ٝیه ٔشغیط اظ ٘ byte ٔٛسٗطیف ٔی وٙیٓ وبٔذبیّط ٔمساض آٖ ضا 0لطاض ٔی زٞس.
اٌط اٖساز قٕب زض ثط٘بٔٛ٘ ٝیؿی ظیبز ثعضي ٘یؿز ٚاظ ٕٔیع ٓٞاؾشفبزٕ٘ ٜی وٙیس ٔی سٛا٘یس اظ ایٗ ٘ ٔٛزاز ٜاؾشفبز ٜوٙیس ظیطا و ٝزض حبفٓ ٝنطفٝ
ػٛیی ٔی وٙس) ظیطا ایٗ ٘ ٔٛزاز ٜیه چٟبضْ ٘ ٔٛزاز int ٜفًب الظْ زاضز) وس ظیط ٔظبِی اظ سٗطیف ٔشغیط اظ ٘ ٔٛزاز byte ٜاؾز.
;byte a=100
;byte b=-43
6
short
ایٗ ٘ ٔٛزاز ٜاٖساز ثسٕٔ ٖٚیع ضا زض ذٛز ٍٟ٘ساضی ٔی ٕ٘بیس.
٘ ٔٛزاز short ٜیه ٘ ٔٛزازٖ ٜالٔز زاض 16ثیشی اؾز.
وٛچىشطیٗ ٔمساضی و ٝایٗ ٘ ٔٛزازٔ ٜی سٛا٘س زض ذٛز ٍٟ٘ساضی ٕ٘بیس ٔ (32768ی ثبقس.
ثعضٌشطیٗ ٔمساضی و ٝایٗ ٘ ٔٛزازٔ ٜی سٛا٘س زض ذٛز ٍٟ٘ساضی ٕ٘بیس ٔ 32767ی ثبقس.
;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ی ثبقس.
ایٗ ٘ ٔٛزاز ٜظٔب٘ی اؾشفبزٔ ٜی قٛز و ٝثرٛاٞیٓ ثب اٖساز نحیح ثؿیبض ثعضي وبض وٙیٓ .
7
زض ظیط ٔظبِی اظ ایٗ ٘ ٔٛزاز ٜآٚضز ٜقس ٜاؾز.
;long a=1000000L
float
٘ ٔٛزاز float ٜثطای ٍٟ٘ساضی اٖساز ٕٔیع زاض ثب 32ثیز اؾز.
ایٗ ٘ ٔٛزاز ٜثط اؾبؼ اؾشب٘ساضز ٕٔیع قٙبٚض IEEE 754وبض ٔی وٙس.
ایٗ ٘ ٔٛزاز ٜثطای ػبٞبیی و ٝزلز ثؿیبض ٔ ٟٓاؾز ٔٛضز اؾشفبز ٜلطاض ٕ٘ی ٌیطز) ٔظال ثطای ٍٟ٘ساقشٗ ٚاحسٞبی دِٛی اظ ایٗ ٘ ٔٛزاز ٜاؾشفبزٜ
;float f1=234.5f
double
ایٗ ٘ ٔٛزاز ٜیه ٘ ٔٛزاز 64 ٜثیشی زلیك اؾز.
ایٗ ٘ ٔٛزاز ٜاظ اؾشب٘ساضز ٕٔیع قٙبٚض IEEE 754اؾشفبزٔ ٜی وٙس.
ایٗ ٘ ٔٛزاز ٔٛ٘ ٜزاز ٜدیكفطو ثطای اٖساز ٕٔیعی ٔی ثبقس.
ایٗ ٘ ٔٛزاز ٜثب ایٗ و ٝاظ floatزلیك سط اؾز ِٚی ٛٙٞظ ذُب زاضز ٘ ٚجبیس ثطای ٔمبزیط دِٛی ٔٛضز اؾشفبز ٜلطاض ٌیطز .
;doubel d1=123.4
boolean
ایٗ ٘ ٔٛزاز ٜفمٍ زٔ ٚمساض ث ٝذٛز ٔیٍیطزtrue,false
ایٗ ٘ ٔٛفمٍ ثطای ٍٟ٘ساضی ٘شبیغ ٖجبضار قطَی ٔٛضز اؾشفبز ٜلطاض ٔی ٌیطز .
8
;boolean one=true
char
ایٗ ٘ ٔٛزاز ٜثطای ٍٟ٘ساضی وبضاوشط ٞبی ی٘ٛیىس ٔی ثبقس .
ایٗ ٘ ٔٛزاز16 ٜثیز فًب اظ حبفٓ ٝثطای ذٛز ٔی ٌیطز .
;'char letter='a
ا٘ٛأ زازٞ ٜبی اضػبٖی اظ والؼ ٞبی سٗطیف قس ٜؾبذشٔ ٝی ق٘ٛس) ٔشغیطٞبیی و ٝاظ ایٗ ٘ ٔٛؾبذشٔ ٝی ق٘ٛس ثطای زؾشطؾی ث ٝاقیب ؾبذشٝ
یه ٔشغیط اظ ٘ ٔٛاضػبٖی ٔی سٛا٘س ثٞ ٝط ٖ٘ٛی و ٝثب ٘ ٔٛذٛزـ ؾبظٌبض ثبقس ا٘شؿبة زاقش ٝثبقس .
آضایٞ ٝب
زض ثط٘بٔٛ٘ ٝیؿی ثؿیبضی اظ ٔٛالٕ دیف ٔی آیس و ٝیه ٔؼٕ ٖٝٛای اظ زازٞ ٜب ٚػٛز زاضز و ٕٝٞ ٝاظ یه ٘ ٔٛیب یه والؼ ٔی ثبقٙس) اٌط ثرٛاٞیٓ ٞطوساْ
اظ ایٗ زازٞ ٜب ضا زض یه ٔشغیط شذیط ٜوٙیٓ ٕٔىٗ اؾز و ٝچٙسنس ٔشغیط زاقش ٝثبقیٓ و ٕٝٞ ٝاظ یه ٘ٔ ٔٛی ثبقٙس) زض ایٗ حبِز ثب ا٘جٞٛی اظ ٔشغیطٞب
ٔٛاػٞ ٝؿشیٓ و ٝثّٖ ٝز ظیبز ثٛزٖ وبض ثب آٟ٘ب ثؿیبض ٔكىُ ذٛاٞس ثٛز) ثطای حُ ایٗ ٔكىُ زض ظثبٖ ٞبی ثط٘بٔٛ٘ ٝیؿی یه ؾبذشبض زاز ٜث٘ ٝبْ آضایٝ
ٚػٛز زاضز) آضای ٝیه ٔؼٕ ٖٝٛای اظ زازٞ ٜبی ٔ ٔٛ٘ ٓٞی ثبقس و ٝزازٞ ٜب ضا زض حبفٓ ٝدكز ؾط ٓٞشذیطٔ ٜی وٙس) آضای ٝیه ٘بْ زاضز ٞ ٚطوساْ اظ زازٜ
ٞب ضا زض یه ذب٘ ٝشذیطٔ ٜی وٙس و ٝایٗ ذب٘ ٝثب یه ا٘سیؽ ٔكرم ٔی قٛز) ا٘ساظ ٜآضای ٝزض ػبٚا طبثز اؾز) ثطای ٔظبَ ثطای شذیطٖ 100 ٜسز ثبیس 100
ٖسز ٔشغیط سٗطیف وطز ٔب٘ٙس num1, num2, …..,num100زض حبِی وٚ ٝلشی اظ آضای ٝاؾشفبزٔ ٜی وٙیٓ ٔی سٛا٘یٓ یه آضای 100 ٝسبیی ٔٗطفی وٙیٓ ٚثطای
زؾشطؾی ثٞ ٝطوساْ اظ ا٘سیؽ آٖ اؾشفبز ٜوٙیٓ ٔظُ num[0], num[1], num[2],….,num[99].زلز زاقش ٝثبقیس و ٝاِٚیٗ ذب٘ ٝآضای ٝاظ 0قطٔ ٔٚی قٛز
ٚثطای یه آضای 100 ٝسبیی ذب٘ ٝآذط ذب٘ 99 ٝاؾز یٗٙی یىی وٕشط.
9
هعزفی آرایِ
ثطای اؾشفبز ٜاظ یه آضای ٝثبیس آٖ ضا اثشسا ٔٗطفی وطز) زض ٍٙٞبْ ٔٗطفی آضای ٔٛ٘ ٝآضای ٚ ٝا٘ساظ ٜآٖ ٔكرم ٔی قٛز) زض قىُ ظیط ٘حٗٔ ٜٛطفی آضای٘ ٝكبٖ
زاز ٜقس ٜاؾز:
زض ضٚـ ٞبی ٌفش ٝقس ٜزض ثبال ضٚـ سٛنی ٝقس ٜضٚـ ذٛز ػبٚا اؾز ٚضٚقی و ٝسٛنیٕ٘ ٝی قٛز ضٚقی اؾز و ٝزض ظثبٖ ٞبی ٔب٘ٙس ٛٔ c , c++ضز
c++ؾبذش ٝقس ٜاؾز ایٗ ضٚـ ٘ٛقشبضی ٘یع زض ػبٚا آٚضز ٜقس ٜاؾز و ٝثطای اؾشفبز ٜلطاض ٔی ٌیطز ٚاظ آ٘ؼب و ٝؾیٙشىؽ ػبٚا ثطدبی ٝؾیٙشىؽ
وبضثطاٖ٘c++یع لبثُ اؾشفبز ٜثبقس)ٍٙٞبْ سٗطیف ثبیس زض لؿٕز ٔٛ٘ datatypeزاز ٜیب والؾی ؤ ٝی ذٛاٞیٓ اظ آٖ آضای ٝثؿبظیٓ ضای ٔی آٚضیٓ ٕٞ ٚچٙیٗ
ث ٝػبی٘arrayRefVarیع ثبیس ٘بْ آضای ٝضا لطاض زاز) ٔب٘ٙس وس ظیط:
ساخت آرایِ
ثب اؾشفبز ٜاظ وّٕ ٝوّیسی ٔ newی سٛاٖ یه آضای ٝػسیس ؾبذز) قىُ وّی ؾبذز آضایٔ ٝب٘ٙس ظیط اؾز :
ٔی سٛاٖ ٔٗطفی وطزٖ ٚؾبذشٗ یه آضای ٝػسیس ضازض یه ذٍ ثب ٓٞا٘ؼبْ زاز و ٝوس آٖ ث ٝقىُ ظیط ذٛاٞس ثٛز :
ضٚـ زیٍطی و ٝثطای ٔٗطفی ٚؾبذز آضایٛٔ ٝضز اؾشفبز ٜلطاض ٔی ٌیطز ث ٝایٗ قىُ اؾز ؤ ٝمبزیطی ضا و ٝلطاض اؾز زاذُ آضای ٝشذیطٌ ٜطزز زض ٕٞبٖ
ظٔبٖ ؾبذز آضای ٝزض ٖٚآٖ لطاض زٞیٓ و ٝایٗ ضٚـ زض وس ظیط آٚضز ٜقس ٜاؾز .
ٖٙبنط آضایٕٞ ٝبُ٘ٛض وٌ ٝفش ٝقس ثب اؾشفبز ٜاظ ا٘سیؽ لبثُ زؾشطؼ ٞؿشٙس و ٝا٘سیؽ اظ 0قطٔ ٔٚی قٛز.
زض وس ظیط یه آضای double ٝث٘ ٝبْmyListؾبذش ٝقس ٜاؾز و 10 ٝذب٘ ٝزاضز.
10
double[] myList = new double[10];
. اؾزٜ قسٝ زض زاذُ آٖ ضیرشdouble ٔمبزیطٝس وٞضا ٘كبٖ ٔی زmyListٝقىُ ظیط ؾبذشبض آضای
ٜ ا٘ساظٚ اظ لجُ ٔكرم اؾزٝ آضایٜ ا٘ساظٝز) ظیطا وٛ ٔی قٜ اؾشفبزforeach ٚ for بیٞ ٝ اظ حّمٝبی آضایٞ ٝ٘طوساْ اظ ذبٞ دطزاظـٚ ٝثطای دیٕبیف آضای
: ٕ٘بییسٝػٛ آٖ سٝ اؾز ثٜ قسٜضزٚ آٝ دطزاظـ آضایٚ ٜ اؾشفبزٚ ضا ٔی زا٘یٓ) زض وس ظیط ٔظبِی ثطای ؾبذزٝآضای
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
1.9
2.9
3.4
3.5
ٕٞبٍ٘ ٝ٘ٛؤ ٝی سٛاٖ ا٘ٛأ اِٚی ٝزاز ٜضا ثٖٛٙ ٝاٖ آضٌٔٛبٖ ٚضٚزی ثٔ ٝشس ٞب فطؾشبز ٔی سٛاٖ آضای ٝضا ٘یع ثٖٛٙ ٝاٖ آضٌٔٛبٖ ثٔ ٝشسٞب اضؾبَ ٕ٘ٛز) ثطای ٔظبَ
ٔشس ظیط ٖٙبنط ٔٛػٛز زض آضای ٝضا زض ذطٚػی چبح ٔی ٕ٘بیس .
ثب اؾشفبز ٜاظ سبثٕ ثبال قٕب ٔی سٛا٘یس ٖٙبنط ٞط آضای ٝای ضا و ٝاظ ٘ int ٔٛؾبذش ٝقس ٜاؾز ضا ثٔ ٝشس اضؾبَ وطزٔ ٚ ٜشس ٖٙبنط آٖ ضا چبح ٔی وٙس .
یه ٔشس ٕٔىٗ اؾز و ٝیه آضای ٝضا ثٖٛٙ ٝاٖ ذطٚػی ثبظٌطزا٘س) ثطای ٔظبَ ٔشسی و ٝزض وس ظیط آٚضز ٜقس ٜاؾز یه آضای ٝضا و ٝثطٖىؽ قس ٜآضایٝ
ٚضٚزی اؾز ضا ثبظٔی ٌطزا٘س.
کالسArray
ایٗ والؼ زض دىیغ java.utilلطاض زاضز و ٝقبُٔ ٔشسٞبی ثطای ٔطست ؾبظی آضای ٚ ٝیب ػؿشؼٔ ٚ ٛمبیؿ ٝآضایٞ ٝب ٚدط وطزٖ ذب٘ٞ ٝبی آضایٔ ٝی ثبقس) ایٗ
ٔشسٞب ثطای ا٘ٛأ زازٞ ٜبی انّی ٔی سٛا٘س لبثُ اٖٕبَ ثبقس) زض ازأ ٝث ٝچٙس ٖسز اظ ٕٟٔشطیٗ ایٗ ٔشسٞب دطزاذش ٝایٓ
هتذ 5binarySearchیه اضایٔ ٝی ٌیطز ٚیه ٔمساض ٔ ٚمساض ٔٛضز ٘ٓط ضا ث ٝضٚـ ػؿشؼٛی زٚزٚیی زض زاذُ آضای ٝػؿشؼٔ ٛی وٙس ٚاٌط دیسا قٛز
ٔحُ لطاضٌیطی آضای ٝضا ثطٔی ٌطزا٘س) ثطای ایٗ ٔشس آضای ٝثبیس اظ لجُ ٔطست قس ٜثبقس) قىُ ٘ٛقشبضی ایٗ اضای ٝث ٝقىُ ظیط اؾز
هتذ equalsایٗ ٔشس ز ٚآضای ٝضا ثب یىسیٍط ٔمبیؿٔ ٝی وٙس) ز ٚآضای ٝظٔب٘ی ثب ٔ ٓٞؿبٚی ٞؿشٙس و ٝسٗساز ذب٘ٞ ٝبی آٟ٘ب ثب ٓٞثطاثط ثٛزٕٞ ٚ ٜچٙیٗ ٞط
ػفز ذب٘ ٝآضایٞ ٝب ثب ٓٞثطاثط ثبقٙس) اٌط ز ٚآضای ٝثب ٓٞثطاثط ثبقس ایٗ ٔشس ٔمساض trueضا ثطٔی ٌطزا٘س) قىُ ٘ٛقشبضی ایٗ ٔشس ٔب٘ٙس وس ظیط اؾز:
هتذ fillایٗ ٔشس یه ٔمساض ٚیه آضایٔ ٝی ٌیطز ٕٝٞ ٚی ذب٘ٞ ٝبی آضای ٝضا ثب آٖ ٔمساض دط ٔی وٙس) ایٗ ٔشس ث ٝقىُ ظیط ٘ٛقشٔ ٝی قٛز :
ٞ fillیچ ذطٚػی ٘ساض٘س ٕٝٞ ٚ هتذ sortایٗ ٔشس یه آضای ٝضا زضیبفز ٔی وٙس ٖٙ ٚبنط زاذُ آٖ ضا ٔطست ٔی وٙس) زلز زاقش ٝثبقیس و ٝایٗ ٔشس ٔ ٚشس
سغییطار دطوطزٖ ٔ ٚطست وطزٖ ثط ضٚی آضایٚ ٝضٚزی ا٘ؼبْ ٔی قٛز ٚثط ضٚی آٖ ٘یع اٖٕبَ ٔی ٌطزز) قىُ ٘ٛقشبضی ایٗ ٔشس ث ٝقىُ ظیط اؾز :
ٕٝٞی اٖٕبَ ٌفش ٝقس ٜزض والؼ Arrayثط ضٚی ٕٝٞی ا٘ٛأ اِٚی ٝلبثُ اٖٕبَ ٔی ثبقس )
ٍّٖٕطٞب
ٞط ظثبٖ ثط٘بٔٛ٘ ٝیؿی ثبیس لبثّیز سغییط ٚدطزاظـ زازٞ ٜب ٚا٘ؼبْ ّٖٕیبسی ثط ضٚی ا٘ٛأ زاز ٜضا زاقش ٝثبقس) ظثبٖ ػبٚا زض ایٗ ظٔی ٝٙثؿیبض لٛی ُٖٕ وطزٜ
اؾز) ایٗ ظثبٖ و ٝثیكشط ٍّٖٕطٞبی ذٛیف ضا اظ ٌC++طفش ٝاؾز زأٚ ٝٙؾیٗی اظ ٍّٖٕطٞب ضا ثطای ا٘ؼبْ أٛض ٔرشّف اضائٔ ٝی زٞس) ٍّٖٕطٞبی ػبٚا ثٝ
زؾشٞ ٝبی ظیط سمؿیٓ ٔی ق٘ٛس5
13
ٍّٕٖ ),طٞبی ٔحبؾجبسی
ٍّٕٖ )-طٞبی ضاثُ ٝای
ٍّٕٖ ).طٞبی ثیشی
ٍّٕٖ )/طٞبی ُٔٙمی
ٍّٕٖ )0طٞبی ا٘شؿبثی
ٍّٕٖ )1طٞبی ٔشفطلٝ
عولگزّای هحاسباتی
ٍّٖٕطٞبی ٔحبؾجبسی زض ٖجبضار ضیبيی ٚػجطی اؾشفبزٔ ٜی ق٘ٛس) زض ازإٍّٖٔ ٝطٞبی ضیبيی آٚضز ٜقس ٜا٘س) زلز زاقش ٝثبقیس و ٝثطای زیسٖ ٘شیؼ ٝایٗ
ٍّٖٕطٞب ٔمساض ٔشغیط Aثطاثط ٔ ٚ 10مساض ٔ Bمساض 20اؾز) ایٗ ٍّٖٕطٞب ٖجبضسٙس اظ:
ٍّٖٕط ػٕٕ وطزٖ 5ایٗ ٍّٖٕط زٔ ٚمساض ٖسزی ضا ثب ٓٞػٕٕ ٔی وٙس ٖ ٚالٔز آٖ & ٔی ثبقس) ثطای ٔظبَ ٘شیؼ A+B ٝثطاثط 30ذٛاٞس قس.
ٍّٖٕط سفطیك وطزٖ 5ایٗ ٍّٖٕط ٔمساض ٖسزی ز ْٚضا اظ ٔمساض ٖسزی ا َٚوٓ ذٛاٞس وطز ٖ ٚالٔز ایٗ ٍّٖٕط ( ٔی ثبقس) ثطای ٔظبَ ٘شیؼA-B ٝ
)ٔ (/ی ثبقس) ثطای ٔظبَ ٘شیؼ B/A ٝثطاثط 2 ٍّٖٕط سمؿیٓ 5ایٗ ٍّٖٕط ٔمساض ا َٚضا ثط ٔمساض ز ْٚسمؿیٓ ٔی وٙس) ٖالٔز ایٗ ٍّٖٕط اؾّف
ذٛاٞس ثٛز) ٘ىش ٝای و ٝثبیس ث ٝآٖ سٛػ ٝزاقش ٝثبقیس ایٗ اؾز ؤ ٝمساض ٔمؿّٖ ْٛی ٝزض وبٔذیٛسط ٘جبیس نفط ثبقس .
ٍّٖٕط ثبلی ٔب٘س 5ٜایٗ ٍّٖٕط ٔمساض اِٚی ضا ثط ٔمساض ز ْٚسمؿیٓ ٔی وٙس ٚثبلی ٔب٘س ٜضا ثطٔی ٌطزا٘س) ٖالٔز ایٗ ٍّٖٕط زض ػبٚا " ٔی ثبقس)
و ٝثٔ ٝمساض ٔٛػٛز یه ٚاحس ايبفٔ ٝی ٕ٘بیس) ٖالٔز ایٗ ٍّٖٕط && ٔی ثبقس) ثطای ٔظبَ ٘شیؼ B++ ٝثطاثط 21ذٛاٞس ثٛز.
ٍّٖٕط وبٞف 5ایٗ ٍّٖٕط اظ ٔمساض لجّی یه ٚاحس وٓ ٔی وٙس) ٖالٔز ایٗ ٍّٖٕط (( ٔی ثبقس) ثطای ٔظبَ ُٖٕ B--ثطاثط 19ذٛاٞس ثٛز.
ثطای زضن ثٟشط ٍّٖٕطٞبی ضیبيی ثٔ ٝظبَ ٞبی ظیط زلز ٕ٘بییس .
ٕٞبُ٘ٛض و ٝزض قىُ زیسٔ ٜی قٛز اٌط ٍّٖٕط افعایف یب وبٞف لجُ یب ثٗس اظ ّٖٕ٘ٛس لطاض ٌیطز ضفشبض ٔشفبٚسی اظ ذٛز ٘كبٖ ذٛاٞس زاز) ث ٝایٗ قىُ وٝ
اٌط ٍّٖٕط لجُ اظ ّٖٕ٘ٛس لطاض ثٍیطز اثشسا ُٖٕ وبٞف یب افعایف نٛضر ٌطفش ٚ ٝؾذؽ ُٖٕ چبح قسٖ ا٘ؼبْ ٔی قٛز) ِٚی اٌط ّٖٕ٘ٛس ثٗس اظ ٍّٖٕط
لطاض ثٍیطز ٔب٘ٙس 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اؾز.
ٔظبَ ظیط وبضثطز ایٗ ٍّٖٕط ٞب ٘ ٚح ٜٛاؾشفبز ٜاظ آٟ٘ب زض ػبٚا ضا ٘كبٖ ٔی زٞس .
عولگزّای بیتی
int, long, short, char, byteلبثُ اٖٕبَ اؾز) ٍّٖٕطٞبی ثیشی ثط ضٚی ػبٚا زاضای چٙسیٗ ٍّٖٕط ثیشی اؾز و ٝایٗ ٍّٖٕطٞب ثط ضٚی ا٘ٛأ زازٜ
سه سه ثیشٟبی ّٖٕ٘ٛس ٞب وبض ٔی وٙٙس) ثطای ٔظبَ زض ٔشغیط ٔ aمساض 60ضا لطاض ٔی زٞیٓ ٚزض ٔشغیط ٖ bسز 13ضا لطاض ٔی زٞیٓ) حبَ قىُ ثبیٙطی ایٗ زٚ
ٔشغیط ث ٝقىُ ظیط ذٛاٞس ثٛز
a=00111100
b=00001101
16
ٔ andی وٙس ٔ ٚمساض ضا ٔكرم ٔی ٕ٘بیس ثطای ٔظبَ ٘شیؼand ٝ ٍّٖٕط andثیشی )&( ایٗ ٍّٖٕط ثیز ٞبی زّٕٖ٘ٛ ٚس ضا ز ٚث ٝز ٚثب ٓٞ
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
قیفز ٚاضز ٔی وطز٘س ِٚی ٍّٖٕط قیفز ث ٝضاؾز ثب ٚضٚزی ٖ 0سز ضا ث ٝؾٕز ضاؾز قیفز ٔی زٞس ٔ ٚمساض نفط ضا اظ ؾٕز چخ ث ٝآٖ
ٚاضز ٔی ٕ٘بیس) ثطای ٔظبَ ٘شیؼٖ a>>>2 ُٕٖ ٝسز ٔ 15ی ثبقس.
ثطای زضن ثٟشط ٍّٖٕطٞبی ثیشی ث ٝوس ظیط زلز وٙیس .
17
;c = a >>>2 /* 215 = 0000 1111 */
;) System.out.println("a >>> 2 = " + c
}
}
عولگزّای هٌطقی
ٍّٖٕطٞبی ُٔٙمی ثط ضٚی زازٞ ٜبی اظ ٘ ٚ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ی ثبقس.
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^ ٚ&= ٚ<<= ٚیع اٖٕبَ ثیشی ٌفش ٝقس ٜضا ث ٝإً٘بْ ا٘شؿبة ا٘ؼبْ ٔی زٙٞس.
ثطای ٔظبَ ٚزضن ثٟشط ٍّٖٕطٞبی ا٘شؿبة ثٔ ٝظبَ ظیط زلز ٕ٘بییس .
;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
}
}
عولگزّای هتفزقِ
ٍّٖٕطٞبی زیٍطی ٘یع زض ػبٚا ٚػٛز زاض٘س و ٝزض ازأ ٝآٔس ٜا٘س) ایٗ ٍّٖٕطٞب زض ٌطٞ ٜٚبی ثبال لطاض ٔی ٌیط٘س .
ٍّٖٕط قطَی )#5 ? $ایٗ ٍّٖٕط و ٝثٖٛٙ ٝاٖ ٍّٖٕط ؾٌ ٝب٘٘ ٝیع قٙبذشٔ ٝی قٛز ثطای اضظیبثی یه ٔمساض booleanث ٝوبض ٔی ضٚز) ایٗ ٍّٖٕط ثٝ
ایٗ ٔٛٓٙض ث ٝوبض ٔی ضٚز ؤ ٝكرم وٙس و ٝوساْ ٔمساض زض ّٖٕ٘ٛس ؾٕز چخ ا٘شؿبة لطاض ٌیطز) اٌط قطٌ ٍّٖٕط زضؾز ثبقس ٔمساضی وٝ
دكز ٖالٔز ؾٛاَ ؟ لطاض ٔی ٌیطز ا٘شربة ٔی قٛز ٚزض غیط ایٗ نٛضر ٔمساض ٔٛػٛز ثٗس اظ ٖالٔز ز٘ ٚمُ 5 ٝا٘شربة ذٛاٞس قس) ثطای ٔظبَ
ث ٝوس ظیط زلز وٙیس.
20
public class Test {
Value of b is : 30
Value of b is : 20
. لطاض ٔی ٌیطزٜضز اؾشفبزٛٔ بی ضاحزٞ if else ػبیٝ ثٚ ایٗ ٍّٖٕط یه ٍّٖٕط سهٕیٓ ٌیطی اؾز
شطفیؽ ٔكرمٙ اظ والؼ یب ایٕٝ٘ٛ٘ ضز ٘ٓط یهٛٔ آیب قیٝس وٙز) ایٗ ٍّٖٕط چه ٔی وٚ وبض ٔی ضٝایٗ ٍّٖٕط ثطای اقیب ثinstanceofٍّٖٕط
ز) ثطایٛس ثٞاٛ ذfalse ٝضر ٘شیؼٛ زض غیط ایٗ نٚ true ٝضز ٘ٓط ثبقس ٘شیؼٛٔ شطفیؽٙٔ والؼ یب ایٛ٘ اظٜ قسٝ اؾز یب ذیط) اٌط قی ٌفشٜقس
.یسٙ وس ظیط زلز وٝٔظبَ ث
true
class Vehicle {}
تقذم عولگزّا
٘ىش ٝای و ٝثبلی ٔی ٔب٘س ایٗ اؾز و ٝثسا٘یٓ وساْ یه اظ ٔشغیط ٞب ٘ؿجز ث ٝلجّی زاضای سمسْ ثیكشطی زض اػطا ٔی ثبقس) سمسْ ٍّٖٕطٞب ثطای اضظیبثی
ٔشغیطٞب ثؿیبض ٔ ٟٓاؾز) سمسْ ثطذی ٔشغیطٞب ٘ؿجز ث ٝثطذی زیٍط ثبالسط اؾز) ثطای ٔظبَ ٍّٖٕط يطة زاضای سمسْ ثیكشطی ٘ؿجز ث ٝػٕٕ ٚسفطیك اؾز)
ثطای ٔظبَ x=7+3*2اثشسا ُٖٕ يطة ا٘ؼبْ ٔی ق٘ٛس ٚؾذؽ ُٖٕ ػٕٕ ا٘ؼبْ ٔی قٛز و٘ ٝشیؼٖ ُٕٖ ٝسز 13ذٛاٞس ثٛز) زض قىُ ظیط سمسْ ٍّٖٕطٞب
اظ ثبال ث ٝدبییٗ ٘كبٖ زاز ٜقس ٜاؾز.
22
حّمٞ ٝبی سىطاض
وسٞب زض ظثبٟ٘بی ثط٘بٔٛ٘ ٝیؿی ٔب٘ٙس ػبٚا ث ٝسطسیت ٚذُی اػطا ٔی ق٘ٛس) ث ٝایٗ ٔٗٙی و ٝاظ ٔشس mainقط ٔٚقس ٚ ٜذٍ ث ٝذٍ اػطا ٔی ق٘ٛس) حبَ
ٕٔىٗ اؾز و ٝحبالسی دیف ثیبیس و ٝثرٛاٞیٓ یه لؿٕز اظ وس چٙس ثبض اػطا قٛز) ظثبٖ ٞبی ثط٘بٔٛ٘ ٝیؿی ضاٞ ٜبی ٔرشّفی فطا ٓٞوطز ٜا٘س و ٝایٗ ٘ٔٛ
اػطا ذُی ضا سغییط زٞس) یىی اظ ایٗ ضاٞ ٜب حّمٞ ٝبی سىطاض )ٞ(loopؿشٙس) حّمٞ ٝب ٔی سٛا٘ٙس و ٝیه ؾطی زؾشٛضار ضا چٙسیٗ ثبض اػطا وٙٙس )
ظثبٖ ثط٘بٔٛ٘ ٝیؿی ػبٚا حّمٞ ٝبی ٔشفبٚسی ثطای اؾشفبز ٜزاضز وٞ ٝطوساْ ٔی سٛا٘س زض قطایٍ ٔطث ٌٛث ٝذٛز ٔفیس ٚوبضثطزی ثبقس وٖ ٝجبضسٙس اظ :
حلقِwhile
حّم while ٝزض ظثبٖ ػبٚا سب ٚلشی و ٝقطَف زضؾز ثبقس یه لؿٕز اظ وس ضا اػطا ٔی وٙس ٚ ٚلشی و ٝقطٌ آٖ falseقس اظ اػطا ثبظ ٔی ایؿشس) ٘حٜٛ
٘ٛقشٗ وس ایٗ حّم ٝث ٝقىُ ظیط اؾز:
)ٖجبضر قطَی(while
{
زؾشٛضار حّم ٝو ٝثبیس سىطاض ق٘ٛس//
}
زؾشٛضار زاذُ حّمٔ ٝی سٛا٘س یه ذٍ زؾشٛض ثبقٙس یب یه ثّٛن وس ثبقٙس) ٖجبضر قطَی ٕٔىٗ اؾز و ٝیه ٔشغیط ثبقس ٚیب چٙسیٗ ٖجبضر قطَی
ثبقس ٚیب ٔمبزیط ٚ trueیب falseثبقس ٚثَٛ ٝض وّی ٞطچیعی ؤ ٝمساض trueیب falseثطٔی ٌطزا٘س ٔی سٛا٘س ثبقس) ٍٙٞبٔی و٘ ٝشیؼٖ ٝجبضر قطَی
whileزضؾز ثبقس وس زاذُ حّم ٝاػطا ذٛاٞس قس ٚاٌط falseثبقس اػطا ٕ٘ی قٛز)
٘ىش ٝای وٚ ٝػٛز زاضز ایٗ اؾز ؤٕ ٝىٗ اؾز و ٝیه حّم while ٝانال اػطا ٘كٛز) ایٗ زض حبِی اؾز و ٝقطٌ حّمٕٞ ٝبٖ ا َٚوبض falseثبقس زضایٗ
حبِز ثس٘ ٝحّم ٝانال اػطا ٘رٛاٞس قس ٚث ٝوُ ٘بزیسٌ ٜطفشٔ ٝی قٛز) ثطای ٔظبَ ث ٝوس ظیط سٛػ ٝوٙیس :
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 ٝاؾشفبزٔ ٜی وٙیٓ) ایٗ حّم ٝزض ظٔب٘ی و ٝاظ لجُ ٔی زا٘یٓ و ٝیه
لُٗ ٝوس چٙس ثبض اػطا ذٛاٞس قس ٔٙبؾت اؾز)قىُ ٘ٛقشبضی ایٗ حّم ٝث ٝقىُ ظیط اؾز :
ٞطیه اظ لؿٕز ٞبی ٔٛػٛز زض ایٗ حّم ٝضا زض ازأ ٝقطح ٔی زٞیٓ:
),ثرف initializationزض اثشسا اػطا ٔی قٛز) ایٗ لؿٕز زض وُ حّم ٝفمٍ یه ثبض اػطا ذٛاٞس قس) ایٗ ٔطحّ ٝث ٝقٕب ایٗ اػبظ ٜضٔ ٜی زٞس وٝ
ٔمسٔبر اػطای حّم ٝضا فطا ٓٞوٙیس) ثٖ ٝجبضر زیٍط ٔشغیطی و ٝلطاض اؾز حّم ٝضا وٙشطَ وٙس ضا زض ایٗ ثرف ٔٗطفی ٔ ٚمساضزٞی ٔی وٙیٓ) دؽ
ثرف initializationثبیس ٖالٔز ؾٕی وبِٗ #;$اؾشفبز ٜوٙیس.
trueثبقس حّم ٝاػطا )-لؿٕز زٔ Boolean Expression ْٚی ثبقس) زض ایٗ ثرف یه ٖجبضر قطَی ٚػٛز زاضز و ٝاٌط ٘شیؼ ٝایٗ ثرف
ذٛاٞس قس ٚاٌط falseثبقس حّم ٝاػطا ٕ٘ی قٛز) زض ایٗ ثرف ٔی سٛاٖ ٔشغیط وٙشطَ وٙٙس ٜحّم ٝضا چه وطز .
).دؽ اظ ایٗ و ٝثسٖ حّم ٝیٗٙی ٕٞبٖ لُٗ ٝوس اػطا ق٘ٛس ٜاػطا قٛز لؿٕز updateاػطا ذٛاٞس قس) زلز زاقش ٝثبقیس و ٝلؿٕز ٞ updateط
ثبض دؽ اظ اػطای ثس٘ ٝحّم ٝاػطا ٔی قٛز) زض لؿٕز ٔ updateی سٛا٘یس اٖٕبِی ٔب٘ٙس ظیبز یب وٓ وطزٖ ٔشغیط وٙشطَ وطزٖ حّم ٝزض ایٗ لؿٕز
ا٘ؼبْ ٔی قٛز) ایٗ لؿٕز اظ حّم ٝحشی ٔی سٛا٘س ذبِی ثبقس.
ظٔب٘ی و ٝلؿٕز ٔ Boolean expressionمساض falseثطٌطزا٘س حّم ٝزیٍط اػطا ٕ٘ی قٛز)
24
ثٔ ٝظبَ ظیط سٛػ ٝوٙیس:
ٕٞبٖ َٛض و ٝزض وس ٔی ثیٙیس لؿٕز initializationایٗ حّم ٝیه ٔشغیط اظ ٘ int ٔٛثب ٘بْ xسٗطیف قس ٜاؾز ٔ ٚمساض آٖ ٔ 10ی ثبقس) ٕٞچٙیٗ ٖجبضر
قطَی ایٗ حّمٔ x<20 ٝی ثبقس) ٕٞچٙیٗ زض لؿٕز updateایٗ حّم ٝیه ٚاحس ث x ٝايبف ٝقس ٜاؾز.
حلقِdo…while
ایٗ حّم ٝثؿیبض قجی ٝثٔ while ٝی ثبقس) سٟٙب سفبٚسی و ٝثیٗ ایٗ ز ٚحّمٚ ٝػٛز زاضز ایٗ اؾز و ٝقطٌ حّم ٝزض ا٘شٟب چه ٔی قٛز) ثٕٞ ٝیٗ زِیُ وس
ثس٘ ٝحّم ٝحسالُ یه ثبض حشٕب اػطا ٔی قٛز) وس ایٗ حّم ٝث ٝقىُ ظیط اؾز :
do
{
ثس٘ ٝحّم//ٝ
;)قطٌ حّم}while(ٝ
ٕٞبٍ٘ ٝ٘ٛؤ ٝی ثیٙیس قطٌ حّم ٝزض ا٘شٟب اؾز دؽ یه ثبض ثس٘ ٝحّم ٝاػطا ٔی قٛز) ٚلشی و ٝث ٝقطٌ حّمٔ ٝی ضؾیٓ اٌط ٔمساض trueزاقش ٝثبقس زٚثبضٜ
ث ٝاثشسای ثس٘ ٝثبظٔی ٌطزیٓ ٚزٚثبض ٜحّم ٝاػطا ٔی قٛز) أب اٌط قطٌ حّم false ٝثبقس ثبظٌكز ا٘ؼبْ ٕ٘ی قٛز ٚاظ حّم ٝذبضع ٔی قٛیٓ)
25
{ public class Test
{do
;) System.out.print("value of x : " + x
;x++
;)"System.out.print("\n
;) }while( x < 20
}
}
ٕٞبٖ ٌ ٝ٘ٛو ٝسٛيیح زازیٓ حّمٞ ٝب یه لؿٕز اظ وس ضا سىطاض ٔی وٙٙس) حبَ اٌط ثرٛاٞیٓ زض حبِز ٞبیی حّم ٝزض ٚؾٍ اػطا سٕبْ قٛز ٚاظ حّمٝ
ذبضع قٛیٓ) یب ثرٛاٞیٓ ثطذی زؾشٛضار ضا اػطا ٘ىٙس) ثطای ایٗ وبض اظ ثطذی ٖجبضار وٙشطَ وٙٙس ٜحّمٞ ٝب اؾشفبزٔ ٜی وٙیٓ و ٝزض ازأ ٝث ٝقطح آٟ٘ب ٔی
دطزاظیٓ:
دستَرbreak
ٚ ),لشی و ٝزض اػطای حّم ٝث ٝذٍ ٔ breakی ٘ٛیؿیٓ حّم ٝزض ٕٞبٖ ٘مُ ٝسٕبْ قس ٚ ٜذبضع ٔی قٛز) ٚثط٘بٔ ٝاظ ذٍ ثٗس اظ حّم ٝازأ ٝدیسا ٔی
وٙس.
)-زض ثّٛن ٛٔ switchضز اؾشفبز ٜلطاض ٔی ٌیطز و ٝقطٌ ٞ caseب اظ یىسیٍط ػسا ثبقس و ٝایٗ ثرف ضا زض ُٔبِت آیٙس ٜسٛيیح ذٛاٞیٓ زاز .
26
;break
{)for(int x=5;x<100;x=x+5
;) System.out.print("value of x : " + x
)if(x==20
;break
;)"System.out.print("\n
}
}
}
زض حّم ٝثبال ٌفش ٝایٓ و ٝسب ٚلشی و x ٝوٛچىشطاظ 100ثبقس حّم ٝثبیس اػطا قٛز) ِٚی زض زاذُ ثس٘ ٝحّمٌ ٝفش ٝایٓ و ٝاٌط xثطاثط 20ثٛز اػطای حّمٝ
سٕبْ قٛز.
دستَرcontinue
ایٗ زؾشٛض زض ٕٝٞی حّمٞ ٝب لبثُ اؾشفبز ٜاؾز) ٘ح ٜٛوبض ایٗ زؾشٛض ث ٝایٗ قىُ اؾز و ٝزض ٍٙٞبْ اػطای حّمٚ ٝلشی و ٝث ٝایٗ زؾشٛض ٔیطؾیٓ زض ٞط
ػبی حّم ٝلطاض زاقش ٝثبقیٓ ازأ ٝاػطا ِغٔ ٛی قٛز ٚث ٝاثشسای حّم ٝثبظٔی ٌطزیٓ) زلز زاقش ٝثبقیس و ٝاٌط زض زاذُ حّم for ٝلطاض زاقش ٝثبقیٓ ثرف
whileیب do…whileثبقس ٚلشی ثٝ updateدؽ اظ ضؾیسٖ ث continue ٝاػطا ذٛاٞس قس ٚؾذؽ قطٌ حّم ٝچه ٔی قٛز) ٕٞچٙیٗ اٌط زض حّمٝ
زؾشٛض ٔ continueی ضؾیٓ ث ٝاثشسای حّم ٝضفش ٚ ٝقطٌ حّم ٝچه ٔی قٛز) قىُ ٘ٛقشبضی ایٗ زؾشٛض ث ٝقىُ ظیط اؾز :
;continue
27
)if(x==20
;continue
;) System.out.print("value of x : " + x
;)"System.out.print("\n
}
}
}
ٕٞبُ٘ٛض ؤ ٝكبٞسٔ ٜی وٙیس ٚلشی ؤ ٝمساض xثطاثط ٔ 20ی قٛز زؾشٛض continueاػطا ٕ٘ی قٛز ٚزٚثبض ٜث ٝاثشسای حّم ٝثبظٌكز زازٔ ٜی قٛز ٔ ٚمساض
20چبح ٕ٘ی قٛز.
زض ٘ؿر 5 ٝػبٚا یه حّم for ٝػسیس ٔٗطفی قس) ایٗ حّم ٝثطای دیٕبیف ٔؼٕٞ ٖٝٛب ِ ٚیؿز ٞب ٚآضایٞ ٝب ث ٝوبض ٔی ضٚز) ث ٝایٗ ٔٗٙی و ٝسه سه
اًٖبی ٔؼٕ ٖٝٛضا یىی یىی دیٕبیف ٔی وٙس) زض ٚالٕ زض ایٗ ٘ ٔٛاظ حّمٔ ٝی سٛاٖ وُ آضای ٝضا ثس ٖٚایٗ و ٝا٘سیؽ ٞب ضا زا٘ؿز دیٕبیف وطز) قىُ
٘ٛقشبضی ایٗ حّم ٝث ٝنٛضر ظیط اؾز:
)for(declaration : expression
{
//Statements
}
),زض لؿٕز declarationثبیس یه ٔشغیط سٗطیف وٙیٓ) ٘ ٔٛایٗ ٔشغیط ثبیس ٔشٙبؾت ثب ٘ ٔٛآیشٓ ٞبی ٔؼٕٛٔ ٖٝٛضز ٘ٓط ثبقس) ثطای ٔظبَ اٌط لهس
دیٕبیف ِیؿشی اظ اٖساز نحیح زاضیٓ ایٗ ٔشغیط ثبیس اظ ٘ int ٔٛثبقس.
)-زض لؿٕز expressionثبیس ٘بْ ٔؼٕٛٔ ٖٝٛضز ٘ٓط ؤ ٝی ذٛاٞیٓ آٖ ضا دیٕبیف وٙیٓ آٚضز ٜقٛز) ایٗ ٔؼٕٔ ٖٝٛی سٛا٘س یه آضای ٝثبقس یب حشی
ٔی سٛا٘س یه ٔشس ثبقس ؤ ٝمساض ثبظٌكشی آٖ آضای ٝثبقس) ثطای ٔظبَ ث ٝوس ظیط زلز وٙیس :
10,20,30,40,50,
James,Larry,Tom,Lacy,
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 نّٛزاذُ ث
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 قس اٌط ٔمساضٝض ن ٌفشُٕٛ٘بٞ
یٓ) ثطایٙبی ٔرشّف قطٌ ضا ثطضؾی وٞ یٓ حبِزٞاٛ ثرٝز وٛ ٔی قٜ ثبقس) ایٗ حبِز ظٔب٘ی اؾشفبزٜٕطاٞ 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 ٌاٌط قط
:یسٙ وٝػٛ وس ظیط سٝز) ثطای ٔظبَ ثٛٔی ق
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بی سٛزضس ٛث ٝوس ظیط زلز وٙیس.
ضزط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فمٍ ٔی سٛا٘س اٖساز ،وبضاوشط ٞب ٞ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(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دیبز ٜؾبظی وٙیٓ) ایٗ ٍّٖٕط ضا لجال زض ثرف ٍّٖٕط ٞب سٛيیح زاز ٜایٓ)
و ٝقىُ وّی آٖ ث ٝنٛضر ظیط اؾز:
اٌط قطٌ ٔٛػٛز زض 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
:زٛس ثٞاٛ ثبال ٔشٗ ظیط ذٝٔػی ثط٘بٚذط
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.
}
: یسٙ وٝػٛ وس ظیط سٝشط آٖ ثٟ زضن ثٚ نّٛ اظ ایٗ ثٜثطای ٔظبِی اظ اؾشفبز
زض ٔٛضز ثّٛن ٞبی try, catch , finallyث٘ ٝىبر ظیط سٛػ ٝوٙیس:
ثّٛن finallyیه ثّٛن اذشیبضی اؾز ٌ ٚبٞی اٚلبر ِعٔٚی ٘ساضز و ٝایٗ ثّٛن ٘یع آٚضز ٜقٛز .
ثّٛن tryضا ٕ٘ی سٛاٖ ث ٝسٟٙبیی ث ٝوبض ثطز ٚثبیس حسالُ یه ثّٛن catchیب ٕٞ finallyطا ٜآٖ ثبقس.
ثیٗ ثّٛن ٞبی ٕ٘ try, catch, finallyی سٛاٖ ٞیچ وسی لطاض زاز.
ٕٝٞاًٖبی ثط٘بٔٛ٘ ٝیؿی ػبٚا اظ ػّٕ ٝفیّس ٞب ٔ ٚشغیط ٞب ٔ ٚشسٞب ٚوالؼ ٞب ٚاقیب ثبیس ٘بْ زاقش ٝثبقٙس) ٘بْ ٞبیی و ٝثطای ایٗ ٔٛاضز ث ٝوبض ٔیطٚز
٘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بی ٔشفبٚسی زاض٘س و ٝز ٚزؾش ٟٓٔ ٝآٟ٘ب ٖجبضسٙس
اظ:
37
ٞ Modifierب ضا ٘كبٖ ثطای اؾشفبز ٜاظ Modifierقٕب ثبیس ٘بْ آٖ ضا لجُ اظ سٗطیف والؼ ٚیبٔشس ٚیب ٔشغیط ذٛز ثیبٚضیس) زض وس ظیط ٘ح ٜٛاؾشفبز ٜاظ
زاز ٜایٓ.:
ّModifierای دستزسی
ػبٚا ثطای ایٗ و ٝؾُح زؾشطؾی ضا ٔكرم وٙس اظ سٗسازی Modifierزؾشطؾی اؾشفبزٔ ٜی وٙس) ٔكرم وطزٖ ؾُح زؾشطؾی ٔی سٛا٘س زض ؾُح والؼ
یب ٔشس یب ٔشغیط ثبقس) چٟبض ؾُح زؾشطؾی زض ػبٚا ٖجبضسٙس اظ :
modifierاؾشفبز٘ ٜكٛز لبثُ زض زؾشطؼ زض وُ دىیغ) ایٗ ؾُح زؾشطؾی ثَٛ ٝض دیكفطو ثطای ٕٝٞی ٔكرهٞ ٝب ٔی ثبقس ٚاٌط اظ ٞیچ
ایٗ ؾُح زؾشطؾی ثطای آٖ ٔكره ٝزض ٘ٓط ٌطفشٔ ٝی قٛز) یٗٙی زض وُ دىیغ ٕٝٞ ٚوالؼ ٞبی ٔٛػٛز زض آٖ دىیغ لبثُ زؾشطؼ اؾز) ثطای
ٔظبَ ث ٝوس ظیط سٛػٕ٘ ٝبییس
{ )(booleanprocessOrder
;return true
}
لبثُ زؾشطؼ زض والؼ سٗطیف قس )ٜایٗ ؾُح زؾشطؾی فمٍ زض زاذُ والؾی ؤ ٝكره ٝضا سٗطیف وطز ٜایٓ لبثُ اؾشفبز ٜاؾز ٚثیط ٖٚاظ آٖ
لبثُ زؾشطؾی ٘یؿز) ثطای ایٗ ؾُح زؾشطؾی اظ privateاؾشفبزٔ ٜی قٛز) ایٗ ؾُح زؾشطؾی ٔحسٚز وٙٙس ٜسطیٗ ؾُح زؾشطؾی اؾز) اؾشفبزٜ
اظ زؾشطؾی privateضا ٜوذؿ ِٝٛوطزٖ ٚدٟٙبٖ وطزٖ اَالٖبر والؼ اظ ؾبیط والؼ ٞب اؾز) ثطای ٔظبَ ث ٝوس ظیط سٛػٕ٘ ٝبییس
38
{ )public void setFormat(String format
;this.format = format
}
}
زض وس ثبال ٔشغیط formatث ٝنٛضر privateسٗطیف قس ٜاؾز ثٙبثطایٗ ٞیچ ضاٞی ثطای والؼ ٞبی زیٍط ٚػٛز ٘ساضز و ٝثَٛ ٝض ٔؿشمیٓ ث ٝایٗ ٔشغیط
زؾشطؾی زاقش ٝثبقٙس) ثطای ایٗ و ٝاظ ؾبیط والؼ ٞب ث ٝایٗ ٔشغیط زؾشطؾی زاقش ٝثبقیٓ زٔ ٚشس ثب ٘بْ ٞبی getFormatؤ ٝمساض و٘ٛٙی ٔشغیط ضا ثطٔیٍطزا٘س
get, setزض ػبٚا ثؿیبض ضایغ اؾز ٚایٗ ٔشسٞب setFormatٚؤ ٝمساض ٔشغیط ضا ثطاثط ثب ٚضٚزی اـ لطاض ٔی زٞس سٗطیف وطز ٜایٓ) سٗطیف ٔشس ٞبی
ثٗٔgetter,setterٝطٚف ٞؿشٙس.
لبثُ اؾشفبز ٜزض ٕٝٞػب) ثطای ایٗ و ٕٝٞ ٝػب حشی ثیط ٖٚاظ دىیغ ٔ ٓٞكرهٔ ٝب لبثُ زؾشطؼ ثبقس اظ ایٗ ؾُح زؾشطؾی اؾشفبزٔ ٜی وٙیٓ)
ٔظال والؾی ٘ٛقش ٝایٓ ؤ ٝی ذٛاٞیٓ زض ٕٝٞػبی ثط٘بٔ ٝلبثُ اؾشفبز ٜثبقس) ثطای ایٗ وبض ثبیس اظ ایٗ ؾُح زؾشطؾی اؾشفبز ٜوٙیٓ) ثطای
ٔكرم وطزٖ ایٗ ؾُح زؾشطؾی اظ publicاؾشفبزٔ ٜی قٛز) زض ٚضاطز ٔشسٞب ٔ ٚشغیط ٞبی publicزض والؼ فطظ٘س ٘یع لبثُ اؾشفبزٔ ٜی ثبقٙس)
ثٖ ٝجبضر زیٍط ػعئی اظ والؼ فطظ٘س ٔحؿٛة ٔی ق٘ٛس و ٝاظ والؼ دسض ث ٝاضص ضؾیس ٜا٘س) ثطای ٔظبَ ث ٝوس ظیط زلز وٙیس :
سبثٕ 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 ٗای
InstanceCounter() {
InstanceCounter.addInstance();
}
40
Started with 0 instances
Created 500 instances
numInstancesثیٗ ٕٝٞاقیب ٔكشطن اؾز ظیطا و static ٝسٗطیف قسٜ زِیُ ایٗ و ٝقٕبضـ اٖساز ث ٝسٗساز اقیب ؾبذش ٝقس ٜاؾز ایٗ اؾز ؤ ٝشغیط
اؾز) ٕٞچٙیٗ ثّٖ ٝز ایٗ و ٝسبثٕaddInstanceث ٝنٛضر staticسٗطیف قس ٜاؾز ٔی سٛاٖ ثس ٖٚزاقشٗ قی ث ٝآٖ زؾشطؾی زاقز.
اؾشفبز ٜاظ 5 finalایٖ Modifierثؿیبض ٔ ٟٓاؾز) اٌط اظ ایٗ Modifierثطای ٔٗطفی والؼ ذٛز اؾشفبز ٜوٙیس ایٗ والؼ زیٍط ٕ٘ی سٛا٘س
فطظ٘س زاقش ٝثبقس یٗٙی ٕ٘ی سٛاٖ اظ آٖ ثب اؾشفبز ٜاظ وّٕ ٝوّیسی extendsوالؼ فطظ٘س ؾبذز) اٌط اظ ایٗ Modifierزض سٗطیف ٔشس زض والؼ
دسض اؾشفبز ٜوٙیس زض والؼ ٞبی فطظ٘س ٕ٘ی سٛا٘یس ایٗ ٔشس ضا ث ٝنٛضر ؾفبضقی ثبظ٘ٛیؿی یب overrideوٙیس) اٌط اظ ایٗ Modifierزض سٗطیف
ٔشغیط اؾشفبز ٜوٙیس) فمٍ یه ثبض ٔی سٛا٘یس آٖ ٔشغیط ضا ٔمساض زٞی وٙیس) اِجش ٝالظْ ٘یؿز و ٝظٔبٖ سٗطیف ٔمساض زٞی وٙیٓ) أب اٌط یه ثبض
ٔمساضزٞی وٙیٓ زیٍط لبثُ ٔمساضزٞی ٘یؿز) ثطای ٔظبَ ث ٝوس ظیط زلز وٙیس:
اؾشفبز ٜاظ 5 abstractایٗ Modifierظٔب٘ی اؾشفبزٔ ٜی قٛز و ٝثرٛاٞیٓ والؾی ؤ ٝیؿبظیٓ نطفب والؼ دسض ثبقس) یٗٙی فمٍ ث ٝایٗ ٔٛٓٙض ایٗ
ٕ٘ abstractی سٛاٖ قی ػسیسی ثب اؾشفبز ٜاظ new والؼ ضا ٔی ؾبظیٓ و ٝثمی ٝوالؾٟب اظ آٖ ٚضاطز زاقش ٝثبقٙس) ٕٞچٙیٗ اظ والؼ ٞبی
ؾبذز) یه والؼ ٕ٘ی سٛا٘س final ٓٞثبقس ) abstract ٓٞاٌط والؾی زاضای ٔشس abstractثبقس ذٛز آٖ والؼ ثبیس حشٕب ث ٝنٛضر
abstractزاقش ٝثبقس) حبَ اٌط اظ ایٗ abstractسٗطیف قس ٜثبقس) یه والؼ ٔ abstractی سٛا٘س ٔ ٓٞشس ِٕٔٗٛی زاقش ٝثبقس ٔ ٓٞ ٚشس
Modifierثطای ٔشس اؾشفبز ٜوٙیٓ) ٔشس ضا دیبز ٜؾبظی ٕ٘ی وٙیٓ) ٚفمٍ قىُ ٔٗطفی ٔشس ضا ٔی ٘ٛیؿیٓ ٚزض والؼ ٞبی فطظ٘س آٖ ضا سٗطیف
ذٛاٞیٓ وطز) زلز وٙیس وٍٙٞ ٝبٔی ؤ ٝشس ضا abstractسٗطیف ٔی وٙیٓ ثبیس ثٗس اظ سٗطیف اظ ٖالٔز ؾٕی وبِٗ اؾشفبز ٜوٙیٓ) زض وس ظیط ٔظبِی
اظ سٗطیف والؼ ٔ ٚشس abstractآٔس ٜاؾز.
41
threadلبثُ وّٕ ٝوّیسی synchronizedث ٝایٗ ٔٛٓٙض ٔٛضز اؾشفبز ٜلطاض ٔی ٌیطز ؤ ٝكرم وٙس و ٝیه ٔشس زض یه ظٔبٖ فمٍ سٛؾٍ یه
زؾشطؾی اؾز) ایٗ ٔ Modifierی سٛا٘س ثب ٞط وساْ اظ Modifier 4زؾشطؾی ث ٝوبض ثطٚز) ثطای ٔظبَ ث ٝوس ظیط زلز وٙیس :
اظ وّٕ ٝوّیسی transientثسیٗ ٔٛٓٙض اؾشفبزٔ ٜی قٛز و ٝثٔ ٝبقیٗ ٔؼبظی ػبٚا )(JVMثفٕٟب٘یٓ وٍٙٞ ٝبٔی ؤ ٝحشٛیبر قی ضا ؾطیبِیع ٔی
وٙسٔ ،شغیطی و ٝث ٝنٛضر transientسٗطیف قس ٜاؾز ضا ٘بزیس ٜثٍیطز) ثطای ٔظبَ ث ٝوس ظیط زلز وٙیس .
اظ volatileظٔب٘ی اؾشفبزٔ ٜی وٙیٓ و ٝاظ چٙس threadزض ثط٘بٔ ٝاؾشفبز ٜوٙیٓ) ٔٛٓٙض اظ اؾشفبز ٜاظ ایٗ Modifierایٗ اؾز وٚ ٝلشی اظ ایٗ
Modifierثطای یه ٔشغیط اؾشفبزٔ ٜی وٙیٓ ثٔ ٝبقیٗ ٔؼبظی ػبٚا ٔی ٌٛییٓ و ٕٝٞ ٝی ٞ threadب اٌط ٔشغیط ٔٛضز ٘ٓط ضا زض حبفٓ ٝوف ذٛز
سغییط ثسٙٞس ثبیس آٖ سغییط ثط ضٚی ٔشغیط زض حبفٓ ٓٞ ٝاٖٕبَ قٛز) زِیُ ایٗ وبض ایٗ اؾز و ٝاٌط چٙس threadث ٝنٛضر ٕٞعٔبٖ اظ یه ٔشغیط
Modifierفمٍ ثط ضٚی فیّسٞبی والؼ لبثُ اؾشفبزٜ اؾشفبزٔ ٜی وٙٙس ٔمساض ٔشغیط زاز ٜلسیٕی ٘ساقش ٝثبقس ٕٞ ٚیكٍٕٞ ٝبْ دیف ثطٚیٓ) ایٗ
اؾز) یه ٔشغیط ٔ volatileی سٛا٘س nullثبقس) ثطای ٔظبَ ث ٝوس ظیط زلز وٙیس:
اٌط وس 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آٚضز ٜقس ٜاؾز.
43
٘شیؼ ٝاػطای وس ثبال 15ذٛاٞس ثٛز) ٚلشی و ٝیه قی اظ والؼ Integerؾبذشٔ ٝی قٛز ٘ ٚبْ آٖ ضا ٔ xی ٌصاضیٓ) ٚلشی و ٝیه ٔمساض ٖسز نحیح ث ٝایٗ
قئ ا٘شؿبة ٔی زٞیٓ وبٔذبیّط ُٖٕ boxingضا ا٘ؼبْ ٔی زٞس ٚآٖ ضا زض زاذُ یه قئ ٔی ضیعز) أب زض ذٍ ثٗس و ُٕٖ ٝػٕٕ وطزٖ ٖسز ا٘ؼبْ ٔی قٛز
وبٔذبیّط ثبیس xضا سجسیُ ث ٔٛ٘ ٝانّی intثىٙس سب ثشٛا٘س ثب ٖسز 10ػٕٕ وٙس ٚزض ایٗ حبِز ُٖٕ unboxingا٘ؼبْ ٔی قٛز.
هتذّای کالسNumber
زض ازأ ٝثِ ٝیؿشی اظ ٔشسٞبی ٔٛػٛز زض والؼ ٞبی اضص ثطز ٜاظ والؼ Numberآٚضز ٜقس ٜاؾز ٞ ٚطوساْ سٛيیح زاز ٜقس ٜا٘س) والؼ ٞبی wrapper
سبثٕ [datatype]Valueایٗ سبثٕ ُٖٕ سجسیُ ٘ ٔٛزاز ٜقس ٜضا ث ٔٛ٘ ٝذٛاؾش ٝقس ٜا٘ؼبْ ٔی زٞس) ٔمساض datatypeزض ا َٚایٗ سبثٕ ٔی سٛا٘سثب
٘بْ ا٘ٛأ زازٞ ٜبی ٖسزی ػبیٍعیٗ قٛز سٛاثٕ ایٗ ٔشس ث ٝقىُ ظیط ٞؿشٙس :
)(byte byteValue
)(short shortValue
)(int intValue
)(long longValue
)(float floatValue
)(double doubleValue
سٛاثٕ ٌفش ٝقسٔ ٜشسٞبی دیف فطو ٞؿشٙس ٞ ٚیچ دبضأشطی ٘ساض٘س ٔ ٚمساض ثبظٌكشی آٟ٘ب ٕٞبٖ ٔمساض ] [datatypeاؾز) ثطای زضن ثٟشط ث ٝوس ظیط سٛػٝ
وٙیس:
44
5
5.0
5
ٔشس:compareToایٗ ٔشس ٖسز قی نسا ظ٘ٙس ٜضا ثب ٖسزی و ٝثٖٛٙ ٝاٖ آضٌٔٛبٖ ثٔ ٝشس زاز ٜقس ٜضا ٔمبیؿٔ ٝی وٙس) ثب اؾشفبز ٜاظ ایٗ سبثٕ ٔی
سٛاٖ اٖساز اظ ا٘ٛأ ٔشفبٚر ضا ثب ٔ ٓٞمبیؿ ٝوطز ِٚی ثبیس زلز زاقز وٞ ٝط زٖ ٚسز اظ یه ٘ ٔٛثبقٙس ٕ٘ ٚی سٛاٖ سبثٕ ٔcompareToطث ٌٛثٝ
یه ٘ byte ٔٛضا ثب ٚضٚزی longنسا ظز) ایٗ ُٖٕ ثبٖض ذُب ٔی قٛز) قىُ ٘ٛقشبضی ایٗ ٔشس ٔب٘ٙس ذٍ ظیط اؾز :
ٕٞبٍ٘ ٝ٘ٛوٌ ٝفش ٝقس دبضأشط ٚضٚزی ایٗ ٔشس یه قی اظ والؼ ٔ wrapperشٙبْط ٔی ثبقس) ٔمساض ثبظٌكشی ایٗ ٔشس یه ٖسز نحیح اظ ٘ int ٔٛاؾز وٝ
ٔی سٛا٘س یب 0یب ٚ 1یب ( 1ثبقس) و ٝث ٝقطح ایٗ اٖسا ٔی دطزاظیٓ) اٌط زٖ ٚسز ثب یىسیٍط ثطاثط ثبقٙس زض ٘شیؼٔ ٝشس ٖسز 0ضا ثبظٔی ٌطزا٘س ٚاٌط ٖسز اظ
آضٌٔٛبٖ ذٛزـ وٛچىشط ثبقس ٖسز ( ٚ 1اٌط ٖسز اظ آضٌٔٛبٖ ذٛز ثعضٌشط ثبقس ٖسز 1ثٖٛٙ ٝاٖ ٘شیؼ ٝثبظٌكز زازٔ ٜی قٛز) ثطای ٔظبَ ث ٝوس ظیط زلز
وٙیس:
1
0
-1
ٔشس :equalsایٗ ٔشس ٔكرم ٔیوٙس و ٝزٖ ٚسز ثب ٓٞثطاثط ٞؿشٙس یب ذیط) وبض ایٗ ٔشس ث ٝایٗ قىُ اؾز سٛؾٍ قئی نسا ظزٔ ٜیقٛز ٚیه
ٚ trueاٌط ثطاثط ٘جبقس ٔمساض إ falseثطٌطزا٘سٔ ٜیقٛز)قىُ ٖسز ث ٝآٖ زازٔ ٜیقٛز اٌط ٖسز زاز ٜقس ٜثطاثط ثب ٔمساض ذٛز قئ ثبقس ٔمساض
سٗطیف قس ٜایٗ سبثٕ ث ٝقىُ ظیط اؾز:
چیعی و ٝایٗ ٔشس ثٖٛٙ ٝاٖ دبضأشط ٚضٚزی ٔیٌیطیس ٔیسٛا٘س ٞط ٘ ٔٛقیئی ثبقس .
45
ٔمساض ثبظٌكشی ایٗ ٔشس ٕٞبُ٘ٛض وٌ ٝفش ٝقس یه ٔمساض booleanاؾز و ٝاٌط ٚضٚزی ٔشس ثب ذٛز قئ ثطاثط ثبقٙس trueثطٌطزا٘سٔ ٜی قٛز) زض ازأٔ ٝظبِی
ثطای ایٗ ٔشس آٚضز ٜقس ٜاؾز:
;))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لطاض زٞیٓ) قىُٞبی اؾشفبز ٜاظ ایٗ
سبثٕ زض وس ظیط آٔس ٜاؾز:
دبضأشط ٚضٚزی زض ذٍ ا َٚوس ثبال ثطای یه ٖسز intاؾز وٚ ٝاضز ٔیقٛز ٔ ٚیسٛاٖ ایٗ ٖسز ضا ثب اؾشفبز ٜاظ ایٗ ٔشس ث ٝا٘ٛأ زازٖ ٜسزی ٔرشّف سجسیُ
وطز) زض ذٍ ز ْٚیه ضقش ٝثٔ ٝشس زازٔ ٜیقٛز و ٝزاضای اٖساز زض زاذُ ضقش ٝاؾز و ٝثب اؾشفبز ٜاظ ایٗ ٔشس ٔیسٛاٖ آٖ ضا سجسیُ ثٖ ٝسز وطز) زض ذٍ ؾْٛ
٘یع یه ضقش ٝزاضای ٖسز ثٖٛٙ ٝاٖ دبضأشط ٚضٚزی اِٚی ٔیثبقس ٚدبضأشط ز٘ ْٚیع ٔجٙبی ٖسز اؾز) ذطٚػی ایٗ سبثٕ یه ٖسز اؾز و ٝزض ٔظبَ ظیط اؾشفبزٜ
اظ ایٗ ٔشس آٚضز ٜقس ٜاؾز.
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)
System.out.println(x.toString());
System.out.println(Integer.toString(12));
}
}
5
47
12
زض ایٗ ثرف ثٗٔ ٝطفی والؼ ٞبی ٔ wrapperطث ٌٛث ٝاٖساز دطزاذشیٓ ٔ ٚشسٞبی آٖ ضا ٔٗطفی وطزیٓ.
parseint
ایٗ ٔشسض ثطای سجسیُ ضقش ٝث ٔٛ٘ ٝزازٖ ٜسزی اؾشفبزٔ ٜی قٛز ٚث ٝقىُ ٞبی ٚparseDoubleٚparseIntیب ؾبیط ا٘ٛأ زاز ٜاؾشفبزٔ ٜی قٛز) ایٗ ٔشس ٔی
سٛا٘س یه یب ز ٚدبضأشط ٚضٚزی زاقش ٝثبقس و ٝدبضأشط ا َٚثطای ضقشٚ ٝضٚزی اؾز ٚدبضأشط ز ْٚثطای ٔجٙبی ٖسزی اؾز ؤ ٝكرم ٔی وٙس ٔجٙبی ٖسز
ٔٛضز ٘ٓط چٙس اؾز) قىُ ٘ٛقشبضی ایٗ ٔشس ث ٝنٛضر ظیط اؾز :
ٔمساض ثبظٌكشی ایٗ ٔشس ٕٞیك ٝیه ٖسز ٔی ثبقس) اظ ایٗ ٔشس ٔی سٛاٖ ثطای سجسیُ ٔجٙبٞب ٓٞاؾشفبز ٜوطز) ثطای ٔظبِی اظ ایٗ ٔشس ث ٝوس ظیط سٛػ ٝوٙیس :
;)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 سی زاض٘س) ٔشسٚفی ّٖٕىطز ٔشفبٙٔ ِی ثطای اٖسازٚ سٙؿشٞ یىسیٍط
:یسٙ وٝػٛس
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 ٔٛذٛاٞس ثٛز ثب ایٗ ؤ ٝمساض اٖكبضی ٘ ٓٞساضز)ثطای ٔظبَ اظ ایٗ ٔشس ث ٝوس ظیط زلز وٙیس:
;))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 ٚسز
ثعضٌشط ضا ثطٔی ٌطزا٘س) ایٗ زٔ ٚشس ثطای ا٘ٛأ زازٞ ٜبی ٖسزی ث ٝوبض ٔی ض٘ٚس) و ٝزض ذٍ ظیط ٘كبٖ زاز ٜقس ٜاؾز .
12.123
23.0
12.456
23.12
هتذexp
زض ضیبيیبر ٔ ٚرهٛنب لؿٕز ٍِبضیشٓ ٞب ٖسز eثؿیبض وبضثطز زاضز) حبَ زض ػبٚا ٘یع ثطای اؾشفبز ٜاظ ایٗ ٖسز ٚاٖٕبَ ٍِبضیشٕی أىب٘بسی فطا ٓٞقسٜ
اؾز) یىی اظ ایٗ أىب٘بر ٔشس ٔ expی ثبقس) ایٗ ٔشس یه ٚضٚزی ٌطفش ٚ ٝزض ٘شیؼ e ٝث ٝسٛاٖ ٖسز ٚاضز قس ٜضا ثطٔی ٌطزا٘ٙس) ٖسز eیه ٖسز ثب اٖكبض
َٛال٘ی اؾز ؤ ٝی سٛا٘یس ٔمساض آٖ ضا ثب اؾشفبز ٜاظ Math.Eث ٝزؾز آٚضیس) اٌط ٘بْ ٚضٚزی ٔشس expضا xثٍصاضیٓ ذطٚػی ایٗ ٔشس e^xذٛاٞس ثٛز)
ٚضٚزی ٚذطٚػی ایٗ ٔشس اظ ٘ double ٔٛذٛاٞس ثٛز) ثطای ٔظبَ ث ٝوس ظیط سٛػ ٝوٙیس:
زض ایٗ وس ثطای چبح وطزٖ ٔمبزیط ثطای اِٚیٗ ثبض اظ ٔشس printfاؾشفبز ٜقس ٜاؾز) ثب اؾشفبز ٜاظ ایٗ ٔشس ٔی سٛاٖ ٔشٗ ذطٚػی ضا فطٔز ثٙسی وطز) ث ٝایٗ
قىُ و ٝاٌط زلز وٙیس زض ذٍ اِٚی ؤ ٝشس printfث ٝوبض ثطز ٜقس ٜاؾز زض زاذُ ٔشٗ ٖجبضر "" ")4fث ٝوبض ثطز ٜقس ٜاؾز ٚزض ا٘شٟب یه ٖجبضر ٖسزی
ثٖٛٙ ٝاٖ ٚضٚزی ثٔ ٝشس زاز ٜقس ٜاؾز و ٝزض ایٙؼب ٖجبضر ٖسزی ٔMath.Eی ثبقس) ٔٗٙی ایٗ ذٍ ایٗ اؾز و ٝیه ٖجبضر اٖكبضی ثب 4ضلٓ اٖكبض ثٝ
ػبی "" ")4fلطاض ٔی ٌیطز و ٝآٖ ٖسز ثٖٛٙ ٝاٖ ٚضٚزی زاز ٜقس ٜاؾز) زض ذٍ ز٘printf ْٚیع زٖ ٚسز ثب 3ضلٓ اٖكبض زض زاذُ ٔشٗ لطاض ٌطفش ٝاؾز)
ذطٚػی وس ثبال ث ٝقطح ظیط ذٛاٞس ثٛز:
هتذlog
ایٗ ٔشس ثطذالف اؾٕف ٔمساض ٍِبضیشٓ َجیٗی ٖسز ٚضٚزی ضا ثطٔی ٌطزا٘س ثٖ ٝجبضر زیٍط ایٗ ٔشس lnیه ٖسز ضا ٔحبؾجٔ ٝی وٙس) ٚضٚزی ٚذطٚػی ایٗ
ٔشس ٖسز doubleاؾز) ٔظبِی اظ ایٗ ٔشس زض وس ظیط آٚضز ٜقس ٜاؾز) زلز وٙیس و ٝزض ایٗ وس ٘یع اظ ٔشس٘printfیع اؾشفبز ٜقس ٜاؾز.
هتذpow
ایٗ ٔشس ٔشس ث ٝسٛاٖ ضؾب٘سٖ ٔی ثبقس) وبض ایٗ ٔشس ث ٝایٗ قىُ اؾز وٖ ٝسز ٚضٚزی اِٚی ضا ثٖٛٙ ٝاٖ دبی ٝسٛاٖ زض ٘ٓط ٌطفشٖ ٚ ٝسز زٔٚی ضا ثٖٛٙ ٝاٖ
ٔمساض سٛاٖ زض ٘ٓط ٔی ٌیطز) ثٙبثطایٗ ٖسز ا َٚضا ث ٝسٛاٖ ٖسز زٔ ْٚی ضؾب٘س) ٘ ٔٛزازٚ ٜضٚزی ٚذطٚػی ایٗ ٔشس ٕٝٞاظ ٘ٞ double ٔٛؿشٙس) ثطای ٔظبَ
ث ٝوس ظیط زلز وٙیس:
52
public class Test{
public static void main(String args[]){
double x = 11.635;
double y = 2.76;
sqrtهتذ
ٔی ثبقس) اٖساز0.5 ٖزی آٚضٚ ٖٔبٌٛ آضٝر وٚ اؾز ثب ایٗ سفبpow ٕبٖ ٔشسٞ ٖجبضر زیٍط ایٗ ٔشسٝ ضا ثطٔی ٌطزا٘س ثٜ قسٜایٗ ٔشس ػصض ٖسز زاز
. ٔی ثبقس) وس ظیط یه ٔظبَ اظ ایٗ ٔشس ٔی ثبقسdouble ػی ایٗ ٔشسٚ ذطٚ زیٚضٚ
sqrt(11.635) is 3.411
ػیٚ یه ذطٚ زیٚضٚ طوساْ یهٞ بٞ ٘س) ایٗ ٔشسٛ ٔی قٜ وبض ثطزٝ ثٝیٚ سب٘ػا٘ز یه ظاٚ ؼٛٙ وؿیٚ ؼٛٙبی ٔظّظبسی ؾیٞ ٘ؿجزٝب ثطای ٔحبؾجٞایٗ ٔشس
ٚ احس ضازیبٖ ثبقسٚ ٝب ثبیس ثٞ زی ایٗ ٔشسٚضٚ ٝیٚ ٔی ثبقس) ظاdouble ٔٛ٘ ب اظٞػی ٔشسٚ ذطٚ زیٚضٚ ٜٔ زازٛ٘ ) اؾزٝیٕٚبٖ ظاٞ زی ٔشسٚضٚ ٝزاض٘س و
: اؾزٜ قسٜضزٚب آٞ َ ٘یؿز) زض وس ظیط ٔظبِی اظ ایٗ ٔشسٛ لجٝزضػ
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));
}
}
ٔٛ٘ ب اظٞ ثبظٌكشی ایٗ ٔشسٚ زیٚضٚ س) ٔمساضٙ ٔی ٕ٘بیٝ آٖ ضا ٔحبؾجٝیٚ ظاٚ ٝ قس ٔمساض ٘ؿجز ٔظّظبسی ضا ٌطفشٝ لجال ٌفشٝ ٔشسی وٝب ثطذالف ؾٞایٗ ٔشس
: اؾزٜب زض ظیط آٔسٞٔی ثبقس) ٔظبَ ایٗ ٔشسdouble
}
}
ٕٞبٖ ٌ ٝ٘ٛو ٝزض وس ثبال ٔكبٞسٔ ٜی وٙیس اظ ٔشسٞبیی ث٘ ٝبْ ٞبی toDegreesٚtoRadiansزض ایٗ ثط٘بٔ ٝاؾشفبز ٜقس ٜاؾز) ایٗ زٔ ٚشس ثطای سجسیُ ظاٚیٝ
toDegreesظاٚی ٝضازیبٖ ضا ٌطفش ٚ ٝث ٝزضػ ٝسجسیُ ٔی وٙس ٚ اظ ٚاحس زضػ ٝث ٝضازیبٖ ٚاظ ضازیبٖ ث ٝزضػ ٝث ٝوبض ٔی ض٘ٚس) ث ٝقىّی ؤ ٝشس
ٔشسٖtoRadinsىؽ ایٗ ُٖٕ ضا ا٘ؼبْ ٔی زٞس) زلز زاقش ٝثبقیس وٚ ٝضٚزی ٚذطٚػی ایٗ زٔ ٚشس اظ ٘ٔ double ٔٛی ثبقس.
هتذrandom
ایٗ ٔشس ثطای ؾبذز اٖساز سهبزفی ثیٗ 0.0سب 1.0ث ٝوبض ٔی ضٚز) حبَ اٌط ثرٛاٞیس وٖ ٝسزی زض ض٘غ ذبنی سِٛیس وٙیس ثبیس اظ ایٗ ٔشس اؾشفبز ٜوٙیس ٚ
ٔمساض سِٛیس قس ٜضا يطة وٙیس) ٔمساض ثبظٌكشی ایٗ ٔشس doubleذٛاٞس ثٛز) ایٗ ٔشس آضٌٔٛبٖ ٚضٚزی ٘ساضز) ثطای ٔظبِی اظ ایٗ ٔشس ث ٝوس ظیط سٛػ ٝوٙیس .
0.16763945061451657
0.400551253762343
ٞطثبض ؤ ٝشس randomفطاذٛا٘ی قٛز یه ٖسز سهبزفی ػسیس سِٛیس ذٛاٞس قس)
wrapperکاراکتزّا
حبَ زض ایٗ ُّٔت ث ٝثطضؾی والؼ wrapperثطای وبضاوشط ٞب ٔی دطزاظیٓ) ٕٞچٙیٗ ٔشسٞبی ٔٛػٛز زض والؼ ٔ wrapperطث ٌٛث ٝوبضاوشط ٞب ضا سٛيیح
ٔی زٞیٓ) ثطای وبض ثب وبضاوشط ٞب ثبیس اظ ٘ ٔٛزاز char ٜاؾشفبز ٜوٙیٓ) زض وس ظیط چٙس حبِز اؾشفبز ٜاظ وبضاوشط ٞب آٚضز ٜقس ٜاؾز .
;'char ch = 'a
55
زض اؾشفبز ٜاظ ٘ ٔٛزاز ٜوبضاوشط ٔب٘ٙس ا٘ٛأ زازٖ ٜسزی ؤ ٝب زاضای والؼ ٞبی wrapperثٛزیٓ ثطای ٘ ٔٛزاز ٓٞ char ٜوالؼ wrapperزاضیٓ) ٘بْ والؼ
ٔٛ٘wrapperوبضاوشط ٔ Characterی ثبقس) والؼ Characterچٙسیٗ ٔشس ٔفیس ثطای وبض ثب وبضاوشط ٞب اضائٔ ٝی زٞس) قٕب ٔی سٛا٘یس یه قئ اظ والؼ
Characterضا ث ٝقىُ ظیط ثؿبظیس:
ٕٞچٙیٗ ٕٔىٗ اؾز و ٝسحز قطایٍ ذبنی وبٔذبیّط ٘ ٔٛزاز ٜاِٚی ٝوبضاوشط ضا سجسیُ ث ٝقئ ٕ٘بیس) ثطای ٔظبَ فطو وٙیس یه ٘ٚ ٔٛضٚزی یه سبثٕ اظ ٘ٔٛ
قئ Characterثبقس ِٚی ٔب ث ٝآٖ یه ٘ ٔٛزاز ٜاِٚی ٝوبضاوشط ضا ٔی زٞیٓ) زض ایٗ حبِز وبٔذبیّط ٘ ٔٛزاز ٜضا سجسیُ ث ٝقئ ٔی ٕ٘بیس ث ٝایٗ ُٖٕ
ٌautoboxingفشٔ ٝی قٛز ٚاٌط ٖىؽ ایٗ ُٖٕ ا٘ؼبْ قٛز ث ٝایٗ ُٖٕ ٌ unboxingفشٔ ٝی قٛز) ثطای ٔظبَ اظ ایٗ ز ُٕٖ ٚث ٝوس ظیط زلز وٙیس .
// 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 ٜوبضاوشط فبنّ ٝاؾز .
56
)٘(\nكبٖ زٙٞس ٜضفشٗ ث ٝذٍ ػسیس ٚظزٖ وّیس enterاؾز.
)(\rث ٝایٗ ٔٗٙی اؾز ؤ ٝىبٖ ٕ٘ب ٔ$حُ ٘ٛقشٗ ٔشٗ #ث ٝاثشسای ذٍ ٔی ضٚز .
ٚلشی و ٝیه وبضاوشط ٔرهٛل زض ٔشس ْ printبٞط قٛز وبٔذبیّط آٖ ضا سفؿیط ٔی وٙس ٚوبضاوشط ٔٛضز ٘ٓط آٖ ضا ث ٝػبی آٖ لطاض ذٛاٞس زاز) ثطای ٔظبَ ثٝ
وس ظیط سٛػ ٝوٙیس) زض ٔظبَ ظیط لهس ثط ایٗ ثٛز ٜاؾز وٖ ٝالٔز زاثُ وٛسیكٗ چبح قٛز .
زض ازأ ٝث ٝثیبٖ ٔشس ٞبیی و ٝزض والؼ 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
. اؾزٜ قسٜضزٚ زض وس ظیط آٜ قسٝبی ٌفشٞٔشس
//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
ؾبذش ٝقس ٜاؾز ؤ ٝمساض آٖ !ٔ Hello worldی ثبقس) اِجشٔ ٝب زض ُٔبِت لجّی ٌفشیٓ و ٝثطای ؾبذز اقیب اظ وّٕ ٝوّیسی newاؾشفبزٔ ٜی قٛز) حبَ
ثطای ؾبذز ضقش٘ ٝیع
ٔی سٛاٖ اظ ایٗ وّٕ ٝوّیسی اؾشفبز ٜوطز) ثطای ٔظبَ ث ٝوس ظیط سٛػ ٝوٙیس :
Hello.
زض وس ثبال یه آضای ٝوبضاوشطی ث ٝیه قی ضقش ٝای سجسیُ قس ٜاؾز .
ٌ accessorفشٔ ٝی قٛز) اـیاء ٔشسٞبیی زض ػبٚا سٗطیف قس ٜا٘س و ٝثشٛا٘ٙس ثطذی اَالٖبر زض ٔٛضز یه قئ ضا ثٔ ٝب ثسٙٞس) ث ٝایٗ ٔشس ٞب ٔشس ٞبی
والؼ ٓٞ Stringزاضای ٔشسٞبی ٔ accessorشٗسزی ٞؿشٙس) یىی اظ ایٗ ٔشس ٞب ٔشس )(ٔ lengthی ثبقس و ٝایٗ ٔشس َ َٛضقش ٝزاز ٜقس ٜضا ثط ٔی ٌطزا٘س)
ٔٛٓٙض اظ َ َٛضقش ٝسٗساز وبضاوشطٞبی ث ٝوبض ضفش ٝزض یه ضقش ٝاؾز) ٔظبِی اظ ٔشس lengthزض ازأ ٝآٚضز ٜقس ٜاؾز:
60
;"String palindrome = "Dot saw I was Tod
;)(int len = palindrome.length
;) System.out.println( "String Length is : " + len
}
}
اٌط ثرٛاٞیٓ ز ٚضقش ٝضا ث ٝیىسیٍط اِحبق وٙیٓ یب ثٖ ٝجبضر ؾبز ٜسط ز ٚضقش ٝضا ث ٝیىسیٍط ثچؿجب٘یٓ ،اظ ٔشس concatاؾشفبزٔ ٜی وٙیٓ ٘ ٚحٛ٘ ٜٛقشٗ ایٗ
ٔشس ث ٝقىُ ظیط اؾز:
;)string1.concat(string2
ایٗ ٔشس یه قئ ضقش ٝای ػسیس ثطٔی ٌطزا٘س ؤ ٝمساض آٖ اِحبق ز ٚضقشٔ string2 ٚ String1 ٝی ثبقس) ٕٞچٙیٗ قٕب ٔی سٛا٘یس اظ ٔشس concatزض ٔمساض
یه ضقش٘ ٝیع اؾشفبز ٜوٙیس) ٔب٘ٙس قىُ ظیط:
ٕٞچٙیٗ ٔی سٛاٖ ُٖٕ اِحبق ز ٚضقش ٝضا ثسٔ ٖٚشس ٚفمٍ ثب اؾشفبز ٜاظ ٍّٖٕط & ٘یع ا٘ؼبْ زاز ایٗ ضٚـ زض قىُ ظیط آٚضز ٜقس ٜاؾز :
ثطای زضن ثٟشط ایٗ ُٖٕ ثٔ ٝظبَ ظیط زلز وٙیس .
61
فزهت دادى بِ رضتِ
printfاظ ضقش ٝفطٔز ثٙسی قس ٜاؾشفبز ٜوطز) اٌط ثرٛاٞیس ٔشٙی ضا ٕٞبٖ ٌ ٝ٘ٛو ٝزض آٔٛظـ ٞبی لجُ ٘ ٓٞكبٖ زاز ٜقس ٔی سٛاٖ ٍٙٞبْ اؾشفبز ٜاظ ٔشس
فطٔز ثٙسی وٙیس و ٝزض لؿٕز ٞبیی اظ آٟ٘ب ٔمبزیط ٔكرهی لطاض ٌیطز ٔی سٛا٘یس اظ زٔ ٚشس format ٚprintfاؾشفبز ٜوطز) ایٗ زٔ ٚشس یه ضقش ٚ ٝسٗسازی
قئ زضیبفز ٔی وٙٙس و ٝضقشٚ ٝاضز قس ٜفطٔز ثٙسی قس ٜاؾز) ذطٚػی ایٗ ٔشس ٞب اظ ٘ٔ string ٔٛی ثبقس یٗٙی ذطٚػی ایٗ ٔشسٞب یه قئ ضقش ٝای
اؾز) سفبٚر printfثب formatایٗ اؾز وprintf ٝضقش ٝضا فطٔز ثٙسی وطز ٚ ٜزض ٕٞبٖ حبَ آٖ ضا چبح ٔی وٙس ثٙبثط ایٗ ٔب ٕ٘ی سٛا٘یٓ و ٝضقش ٝسِٛیس
قس ٜضا زض زاذُ یه ٔشغیط ضیرش ٚ ٝچٙس ثبض اظ آٖ اؾشفبز ٜوٙیٓ) أب ثب اؾشفبز ٜاظ ٔشس formatایٗ وبض قس٘ی اؾز) ثٙبثط ایٗ ٔی سٛاٖ ث ٝػبی اؾشفبز ٜاظ وس
ظیط:
زلز زاقش ٝثبقیس ؤ ٝشغیط ٞبی 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ایٗ ٔشس وبضاوشطی ضا و ٝثب ٖسز ا٘سیؽ آٖ ٔكرم قس ٜاؾز ضا ثطٔی ٌطزا٘س) ث ٝایٗ ٔٗٙی و ٝیه ٚضٚزی ٖسزی ثٖٛٙ ٝاٖ ا٘سیؽ ٌطفشٔ ٝی
قٛز ٚوبضاوشط آٖ ا٘سیؽ ضا ثطٔی ٌطزا٘س) زلز وٙیس و ٝزض ػبٚا ا٘سیؽ ٞب اظ نفط قطٔ ٔٚی ق٘ٛس) ثطای ٔظبَ ث ٝوس ظیط سٛػ ٝوٙیس :
. ٔی ثبقسare ّٕٝ زض اثشسای وa وبضاوشط8 وبضاوشط ا٘سیؽٝ ایٗ زِیُ وٝز) ثٛس ثٞاٛ ذa ػی ایٗ وس حطفٚذط
compareToهتذ
ضا ثب یىسیٍطٝ ضقشْٚ زٚ زٚ سٙ ٔی وٝ ضا ثب یه قئ زیٍط ٔمبیؿَٝ یه ضقشٚس) اٞ ضا ا٘ؼبْ ٔی زٝٔ ٔمبیؿٛ٘ ٚ ٔی ثبقس) ایٗ ٔشس زٝ ایٗ ٔشس ٔمبیؿْٝیفٚ
ػی ٔشس وٕشطٚ اٌط ذطٚ سٙؿشٞ یٚٓ وبٔال ٔؿبٞ ثبٝ ضقشٚ زٝی اؾز وٙٗٔ ٗ ایٝ ثبقس ث0 اٌطٝ ٔی ثبقس وint ػی ایٗ ٔشس یه ٖسزٚ ٔی ٕ٘بیس) ذطٝٔمبیؿ
ِ اظ ِحبٝی اؾز وٙٗٔ ٗ ایٝ ثبقس ث0 ػی ثعضٌشط اظٚ اٌط ذطٚ چىشط ٔی ثبقسٛ ٔشس اظ ِحبِ وبضاوشطی وٜسٙ٘ نسا ظٝز ضقشٛزی ٔشس اظ ذٚضٚ ثبقس0 اظ
: یسٙ وس ظیط زلز وٝزی اـ ٔی ثبقس) ثطای ٔظبَ ثٚضٚ ٖٔبٌٛ ثعضٌشط اظ آضٝز ضقشٛب ذٞ وس اؾىی وبضاوشط
0
10
-10
compareToIgnoreCaseهتذ
63
ٜاؾشفبزcompareTo اٌط اظٝی وٙٗٔ ٗ ایٝس قس) ثٞاٛر لبیُ ذٚچه سفبٛ وٚ ف ثعضيٚا ثیٗ حطٚیٓ ػبٙ وٜاؾشفبزcompareTo اٌط زض حبِز وّی اظ ٔشس
چه فطلی ٍ٘صاضز اظٛ وٚ ف ثعضيٚا ثیٗ حطٚ ػبٝیٓ وٞاٛس زاقز) حبَ اٌط ثرٙٞاٛٓ فطق ذٞ ثبhello ٚ Hello یٓ وّٕبرٙو
ٕٗبٖ ٔشس اؾز) ثطای ٔظبِی اظ ایٞ ٝ ثٝبی آٖ ٘یع قجیٞ ػیٚ ذطٚ ٜزٛثcompareTo س ٔشسٕٙ٘بٞ یٓ) ایٗ ٔشسٙ ٔی وٜاؾشفبزcompareToIgnoreCaseٔشس
: ٕ٘بییسٝػٛ وس ظیط سٝٔشس ث
0
10
-10
contentEqualsهتذ
ٗػی ایٚٔی ثبقس) ذطStringBuffer ٔٛ٘ زی ایٗ ٔشس یه قئ اظٚضٚ ٖٔبٌٛ آضٝر وٚ ثب یىسیٍط ٔی ثبقس ثب ایٗ سفبٝ ضقشٚ زٝٓ ٔمبیؿٞ ایٗ ٔشسْٝیفٚ
سٞاٛ ذfalse ٝضر ٘شیؼٛ زض غیط ایٗ نٚ true ٝ ثطاثط ثبقس ٘شیؼٜسٙ٘ نسا ظٝزی ثب ضقشٚضٚ اٌط ٔمساضٝ ایٗ قىُ وٝ ٔی ثبقس ثBoolean ٔشس یه ٔمساض
: ٕ٘بییسٝػٛ وس ظیط سٝز) ثطای ٔظبَ ثٛث
64
;) boolean result = str1.contentEquals( str3
;)System.out.println(result
true
false
زلز زاقش ٝثبقیس و ٝایٗ ٔشس ٘یع ثطای ثعضي ٚوٛچه ثٛزٖ حطٚف سفبٚر لبیُ ذٛاٞس قس .
هتذcopyValueOf
ایٗ ٔشس ثطای سجسیُ یه آضای ٝوبضاوشطی ث ٝیه قئ Stringث ٝوبض ٔی ضٚز) ث ٝایٗ ٔٗٙی و ٝیه آضای ٝوبضاوشطی و ٝزض ٞط ذب٘ ٝآٖ یه وبضاوشط ٚػٛز زاضز
ضا ث ٓٞ ٝچؿجب٘س ٕٝٞ ٚ ٜضا سجسیُ ث ٝیه ضقشٔ ٝی وٙس) ایٗ ٔشس ز ٚقىُ اؾشفبز ٜزاضز) زض یىی اظ قىُ ٞبی اؾشفبز ٜاظ ایٗ ٔشس فمٍ یه آضای ٝوبضوشطی ثٝ
ٖٛٙاٖ ٚضٚزی ٌطفش ٝقس ٚ ٜضقشٔ ٝشٙبْط ثب آٖ ثطٌطزا٘سٔ ٜی قٛز) ِٚی زض ضٚـ ز ْٚسجسیُ وُ آضای ٝث ٝضقشٔ ٝس ٘ٓط ٘یؿز ٔ ٚی ذٛاٞیٓ لؿٕشی اظ آضایٝ
ضا ث ٝضقش ٝسجسیُ وٙیٓ) ثطای ایٗ وبض زض ضٚـ زٖ ْٚال ٜٚثط ایٗ و ٝزض آضٌٔٛبٖ ٚضٚزی آضای ٝوبضاوشطی ضا زضیبفز ٔی وٙیٓ ذب٘ ٝای و ٝاظ آٖ ذب٘ ٝثبیس
قط ٔٚوٙیٓ ٚسٗساز ذب٘ٞ ٝبیی و ٝثبیس ا٘شربة ق٘ٛس ٚث ٝضقش ٝسجسیُ ق٘ٛس ٘یع ثبیس ثٖٛٙ ٝاٖ ٚضٚزی زاز ٜقٛز) ثطای ٔظبِی اظ ایٗ ٔشس ث ٝوس ظیط سٛػٝ
وٙیس:
2ث ٝا٘ساظ 6 ٜذب٘ٝ ٕٞبٖ ٌ ٝ٘ٛو ٝزیسٔ ٜی قٛززض لؿٕز ا َٚوس ٔب وُ آضای ٝضا ث ٝضقش ٝسجسیُ وطزیٓ ِٚی زض ثرف زٌ ْٚفش ٝایٓ و ٝاظ ا٘سیؽ قٕبضٜ
ا٘شربة وٗ و ٝذطٚػی ضا ٔكبٞسٔ ٜی وٙیس.
هتذendsWith
ایٗ ٔشس یه آضٌٔٛبٖ ٚضٚزی زاضز ؤ ٝكرم ٔی وٙس و ٝا٘شٟبی ضقش ٝثب آضٌٔٛبٖ ٚضٚزی یىی اؾز یب ذیط) اٌط لؿٕز ا٘شٟبیی ضقش ٝثب آضٌٔٛبٖ ٚضٚزی
یىی ثٛز دؽ ٔمساض ٚ trueزض غیط ایٗ نٛضر ٔمساض falseثطٔی ٌطزا٘س) اٌط آضٌٔٛبٖ ٚضٚزی ضقش ٝذبِی ثبقس یب ثب ضقش ٝنسا ظ٘ٙس ٓٞ ٜثطاثط ثبقس ایٗ
ٔشس ػٛاة trueذٛاٞس زاز) وس ظیط ٔظبِی اظ ایٗ ٔشس ضا ٕ٘بیف ٔی زٞس.
اٌط وس ثبال ضا اػطا وٙیٓ ٘شیؼ ٝث ٝنٛضر ظیط ذٛاٞس ثٛز:
هتذequals
ْٚیف ٝایٗ ٔشس ٔمبیؿ ٝاؾز) ث ٝقىّی و ٝضقش ٝزاز ٜقس ٜضا ثب آضٌٔٛبٖ ٚضٚزی ٔمبیؿٔ ٝی وٙس) ظثبٖ ثط٘بٔٛ٘ ٝیؿی ػبٚا ثطای ٞطقئ اظ ٞط ٖ٘ٛی ٔی سٛاٖ
trueضا ثطٔی یهhashcodeسِٛیس وٙس) حبَ ٔشس equalsاٌط ٔمساض hashcodeز ٚقئ ثب ٓٞثطاثط ثبقس آٖ ز ٚضا ثب ٓٞثطاثط زض ٘ٓط ٔی ٌیطز ٔ ٚمساض
ٚ trueاٌط ثطاثط ٘جبقٙس ایٗ ٔشس ٌطزا٘س ٚٚزض غیط ایٗ نٛضر ٔمساض falseثطٔی ٌطزا٘س) ثٖ ٝجبضر زیٍط اٌط ز ٚضقش ٝثب ٓٞثطاثط ثبقٙس ایٗ ٔشس ٔمساض
ٔمساض Falseثطٔی ٌطزا٘س) آضٌٔٛبٖ ٚضٚزی ایٗ ٔشس ٔی سٛا٘س ٞط قئی ثبقس) ٔ ٚمساض ثبظٌكشی آٖ یه ٔمساض Booleanاؾز) ثطای ٔظبَ ث ٝوس ظیط سٛػٝ
وٙیس:
زی ثبٚضٚ ٖٔبٌٛ ٔمساض آضٝس وٙ ٔكرم ٔی وٚ ٜ ضا ا٘ؼبْ زازٝ٘بْ زاضز) ایٗ ٔشس ٘یع ُٖٕ ٔمبیؿequalsIgnoreCase ٝز زاضز وٛػٚ زیٍطی ٘یعٝٔشس ٔكبث
ا٘سٛ ٕ٘ی سٚ ثبقسString ٔٛ٘ زی ثبیس اظٚضٚ ٖٔبٌٛ آضٝز زاضز یىی ایٗ وٛػٚ equals ٔشسٚ ر ثیٗ ایٗ ٔشسٚ سفبٚضز ٘ٓط ثطاثط اؾز یب ذیط أب زٛٔ ٝضقش
. اؾزٜ قسٜضزٚز) ٔظبِی اظ ایٗ ٔشس زض وس ظیط آٛر لبیُ ٕ٘ی قٚچه سفبٛ وٚ ثعضيٚ فٚ ایٗ ٔشس ثیٗ حطْٝ ایٗ وٚ زٚ ط قئی ثبقسٞ
67
Returned Value = true
Returned Value = true
Returned Value = true
getBytesهتذ
ٝ ضا ثٝ ضقشٝزی زاضز) وبض ایٗ ٔشس ایٗ اؾز وٚضٚ ٖٔبٌْٛ آٖ یه آضٚ قىُ زٚ ٔب٘ی ٘ساضزٌٛ آضَٝ اظ ایٗ ٔشس ثٖٚ زاضز) قىُ اٌٛ٘بٌٛ ُ قىٚایٗ ٔشس ز
: یسٙ وٝػٛ وس ظیط سٝب ٔی ثبقس) ثطای ٔظبَ ثٞ ای اظ ثبیزٝػی ایٗ ٔشس آضایٚس) ذطٙب وسٌصاضی ٔی وٞ یه ؾطی ثبیز
import java.io.*;
getCharsهتذ
یچ ٔمساضٞ س) ایٗ ٔشسٙ ضا ػسا ٔی وٝبی ضقشٞ وبضاوشطٝاٖ ٌفز وٛ قىّی ٔی سٝب ٔیطیعز) ثٞ اظ وبضاوشطٝ زاذُ یه آضایٝ ضا ثٝبی ضقشٞ ایٗ ٔشس وبضاوشط
قىُ ظیطٝ سطسیت ثٝزی ایٗ ٔشس ثٚضٚ بیٞ ٖٔبٌٛ آٖ زاز) آضٝزی ثبیس ثٚضٚ ٖٔبٌٛ قىُ آضٝز ضا ثٛ ثبیس دط قٝبیی وٞ ی وبضاوشطِٝی آضایٚ )ثبظٌكشی ٘ساضز
:سٙٔی ثبق
68
srcBegin ),ا٘سیؽ اِٚیٗ وبضاوشط اظ ضقشٛٔ ٝضز ٘ٓط و ٝا٘شربة وبضاوشط ٞب اظ آٖ ا٘سیؽ قطٔ ٔٚی ق٘ٛس) ایٗ آضٌٔٛبٖ ٖسزی اؾز .
srcEnd )-ا٘سیؽ آذطیٗ وبضاوشط اظ ضقش ٝو ٝا٘شربة وبضاوشطٞب سب آٖ ا٘سیؽ ازأٔ ٝی یبثس ٚزض آٖ ا٘سیؽ ذشٓ ٔی قٛز ایٗ آضٌٔٛبٖ ٖسزی اؾز .
٘dst ).بْ آضایٔ ٝمهس ضا و ٝوبضاوشط ٞب زض آٖ ضیرشٔ ٝی قٛز ضا زض ایٗ لؿٕز لطاض ٔی زٞیٓ.
dstBegin )/ایٗ آضٌٔٛبٖ ٔكرم ٔی وٙس و ٝاظ وساْ ا٘سیؽ اضایٔ ٝمهس قط ٔٚث ٝضیرشٗ وبضاوشط ٞب وٙیٓ .
;*import java.io.
{try
;)Str1.getChars(2, 9, Str2, 0
;) " = System.out.print("Copied Value
;) System.out.println(Str2
هتذhashCode
ایٗ ٔشس یه وس ث ٝاظای ثطای ضقش ٝسِٛیس ٔی وٙس و ٝث ٝآٌٖhashCodeفشٔ ٝی قٛز) ایٗhashCodeثطای اقیب Stringی ث ٝقىُ ظیط ٔحبؾجٔ ٝی قٛز:
زض فطٔ َٛثبال ] 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() );
}
}
indexOfهتذ
ٝ ٔی ثبقس وint ػی ایٗ ٔشس یه ٖسزٚ دیسا وطزٖ ٔحُ آٖ اؾز) ذطٚ ٝ زض زاذُ ضقشٛ ایٗ ٔشس ػؿشؼْٝیفٚ ) قىُ ٔرشّف ٔی ثبقس4 ایٗ ٔشس زاضای
ٛضز ػؿشؼٛٔ ٝس) اٌط وبضاوشط یب ضقشٙ وٛ انّی ػؿشؼٝ ضا زض زاذُ ضقشٝا٘س یه وبضاوشط یب یه ضقشٛ یب وبضاوشط ٔی ثبقس) ایٗ ٔشس ٔی سٝٔ ضقشٚٔحُ قط
: ز) اقىبَ ٔرشّف ایٗ ٔشس ٖجبضسؿز اظٛ ٔی قٜ ثبظٌكز زاز1( ثبقس ٔمساضٝز ٘ساقشٛػٚ انّیٝزض ضقش
import java.io.*;
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.*;
lengthهتذ
َٚ زَٛ س) زض وس ظیطٙس ضا اٖالْ ٔی وٙؿشٞ ثیز16 ْطوساٞ ٝ٘یىس وٛبی یٞ سٗساز وبضاوشطٝضر وٛ ایٗ نٝ یب ٔشٗ ضا ثطٔی ٌطزا٘س) ثَٝ ضقشَٛ ایٗ ٔشس
.ٓیٞ ٕ٘بیف ٔی زٚ ٝؾٍ ایٗ ٔشس ٔحبؾجٛ ضا سٝضقش
import java.io.*;
matchesهتذ
ا٘ی زاضزٕٛرٞ regular expression ٗضز ٘ٓط ثب ایٛٔ ٝ ضقشٝس وٙ ٔكرم ٔی وٚ ٜ زضیبفز وطزregular expression زی یهٚضٚ ٖٔبٌٛایٗ ٔشس زض آض
ُٕٖ ٝ ثٝیب ذیط) وبض ایٗ ٔشس زلیمب قجی
72
Pattern.matches(regex, str)
ا٘یٕٛرٞ ٝ اٌط ضقشٚ true ثبقس ٔمساضٝا٘ی زاقشٕٛرٞ regular expression ثبٝ اٌط ضقشٝ ٔی ثبقس وBoolean ػی ایٗ ٔشس یه ٔمساضٚٔی ثبقس) ذط
ِٝیٚبیی اِٙی ثطای آقٚ س قسٞاٛ ذٜضر وبُٔ قطح زازٛ نٝ زض ُٔبِت ثٗسی ثregular expression ٓیٞز) ٔفبٛ ٔی قٜ ثطٌطزا٘سfalse ثبقس ٔمساضٝ٘ساقش
: ٕ٘بییسٝػٛ ٔظبَ ظیط سٝثب ایٗ ٔشس ث
import java.io.*;
regionMatchesهتذ
زضٝ قىُ ظیط اؾز وٚ) ایٗ ٔشس زاضای زٝ٘ ثطاثط اؾز یبٜ قسٜ زازٝ ثب ضقشٜ سٗییٗ قسٜ ثبظٝس وٙ ٔكرم ٔی وٚ زض ٔشٗ ضا ٔی ٌیطزٜایٗ ٔشس یه ثبظ
. یٓ دطزاذزٞاٛزی آٖ ذٚضٚ بیٞ ٖٔبٌٛ ثطضؾی آضٝ ثٝٔازا
or
public booleanregionMatches(booleanignoreCase,
73
int toffset,
String other,
int ooffset,
int len)
ثعضيٚ فٚضر حطٛز زض غیط ایٗ نٛر لبیُ ٕ٘ی قٚچه سفبٛ وٚ ف ثعضيٚ حطٝ ثبقس زض چه وطزٖ ثtrue ٖٔبٌٛاٌط ایٗ آضignoreCase )0
.ر زاض٘سٚٓ سفبٞ چه ثبٛ وٚ
true س ٔمساضٙ ثطاثط ثبقٜ قسَٝ ٌفشَٛ ثبٚ ٜ ٔشٗ انّی زض لؿٕز ٔكرم قسٚ ٜ قسٜ اٌط ٔشٗ زازٝ اؾز وBoolean ػی ایٗ ٔشس یه ٔمساضٚٔمساض ذط
. یسٙ وٝػٛ وس ظیط سٝشط ایٗ ٔشس ثٟ زضن ثٚ َس) ثطای ٔظبٙ٘ ثطٔی ٌطزاfalse ضر ٔمساضٛ زض غیط ایٗ نٚ
import java.io.*;
ٜ قسٜاؾشفبزignoreCase زیٚضٚ اظٝ ایٗ ّٖز اؾز وٝ آذط ثٜضز چبح قسٛٔ ٚر ثیٗ زٚ سفبٝیس وٙز) زلز وٛس ثٞاٛ قىُ ظیط ذٝػی وس ثبال ثٚذط
:اؾز
74
Return Value :true
replaceهتذ
ػیٚس) ذطْٙ ػبیٍعیٗ ٔی وٚزی زٚضٚ َ ثبقس ضا ثب وبضاوشطٚزی اٚضٚ وبضاوشطٝط ػب وٞ ٗ زض وُ ٔشٚ زی ٔی ٌیطزٚضٚ ٖاٖٛٙ ٝ وبضاوشط ضا ثٚایٗ ٔشس ز
: یسٙ زلز وٜ قسٜضزٚ وس آٝس) ثطای ٔظبَ ثٙ ثبقٜضز ٘ٓط آٖ ػبیٍعیٗ قسٛٔ بیٞ وبضاوشطٕٝٞ ٝی اؾز وٙ ٔشٝایٗ وس ث
import java.io.*;
سٕٙ٘بٞ ٓٞ بٞ ٝ اظ ایٗ ٔشس ثطای ضقشٜ اؾشفبزٜٛس) ٘حٙ زیٍط وٝ ضا ػبیٍعیٗ ضقشٝا٘س یه ضقشٛ ٔی سٝ زاضز ایٗ اؾز وreplace ٔشسٝ لبثّیز زیٍطی وٝاِجش
.ب ٔی ثبقسٞ ٍبْ وبضاوشطٙٞ ٜاؾشفبز
replaceAllهتذ
ثبقس ثبٝا٘ی زاقشٕٛرٞ ضز ٘ٓطٛٔ regular expression ثبٝط لؿٕز وٞ ٗ زض زاذُ ٔشٚ ضا ٔی ٌیطزٝ یه ضقشٚ regular expression ایٗ ٔشس یه
regular ْٟٛ ٌفشیٓ ٔفٝب٘چٙی ضا ثطٔی ٌطزا٘س) چٙ ٔشٗ انّی دؽ اظ ػبیٍعیٚ زاضزString ٔٛ٘ ػی اظٚس) ایٗ ٔشس یه ذطٙ ػبیٍعیٗ ٔی وٜ قسٜ زازٝضقش
یسٙ وٝػٛ وس ظیط سٝیٓ زاز) ثطای ٔظبَ ایٗ ٔشس ثٞاٛيیح ذٛضا زض ُٔبِت ثٗسی سexpression
import java.io.*;
replaceFirstاؾشفبزٔ ٜی وٙیٓ) حبَ اٌط ثرٛاٞیٓ و ُٕٖ ٝػبیٍعیٙی فمٍ ثطای اِٚیٗ ٔٛضز اظ ضقشٌ ٝفش ٝقس ٜا٘ؼبْ قٛز ٚثمی٘ ٝبزیسٌ ٜطفش ٝقٛز اظ ٔشس
اٌط زض وس ثبال ث ٝػبی اؾشفبز ٜاظreplaceAllاظ ٔشسreplaceFirstاؾشفبز ٜوٙیٓ ذطٚػی ث ٝقىُ ظیط ذٛاٞس ثٛز :
هتذSplit
یه ٔشٗ ضا زض ٘ٓط ثٍیطیس ؤ ٝی ذٛاٞیٓ وّٕبر ضا دیسا وٙیٓ) ث ٝقىّی ؤ ٝشٗ ضا ثب سٗساز وبضاوشط ٞبی فبنّ ٝای وٌ ٝصاقش ٝقس ٜػسا وٙیٓ ٚزض لبِت
یه آضای٘ ٝكبٖ زٞیٓ) ثطای ایٗ وبض اظ ٔشس splitاؾشفبزٔ ٜی وٙیٓ) ایٗ ٔشس زاضای ز ٚقىُ اؾز و ٝقىُ ٞبی آٖ زض وس ظیط آٚضز ٜقس ٜاؾز :
or
آضٌٔٛبٖ ٞبی ٚضٚزی ایٗ ٔشس یه ٔ regular expressionی ثبقس و ٝسٗییٗ ٔی وٙس ؤ ٝشٗ ضا َجك چ ٝوبضاوشط یب وبضاوشطٞبیی سؼعی ٝوٙیٓ) ثطای ٔظبَ اٌط
limitثطای ایٗ اؾز و ٝسٗساز ضقشٞ ٝبی قٕب ثرٛاٞیس ٔشٗ ضا سٛؾٍ ٖالٔز فبنّ ٝػسا وٙیٓ زض ایٗ لؿٕز ٖالٔز فبنّ ٝذٛاٞیٓ ٌصاقز) آضٌٔٛبٖ
سؼعی ٝقس ٜضا ٘كبٖ ثسٞس) ذطٚػی ایٗ ٔشس یه آضای ٝضقش ٝای ٔی ثبقس و ٝضقشٞ ٝبی سؼعی ٝقس ٜضا زض زاذُ آٖ آضایٔ ٝی ضیعز) ثطای زضن ضاحز سط ایٗ
ٔشس ث ٝوس ظیط سٛػ ٝوٙیس:
;*import java.io.
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
ٕبٖ ا٘سیؽٞtoffset زیٚضٚ ٖٔبٌٛ آضٚ اؾز یب ذیطٜٔ قسٚ قطٝ ٔشٗ ثب آٖ ضقشٝیٓ ثسا٘یٓ وٞاٛ ٔی ذٝ ای اؾز وٕٝبٖ ضقشٞ prefix زیٚضٚ ٖٔبٌٛآض
: یسٙ وٝػٛ وس ظیط سٝشط ایٗ ٔشس ثٟ زضن ثٚ َ اؾز یب ذیط) ثطای ٔظبٜٔ قسٚ اظ آٖ لؿٕز قطٝ ضقشٝیٓ وٙیٓ ثطضؾی وٞاٛ ٔی ذُٝ اظ آٖ ٘مٝٔ اؾز) وٚقط
import java.io.*;
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) );
}
}
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) );
}
}
toCharArrayهتذ
ٝ وبضاوشط ٔی ثبقس) ایٗ ٔشس ٔشٗ ضا ثٖٕٝٛ یه ٔؼٚ اؾزString ط ٔشٗ یه قئٞ ٝس) اظ آ٘ؼبیی وٙ وبضاوشطی ٔی وٝ یه آضایٝایٗ ٔشس ٔشٗ ضا سجسیُ ث
اظ ایٗ ٔشسٜ اؾشفبزٜٛ وبضاوشطی ٔی ثبقس) وس ظیط ٘حٝػی آٖ یه آضایٚ ذطٚ ٝزی ٘ساقشٚضٚ س) ایٗ ٔشسٙ سجسیُ ٔی وٝضر آضایٛ نٝ وبضاوشط ثٖٕٕٝٛبٖ ٔؼٞ
.سٞضا ٘كبٖ ٔی ز
79
import java.io.*;
toLowerCase, toUpperCaseهتذ
زیٚضٚ ٖٔبٌٛ یىی ثب یه آضٚ زیٚضٚ ٖٔبٌٖٛ آضٚ قىُ ٔی ثبقس یىی ثسٚب زاضای زٞطوساْ اظ ایٗ ٔشسٞ )سٙٞٓ ا٘ؼبْ ٔی زٞ ٝ ثٝ ٔشس اٖٕبِی قجیٚایٗ ز
بیٞوبضاوشطtoUpperCase ْٝیفٚ ٚ سٙچه اٍّ٘یؿی سجسیُ ٔی وٛف وٚ حطٝبی ٔشٗ ضا ثٞ ی وبضاوشطٕٝٞ ٝایٗ اؾز وtoLowerCase ٔشسْٝیفٚ )زاضز
اؾز) اٌطLocale ْ ٘بٝثenum یهٝس وٙقشبض ضا ٔكرم ٔی وٛ٘ ٚ ٖٔ ظثبٛ٘ ٝزی ایٗ اؾز وٚضٚ ٖٔبٌٛ آضْٝیفٚ )سٙف ثعضي سجسیُ ٔی وٚ حطٝٔشٗ ضا ث
ز) وس ظیط ٔظبِی اظٛا٘ؼبْ ٔی قLocale.getDefault ٍؾٛ ایٗ وبض سٝس قس وٞاٛ ظثبٖ دیف فطو ا٘شربة ذٚ قشبضٛ٘ زٛ ٘كٜزی اؾشفبزٚضٚ ٖٔبٌٛاظ آض
. اؾزٜ قسٝبی ٌفشٞٔشس
import java.io.*;
80
UPPER CASE IS: WELCOME TO ITPRO.IR
trimهتذ
بی ٔشٗ حصف ٔیٟ ا٘شٚ بی ذبِی ضا اظ اثشساٞ ّٝ فبنٝ ایٗ ٔشس ایٗ اؾز وْٝیفٚ ) اؾزString ػی آٖ یه قئٚ ذطٚ ٝزی ٘ساقشٚضٚ ٖٔبٌٛایٗ ٔشس آض
:یسٙ وٝػٛ وس ظیط سٝس ثطای ٔظبَ ثٙو
import java.io.*;
ٚ انُ اظ اثشساٛ ایٗ فٝ ای اؾز وٌٝ٘ٛ ٝ ثtrim ػی ٔشسِٚی ذطٚ ز زاضزٛػٚ ذبِیّٝبی آٖ فبنٟ ا٘شٚ زض اثشساStr ٗز زض ٔشٛ ٔی قٜ زیسٝ وٌٝ٘ٛ ٖٕبٞ
: قىُ ظیط اؾزٝػی وس ثٚ ا٘س) ذطٜب حصف قسٟا٘ش
valueOfهتذ
ٌٖٛ٘بٌٛ بیٞ ُ ثبظٔی ٌطزا٘س) قىٚ سٙ ٔی وٝ ضقشٝ ضا سجسیُ ثٜاضز قسٚ ٔمساضٝا اؾز وٚ انّی ػبٜٔ زازٛ٘ اظٝزی ٔی ٌیطز وٚضٚ ٖٔبٌٛایٗ ٔشس یه آض
:ایٗ ٔشس ٖجبضسؿز اظ
or
or
or
or
or
or
or
import java.io.*;
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وطزٖ ضقشٞ ٝب ث ٝقىُ وس ظیط اؾز:
)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)
StringBuffer reverse()هتذ
زضٝبیی ضقشٟ وبضاوشط ا٘شٝضر اؾز وٛ ایٗ نٝ ثٝس) ثطٖىؽ وطزٖ ضقشٙز زاضز ضا ثطٖىؽ ٔی وٛػٚStringBuffer زض زاذُ قیٝ ای ضا وٝایٗ ٔشس ضقش
ٝاٖ وبضاوشط آذط ضقشٖٛٙ ٝ لجّی ثِٝی ضقشٕٚیٗ سطسیت سب وبضاوشط اٞ ٝ ثٚ زٛط ٔی قْٞ ْبٚاٖ وبضاوشط زٖٛٙ ٝبیی ثٟ وبضاوشط یىی لجُ اظ ا٘شٚ َ ٔی آیسٚا
.سٞ یه ٔظبَ اظ ایٗ ٔشس ضا ٘كبٖ ٔی زٜٛز) وس ظیط ٘حٛ ٔی قٜػسیس ٘كبٖ زاز
84
nalPemaG
یه ا٘سیؽ دبیبٖ اظ وبضثط ٔیٚ ٔٚس) ایٗ ٔشس یه ا٘سیؽ قطٙلطاض زاضز ضا حصف ٔی وStringBuffer والؼٝ زض قئی وٝ ای وٝایٗ ٔشس لؿٕشی اظ ضقش
س) یه ٔظبِی اظٙ ا٘سیؽ دبیبٖ ضا حصف ٕ٘ی وٜ وبضاوشط ثب قٕبضٝ ضا ثسا٘یس وٝ ایٗ ٘ىشٝس) اِجشٙٔ سب دبیبٖ ضا حصف ٔی وٚبی ثیٗ ا٘سیؽ قطٞ وبضاوشطٚ ٌیطز
. اؾزٜ قسٜضزٚایٗ ٔشس زض وس ظیط آ
abchijk
insertهتذ
)سٙزی اظ وبضثط زضیبفز ٔی وٚضٚ ٖٔبٌٛ ٖسز آضٚ زٝ اؾز وٌٝ٘ٛ ٗ ایٝس) قىُ ایٗ ٔشس ثٙزضع ٔی وStringBuffer ٗایٗ ٔشس یه ٔمساضی ضا زض زاذُ ٔش
سی اؾزٚبی ٔشفبٞ ُز) ایٗ ٔشس زاضای قىٛ ثبیس زضع قٕٝبٖ ٔمساضی اؾز وٞ ْٚزی زٚضٚ ٖٔبٌٛ آضٚ زٛ ٔمساضی ثبیس زض آٖ زضع قِٝی ا٘سیؿی اؾز وٚا
. اؾزٜ قسٜضزٚ زض وس ظیط آٝو
ٝضز ٘ٓط ايبفٛٔ زض لؿٕزٝ وطز) ثطای ٔظبَ زض وس ظیط ٔب یه ضقشٜ یب قیئی اؾشفبزٜٔ زازٛ٘ طٞ ٖاْٛ ٔی سٚٔبٖ زٌٛ زض آضٝی اؾز وٙٗٔ ٗ ایٝایٗ ث
:ٓ ایٜوطز
85
{ public class Test
abc123defghijk
اٌط ثطای ا٘سیؽ ٔمساض ( 1لطاض زاز ٜقٛز ٔمساض زض آذط ضقش ٝطجز ٔی قٛز
هتذreplace
ایٗ ٔشس لؿٕشی اظ ٔشٗ ٔٛػٛز زض قئ StringBufferضا ثب ٔشٗ زاز ٜقس ٜػبیٍعیٗ ٔی وٙس) ایٗ ٔشس ؾ ٝآضٌٔٛبٖ ٚضٚزی زاضز و ٝاثشسا ٚا٘شٟبی ضقشٝ
ا٘شربثی ٚضقش ٝػبیٍعیٗ ق٘ٛس ٜضا ٔكرم ٔی وٙس) زض وس ظیط یه ٔظبَ اظ ایٗ ٔشس آٚضز ٜقس ٜاؾز .
abcZARAijk
سب ث ٝایٗ ثرف ٔشسٞبیی ؤ ٝرهٛل والؼ ٞبی StringBuilder ٚStringBufferثٛز ٌفش ٝقس) ٔشس ٞبی ٌفش ٝقس ٜزض ٞطز ٚوالؼ ٚػٛز زاض٘س) یه
ؾطی ٔشسٞبیی ٚ ٓٞػٛز زاض٘س وٕٞ ٝب٘ٙس ٔشس ٞبی ٔٛػٛز زض والؼ ٞ Stringؿشٙس و ٝثّٖ ٝز ایٗ و ٝوبضثطز آٟ٘ب زلیمب ٕٞبٖ وبضثطز ٔشسٞبی ٔٛػٛز زض
والؼ Stringاؾز ٚآٟ٘ب ضا قطح زاز ٜایٓ اظ سٛيیح آٟ٘ب ذٛززاضی ٔی وٙیٓ) ث ٝیبز زاقش ٝثبقیس ؤ ٝی سٛاٖ ثس ٖٚاؾشفبز ٜاظ ایٗ والؼ ٞب وبضٞبی ٌفشٝ
قس ٜضا ا٘ؼبْ زاز ِٚی اؾشفبز ٜاظ ایٗ والؼ ٞب ثبٖض ٔی قٛز ؾطٖز اػطای ثط٘بٔ ٝقٕب زض دطزاظـ ضقشٞ ٝب ثَ ٝطظ چكٍٕیطی ثبال ثطٚز
اٌط قٕب ثرٛاٞیس ٞط ثط٘بٔ ٝای ثٛٙیؿیس ٔؼجٛض ٞؿشیس اظ ٔشسٞب اؾشفبز ٜوٙیس) ثطای ٔظبَ ٚلشی و ٝثط٘بٔ ٝای قطٔ ٔٚی وٙیس زؾشٛضار ذٛز ضا زض زاذُ ٔشسی
ث٘ ٝبْ ٔ mainی ٘ٛیؿیس ٚثطای چبح اَالٖبر ذٛز زض نفحٕ٘ ٝبیف اظ ٔشس زیٍطی ث٘ ٝبْ printlnاؾشفبزٔ ٜی وٙیس) زض ایٗ ُّٔت لهس زاضیٓ و٘ ٝحٜٛ
86
سٗطیف ٔشس ٞب ٚا٘ٛأ آٟ٘ب ٘ ٚح ٜٛاؾشفبز ٜاظ آٟ٘ب ضا قطح زٞیٓ) ٔشسٞب زض ػبٚا ٔؼٕ ٖٝٛزؾشٛضإُِٗ ٞبیی ٞؿشٙس و ٝثطای اػطای یه ّٖٕیبر ذبل زض
یه ٌط ٜٚوٙبض ٛ٘ ٓٞقش ٝقس ٜا٘س) ثطای ٔظبَ ٚلشی ؤ ٝب ٔشس )(System.out.printlnضا فطاذٛا٘ی ٔی وٙیٓ زض ٚالٕ چٙسیٗ زؾشٛض اػطا ٔی قٛز سب یه
دیبْ زض نفحٕ٘ ٝبیف ٘كبٖ زاز ٜقٛز) زض ایٗ ُّٔت ٘كبٖ ذٛاٞیٓ زاز و ٝچٍٔ ٝ٘ٛی سٛاٖ یه ٔشس ؾبذز و ٝیه ٔمساض ثطٌطزا٘س ٚیب ٞیچ ٔمساضی
ثطٍ٘طزا٘س یب آضٌٔٛبٖ ٚضٚزی زاقش ٝثبقس یب ٘ساقش ٝثبقس.
ساخت هتذ
قىُ وّی ؾبذز یه ٔشس ٔب٘ٙس وس ظیط اؾز و ٝزض ازأٞ ٝطوساْ اظ ثرف ٞبی آٖ ضا سٛيیح ذٛاٞیٓ زاز :
زض وس ثبال وّٕٞ ٝبی public , staticزٞ modifier ٚؿشٙس وٞ modifier ٝب ضا زض ٔٗطفیٞ Modifierب زض ػبٚا سٛيیح زازیٓ) ؾذؽ ٘ ٔٛزاز int ٜآٚضزٜ
٘. methodNameبْ ٔشس ٔی ثبقس و ٝایٗ ٘بْ ٔشس اظ لٛاٖس قس ٜاؾز) ایٗ ٘ ٔٛزازٔ ٜكرم ٔی وٙس و ٔٛ٘ ٝزاز ٜثبظٌكشی ٔشس اظ چٖٛ٘ ٝی ٔی ثبقس
٘بٍٔصاضی ٔشغیط ٞب و ٝلجال سٛيیح زاز ٜقس دیطٚی ٔی وٙس . a,bدبضأشطٞبی ٚضٚزی ٞؿشٙس و ٝثبیس ٍٙٞبْ سٗطیف ٔشس ٔكرم وٙیٓ اظ چٖٛ٘ ٝی ٞؿشٙس)
زلز زاقش ٝثبقیس و ٝایٗ ٔشس زاضای زٖ ٚسز دبضأشط ٚضٚزی اظ ٘ٔ int ٔٛی ثبقس ؤ ٝشسٞب ٔی سٛا٘ٙس ٞیچ یب چٙس دبضأشط ٚضٚزی زاقش ٝثبقٙس ٔٛ٘ ٚآٟ٘ب ٔی
سٛا٘س اظ ا٘ٛأ ٔرشّف زاز ٜثبقس) وّی ٝزؾشٛضار ٔطث ٌٛثٔ ٝشس ٔی سٛا٘ٙس زاذُ ٛ٘ method bodyقشٔ ٝی ق٘ٛس) ثطای زضن ُٔبِجی وٌ ٝفش ٝقس ٔظبِی زض
ظیط آٚضز ٜقس ٜاؾز و ٝیه سبثٕ ضا سٗطیف وطز ٜایٓ و ٝزاضای ٚ 2ضٚزی اؾز و ٝوٛچىشطیٗ ٔمساض ثیٗ ایٗ زٚ ٚضٚزی ضا دیسا وطز ٚ ٜثطٔی ٌطزا٘س .
;return min
}
ثب ٖجبضر ٔ returnب ٔمساض ثبظٌكشی ضا اٖالْ ٔی وٙیٓ ٚ ٚلشی اػطای ثط٘بٔ ٝث ٝایٗ لؿٕز ضؾیس اظ ٔشس ذبضػی ٔی قٛز .
فزاخَاًی هتذّا
ثطای ایٗ و ٝاظ یه ٔشس اؾشفبز ٜوٙیٓ ثبیس آٖ ضا فطاذٛا٘ی وٙیٓ یب ثٖ ٝجبضر زیٍط آٖ ضا نسا ثع٘یٓ) ز ٚضا ٜثطای فطاذٛا٘ی یه ٔشس ٚػٛز زاضز) ظٔب٘ی ؤ ٝشس
یه ٔمساض ضا ثطٔی ٌطزا٘س ٚظٔب٘ی ؤ ٝشس ٞیچ ٔمساضی ضا ثطٕ٘ی ٌطزا٘س) فطایٙس فطاذٛا٘ی ٔشسٞب آؾبٖ اؾز ) ظٔب٘ی و ٝیه ثط٘بٔ ٝیه ٔشس ضا فطاذٛا٘ی ٔی
وٙس وٙشطَ اػطای ثط٘بٔ ٝث ٝاثشسای ٔشس فطاذٛا٘ی قسٔ ٜی ضٚز ٚآٖ ضا اػطا ٔی وٙس سب ظٔب٘ی و ٝوٙشطَ اػطا ث ٝیىی اظ حبِز ٞبی ظیط ثطؾس) ث ٝذُی ثطؾس
87
وٖ ٝجبضر returnزاضز یب ثٖ ٝالٔز { و٘ ٝكبٖ زٙٞس ٜاسٕبْ ٔشس اؾز ثطؾس ثٖ ٝجبضر زیٍط ثّٛن ٔشس سٕبْ قٛز) دؽ اظ اػطای ٔشس وٙشطَ ثط٘بٔ ٝث ٝذُی
ؤ ٝشس ضا فطاذٛا٘ی وطز ٜثٛز ثبظ ٔی ٌطزز) ثطای ایٗ ؤ ٝشسی ٞیچ ٔمساض ثبظٌكشی ٘ساقش ٝثبقس ٘ ٔٛآٖ ضا ٍٙٞبْ سٗطیف ٔشس اظ ٘ void ٔٛا٘شربة ٔی وٙیٓ)
زض ٔشسٞبیی وٞ ٝیچ ٔمساضی ثطٕ٘ی ٌطزا٘ٙس ٔی سٛاٖ ٍ٘ returnصاقز) ٕٞچٙیٗ اٌط اظ returnاؾشفبز ٜوٙیٓ زض ػّٛی آٖ چیعی ٕ٘ی ٘ٛیؿیٓ) ثطای ٔظبَ وس
ظیط ٞیچ ٔمساضی ضا ثطٕ٘ی ٌطزا٘س.
;)"!System.out.println("This is tosinso.com
زض ٔظبَ ظیط وسی آٚضز ٜقس ٜاؾز و٘ ٝح ٜٛسٗطیف ٔشس ٘ ٚح ٜٛاؾشفبز ٜاظ آٖ ضا ٘كبٖ ٔی زٞس.
;return min
}
}
زض ٔظبَ ظیط ٘ح ٜٛضفشبض ثب ٔشس ٞبی voidضا ٘كبٖ ٔی زٞیٓ) زلز زاقش ٝثبقیس و ٝزض ٔشسٞبی اظ ٘ٔ void ٔٛشس ضا ث ٝسٟٙبیی زض یه ذٍ ٔی ٘ٛیؿیٓ.
Rank:A1
دبضأشطٞبیی وٍٙٞ ٝبْ فطاذٛا٘ی ثٔ ٝشس زازٔ ٜی ق٘ٛس ثبیس ثٕٞ ٝبٖ سطسیجی ثبقٙس و ٝزض سٗطیف ٔشس آٚضز ٜقس ٜا٘س ٕٞ ٚچٙیٗ ٘ ٔٛآٟ٘ب ٘یع ثبیس ثٕٞ ٝبٖ
قىُ ثبقس) ٚلشی و ٝیه دبضأشط ثٔ ٝشس اضؾبَ ٔی قٛز زٚحبِز ٖٕسٕٔ ٜىٗ اؾز دیف ثیبیس .
ٞ ),ط سغییطی و ٝزض ثس٘ٔ ٝشس ثط ضٚی دبضأشط ا٘ؼبْ ٔی زٞیٓ زض ذبضع اظ ٔشس ٘یع آٖ سغییطار اٖٕبَ ق٘ٛس
ٞ )-ط سغییط و ٝزض ثس٘ٔ ٝشس ثطضٚی دبضأشطٞب ا٘ؼبْ ٔی زٞیٓ زض ذبضع اظ ٔشس آٖ سغییطار ثی سبطیط ٔی ثبقٙس.
زض حبِز ا َٚث ٝایٗ ٔٗٙی اؾز ؤ ٝب سغیطار ضا ضٚی ٕٞبٖ ٔشغیط اِٚی ٝاٖٕبَ وٙیٓ) ِٚی زض حبِز زٔ ْٚب٘ٙس ایٗ اؾز ؤ ٝمساض ٔشغیط زض دبضأشط سبثٕ وذی
قٛز ٚذٛز ٔمساض ٔشغیط انّی ثس ٖٚسغییط ثبلی ثٕب٘س) ث ٔٛ٘ ٝا َٚاضؾبَ دبضأشط ثب اضػبٔ یب ٚ pass by referenceث ٔٛ٘ ٝز ْٚاضؾبَ دبضأشط ثب ٔمساض یب
ٌpassفشٝ by value
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);
}
.س قسٙٞاٛ اضؾبَ ذpass by value ضرٛ نٝ ثِٝیٚأ اِٛ٘ی اٚ ٘سٛ اضؾبَ ٔی قpass by reference ضرٛ نٝا ثٚ اقیب زض ػبٝ ثبقیس وٝزلز زاقش
کزدى هتذّاoverload
ػی یب اظ ٘ٓط سٗسازٚٔ ذطٛ٘ طوساْ یب اظ ٘ٓطٞ بٞ ایٗ ٔشسٝس ٔشس ثب یه ٘بْ یىؿبٖ ٔی ثبقس وٙ یه والؼ زاضای چٝا ثؿیبض دیف ٔی آیس وٚزض ظثبٖ ػب
ٚ ػیٚٔ ذطٛ٘ ٚ ٖ ٔشس ثب ٘بْ یىؿبٚب یىؿبٖ اؾز) سٗطیف زِٟ٘ی ٘بْ آٚ )ر زاض٘سٚزی ثب یىسیٍط سفبٚضٚ بیٞ ٔ دبضأشطٛ٘ زی یب اظ ٘ٓطٚضٚ بیٞ دبضأشط
method ب یبٞ وطزٖ ٔشسoverload رٚٔ ثبظٌكشی ٔشفبٛ٘ ب یبِٞی دبضأشطٚ ٖب ثب ٘بْ یىؿبٞ سٗطیف ٔشسٌٝ٘ٛ ٗ ایٝز) ثٛبی یىؿبٖ ثبٖض ذُب ٔی قٞ ٔشغیط
اٖكبضی ٔیٚ ٔ ٖسز نحیحٛ٘ ٚچىشطیٗ ٖسز زض زٛضزٖ وٚ زؾز آٝ ثٝ اؾز وٜ قسٜضزٚز) زض ظیط یه ٔظبِی اظ ایٗ ُٖٕ آٛ ٔی قٌٝفشoverloading
.ثبقس
// 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
قی ٌطایی
ٝبی یىسیٍط ثب یىسیٍط اضسجبٌ زاقشٞا٘ی ٔشسٛس ثب فطاذٙ٘اٛ ایٗ اقیب ٔی سٝ ثبقس وٜبی ٔرشّفی سكىیُ قسٞ والؼٚ ا٘س اظ اقیبءٛا ٔی سٚ ػبٝٔط ثط٘بٞ
.ٓ ٔشس ٔی دطزاظیٚ یٓ والؼٞ ثطضؾی ٔفبٝس) اثشسا ثٙثبق
91
قیء )(Obejctاقیب ٚیػٌی ٞب ٚضفشبض ٞبی ٔطث ٌٛث ٝذٛز ضا زاض٘س) ثَٛ ٝض ٔظبَ یه ؾً ٚیػٌی ٞبیی زاضز ٔب٘ٙس ضً٘ ٘ ٚػاز ٚاٖٕبِی ٔب٘ٙس
ٔی زٞس.
ٔشس )(Methodیه ٔشس زض انُ یه ضفشبض اؾز ) یه والؼ ٔی سٛا٘س چٙسیٗ ٔشس زاقش ٝثبقس) ٔشسٞب ػبیی ٞؿشٙس وُٙٔ ٝك ثط٘بٔ ٝدیبز ٜؾبظی
ٔی قٛز ٚزازٞ ٜب زؾشىبضی ٔی ق٘ٛس) ٕٝٞ ٚوبضٞب اػطا ٔی ق٘ٛس .
ٔشغیطٞبی ًٖ ٛیب فیّسٞب )ٞ(Fieldط قی ٔؼٕٔ ٖٝٛشغیط ٞبیی زاضز وٚ ٝیػٌی ٞبی قی زض فیّسٞبی آٖ قی ٍٟ٘ساضی ٔی ق٘ٛس .
هفاّین ضی گزایی
ػبٚا یه ظثبٖ وبٔال قی ٌطأی ثبقس) ػبٚا ٔفبٞیٓ انّی ظیط ضا دكشیجب٘ی ٔی ٕ٘بیس .
),چٙسضیرشیpolymorphism
ٚ )-ضاطزInheritance
).وذؿ ِٝٛؾبظیEncapsulation
)/ا٘شعأAbstraction
)0والؼ ٞبClasses
)1اقیبObjects
ٔ )3شسٞب
ٍراثت
زض ػبٚا والؼ ٞب ٔی سٛا٘ٙس اظ والؼ ٞبی زیٍط ٔكشك ق٘ٛس ٚاظ والؼ ٞبی زیٍط ٌطفش ٝقٛز) زض انُ اٌط قٕب لهس زاقش ٝثبقیس و ٝوالؼ ػسیسی
ایؼبز وٙیس ٚاظ لجُ والؾی ٚػٛز زاقش ٝثبقس و ٝوس آٖ ث ٝقىّی اؾز و ٝلؿٕشی اظ وس قٕب ٕٞبٖ والؼ اؾز ثٖ ٝجبضر زیٍط قٕب لهس زاضیس و ٝآٖ
والؼ ضا ٌؿشطـ زٞیس ٚثٚ ٝیػٌی ٞبی آٖ ايبف ٝوٙیس) ثطای ایٗ وبض ث ٝػبی ایٗ و ٝوالؼ ػسیسی ضا اظ ا َٚثٛٙیؿیس ٔی سٛا٘یس ایٗ والؼ ضا اظ والؾی
وٚ ٝػٛز زاضز ٚثؿیبضی اظ ٚیػٌی ٞبی ایٗ والؼ ضا زاضا ٔی ثبقس ٔكشك وٙیس) ایٗ ٔف ْٟٛث ٝقٕب ایٗ أىبٖ ضا ٔی زٞس و ٝاظ وسی و ٝلجال زاضیس ثشٛا٘یس
ثَٛ ٝض ٔؼسز اؾشفبز ٜوٙیس ثس ٖٚایٗ و ٝوس سىطاضی ثٛٙیؿیٓ ٚاظ وسٞبیی و ٝلجال ٚػٛز زاقش ٝاؾشفبز ٜوٙیٓ ٚفمٍ وسٞبی ػسیس ضا ثٛٙیؿیٓ) زض ایٗ ٔفْٟٛ
ث ٝوالؾی و ٝلجال ٚػٛز زاقش ٝثبقس والؼ دسض ٚیب ٔ super classی ٌٛیٙس ٚث ٝوالؼ ٞبیی ؤ ٝكشك قس ٜا٘س والؼ فطظ٘س یب ٔ subclassی ٌٛیٙس.
92
ایٌتزفیس ّاInterface
زض ظثبٖ ػبٚا ایٙشطفیؽ یه لطاض زاز ثیٗ اقیب اؾز و ٝچٍ ٝ٘ٛثب یىسیٍط اضسجبٌ زاقش ٝثبقٙس) ٚلشی و ٝثحض ٚضاطز دیف ٔی آیس ایٙشطفیؽ یه ٘مف ثؿیبض
ٔ ٟٓزاضز) یه ایٙشطفیؽ ٔشسٞب ضا سٗطیف ٔی وٙس ٚوالؼ ٞبی ٔكشك قس ٜثبیس اظ ایٗ لب٘ ٖٛسجٗیز وٙس) زض ایٙشطفیؽ فمٍ ٘بْ ٔ ٔٛ٘ ٚشسٞب ٔكرم ٔی
قٛز ِٚی ٞیچ ٌ ٝ٘ٛدیبز ٜؾبظی ا٘ؼبْ ٕ٘ی قٛز ٕٝٞ ٚدیبز ٜؾبظی ٞب زض ؾٕز والؼ فطظ٘س ا٘ؼبْ ٔی قٛز .
اضیاء در جاٍا
اٌط ثرٛاٞیٓ ز٘یبی ٚالٗی ضا ٔظبَ ثع٘یٓ ٔی سٛا٘یٓ اقیبئی ضا زض ز٘یبی اَطافٕبٖ دیسا وٙیٓ) ا٘ؿبٟ٘ب ٔ ٚبقیٗ ٞب ٚحیٛا٘بر ٕٝٞ ))) ٚاقیب ٞؿشٙس) ٕٝٞی ایٗ
اقیب زاضای ٚیػٌی ٞب ٚضفشبضٞبیی ٞؿشٙس) یه ؾً ٚیػٌی ٞبیی ٔب٘ٙس ضً٘ ٘ ٚػاز ٚ ٚظٖ زاضز ٚضفشبضٞبیی ٔب٘ٙس ذٛضزٖ ٚذٛاثیسٖ ٚ ٚاق ٚاق وطزٖ ٚ
زٚیسٖ زاضز) اٌط ثرٛاٞیٓ اقیب زض ثط٘بٔٛ٘ ٝیؿی ضا ثب اقیب زض ز٘یبی ٚالٗی ثطضؾی وٙیٓ ثؿیبض قجی ٝثٞ ٓٞ ٝؿشٙس) اقیب زض ثط٘بٔٛ٘ ٝیؿی ٘یع زاضای ٚیػٌی ٞب
ٚضفشبضٞبیی ٔی ثبقٙس) یه قی ٘طْ افعاضی ٚیػٌی ٞبیف ضا زض فیّسٞب شذیطٔ ٜی وٙس ٚضفشبضٞبیف زض لبِت ٔشسٞب ٘كبٖ زازٔ ٜی ق٘ٛس) دؽ زض سٛؾٗ٘ ٝطْ
افعاض ٔشس ٞب ثط ضٚی ٚیػٌی ٞبی زاذّی قی وبض ٔی وٙٙس ٕٞ ٚچٙیٗ اضسجبٌ ثیٗ اقیب ٘یع ثب اؾشفبز ٜاظ ٔشسٞب ا٘ؼبْ ذٛاٞس قس .
کالس ّا در جاٍا
یه والؼ یه لبِت ثطای اقیبئی اؾز و ٝاظ آٖ ؾبذشٔ ٝی قٛز) ث ٝایٗ ٔٗٙی و ٝوالؼ ٔكرم ٔی وٙس و ٝقیئی و ٝاظ ایٗ والؼ ؾبذشٔ ٝی قٛز ثبیس
چٚ ٝیػٌی ٞب ٚچ ٝضفشبض ٞبیی زاقش ٝثبقس) ٕٝٞاقیب اظ والؼ ٞب ؾبذشٔ ٝی ق٘ٛس) زض قىُ ظیط یه ٕ٘ ٝ٘ٛاظ والؼ ضا ٔكبٞسٔ ٜی وٙیس .
{)(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ب ضا ٘كبٖ ٔی زٞس.
ساخت یک ضی
ٕٞبٍ٘ ٝ٘ٛو ٝلجال ٘یع ٌفشیٓ یه والؼ یه لبِت اؾز ٚیه قی اظ یه والؼ ؾبذشٔ ٝی قٛز) زض ػبٚا ٔب ثب اؾشفبز ٜاظ وّٕ ٝوّیسی newقی ذٛز ضا اظ
والؼ
ٔی ؾبظیٓ) ؾٔ ٝطحّ ٝثطای ؾبذز یه قی اظ والؼ ٚػٛز زاضز و ٝث ٝقىُ ظیط اؾز .
),تعزیف هتغیز زض ایٗ ٔطحّ ٝیه ٔشغیط ضا اظ ٕ٘ٞ ٔٛبٖ والؾی ؤ ٝی ذٛاٞیٓ اظ آٖ قی ثؿبظیٓ سٗطیف ٔی وٙیٓ
ً )-وًَِ ساسی ثب اؾشفبز ٜاظ وّٕ ٝوّیسی newیه ٕ٘ ٝ٘ٛػسیس ایؼبز ٔی قٛز.
94
).هقذار دّی اٍلیِ ٚلشی ثب اؾشفبز ٜاظ وّٕ ٝوّیسی newقی ػسیسی ؾبذشٔ ٝیقٛز constructorفطاذٛا٘ی ٔیقٛز ٚایٗ ثٙٗٔ ٝی ٔمساضزٞی
قی ؾبذش ٝقس ٜاؾز.
ٔ Stringی Puppyزاضیٓ و ٝیه ؾبظ٘س ٜزاضز) ؾبظ٘س ٜزاضای یه آضٌٔٛبٖ ٚضٚزی اظ ٘ٔٛ ٕٞبُ٘ٛض و ٝزض وس ٔكبٞسٔ ٜیوٙیس والؾی ث٘ ٝبْ
ثبقس ٔ.constructorمساض ٚضٚزی ضا زض نفح ٝچبح ٔیوٙس) زض زاذُ سبثٕ mainثب اؾشفبز ٜاظ وّٕ ٝوّیسی newیه قی ػسیس ؾبذش ٝقس ٜاؾز ٚثٝ
ٖٛٙاٖ ٚضٚزی ٘بْ tommyضا ثطای آٖ لطاض زاز ٜاؾز) اٌط ثط٘بٔ ٝفٛق ضا اػطا وٙیٓ ذطٚػی آٖ ث ٝقىُ ظیط ذٛاٞس ثٛز .
ٕٞبٖ ٌ ٝ٘ٛوٌ ٝفشیٓ ٞط قی زاضای ٔشسٞب ٔ ٚشغیطٞبی ًٖ ٛیب ٕٞبٖ فیّس ٞب ٔی ثبقٙس) و ٝثبیس ثطای ایٗ و ٝثشٛاٖ ثب اقیب وبض وطز ث ٝایٗ اًٖب زؾشطؾی
زاقز) ثطای ایٗ ث ٝفیّسٞب زؾشطؾی زاقش ٝثبقیٓ ثبیس ث ٝقىُ ظیط ُٖٕ وٙیٓ :
;ObjectReference.variableName
;)(ObjectReference.MethodName
َجك وس اثشسا ثبیس یه قی ػسیس ثؿبظیٓ ؾذؽ ثب اؾشفبز ٜاظ ٍّٖٕط ٘مُ ) ٝث ٝاًٖبی آٖ زؾشطؾی زاقز) ثطای ٔظبَ ثٔ ٝظبَ ظیط زلز وٙیس .
;String url
95
public ItPro(String name){
// This constructor has one parameter, name.
System.out.println("Url chosen is :" + name );
}
webAddress.setUrl("programming.tosinso.com");
webAddress.getUrl();
اؾز) حبَ اٌطٜ قسٜ اظ آٖ اؾشفبزٝٔ زض َی ثط٘بٝزاضز) وsetUrlٚgetUrl ْ ٘بٝبیی ثٞ ٔشسٚ زاضزurl ْ ٘بٝ یه فیّس ثٝزاضیٓ وItPro یه والؼٝٔزض ایٗ ثط٘ب
. س قسٞاٛ قىُ ظیط ذٝػی ثٚیٓ ذطٙوس ثبال ضا اػطا و
ّاConstructor
ُ زض قىٚ ٘بٔكبٖ ثب ٘بْ والؼ یىی اؾزٚ ٘سٚ وبض ٔی ضٝبی اقیب ثٞ فیّسٝ ثِٝیٚی اٞب ثطای ٔمساضزٞ constructor قسٝٓ ٌفشٞ لجالٝ وٍٕٝ٘ٛ٘بٞ
constructor ُبی آغبظیٗ قئ ضا زض زاذٞ ی وبضٕٝٞ ا٘یسٛیچ ٔمساض ثبظٌكشی ٘ساض٘س) أب قٕب ٔی سٞ بٞ constructor ٔشس اؾز) أبٝ ثٝقشبضی قجیٛ٘
96
ط قئٞ ا ثطایٚ ػبٝیٓ) ظیطا وٙ سٗطیف ٘ىٝ چٚ ٓیٙ سٗطیف وconstructor ثطای یه والؼٝس چٙؿشٞ constructor ب زاضایٞ ی والؼٕٝٞ )یسٞا٘ؼبْ ز
:یسٙ وٝػٛ وس ظیط سٝ ثconstructor زی زض ٘ٓط ٔی ٌیطز) ثطای ٔظبَ اظٚضٚ ٖٚ ثسconstructor یه
// A simple constructor.
class MyClass {
int x;
ثبقس) ثطایٝ سبطیط زاقشِٝیٚی اٞ یب زض ٔمساضزٚ زٛزی ُٖٕ ذبنی ا٘ؼبْ قٚضٚ یٚاٖ ضٛ ٔی سٝیٓ وٞزی ثسٚضٚ بٞ constructor ٝیٗ ثٕٙچٞ ٓا٘یٛٔب ٔی س
: قىُ ظیط سٗطیف وطزٝ ضا ثconstructor ٖاٛٔظبَ زض سٗطیف والؼ ٔی س
// A simple constructor.
class MyClass {
int 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ثطای زؾشیبثی ث ٝاًٖبی والؼ ٔٛضز اؾشفبز ٜلطاض ٔی ٌیطز .
{)(This_Example
;)" System.out.println("This is an example program on keyword this
}
{)This_Example(int num
//Invoking the default constructor
98
this();
: زٛس ثٞاٛ قىُ ظیط ذٝس زاقز ثٞاٛ زض ثط ذٝ ای وٝیٓ ٘شیؼٙاٌط وس ثبال ضا احطا و
99
value of local variable num is : 20
value of instance variable num is : 30
Hi Welcome to Itpro.ir
ٕ سبثٝا٘یس ثٛٔ ٔی سٛ٘ زی اظ یهٚضٚ ط سٗسازٞ ٝ قىّی وٝیس ثٙٔ سٗطیف وٛ٘ بیی اظ یهٞب دبضأشطٞزی ٔشسٚضٚ ا٘یس ثطایٛقٕب ٔی سjdk 1.5 ٝاظ ٘ؿر
. زٛ قىُ ظیط سٗطیف ٔی قٝ ثٝبی ٔشغیط ٘بْ زاضز وٞ ٖٔبٌٛب آضٞ زیٚضٚ ٔٛ٘ ٗیس) ایٞثس
typeName... parameterName
سٗطیفٝ زض زاذُ ٔشس یه حّمٚ ٓیٙب ٔٗطفی ٔی وٞ ٖٔبٌٛ ؾذؽ ٘بْ آضٚ ُٝ ٘مٝ ؾذؽ ؾٚ ٔٛ٘ زی ضا ثب ٔٗطفیٚضٚ ٔبٖ قٕبٌٛٔ آضٛ٘ ٗ اظ ایٜثطای اؾشفبز
: یسٙ ٔظبَ ظیط زلز وٝزی ثٚضٚ ٔٛ٘ ٗیٓ) ثطای ٔظبِی اظ ایٙ ٔی وٜ اؾشفبزٝ قىُ آضایٝزی ثٚضٚ اظ ٔشسٚ ٓیٙٔی و
100
هتذfinalize
ایٗ أىبٖ زض ػبٚا ٚػٛز زاضز وٍٙٞ ٝبٔی و ٝیه قئ زض حبَ اظ ثیٗ ضفشٗ اؾز یه ُٖٕ ذبنی ا٘ؼبْ قٛز) ث ٝایٗ ٔٗٙی و ٝلجُ اظ ایٗ و ٝقئ اظ زاذُ
حبفٓ ٝدبن قٛز ُٖٕ ذبنی ٔب٘ٙس ثؿشٗ فبیُ ٞب ٚیب اضسجبَبر زیشبثیؽ ثؿش ٝقٛز ٚؾذؽ قئ اظ زاذُ حبفٓ ٝزٚض ضیرش ٝقٛز) ػبٚا ایٗ ُٖٕ ضا ثب
اؾشفبز ٜاظ ٔشس finalizeا٘ؼبْ ٔی زٞس) ث ٝنٛضسی و ٕٝٞ ٝی اٖٕبِی و ٝثبیس ا٘ؼبْ قٛز ضا زاذُ ٔشس ٔ finalizeی ٘ٛیؿیٓ) قىُ وّی ٔشس finalizeثبیس
ث ٝقىُ ظیط ثبقس.
زلز زاقش ٝثبقیس و modifier ٝو ٝزض ایٗ ٔشس ث ٝوبض ٌطفش ٝقس ٜاؾز protectedاؾز) زِیُ ایٗ وبض ایٗ اؾز و ٝوؿی ٘شٛا٘س اظ ذبضع اظ قئ ث ٝایٗ
ٔشس زؾشطؾی زاقش ٝثبقس ٘ ٚشٛا٘س آٖ ضا نسا ثع٘س
اًَاع هتغیزّا
زض لؿٕز ٞبی لجُ ٌفشیٓ وٞ ٝط ٔشغیط یه لؿٕز اظ حبفٓ ٝاؾز و٘ ٝبٔی ثطای آٖ ٔكرم وطز ٜایٓ) ؾذؽ ٌفشیٓ و ٝثطای ٔشغیطٞب ثبیس ٘ ٔٛزاز ٜآٖ ضا
ٔكرم وٙیٓ) ایٗ ٘ ٔٛزاز٘ ٜكبٖ ٔی زٞس ؤ ٝشغیط چٔ ٝمساض حبفٓ ٝاقغبَ وطز ٜاؾز ٚچ ٝچیعی ضا ٔی سٛا٘س زض ذٛز ٍٟ٘ساضی ٕ٘بیس ٚچّٕٖ ٝیبسی ثط
ضٚی آٖ لبثُ ا٘ؼبْ اؾز) قٕب ثبیس ٞط ٔشغیط ضا لجُ اظ ایٗ و ٝاظ آٖ اؾشفبز ٜوٙیس ٔٗطفی ٕ٘بییس) قىُ انّی ٔٗطفی ٔشغیط ث ٝقىُ ظیط اؾز
وّٕ Data type ٝزض ذٍ ثبال ٘كبٖ زٙٞس ٜیىی اظ ا٘ٛأ زاز ٜای اؾز و ٝزض ُّٔت لجّی ث ٝآٖ دطزاذش ٝقس) ثطای آٖ و ٝچٙس ٔشغیط دكز ؾط ٓٞاظ یه ٘ٔٛ
سٗطیف وٙیٓ ثبیس آٟ٘ب ضا ثب اؾشفبز ٜاظ وبٔب یب ،ػسا ٕ٘بییٓ) زض وس ظیط ٕ٘ٞ ٝ٘ٛبی نحیحی اظ سٗطیف ٔشغیط ٞب ضا ٔكبٞسٔ ٜی وٙیس .
101
فیّسٞب
هتغیزّای هحلی
ٔشغیطٞبی ٔحّی زض زاذُ ٔشسٞب ٚیبٞ constructorب ٚیب ثّٛن ٞب سٗطیف ٔی ق٘ٛس) ثّٛن فًبی ثیٗ ز ٚثطاوز{} ضا ٔی ٌٛیٙس .
ٔشغیطٞبی ٔحّی ظٔب٘ی ؾبذشٔ ٝی ق٘ٛس وٚ ٝاضز ٔشس یب ٚ constructorیب ثّٛن وس ٔی قٛیٓ ٚ ٚلشی ذبضع ثكیٓ اظ حبفٓ ٝدبن ذٛاٙٞس قس .
ٔشغیطٞبی ٔحّی فمٍ زض ٔحّی و ٝسٗطیف قس ٜا٘س لبثُ زؾشطؼ ٞؿشٙس) ثٔ ََٛ ٝظبَ اٌط زض زاذُ ٔشسی سٗطیف قس ٜثبقٙس فمٍ زض زاذُ ٕٞبٖ
ٚلشی ؤ ٝشغیط ٔحّی سٗطیف ٔی ق٘ٛس ٞیچ ٔمساض دیكفطيی ثطای آٟ٘ب زض ٘ٓط ٌطفشٕ٘ ٝی قٛز) ثٙبثطایٗ لجُ اظ ایٗ و ٝاظ ٔشغیط سٗطیف قسٜ
اؾشفبز ٜوٙیس ثبیس آٖ ضا ٔمساض زٞی ٕ٘بییس) ثطای ٔظبَ ث ٝوس ظیط زلز وٙیس و age ٝیه ٔشغیط ٔحّی اؾز و ٝزاذُ ٔشس )(pupAgeسٗطیف قسٜ
اؾز ٚحٛظ ٜآٖ فمٍ ثٕٞ ٝیٗ ٔشس ٔحسٚز قس ٜاؾز.
حبَ زض ٔظبَ ظیط ٔی ثیٙیس و ٝاظ ٔشغیط ageثس ٖٚایٗ ؤ ٝمساضزٞی قٛز اؾشفبز ٜقس ٜاؾز ثٙبثطایٗ وسظیط زاضای ذُب اؾز .
فیلذّا
فیّسٞب زاذُ والؼ ٞب سٗطیف ٔی ق٘ٛس ِٚی زاذُ ٞیچ ٔشسconstructor ،یب ثّٛوی ٘یؿشٙس
ٚلشی و ٝیه قی اظ یه والؼ ٔی ؾبظیٓ) ث ٝا٘ساظ ٜسٗساز فیّسٞبی آٖ قی ث ٝآٖ حبفٓ ٝاذشهبل زازٔ ٜی قٛز .
فیّس ٞب ٚلشی و ٝثب اؾشفبز ٜاظ وّٕ ٝوّیسی newیه قی ضا ٔی ؾبظیٓ ؾبذشٔ ٝی ق٘ٛس ٚسب ٚلشی و ٝذٛز قی اظ ثیٗ ٘طفش ٝثبلی ٔی ٔب٘ٙس .
فیّسٞب ٔمبزیطی ضا زض ذٛز ٍٟ٘ساضی ٔی وٙٙس و ٝسٛؾٍ چٙس ٔشس یب ٛٔ constructorضز اؾشفبز ٜلطاض ٔی ٌیطز ٚفیّس ٞب ثبیس زض ٕٝٞػبی والؼ
زؾشطؾی اؾز.
ٕٔٗٛال سٛنیٔ ٝی قٛز و ٝفیّسٞب ضا ث ٝقىُ ٗٔ privateطفی وٙیٓ) أب اٌط ثرٛاٞیٓ ثطای والؼ ٞبی فطظ٘س یب ٞ subclassب لبثُ زؾشطؼ ثبقٙس
ٔمساض اِٚی ٝفیّسٞب ٔی سٛا٘س ٓٞزض ظٔبٖ سٗطیف فیّس ٓٞ ٚزض زاذُ ٔ constructorمساضزٞی ثكٛز.
ثطای زؾشطؾی ث ٝفیّسٞبی یه قی ثبیس ٘بْ قی ضا ٘ٛقش ٚ ٝدؽ اظ آٖ یه ٘مٌُ ٝصاقش٘ ٚ ٝبْ فیّس ضا ثبیس
publicسٗطیف قس ٜثبقس) وس ظیط ٔظبِی ٘ٛقز.ObjectReference.VariableNameاِجش ٝایٗ ث ٝقطَی لبثُ ا٘ؼبْ اؾز و ٝفیّس ٔٛضز ٘ٓط
ثطای فیّسٞب ٔی ثبقس.
;*import java.io.
103
;private double salary
name : Mehdi
salary :1000.0
ٔشغیطٞبی والؼ ث ٝایٗ زِیُ ٔشغیط اؾشبسیه ٘بٔیسٔ ٜی ق٘ٛس وٍٙٞ ٝبْ سٗطیف آٟ٘ب اظ وّٕ ٝوّیسی staticاؾشفبزٔ ٜی قٛز) ِٚی ثبیس ایٗ ٔشغیطٞب
ضا ثیط ٖٚاظ ٔشسٞب ٚؾبیط ثّٛن ٞب ٔٗطفی وطز .
ذبنیز ٕٟٔی و ٝایٗ ٔشغیطٞب زاض٘س ایٗ اؾز و ٝاٌط چٙس قی اظ یه والؼ زاقش ٝثبقیٓ ایٗ ٔشغیط ثیٗ ٕٝٞیىؿبٖ ٔ ٚكشطن اؾز) ث ٝایٗ
ٔٗٙی و ٝاٌط زضیىی اظ اقیب ٔمساض ٔشغیط ضا سغییط ثسٞیس زض ثمی ٝاقیب ٘یع سغییط ذٛاٞس وطز.
ایٗ ٔشغیطٞب ثیكشط ثطای ٍٟ٘ساضی یه طبثز ٔٛضز اؾشفبز ٜلطاض ٔی ٌیط٘س ٚظیبز سغییط ٕ٘ی وٙٙس .
ٔشغیطٞبی اؾشبسیه ظٔب٘ی و ٝثط٘بٔ ٝقطٔ ٔٚی ق٘ٛس ؾبذشٔ ٝی ق٘ٛس ٚظٔب٘ی و ٝثط٘بٔ ٝسٕبْ ٔی قٛز اظ ثیٗ ٔی ض٘ٚس .
ٔمساض دیكفطو ایٗ ٔشغیطٞب ٔب٘ٙس فیّس ٞب ٔی ثبقس ٔ ٚی سٛاٖ ثسٔ ٖٚمساضزٞی اِٚی ٝاظ آٟ٘ب ٔ ٚمساض دیكفطو آٟ٘ب اؾشفبز ٜوطز.
104
ثطای زؾشطؾی ث ٝیه ٔشغیط اؾشبسیه ٔی سٛاٖ ٘بْ والؼ ضا سبیخ وطز ٚ ٜؾذؽ ثب ظزٖ ٘مُ ٝثٔ ٝشغیط ٔٛضز ٘ٓط زؾشطؾی دیسا
وطز.ClassName.VariableName
ٚلشی و ٝیه ٔشغیط والؼ ضا ث ٝنٛضر final ٚ publicسٗطیف ٔی وٙیٓ ثٟشط اؾز و ٕٝٞ ٝحطٚف ٘بْ آٖ ضا ثعضي ثٛٙیؿیٓ) ٚزض غیط ایٗ
نٛضر ٔب٘ٙس ٔشغیط ٖبزی ٔٗطفی ٔی وٙیٓ) ثطای ٔظبَ ث ٝوس ظیط زلز وٙیس
;*import java.io.
زلز زاقش ٝثبقیس و ٝثطای ایٗ و ٝزض وس ثبال ثرٛاٞیٓ ثب اؾشفبز ٜاظ والؼ ث ٝطبثز ٔٛضز ٘ٓط زؾشطؾی زاقش ٝثبقیٓ ثبیس وس ظیط ضا ثٛٙیؿیٓ
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();
}
}
ُ زض زاذٝیه والؼ زاذّی اؾز وInnerDemo والؼٚ اؾزOuter یه والؼOuterDemo والؼٝیس وٙ ٔی وٜسٞزض ایٗ ٔظبَ ٔكب
ز) اٌط وسٛا٘ی ٔی قٛ فطاذmain ایٗ ٔشس اظ زاذُ ٔشسٚ سٙ ٔی وٜ اظ والؼ زاذّی اؾشفبزٝٔشسی اؾز وdisplayInnerلطاض زاضز) ٔشسOuterDemoوالؼ
: زٛس ثٞاٛ قىُ ظیط ذٝ اػطای وس ثبال ثٝیس ٘شیؼٙثبال ضا اػطا و
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;
}
}
}
108
کالس ّای داخلی درٍى هتذّا
زض ظثبٖ ػبٚا ٔب لبزض ٞؿشیٓ و ٝزض زاذُ یه ٔشس یه والؼ سٗطیف وٙیٓ ٚایٗ یه والؼ ٔحّی ذٛاٞس ثٛز) ٔب٘ٙس ٔشغیط ٔحّی والؼ ٔحّی ٘یع فمٍ
زاذُ ٔشس لبثُ قٙبؾبیی اؾز ٚثیط ٖٚاظ ٔشس قٙبذش ٝقس٘ ٜیؿز) اظ والؾی و ٝزاذُ ٔشس سٗطیف قس ٜاؾز فمٍ ٔی سٛاٖ زاذُ ٔشس قئ ؾبذز) ثط٘بٔٝ
ظیط ث ٝقٕب ٘كبٖ ٔی زٞس و ٝچٍ ٝ٘ٛیه والؼ زضٔ ٖٚشس ثؿبظیٓ ٚاظ آٖ اؾشفبز ٜوٙیٓ .
والؼ زاذّی و٘ ٝبْ ٘ساقش ٝثبقس ضا والؼ زاذّی ثیٙبْ ٔی ٘بٔیٓ) زض ایٗ ٘ ٔٛوالؼ ٞب ٔب زض ٕٞبٖ ظٔب٘ی و ٝیه والؼ ضا سٗطیف ٔی وٙیٓ یه قئ ٓٞاظ
آٖ ٔی ؾبظیٓ) ایٗ والؼ ٞب زض ظٔب٘ی اؾشفبزٔ ٜی قٛز و ٝقٕب ٔی ذٛاٞیس یه ٔشس ضا Overrideوٙیس ٚیب اظ یه والؼ ٚیب ایٙشطفیؽ والؾی ث ٝاضص
ثجطیس ٕٞ ٚب٘ؼب آٖ والؼ ضا سٗطیف وٙیس ٚاظ آٖ اؾشفبز ٜوٙیس) ٘حٛ٘ ٜٛقشبضی ایٗ ٘ ٔٛوالؼ ٞب ث ٝقىُ ظیط اؾز :
109
{)(AnonymousInneran_inner = new AnonymousInner
{)(public void my_method
........
........
}
;}
ثط٘بٔ ٝظیط ٘كبٖ ٔی زٞس و ٝچٍ ٝ٘ٛاظ یه والؼ ثیٙبْ اؾشفبزٔ ٜی قٛز ٚیه ٔشس ضا ٔ overrideی وٙیٓ.
اٌط ثط٘بٔ ٝثبال ضا وبٔذبیُ وٙیس ذطٚػی ث ٝقىُ ظیط ذٛاٞس ثٛز :
قٕب ٔی سٛا٘یس ٔشسٞبی والؼ ٞبی ِٕٔٗٛی ضا ٔب٘ٙس ایٙشطفیؽ ٞب زض والؼ ٞبی ثی ٘بْ سغییط زٞیس.
ثَٛ ٝض ٕٔٗ َٛزض ػبیی و ٝیه ٔشس ٚػٛز زاضز و ٝیه قئ اظ یه ایٙشطفیؽ یب والؼ ٚ abstractیب حشی والؼ ِٕٔٗٛی ضا ثٖٛٙ ٝاٖ آضٌٔٛبٖ ٚضٚزی ٔی
ٌیطز ٔی سٛا٘یٓ ٕٞبٖ ایٙشطفیؽ ضا زض ٕٞب٘ؼب ثٖٛٙ ٝاٖ یه والؼ زاذّی دیبز ٜؾبظی وٙیٓ ٚیب والؼ abstractضا اضص ثطی ٕ٘بییٓ ٚآٟ٘ب ضا زض لبِت یه
قئ ثٔ ٝشس دبؼ ثسٞیٓ) زض ٞط ؾ ٝقىّی وٌ ٝفش ٝقس ٔی سٛاٖ یه والؼ ثی ٘بْ ٕٞب٘ؼب سٗطیف وطز ٚثٖٛٙ ٝاٖ یه قئ ث ٝزاذُ ٔشس ثٖٛٙ ٝاٖ دبضأشط
ٚضٚزی فطؾشبز) ٘حٛ٘ ٜٛقشٗ ایٗ ٘ ٔٛوالؼ ٞب ث ٝقىُ ظیط اؾز :
{)(obj.my_Method(new My_Class
{)(public void Do
.....
.....
}
110
});
. ٓ ٔی فطؾشیٚ ٜزی یه ٔشس سٗطیف وطزٚضٚ اٖ دبضأشطٖٛٙ ٝ یه والؼ زاذّی ثی ٘بْ ضا ثٍٝ٘ٛ چٝس وٞ ظیط ٘كبٖ ٔی زٝٔثط٘ب
//interface
interface Message{
String greet();
}
ٖٚاٖ ثسٛ یىی اظ اًٖبی اؾشبسیه والؼ اؾز) ٔی سٚ اؾزٜضر اؾشبسیه زض زاذُ والؼ سٗطیف قسٛ نٝ ثٝیه والؼ زاذّی اؾشبسیه والؾی اؾز و
ا٘س ؾبیط اًٖبی اؾشبسیه والؼ ضا سغییطٛیٗ ٔی سٕٙچٞ ٔ والؼٛ٘ ٗ ایٗ والؼ زؾشطؾی زاقز)) ایٝز ثٛ قٝ قیئی ؾبذشOuter اؾز والؼٝایٗ و
ُس قىٙ٘ٔ والؼ ٔبٛ٘ ٗقشبضی ایٛ٘ ٜٛ ثبقس) ٘حٝ اًٖبی اؾشبسیه زؾشطؾی زاقشٝا٘س ثٛٔ والؼ فمٍ ٔی سٛ٘ ٗ اًٖبی اؾشبسیه والؼ ایٝس ثمیٙ٘س) ٔبٞثس
:ظیط اؾز
class MyOuter {
static class Nested_Demo{
111
}
}
ثطای اؾشفبز ٜاظ ایٗ ٘ ٔٛوالؼ ث ٝقىُ ظیط ُٖٕ ٔی وٙیٓ :
}
یىی اظ ذٛال قئ ٌطایی و ٝلجال ٓٞوٓ ٚثیف زض ٔٛضز آٖ ٌفشیٓ اضص ثطی یب inheritanceاؾز) اضص ثطی ضا ٔی سٛاٖ ایٗ ٌ ٝ٘ٛسٗطیف وطز و ٝیه
والؼ ذهٛنیبسی ضا اظ یه والؼ زیٍط ث ٝاضص ٔی ثطز) ثب اؾشفبز ٜاظ اضص ثطی اَالٖبر ث ٝاضص ثطز ٜقسَ ٜجك اضص ثطی آٟ٘ب لبثُ ٔسیطیز اؾز)
والؾی و ٝذهٛنیبر ضا ث ٝاضص ٔی ثطز ظیطوالؼ یب والؼ ٔكشك قس ٜیب والؼ فطظ٘س ٘بْ زاضز ٚوالؾی و ٝذهٛنیبسی ضا اضص ٔی زٞس ثٖٛٙ ٝاٖ
والؼ دبی ٚ ٝیب والؼ ٚاِس قٙبذشٔ ٝی قٛز .
کلوِ کلیذیextends
وّٕ extends ٝوّٕ ٝوّیسی اؾز و ٝثطای ٚضاطز ذهٛنیبر اظ یه والؼ اؾشفبزٔ ٜی قٛز) ٘ح ٜٛاؾشفبز ٜاظ ایٗ وّٕ ٝوّیسی زض ازأ ٝآٔس ٜاؾز :
{class Super
.....
.....
}
ٚ Calculation یىیٝ ایٓ وٜضزٚ والؼ آٚ ایٓ)زض ایٗ ٔظبَ زٜضزٚ آٝٔیٓ ٔظبِی زض ازاٙشط ثیبٖ وٟا ضا ثٚب زض ظثبٖ ػبٞ ضاطز زض والؼٚ ٝثطای ایٗ و
ٝ ثCalculation ضا اظ والؼsubtraction ٚ addition بیٞٔشسMyCalcuation والؼextends ّٕٝ اظ وٜ٘بْ زاضز) ثب اؾشفبزMyCalculationزیٍطی
اضص
.ٔی ثطز
class Calculation{
int z;
: زٛس ثٞاٛ قىُ ظیط ذٝ ثٝٔ اػطای ثط٘بٝیس ٘شیؼٙ اػطا وٚ ُ ثبال ضا وبٔذبیٝٔحبَ اٌط ثط٘ب
زض ثط٘بٔ ٝثبال قیئی و ٝاظ والؼ MyCalculationؾبذشٔ ٝی قٛز ٕٝٞی ٔشسٞبی والؼ ٚاِس ضا ٘یع ثٕٞ ٝطا ٜذٛز زاضز) ث ٝایٗ ٔٗٙی و ٝثب اؾشفبز ٜاظ قئ
فطظ٘س
ٔی سٛاٖ ثٔ ٝشسٞب ٚفیّسٞبی publicوالؼ ٚاِس ٓٞزؾشطؾی زاقز) اٌط قٕب قیئی زاقش ٝثبقیس و ٝاظ والؼ ٚاِس ؾبذش ٝقس ٜثبقس ایٗ قئ فمٍ ٔی
سٛا٘س ث ٝاًٖبی والؼ ٚاِس زؾشطؾی زاقش ٝثبقس زض حبِی و ٝوالؼ اظ والؼ فطظ٘س ٓٞث ٝاًٖبی والؼ فطظ٘س ٓٞ ٚث ٝاًٖبی والؼ دسض زؾشطؾی
زاضز) ثطای ٔظبَ زض ثط٘بٔ ٝثبال اٌط قیئی اظ والؼ Calculationؾبذش ٝقس ٜثبقس) ایٗ قئ ٕ٘ی سٛا٘س ثٔ ٝشس multiplicationزؾشطؾی زاقش ٝثبقس) ظیطا
و ٝایٗ ٔشس ٔطث ٌٛث ٝوالؼ فطظ٘س یٗٙی ٔMyCalculationی ثبقس) زلز زاقش ٝثبقیس و ٝیه والؼ فطظ٘س ٕٝٞی اًٖب$فیّسٞب ٔ ٚشسٞب ٚوالؼ ٞبی
زاذّی #ضا اظ والؼ ٚاِس ث ٝاضص ٔی ثطز ٞ. Constructorب ػعء ایٗ اًٖب ٔحؿٛة ٕ٘ی ق٘ٛس ٚث ٝاضص ثطزٕ٘ ٜی ق٘ٛس أب ؾبظ٘س ٜوالؼ ٚاِس ٔی سٛا٘س
اظ زاذُ والؼ فطظ٘س فطاذٛا٘ی قٛز.
کلوِ کلیذیsuper
ایٗ وّٕ ٝوّیسی قجی ٝث ٝؤّٕ this ٝی ثبقس ِٚی ایٗ وّٕ ٝوّیسی ثطای اضػبٔ ث ٝوالؼ ٚاِس اؾشفبزٔ ٜی قٛز) یىی اظ وبضثطز ٞبی آٖ سفبٚر لبیُ قسٖ
ثیٗ اًٖبی ذٛز والؼ ٚاًٖبی والؼ ٚاِس اؾز) ایٗ وبض زض نٛضسی و٘ ٝبْ یىی اظ اًٖب ٓٞزض والؼ ٚاِس سٗطیف قس ٜثبقس ٓٞ ٚزض والؼ فطظ٘س)
وبضثطز زیٍط ایٗ وّٕ ٝوّیسی فطاذٛا٘ی constructorوالؼ ٚاِس اؾز.
اٌط یه والؼ ٔكرهبر ذٛز ضا اظ والؼ زیٍطی اضص ثطز ٜثبقس ٚاٌط اًٖبی والؼ دسض ٘بْ ٞبیی زاقش ٝثبقٙس و ٝآٖ ٘بْ زض ثیٗ اًٖبی والؼ فطظ٘س
٘یع ٔٛػٛز ثبقس اٌط زض زاذُ والؼ فطظ٘س ٘بْ آٖ ًٖ ٛضا لطاض ثسٞیٓ ،وبٔذبیّط ًٖٔ ٛطث ٌٛث ٝوالؼ فطظ٘س ضا زض ٘ٓط ٔی ٌیطز ٚاٌط ثرٛاٞیٓ ث ٝوالؼ
دسض زؾشطؾی زاقش ٝثبقیٓ اظ وّٕ ٝوّیسی superاؾشفبز ٜذٛاٞیٓ وطز) ثطای زضن ثٟشط ایٗ وّٕ ٝوّیسی ٚاؾشفبز ٜاظ آٖ ثطای سفبٚر لبیُ قسٖ ثیٗ اًٖبی
والؼ ٚاِس ٚفطظ٘س ٔظبِی آٚضز ٜایٓ و ٝزض وس ظیط ٔكبٞسٔ ٜی وٙیس) زض ایٗ ثط٘بٔ ٝیه والؼ ث٘ ٝبْ ٚSubClassیه والؼ زیٍط ث٘ ٝبْSuperClassزاضیٓ
وٞ ٝط زٚی آٖ ٞب ثه ٔشس ث٘ ٝبْ displayزاضز) ٞط وساْ اظ ایٗ ٔشسٞب زاضای دیبز ٜؾبظی ػساٌب٘ ٝای ٞؿشٙس) زض ثط٘بٔ ٝظیط ٔی ثیٙیس وٞ ٝطوساْ اظ ایٗ ٔشس
ٞب ضا چٍ ٝ٘ٛفطاذٛا٘ی ٔی وٙیٓ ٚچٍ ٝ٘ٛثیٗ آٟ٘ب سفبٚر ٔی ٌصاضیٓ .
{class SuperClass
//Instantiating subclass
SubClass sub = new SubClass();
}
}
: زٛس ثٞاٛ قىُ ظیط ذٝ ثٝٔ اػطای ثط٘بٝیس ٘شیؼٙ اػطا وٚ ُ ثبال ضا وبٔذبیٝٔاٌط ثط٘ب
115
فزاخَاًی constructorکالس ٍالذ اس داخل کالس فزسًذ
اٌط یه والؼ اظ والؼ زیٍطی اضص ثطز ٜثبقس ،والؼ فطظ٘س ث َٛ ٝدیكفطو والؼ ٚاِس ضا ثب constructorدیكفطو و ٝثس ٖٚدبضأشط ٚضٚزی اؾز ثٝ
اضص
ٔی ثطز) أب اٌط ثرٛاٞیس یىی اظ ٞ constructorبی والؼ ٚاِس و ٝزاضای دبضأشط ٚضٚزی اؾز ضا فطاذٛا٘ی وٙیس ثبیس اظ وّٕ ٝوّیسی superاؾشفبز ٜوٙیس)
ٔ superی سٛاٖ ثطای ٔظبَ ٚزضن ثٟشط ایٗ وبضثطز superث ٝثط٘بٔ ٝظیط زلز وٙیس) زض ایٗ ثط٘بٔ٘ ٝكبٖ ٔی زٞیٓ و ٝچٍ ٝ٘ٛثب اؾشفبز ٜاظ وّٕ ٝوّیسی
ٔconstructorطث ٌٛث ٝوالؼ ٚاِس ضا فطاذٛا٘ی وٙیٓ) ایٗ ثط٘بٔ ٝیه والؼ ٚاِس ٚیه والؼ فطظ٘س زاضز و ٝوالؼ ٚاِس یه ضقش ٝضا ثٖٛٙ ٝاٖ دبضأشط
ٚضٚزی ٔ constructorی ٌیطز) ٚزض والؼ فطظ٘س ثب اؾشفبز ٜاظ وّٕ ٝوّیسی superآٖ constructorفطاذٛا٘ی ٔی قٛز.
{class Superclass
;int age
{)Superclass(int age
;this.age = age
}
}
{)Subclass(int age
;)super(age
}
}
The value of the variable named age in super class is: 24
116
رابطِIs-A
اٌط ثرٛاٞیٓ ثٍٛییٓ ایٗ قئ یه ٘ ٔٛاظ قئ زیٍطی اؾز یه ضا ٜآٖ اؾشفبز ٜاظ ضاثُ ٝاظ Is-Aاؾز) ثطای ٔظبَ ثجط یه حیٛاٖ اؾز) ٔط٘ یه دط٘س ٜاؾز)
ایٗ ضاثُ ٝزض ثط٘بٔٛ٘ ٝیؿی وبضثطز ثؿیبض زاضز) ایٗ ضٚـ ضا ٔی سٛاٖ ثب اؾشفبز ٜاظ اضص ثطی ٚوّٕ ٝوّیسی ٔ extendsی سٛاٖ ؾبذز) ثطای ٔظبَ ث ٝسٗطیف
والؼ ٞبی ظیط و ٝسٗطیف حیٛا٘بر اؾز سٛػ ٝوٙیس :
ثب سٛػ ٝث ٝسٗبضیف ثبال َ ٚجك لٛا٘یٗ قئ ٌطایی ػّٕٞ ٝبی ظیط نبزق اؾز :
Dogاظ ثب اؾشفبز ٜاظ وّٕ ٝوّیسی extendsوالؼ ٞبی فطظ٘س ٕٝٞی ذهٛنیبر والؼ ٞبی ٚاِس ضا ث ٝاضص ٔی ثط٘س) ثَٛ ٝض ٔظبَ زض وس ثبال والؼ
والؼ Mammalاضص ثطز ٜاؾز ِٚی اظ آ٘ؼب و ٝوالؼ Mammalذٛز اظ والؼ Animalث ٝاضص ثطز ٜاؾز دؽ والؼ Dogذهٛنیبر والؼ
Animalضا ٘یع ث ٝاضص ذٛاٞس ثطز) زلز زاقش ٝثبقیس و ٝوالؼ فطظ٘س ٕ٘ی سٛا٘س اًٖبی privateوالؼ ٚاِس ضا ث ٝاضص ثجطز) ثطای ٔظبَ ث ٝوس ظیط زلز
وٙیس.
{class Animal
}
{class Mammal extends Animal
}
{class Reptile extends Animal
117
}
public class Dog extends Mammal{
true
true
true
نیبرٛیٓ ذهٞاٛ ثرٝز وٛ ٔی قٜ وبض ثطزٝ وّیس ظٔب٘ی ثّٕٝ ٔی دطزاظیٓ) ایٗ وimplements ْٟٛ ثیبٖ ٔفٝب قسیٓ ثٙ آقextends ْٟٛ ثب ٔفٝدؽ اظ ایٗ و
ا٘س اظ والؾی اضصٛشطفیؽ ٘یع ٕ٘ی سٙز ایٛ وطز) ذٜ اؾشفبزextends وّیسیّٕٝاٖ اظ وٛب ٕ٘ی سٞ شطفیؽٙ اضص ثجطیٓ) ثطای ایٝشطفیؽ ضا ثٙز زض یه ایٛػٛٔ
:یسٙ وس ظیط زلز وٝثجطز) ثطای ٔظبَ ث
.ٓیٙ ٔی وٜاؾشفبزinstaceof وّیسیّٕٝ اؾز یب ذیط اظ وٜ اضص ثطزٝ یه والؼ اظ والؼ زیٍط ثٝیٓ وٙ ٔكرم وٝ ثطای ایٗ وٝ ثبقیس وٝزلز زاقش
Has-Aِرابط
ایٗ أط وٕه ٔیٝیؿی قئ ٌطا ثٛ٘ ٝٔل ضا زاضز یب ذیط) ایٗ ذبنیز زض ثط٘بٛ ذهٝ آیب یه والؼ یه ذبنیز ثٝضز اؾز وٛٔ ٗ ثیكشط زض ایُٝایٗ ضاث
. یسٙ وس ظیط زلز وٝیٓ) ثطای ٔظبَ ثٙز زاضی وٛبی سىطاضی ذٞقشٗ وسٛ٘ اظٝس وٙو
وس ثبال ٘كبٖ ٔی زٞس و ٝوالؼ Vanذهٛنیز Speedضا زاضز) ثب اؾشفبز ٜاظ والؼ ػساٌب٘ ٝثطای Speedزیٍط ٘یبظی ٘ساضیٓ و ٝوُ وسٞبی والؼ
Speedضا ثطای ٘ Vanیع ثیبٚضیٓ ٚفمٍ اظ آٖ اؾشفبزٔ ٜی وٙیٓ) ثب اؾشفبز ٜاظ ذٛال قئ ٌطایی ٘یبظی ٘یؿز و ٝوبضثطاٖ ثسا٘ٙس و ٝوبض ٚالٗی ضا وساْ
والؼ ا٘ؼبْ ٔی زٞس ٚثٟشط اؾز ایٗ ٔؿئّ ٝاظ زیس وبضثط ٔرفی ثبقس) زض ٔظبَ ثبال ٓٞوالؼ Vanدیبز ٜؾبظی Speedضا اظ زیس وبضثط ٔرفی وطز ٜاؾز)
سٟٙب وبضی و ٝوالؼ Vanاظ Speedا٘شٓبض زاضز ایٗ اؾز و ٝوبضٞبی ذبنی ضا ا٘ؼبْ زٞس.
اضص ثطی ا٘ٛأ ٔرشّفی زاضز و ٝزض سهٛیط ظیط ٔكبٞسٔ ٜی وٙیس
زلز زاقش ٝثبقیس و ٝظثبٖ ػبٚا اظ اضص ثطی چٙسٌب٘ ٝدكشیجب٘ی ٕ٘ی وٙس) ایٗ ث ٝایٗ ٔٗٙی اؾز و ٝػّٛی وّٕ extends ٝفمٍ یه والؼ ٔی سٛاٖ لطاض زاز)
ِٚی
ٔی سٛاٖ ثب اؾشفبز ٜاظ ایٙشطفیؽ ٞب ٚؾّؿّٔ ٝطاست اضص ثطی ،اضص ثطی چٙسٌب٘ ٝضا قجی ٝؾبظی وطز
119
overrideوطزٖ ٔشسٞب
زض ُٔبِت لجّی زض ٔٛضز والؼ ٞبی ٚاِس ٚوالؼ ٞبی فطظ٘س ٚ ٚضاطز والؼ ٞب نحجز وطزیٓ) ٕٞبُ٘ٛض وٌ ٝفشیٓ زض ٚضاطز ٔشسٞبی والؼ ٚاِس ٘یع ثٝ
والؼ فطظ٘س ث ٝاضص ٔی ضؾس) حبَ اٌط ثرٛاٞیٓ ٕٞبٖ ٔشسٞب ضا ثبظ٘ٛیؿی وٙیٓ ثبیس چ ٝوٙیٓ) ُٖٕ ثبظ ٘ٛیؿی ٔشسٞبی ث ٝاضص ضؾیس ٜضا overrideوطزٖ
overrideوٙیٓ ٘جبیس ایٗ ٔشس زض والؼ ٚاِس ث ٝنٛضر finalسٗطیف قس ٜثبقس) ٔشس ٌٛیٙس) ثطای ایٗ و ٝثشٛا٘یٓ یه ٔشس ضا و ٝث ٝاضص ضؾیس ٜاؾز ضا
فبیس ٜای و override ٝوطزٖ ٔشسٞب ایٗ اؾز و ٝوالؼ ٚاِس یه ٔشس ضا سٗطیف ٔی وٙس و ٝوّیبر ٚاؾبؼ یه وبض ضا ا٘ؼبْ ٔی زٞس ٞ ٚط والؼ فطظ٘س
ٔی سٛا٘س ثب سٛػ ٝث٘ ٝیبظ ذٛز اٖٕبِی ضا ث ٝایٗ ٔشس ايبف ٝوٙس) ث ٝایٗ ٔٗٙی و ٝث ٝیه وبضثطز اٖٕبَ زیٍطی ضا ايبف ٝوٙیٓ) ثطای ٔظبَ ث ٝثط٘بٔ ٝظیط زلز
وٙیس:
{class Animal
120
move ایٗ ٔشسٍٝبٔی وٙٞ اؾز) دؽٜی قسٞ ٔمساضزDog ِی ثب قیئی اظ والؼٚ اؾزAnimal ٔ والؼٛ٘ ز یه اظٛ ذb قئٝیس وٙزض ٔظبَ ثبال ٔی ثی
ٍُبْ وبٔذبیٙٞ ٔ قئٛ٘ ٖ ُٖٕ چه وطزٝز) زِیُ ایٗ ُٖٕ ایٗ اؾز وٛ اػطا ٔی قDog والؼٌٝ ثٛ ٔطثmove یٓ ٔشسٙا٘ی ٔی وٛاظ ایٗ والؼ ضا فطاذ
)یٗ اسفبلی ٔی افشسٙبثطایٗ زض والؼ ثبال چٙز) ثٛ ایٗ والؼ اػطا ٔی قٌٝ ثٛی وطزیٓ ٔشس ٔطثٞ ٔمساض زDog ٔ قئ ضا ثب والؼٛ٘ ٖٛ چٚ زٛثطضؾی ٔی ق
:یسٙ وٝػٛ ٔظبَ ظیط سٝحبَ ث
class Animal{
121
bیه قئ اظ والؼ Animalثٛز ٚ ٜوالؼ ٔ Animalشسی ث٘ ٝبْ ٘ barkساضز ٚایٗ ٔشس اػطای ایٗ ثط٘بٕٔٔ ٝىٗ ٘جٛز ٚ ٜذُب ٔی زٞس) ظیطا و ٝقئ
ٔطث ٌٛث ٝوالؼ Dogاؾز) دؽ اٌط ٔشسی زض والؼ ٚاِس ٔٛػٛز ثبقس ٔ ٚب آٖ ضا زض والؼ فطظ٘س ٕ٘ overrideبییٓ ،حبَ اٌط قئی اظ ٘ ٔٛوالؼ ٚاِس
سٗطیف وٙیٓ ِٚی ثب یه قئ والؼ فطظ٘س ٔمساض زٞی ٕ٘بییٓ زض ایٗ نٛضر ٔشسٞبیی و ٝفطاذٛا٘ی ٔی وٙیٓ ٔشسٞبی والؼ فطظ٘س ذٛاٞس ثٛز) أب اٌط ٔشسی
فمٍ ٔطث ٌٛث ٝوالؼ فطظ٘س ثبقس ثب اؾشفبز ٜاظ ایٗ ضٚـ ٕ٘ی سٛاٖ آٖ ٔشس ضا فطاذٛا٘ی ٕ٘ٛز .
دبضأشطٞبی ٚضٚزی ٔشس ٔطث ٌٛث ٝوالؼ فطظ٘س ثبیس زلیمب ٕٞب٘ٙس دبضأشطٞبی ٚضٚزی ٔشس ٔطث ٌٛث ٝوالؼ دسض ثبقس ٓٞ ٚاظ ٘ٓط سٗساز دبضأشطٞب
٘ ٔٛثبظٌكشی ٔشس overrideقس ٜثبیس ٔٛ٘ ٕٔٛٙٞثبظٌكشی ٔشس والؼ دسض ثبقس ٚیب یه ظیط٘ (sybtype) ٔٛاظ ٘ ٔٛثبظٌكشی ٔشس والؼ دسض
ثبقس.
ؾُح زؾشطؾی ٔشس والؼ فطظ٘س ٕ٘ی سٛا٘س ٔحسٚز سط اظ والؼ دسض ثبقس ثطای ٔظبَ اٌط زض والؼ ٚاِس ٔشس ث ٝقىُ publicسٗطیف قس ٜاؾز
ٔشسی و ٝث ٝنٛضر finalسٗطیف قس ٜثبقس ٕ٘ی سٛا٘س overrideقٛز.
ٔشسی و ٝث ٝنٛضر staticسٗطیف قٛز ضا ٕ٘ی سٛاٖ overrideوطز أب ٔی سٛاٖ زٚثبض ٜسٗطیف وطز.
اٌط ٕ٘ی سٛاٖ ٔشسی ضا ث ٝاضص ثطز ٕ٘ی سٛاٖ آٖ ضا overrideوطز.
finalیب privateسٗطیف ٘كس ٜاؾز ضا زض زاذُ یه دىیغ یه والؼ فطظ٘س ٔی سٛا٘س ٔ ٕٝٞشسٞبیی و ٝزض والؼ ٚاِس ذٛز زاضز ٚثٖٛٙ ٝاٖ
overrideوٙس) أب اٌط زض دىیغ زیٍط ثبقس ٔشس والؼ ٚاِس ثبیس ٘ finalجبقس ٕٞ ٚچٙیٗ publicیب ٘ protectedیع ثبقس.
یه ٔشس overrideقس ٜزض والؼ فطظ٘س ٔی سٛا٘س ٞط exceptionچه ٘كس ٜای ضا فطاذٛا٘ی وٙس ثس ٖٚایٗ و ٝالظْ ثبقس ؤ ٝشس والؼ ٚاِس
ٓٞآٖ exceptionضا فطاذٛا٘ی وطز ٜثبقس) أب زض ٔٛضز ٞ exceptionبی چه قسٔ ٜشس والؼ فطظ٘س ٕ٘ی سٛا٘س ٞ exceptionبی چه قس ٜی
ثیكشط اظ ٔشس والؼ ٚاِس ضا نسا وٙس.
ثٖٛٙ ٝاٖ یبز آٚضی ٔی ٌٛییٓ و ٝثطای ایٗ و ٝزض زاذُ ٔشس overrideقس ٜثشٛا٘یٓ ٔشس والؼ ٚاِس ضا فطاذٛا٘ی وٙیس اظ وّٕ ٝوّیسی superاؾشفبزٔ ٜی
وٙیٓ ثطای ٔظبَ ث ٝثط٘بٔ ٝظیط سٛػ ٝوٙیس:
{class Animal
122
}
}
}
}
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 ٝاؾشفبزٔ ٜی قٛز.
abstract ا ٔی ثبقس) ایٗ والؼ یه والؼٚب زض ػبٞ والؼٝس ثمیٙ٘ ٔبEmployee والؼabstract بیٞ غیط اظ ٔشسٝ ثٝیس وٙ ٔی وٜسٞزض وس ثبال ٔكب
قىُ ظیط اظٝ ثٚ یه قئ ثؿبظیسnew وّیسیّٕٝیس ثب وٞاٛ زاضز) حبَ اٌط اظ ایٗ والؼ ثرconstructor یهٚ ٔشس7 ٚ فیّس3 ٕیٗ والؼٞ ِیٚ اؾز
:یسٙ وٜآٖ اؾشفبز
: س زازٞاٛ قٕب ذٝ ذُبی ظیط ضا ثٝٔیس ثط٘بٙ ضا اػطا وٝٔ ثط٘بٚ یسٞاٌط ایٗ وبض ضا ا٘ؼبْ ز
125
Employee.java:46: Employee is abstract; cannot be instantiated
Employee e = new Employee("George W.", "Houston, TX", 43);
^
1 error
. ٓ ایٜيیح زازٛب ضا سٞ اظ ایٗ والؼٜ اؾشفبزٜٛ ٘حٝٔیچ قیئی ؾبذز) زض ازاٞ ٖاٛ اؾز ٕ٘ی سabstract ٝ اظ والؾی وٝی اؾز وٙٗٔ ٗایٗ ثسی
.ٓ ایٜ اضص ثجطیٓ) ایٗ وبض ضا زض وس ظیط ا٘ؼبْ زازٝبی زیٍط ثٞ س والؼٙ٘ ضا ٔبEmployee نیبر والؼٛا٘یٓ ذهٛٔب ٔی س
126
بی والؼٞ ٔشسٚ بٞ اظ سٕبٔی فیّسٚ قئ ثؿبظیسSalary ا٘یس اظ والؼٛ قیئی ثؿبظیس أب ٔی سEmployee ا٘یس اظ والؼٛ قٕب ٕ٘ی سٝٔزض ایٗ ثط٘ب
.یسٙ وٜس وس ظیط اؾشفبزٙ٘ٔبEmployee
Constructing an Employee
Constructing an Employee
Call mailCheckusing Salary reference --
Within mailCheck of Salary class
ailing check to MohdMohtashim with salary 3600.0
Abstractهتذّای
ؾبظیٜس آٖ ٔشس ضا دیبزٙٞاٛ ٔی ذٝقی وٚ ضٝطوساْ ثٞ ِیٚ سٙ ثبقٝیؿبٖ یه ٔشس ٔكرم زض زاذُ والؾكبٖ زاقشٛ٘ ٝٔ ی ثط٘بٕٝٞ ٝیس وٞاٛاٌط قٕب ثر
ز ضاٛ ؾبظی ذبل ذٜبی فطظ٘س دیبزٞ ط وساْ اظ والؼٞ ٚ یسٙ سٗطیف وabstract ضرٛ نٝاِس ثٚ ا٘یس ثطای ایٗ وبض ٔشس ضا زض والؼٛ قٕب ٔی س،سٙٙو
.سٙنیبر ظیط ٔی ثبقٛ زاضای ذهabstract بیٞ س) ٔشسٙ ثبقٝضز ٘ٓط زاقشٛٔ ٔشسٝ٘ؿجز ث
127
.یسٞ ضا لجُ اظ ٘بْ ٔشس لطاض زabstract وّیسیّٕٝ ثبیس وabstract ٍبْ سٗطیف ٔشسٙٞ قٕب
. ای ٘ساضزٝ٘یچ ثسٞ ِی ایٗ ٔشسٚ فمٍ لؿٕز سٗطیف ٔشس ضا زاضزabstract یه ٔشس
.زٛ ٔی قِٜٗ یب ; اؾشفبزٛ ثطای ٔشس اظ ٖالٔز ؾٕی وٝ٘قشٗ ثسٛ٘ ٚ نّٛ دبیبٖ یه ثٚ ٔٚ ػبی ٖالٔز قطٝ ثabstract زض یه ٔشس
اظٝط والؾی وٞ ٗیٕٙچٞ ٚ ثبقسٜ سٗطیف قسabstract ضرٛ نٝ ٔشس ثبیس ثٜ والؼ زض ثط ٌیط٘سٝ ٔی ٌیطیٓ وٝ ٔیطؾیٓ ٘شیؼabstract یه ٔشسٝلشی ثٚ
ؾبظیٜضا دیبزcomputePay ٔشسٝ ٕ٘بییس وٝػٛ وس ظیط سٝس) ثطای ٔظبَ ثٙ ؾبظی وٜ ضا دیبزabstract ثبقس ثبیس ٔشسٜ ٔشس اضص ثطی وطزٜوالؼ زض ثطٌیط٘س
.سٙٔی و
128
ایٙشطفیؽ ٞب
ایٙشطفیؽ یه ٘ ٔٛزض ػبٚا اؾز و ٝقجی ٝوالؾی اؾز و ٝزاضای ٔشسٞبی abstractاؾز ٞ ٚیچ ٔشسی ٘ساضز و ٝدیبز ٜؾبظی وطز ٜثبقس) اٌط والؾی ثرٛاٞس
implementsاؾشفبز ٜوٙس) ٕٞب٘ٙس والؼ ٞبی abstractزض زاذُ اظ یه ایٙشطفیؽ اضص ثطی زاقش ٝثبقس ثبیس آٖ ضا دیبز ٜؾبظی وٙس ٚاظ وّٕ ٝوّیسی
ایٙشطفیؽ ٔی سٛاٖ طبثز ٔ ٚشس دیف فطو ٔ ٚشس اؾشبسیه )) ٚزاقز) ٔشسٞبی اؾشبسیه ضا ٔی سٛاٖ زض زاذُ ایٙشطفیؽ سٗطیف وطز) ٘ٛقشٗ یه ایٙشطفیؽ
قجیٛ٘ ٝقشٗ یه والؼ اؾز) أب یه والؼ ٚیػٌی ٞب ٚضفشبضٞبی اقیبء ضا قطح ٔی زٞس ِٚی یه ایٙشطفیؽ قبُٔ ضفشبضٞبیی اؾز و ٝوالؼ ٞبیی وٝ
لطاض اؾز ایٙشطفیؽ ضا دیبز ٜؾبظی وٙٙس ثبیس اظ آٖ ضفشبض ٞب سجٗیز وٙٙس) ثطذالف والؼ ٞب ٔشسٞبی ٔٛػٛز زض ایٙشطفیؽ زض ذٛز ایٙشطفیؽ سٗطیف ٕ٘ی
ق٘ٛس ٚوالؾی و ٝایٙشطفیؽ ضا دیبز ٜؾبظی ٔی وٙس ثبیس آٖ ٔشسٞب ضا سٗطیف وٙس) قجبٞز ٞبی ایٙشطفیؽ ٚوالؼ زض ثرف ٞبی ظیط اؾز :
یه ایٙشطفیؽ ٔی سٛا٘س ٔب٘ٙس والؼ ٞب ثٞ ٝط سٗساز ؤ ٝی ذٛاٞس ٔشس زاقش ٝثبقس.
ٕٞب٘ٙس والؼ ٞب ایٙشطفیؽ ٞب ضا زض زاذُ فبیُ ٞبیی ثب دؿ٘ٛس ٔ .javaی ٘ٛیؿیٓ.
ٚلشی و ٝیه ایٙشطفیؽ ضا وبٔذبیُ ٔی وٙیٓ ٚانُالحبً ثبیز وس ثٚ ٝػٛز ٔی آیس فبیُ ٞبی ثبیز وس ثب دؿ٘ٛس .classؾبذشٔ ٝی قٛز.
ایٙشطفیؽ ٞب زض دىیغ ٞب لطاض زاض٘س ٚثبیز وس آٟ٘ب زض ؾبذشبض زایطوشٛضی ٔشٙبْط لطاض زاضز .
سفبٚسٟبیی و ٝیه ایٙشطفیؽ ثب یه والؼ زاضز چٙسیٗ ٔٛضز اؾز ؤ ٝی سٛاٖ ٔٛاضز ظیط ضا ٘بْ ثطز .
یه ایٙشطفیؽ ٕ٘ی سٛا٘س constructorزاقش ٝثبقس) ظیطا وٕ٘ ٝی سٛاٖ ثب اؾشفبز ٜاظ وّٕ ٝوّیسی newیه قئ اظ ایٙشطفیؽ ؾبذز.
ٕٝٞی ٔشسٞبی یه ایٙشطفیؽ اظ ٘ٔ abstract ٔٛی ثبقٙس ٚثس٘٘ ٝساض٘س.
یه ایٙشطفیؽ ٕ٘ی سٛا٘س فیّس اؾشبسیه زاقش ٝثبقس) سٟٙب فیّسٞبیی ؤ ٝی سٛا٘س زض زاذُ ایٙشطفیؽ ٚػٛز زاقش ٝثبقس فیّس ٞبیی ٞؿشٙس و ٝثبیس ٓٞ
یه ایٙشطفیؽ ضا ٕ٘ی سٛاٖ ثب اؾشفبز ٜاظ وّٕ ٝوّیسی extendsآٚضز ٚثطای ٚضاطز حشٕب ثبیس اظ وّٕ ٝوّیسی implementsاؾشفبز ٜوطز.
یه ایٙشطفیؽ ٔی سٛا٘س چٙسیٗ ایٙشطفیؽ زیٍط ضا extendوٙس ٚاظ آٟ٘ب اضص ثجطز.
تعزیف ایٌتزفیس
یه ایٙشطفیؽ ث ٝنٛضر يٕٙی یه abstractاؾز ٚالظْ ٘یؿز و ٝقٕب اظ وّٕ ٝوّیسی ٍٙٞ abstractبْ سٗطیف ایٙشطفیؽ اؾشفبز ٜوٙیس.
ٞط ٔشسی و ٝزض یه ایٙشطفیؽ اؾز ٘یع ثَٛ ٝض يٕٙی abstractاؾز ثٙبثطایٗ ٍٙٞبْ سٗطیف ٔشسٞب ٘یبظی ث ٝاؾشفبز ٜاظ وّٕ ٝوّیسی abstract
٘یؿز.
ٔشسٞبی ٔٛػٛز زض ایٙشطفیؽ ث ٝنٛضر يٕٙی ٞ publicؿشٙس) ثطای ٔظبَ ث ٝوس ظیط زلز وٙیس:
ٚلشی یه والؼ یه ایٙشطفیؽ ضا دیبز ٜؾبظی ٔی وٙس قٕب یه لطاض زاز ضا أًب ٔی وٙیس وّٕٖ ٝیبر ٌفش ٝقس ٜزض ایٙشطفیؽ ضا زض ٖٚوالؼ ذٛز دیبزٜ
ٗٔ abstractطفی قٛز ٚزض غیط ایٗ ؾبظی وٙیس) اٌط یه والؼ ٕٝٞی ٔشسٞبی ٔٛػٛز زض ایٙشطفیؽ ضا دیبز ٜؾبظی ٘ىٙس ثبیس ٔشس ٔطث َٝٛث ٝنٛضر
نٛضر ثط٘بٔ ٝذُب ذٛاٞس زاقز) یه والؼ ثطای ایٗ و ٝیه ایٙشطفیؽ ضا دیبز ٜؾبظی ٕ٘بیس اظ وّٕ ٝوّیسی implementsاؾشفبز ٜذٛاٞس وطز) ایٗ وّٕٝ
وّیسی زض ظٔبٖ سٗطیف والؼ آٚضزٔ ٜی قٛز ٔ ٚب٘ٙس وس ظیط ذٛاٞس ثٛز:
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اؾشفبزٔ ٜی وٙیٓ ٚایٙشطفیؽ ضا ٘ساض٘س ٔ ٚی سٛا٘ٙس اظ ثیف اظ یه ایٙشطفیؽ اضص ثطی زاقش ٝثبقٙس) ثطای اضص ثطی ایٙشطفیؽ ٞب اظ وّٕ ٝوّیسی
ٞبی ٚاِس ضا ثب اؾشفبز ٜاظ ٖالٔز ' ػسا ٔی ٕ٘بییٓ) ثطای ٔظبَ ث ٝوس ظیط سٛػ ٝوٙیس :
MouseListenerیه ایٙشطفیؽ سً اؾز و ٝزض ث ٝایٙشطفیؽ ٞبیی وٞ ٝیچ ٔشسی ٘ساض٘س ایٙشطفیؽ سً ٔی ٌٛیٙس) ثطای ٔظبَ ایٙشطفیؽ
وشبثرب٘java.awtٝلطاض زاضز ٚاظjava.util.EventListenerاضص ثطی وطز ٜاؾز و ٝث ٝنٛضر ظیط سٗطیف قس ٜاؾز :
;package java.util
public interface EventListener
}{
اؾشفبز ٜاظ ایٙشطفیؽ ٞبی ثسٔ ٖٚشس و ٝایٙشطفیؽ سً ٓٞث ٝآٟ٘ب ٔی ٌٛیٙس ز ٚزِیُ ٖٕس ٜزاضز وٖ ٝجبضسٙس اظ :
132
ؾبذشٗ یه ایٙشطفیؽ ٚاِس ٖٕٔٛیٔ 5ب٘ٙس ایٙشطفیؽ EventListenerو ٝایٙشطفیؽ ٞبی ظیبزی اظ آٖ اضص ثطی وطز ٜا٘س ٔی سٛا٘س یه ایٙشطفیؽ
ثسٔ ٖٚشس ؾبذز فمٍ ث ٝایٗ ٔٛٓٙض و ٝایٙشطفیؽ ٚاِس آٖ EventListenerثبقس) ایٗ وبض ثطای اٖٕبَ ذبنی ٔٙبؾت اؾز) ثطای ٔظبَ ٚلشی یه
ایٙشطفیؽ اظEventListenerاضص ثطی وطز ٜثبقسjvmسكریم ٔی زٞس و ٝایٙشطفیؽ ٔٛضز ٘ٓط یه ضٚیساز ضا دیبز ٜؾبظی ذٛاٞس وطز.
ايبف ٝوطزٖ یه ٘ ٔٛزاز ٜذبل ث ٝایٙشطفیؽ زیٍط) ایٗ وبض ثطای اٖٕبَ چٙسضیرشی ث ٝوبض ثطزٔ ٜی قٛز .
ٞ 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ثب حطف Jقـطٔ ٔٚـی قـ٘ٛس ) ٔب٘ٙـسJtableٚJtabbedPane
وبٔذٙ٘ٛز ٞبی 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
4 ...
}5
}6
اٌط زض والؾی و ٝاظیه والؼ زیٍط اضص ثطز ٜاؾز،اظٔشس superاؾشفبزٕ٘ ٜبییس ،زض ٚالٕ ٔشس ؾبظ٘س ٜوالؼ دسض ضا ٔمساضزٞی وطز ٜایس) ثطای زضن ثٟشط
ایٗ ٘ىش ،ٝزض ایٙؼب والؼ ثط٘بٔ ٝیٗٙی والؼ Frameاظ والؼJFrameاضص ثطی ٔی وٙس ٚثٚ ٝؾیّٔ ٝشس superآٖ ضا ٔمساض زٞی وطز ٜاؾز) ایٗ
ٔمساض زٞی ؾجت سٗییٗ ٖٛٙاٖ فطیٓ ٔی قٛز.
حبَ اٌط سٛؾٍ ضٚـ ز ْٚیه فطیٓ ضا ایؼبز وطز ٜثبقیسٔ ،ی سٛا٘یس ث ٝؾبزٌی زض ٔشس ؾبظ٘سٕٞ،ٜبٖ ظٔب٘ى ٝقئ والؼ ضاسٗطیف ٔیٕٙبییس ،ثطای فطیٓ ٘یع
یه ٖٛٙاٖ لطاضزٞیس) ثٖ ٝجبضر ظیطسٛػ ٝوٙیس:
ثطای ا٘ؼبْ ایٗ وبض ز ٚضٚـ ا َٚآ٘ى ٝثهٛضر ٔؿشمیٓ ٚثب وٕه ٔشسsetSizeا٘ساظ ٜفطیٓ ٔٛضز ٘ٓط سٗییٗ ٕ٘بییس) ثٖ ٝجبضر ظیط سٛػ ٝوٙیس:
;)1 setSize(200,200
135
زٔٚیٗ ضٚـ آٖ اؾز و ٝا٘ساظ ٜفطیٓ ضا ثط اؾبؼ ا٘ساظ ٜوبٔذٙ٘ٛز ٞبی زض ٖٚآٖ سٗییٗ وٙیس) یٗٙـی ثطضؾی وٙیس و ٝثطای لطاض ٌطفشٗ وبٔذٙ٘ٛز ٞبی ٔٛضز
٘یبظ زض فطیٓ ،چمسض فًب ٘یبظ اؾز) ثطای ا٘ؼبْ چٙیٗ وبضی ٔی سٛاٖ اظ ٔشس packثٟط ٜثطز.
٘ىش ٟٓٔ ٝزض ایٗ ٔشس آٖ اؾز ؤ ٝشس فـٛق سٕـبٔی ثطضؾی ٞبی الظْ ضا ثهٛضر ذٛزوبض ا٘ؼبْ زاز ٚ ٜا٘ساظ ٜفطیٓ ضا ثط اؾـبؼ ٔحشٛیـبر آٖ سٗیـیٗ
ٔـی وٙس) ثطای اؾشفبز ٜاظ ایٗ ٔشس ثهٛضر ظیط ُٖٕ ٔی وٙیٓ:
;)(1 pack
زلز وٙیس و ٝزض ظٔبٖ اؾشفبز ٜاظ ٔشسٞبی لجُ ،اٌط زض ٔشس ؾبظ٘س ٜثط٘بٔ ٝاظ ایٗ ٔشسٞب اؾشفبزٔ ٜی وٙیس ٘یبظی ث ٝشوط ٘بْ فطیٓ ٔٛضز اؾشفبزٕ٘ ٜی ثبقس ) ِٚی
اٌط زض ثیط ٖٚاظ ٔشس ؾبظ٘س ٜثط٘بٔٔ ٝظال زض ٔشس mainلهس اؾشفبز ٜاظ ایٗ ٔشسٞب ضا زاضیس ،ثبیس ثهٛضر ظیط ُٖٕ ٕ٘بییس:
;)(1 frame.pack
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
•ثطای ضؾٓ یه ٔؿشُیُ یب ٔطثٕ ثب ٖطو ٚاضسفبٔ ٔكرم اؾشفبزٔ ٜی قٛز .
•ثطای ایؼبز یه ٔؿشُیُ یب ٔطثٕ س ٛدط ثب ضً٘ دیكفطو )ٖ ٚ(defaultطو ٚاضسفبٔ ٔكرم اؾشفبزٔ ٜی قٛز)
•ثطای ضؾٓ یه ثیًی یب زایط ٜثب ٖط و ٚاضسفبٔ ٔكرم اؾشفبزٔ ٜی قٛز)
ثطای ایؼبز یه ثیًی یب زایط ٜس ٛدط ثب ضً٘ دیكفطو )ٖ ٚ (defaultطو ٚاضسفبٔ ٔكرم اؾشفبزٔ ٜی قٛز)
•ثطای ضؾٓ ذٍ ثیٗ ٘مُ٘ ٚ (x1,y1)ٝمُ(x2,y2) ٝزض ثط٘بٔ ٝاؾشفبزٔ ٜی قٛز)
137
)public abstract boolean drawImage(Imageimg, int x, inty, ImageObserver observer
)public abstract void fillArc(intx, inty, int width, intheight, intstartAngle, intarcAngle
•ثطای ضؾٓ لٛؼ زایط ٜای یب ثیًٛی سٛدط اؾشفبزٔ ٜی قٛز .
•ثطای سٓٙیٓ ضً٘ ٔٛضز ٘ٓط ثطای ضً٘ فّٗی اقىبَ ٌطافیىی ضؾٓ قس ٜاؾشفبزٔ ٜی قٛز .
•ثطای سٓٙیٓ ف٘ٛز ٔٛضز ٘ٓط ثطای ف٘ٛز فّٗی ضقشٌ ٝطافیىی ضؾٓ قس ٜاؾشفبزٔ ٜی قٛز .
ًکتِ ٔ:ب ثٞ ٝط یه اظ اػعای ٌطافیىی زض جاٍا یه ٔ componentی ٌٛییٓ)ٔظال والؼ JButtonیه ٔ componentی ثبقس ٕٝ٘ٛ٘ .ای اظ ایٗ
وبٔذٙ٘ٛشٟب ٖجبضسٙس اظ5
:JTextArea
JTextAreaقی ایؼبز ٔی وٙیٓ یه ٘بحی ٝای ثطای ٕ٘بیف ٔشٗ ایؼبز ٔی قٛز)ایٗ ٘بحیٔ ٝشٙی ایؼبز قس ٜثط ٚلشی اظ والؼ
ذالفTextFieldچٙسذُی یب چٙس ؾُطی ٔی ثبقس ،یٗٙی ٔی سٛاٖ ثٗس اظ دبیبٖ ؾُط ا َٚث ٝؾُط ز )))ٚ ْٚثطای ٘ٛقشٗ ٔشٗ ثطٚیٓ) ٕٞچٙیٗ قی ایؼبز
قس ٜاظ والؼ JTextAreaثٔ ٝب اػبظٚ ٜیطایف سٕبْ ذُ ٌٛضا ٔی زٞس.
138
پس کالسٍJTextAreaیژگی ّای سیز را دارا هی باضذ :
:JLabel
ثطای ٕ٘بیف هتي یب تػَیز زض ثط٘بٌٔ ٝطافیىی ذٛز اظ کالس JLabelاؾشفبزٔ ٜی وٙیٓ) اظ ٚیػٌی اػعای ٌطفیىی JLableایٗ اؾز ؤ ٝشٗ ٕ٘بیف
زاز ٜقس ٜزض آٖ سٟٙب ثب ثط٘بٔ ٝوبضثطزی ٘ٛقش ٝقس ٜلبثُ سغییط ٔی ثبقس ٚوبضثط سٛا٘بیی ٚیطایف ٔشٗ ٕ٘بیف زاز ٜقس ٜضا ٘ساضز) ثطای ٔظبَ زض ثط٘بٔٔ ٝبقیٗ
حؿبة ٚیٙسٚظ ثطای ٕ٘بیف ٔمساض اٖساز ٘ ٚشیؼٔ ٝحبؾجبر اظ والؼ JLableاؾشفبز ٜقس ٜاؾز وبفی اؾز ٕٞیٗ االٖ ٔبقیٗ حؿبة ٚیٙسٚظ ض ٚثبظ
وٙیس ٔشٛػ ٝذٛاٞیس قس و ٝنفحٕ٘ ٝبیف ٔبقیٗ حؿبة سٛؾٍ وبضثط غیط لبثُ ٚیطایف ٚزؾشىبضی ٔی ثبقس ،أب اظ َطیك زوٕٞ ٝبی ٔبقیٗ حؿبة
$ثط٘بٔ #ٝلبثُ سغییط ٔی ثبقس ایٗ ٕٞبٖ ذبنیز ٔ labelی ثبقس
:JCheckBox
ثطای ایؼبز یه چه ثبوؽ اظ والؼ JCheckBoxقی ایؼبز ٔی وٙیٓ) ٌعیٞ ٝٙبی ٔطثٕ قىُ و ٝث ٝثب سیه ظزٖ آٟ٘ب وبض ذبنی ضا ثطای ٔب ا٘ؼبْ
ٔی زٙٞس چه ثبوؽ ٞؿشٙس)
) (checkboxحبِز ضٚقٗ )ٚ(on •چک باکس ّا زٌ ٚعی ٝٙضٚقٗ ) (turnیب ذبٔٛـ ) (offزاض٘س ،ثب وّیه وطزٖ ضٚی یه چه ثبوؽ
ذبٔٛـ ) (offآٖ سغییط ٔی وٙس) ٌعی ٝٙضٚقٗ ٔٗبزَ ٔمساض ٌ ٚ trueعی ٝٙذبٔٛـ ٔٗبزَ ٔمساض ٔ falseی ثبقس.
:JComboBox
کالس JComboBoxػعیی اظ پکیج Swingزض ػبٚا اؾز و ٝیه لیست کطَیی ا٘شربثی ضا اضائٔ ٝی وٙس ٚث ٝوبضثط اػبظٔ ٜی زٞس یه آیشٓ اظ
ٔیبٖ ِیؿز ٔٛػٛز ضا ا٘شربة وٙس)
:JButton
139
یىی اظ اػعای ٌطافیىی یب ٔ componentب کالس JButtonیب ٓٞا ٖ زؤٕ ٝی ثبقس )ٔظبِی و ٝاظ buttonثطای زضن ثیكشط ٔی سٛا٘یٓ ثع٘یٓ،
زوٕٞ ٝبی ثط٘بٔ ٝوبضثطزی ٔبقیٗ حؿبة ٔی ثبقس .
:JTextField
زض ٚالٕ أىبٖ ٚضٚز کالس JTextFieldاػعای ٌطافیىی "ٔشٙی" اؾز و ٝثب قی ؾبذشٗ اظ آٖ ث ٝقٕب اػبظٔ ٜی زٞس یه ذٍ ٔشٗ ضا ٚیطایف وٙیس)
اَالٖبر ث ٝوبضثط ضا ٔی زٞس) احشٕبال ثب ٕٞچیٗ اػعای ٌطافیىی ظیبز ثطذٛضز وطز ٜثبقیس ٔظال ٍٙٞبْ طجز ٘بْ ٚ ٚاضز وطزٖ اَالٖبر وبضثطی ) ٔشٙی و ٝزض
ایٗ اػعای ٌطافیىی ٚاضز ٔیىٙیٓ زاضای ٚیػٌی ٞبی ظیط ٔی ثبقس :
سه ٔشٗ ٞؿز یٗٙی ٘مُ ٝؾط ذٍ ٘ساضیٓ! #(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چـ ٝاسفـبلی ثیفشـس ٚثـٕٞ ٝـیٗ سطسیـت ثـطای ؾبیطوّیسٞبی وبزض دیغبْ ٘یع ٕٞیٗ َٛض .
141
ٞط وبزض دیبْ ٔی سٛا٘س قبُٔ یه آیىٔ ٖٛطسجٍ ثب ٘ ٔٛدیبْ ثبقس و ٝزض ازأ٘ ٝح ٜٛاؾشفبز ٜاظ آٟ٘ب ضا ٔی ٌٛییٓ .
JOptionPane.WARNING_MESSAGEآیى ٖٛاذُبض
آیىٗ ذُب JOptionPane.ERROR_MESSAGE
JOptionPane.MESSAGE_PLAINوبزض ثس ٖٚآیىٖٛ
ثطای ٕ٘بیف وبزض دیغبٔی و ٝثب ظزٖ یه زوٕ ٝآٖ ّٖٕی ثطاؾـبؼ ٘یـبظ وـبضثط ا٘ؼـبْ قـٛز،اظ ٔشـس showConfirmDialogاؾشفبزٔ ٜی قٛز ) ذطٚػی
ایٗ سبثٕ اظ ٘ٔ int ٔٛی ثبقس ٚدـؽ اظ ٕ٘بیف دیغبْ ٔی سٛاٖ ثب زؾشٛض ُٕٖ ifثٗسی ضا ٔسیطیز وطز.
ٔظبَ:
{)if(result==JOptionPane.YES_OPTION
}
{else
}
اپلت چیست؟
٘مُ ٝقطٔ ٔٚحجٛثیز ػبٚا ،ادّز ٞبی ػبٚا « ٔ » Applet Javaی ثبقٙس) اظ ِحبِ ظٔب٘ی ،ظثبٖ ثط٘بٔٛ٘ ٝیؿی ػبٚاٚ ،لشی دب ثٖ ٝطنٚ ٝػٛز ٌصاقز وٝ
ز٘یبی ایٙشط٘ز زض ٔطاحُ آغبظیٗ ضقس لطاض زاقز ٚث ٝیه ظثبٖ ثط٘بٔٛ٘ ٝیؿی ٔؿشمُ اظ ٔحیٍ ٘یبظ زاقز سب ثشٛا٘س لبثّیز ٞبی ذٛز ضا ثَٛ ٝض وبُٔ
قىٛفب وٙس) ػبٚا ث ٝوٕه ایٗ سىِٛٛٙغی سٛا٘ؿز ایٗ ٘یبظ ضا ضفٕ ٕ٘بیس)
142
انُالح ادّز سٛؾٍ ٚ appletScriptزض ؾبَ ُٔ 1993طح ٌطزیس) ثَٛ ٝض وّی ٚاغ ٜادّز « » Appletث ٝثط٘بٔٞ ٝبیی اَالق ٔی ٌطزز و ٝزض ظٔیٝٙ
ثط٘بٔٞ ٝبی زیٍط اػطا ٔی ق٘ٛس) ثٖٛٙ ٝاٖ ٔظبَ فبیّٟبی فّف و ٝزض نفحبر ٚة لطاض ٌطفش ٚ ٝسٛؾٍ ٔطٚضٌط اػطا ٔی ٌطز٘سٖٛ٘ ،ی اظ ادّز ٞب ٔی ثبقٙس)
ٔ servletی ثبقس و ٝزض ٔبقیٗ ؾطٚیؽ زٙٞس ٜاػطا ٔی قٛز ٘ ٚشیؼٝ « »1فمٍ زض ٔبقیٗ ؾطٚیؽ ٌیط٘س ٜاػطا ٔی ق٘ٛس) زض ػبٚا ٘مُٔ ٝمبثُ ادّز،
حبنُ اظ آٖ ثٔ ٝبقیٗ ؾطٚیؽ ٌیط٘سٙٔ ٜشمُ ٔی ٌطزز)
«ٕٛٗٔ »2ال زاضای یه ْٚیف ٝذبل ٗٔ ٚیٙی ٔی ثبقٙس) «ٕٔٗٛال ثهٛضر سه ٔٛٓٙضٔ ٜی ثبقٙس)»
« »3ادّز ٞب ثط ٖىؽ ثط٘بٔٞ ٝبی زیٍط ػبٚإ٘ ،ی سٛا٘ٙس ثهٛضر ٔؿشمیٓ اػطا ق٘ٛس) ؾبذشبض یه ادّز حبٚی یه ضاثٍ ٌطافیىی لسضسٕٙس اؾز و ٝثٝ
» GUIآٖ اؾز و ٝیه ادّز ثبیس زض ٔحیُی وٝ وٕه آٖ ٔی سٛاٖ ثب وبضثط ث ٝنٛضر فُٗ ٚا٘فٗبِی زض اضسجبٌ ثٛز) ّٖز ٘یبظ ادّز ث ٝضاثٍ ٌطافیىی «
ٔطٚضٌط زض اذشیبض آٖ لطاض ٔی زٞس ،اػطا قٛز) «ٔحیٍ ٌطافیىی ٔطٚضٌطٞب ذیّی ٔحسٚز ٔی ثبقٙس)»
« »4ادّز ٞب زض لبِجی و ٝسٛؾٍ ثط٘بٔٔ ٝیعثبٖ ٚاظ َطیك Plug-inاؾز ،اػطا ٔی قٛز ٚیب زض ثط٘بٔٞ ٝبی وبضثطزی لبثُ حُٕ و ٝاظ ٔسَ ثط٘بٔٛ٘ ٝیؿی
ادّز دكشیجب٘ی ٔی وٙٙس ،اػطا ٔی قٛز)
ٚ Player Mediaیٙسٚظ و ٝثطای ٘كبٖ زازٖ فبیُ ٞبی ٚیسئٛیی زض ٘طْ اظ ػّٕٗٔ ٝطٚف سطیٗ ادّز ٞب ٔی سٛاٖ ث ٝادّز ٞبی ػبٚا ،فیّٓ ٞبی فّف ٚ
افعاضٞبی ٔطٚضٌط ٚة ٔب٘ٙس ایٙشط٘ز اوؿذّٛض ،ث ٝنٛضر Plug-inاؾشفبزٔ ٜی ق٘ٛس ،اقبضٕٛ٘ ٜز)
زض ٚالٕ ادّزٞبی ػبٚا ،ثط٘بٔٞٝبی وٛچىی ٞؿشٙس و ٝزض نفحبر ٚة لطاض ٌطفش ٚ ٝسٛؾٍ ٔطٚضٌطٞبیی و ٝلبزض ث ٝدكشیجب٘ی اظ ػبٚا
« ٔ » browser enabled Javaیثبقٙس ،اػطا ٔی ق٘ٛس) ثَٛ ٝض وّی ٔی سٛاٖ ذهٛنیبر ادّز ٞبی ػبٚا ضا ث ٝنٛضر ظیط ثیبٖ ٕ٘ٛز5
«ٔعایب»
« »1ث ٝضاحشی ٔی سٛاٖ یه ادّز ضا سِٛیس ٕ٘ٛز ٚزض ٔطٚضٌطٞبی ٔرشّف ثب لبثّیز دكشیجب٘ی اظ ػبٚا ،اػطا وطز)
« »2ادّز ٞب زض سٕبٔی ٘ؿرٞ ٝبی ػبٚا لبثُ اػطا ٔی ثبقٙس)
« »3زض نٛضر سغییط وس یه ادّز ،ؾطٚیؽ ٌیط٘س« ٜوالیٙز» ثب اِٚیٗ ٔطاػٗ ٝث ٝؾطٚیؽ زٙٞس٘ ،ٜؿر ٝثطٚظ قس ٜآٖ ضا زضیبفز ٔی وٙس)
« »4ادّز ٞب زض نٛضر ٔٛافمز وبضثط ٔی سٛا٘ٙس زؾشطؾی وبُٔ ثٔ ٝبقیٗ ؾطٚیؽ ٌیط٘س ٜزاقش ٝثبقٙس)
« »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.
ایٗ ٔشس ٚػٛزـ يطٚضی اؾز ِٚی ٔیسٛا٘س ذبِی ثبقس //
} { )(public void stop
ایٗ ٔشس ثطای ٔمساضزٞی اِٚیٞ ٝط ادّز ٔٛضز ٘یبظ اؾز)
ایٗ ٔشس ث ٝنٛضر ذٛزوبض ظٔب٘ی فطاذٛا٘ی ٔی قٛز و ٝوبضثط نفح ٝای ضا و ٝضٚی آٖ ادّز ٘كؿش ٝاؾز ضا حطوز ثسٞس)
ایٗ ٔشس سٟٙب ظٔب٘ی فطاذٛا٘ی ٔی قٛز ؤ ٝطٚضٌط ثَٛ ٝض ٕٔٗ َٛثؿش ٝقٛز)
ثالفبنّ ٝدؽ اظ ٔشس ٕٞ ٚ 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
147
148