Assignment2.pdf

‫تمرین سری دوم‬
‫درس برنامه نویسی شیءگرا‬
‫موعد ارسال‪ :‬جمعه ‪ 12‬فروردین ‪1390‬‬
‫زوشیي سشی دٍم تشًاهِ ساصی ضیءگشا‬
‫واهیاس اللَْسدی‬
‫تا زطىش اص‪ :‬هحوذ اغغشی‪ ،‬ضادی ػثذاللْیاى‪ ،‬خَیا سوٌگَیی‪ ،‬ساحل ضشیفی همذم ٍ آسیي استاتی‬
‫عشح جلذ‪ :‬هْشاى خذاتٌذُ‬
‫‪1‬‬
‫تمرین سری دوم برنامه سازی شیءگرا‬
‫مهلت تحویل‪ :‬جمعه ‪ 21‬فروردین ‪2109‬‬
‫وکات کلی‬
‫‪ ‬دس ایي زوشیي ضوا تشًاهِی لاتل اجشائی ًویًَیسیذ ٍ واسی وِ اًجام هیدّیذ خیادُساصی چٌذ والس اسر‪.‬‬
‫‪ ‬هطخػاذ ولی زوشیي ّا تِ ایي ضشح اسر‪:‬‬
‫نام کالس‬
‫نام فایل‬
‫نمره‬
‫زوشیي ‪1‬‬
‫‪NumberString‬‬
‫‪NumberString.java‬‬
‫‪25‬‬
‫زوشیي ‪2‬‬
‫‪Layer‬‬
‫‪Layer.java‬‬
‫‪25‬‬
‫زوشیي ‪3‬‬
‫‪NicklesBakeryInc‬‬
‫‪NicklesBakeryInc.java‬‬
‫‪55‬‬
‫‪ّ ‬ذف اص ایي زوشیي‪ ،‬آصهایص دسن ضوا اص هفَْم ضیءگشایی ٍ تىاسگیشی ایي هفَْم دس ػول اسر‪ .‬خس اص ایي‬
‫زوشیي ضوا تایذ تشاحسی تسَاًیذ هذلْای سادُ جْاى ٍالؼی سا تػَسذ ضیء گشا هذل وٌیذ‪.‬‬
‫‪ ‬تشای اسسال زوشیي تِ آدسس صیش هشاجؼِ وٌیذ‪:‬‬
‫‪http://judge.ce.sharif.edu/‬‬
‫زَجِ ًواییذ وِ تایذ ّش وذام اص فایلْای ‪ .java‬سا تغَس جذاگاًِ اسسال ًواییذ‪.‬‬
‫‪ ‬هَػذ زحَیل ساػر ‪$ 11:59‬ظْش‪ #‬سٍص جوؼِ ‪ 12‬فشٍسدیي ‪ 1395‬تَدُ ٍ تِ ّیچ ػٌَاى زوذیذ ًخَاّذ ضذ‪.‬‬
‫‪ ‬زأخیش زا ‪ 1‬ساػر‪ ،‬تِ اصای ّش ‪ 3‬دلیمِ هَجة وسش ضذى ‪ً "1‬وشُ‪ ،‬اص ‪ 1‬ساػر زا ‪ 24‬ساػر هَجة وسش ضذى‬
‫‪ً "25‬وشُ‪ ،‬اص ‪ 24‬ساػر زا ‪ 25‬ساػر‪ ،‬تِ اصای ّش ‪ 2‬دلیمِ هَجة وسش ضذى ‪ً "1‬وشُی دیگش ٍ تیي ‪ 25‬ساػر‬
‫زا ‪ 48‬ساػر تاػث وسش ضذى ‪ً "55‬وشُ هیضَد‪ .‬زأخیش تیطسش اص ‪ 48‬ساػر لاتل لثَل ًیسر‪.‬‬
‫زوشیي سشی دٍم تشًاهِ ساصی ضیءگشا‬
‫‪2‬‬
‫‪ ‬زالش تشای اسسفادُ اص هٌاتغ سیسسن هاًٌذ واسذ غذا ٍ خشیٌسش ٍ ًَضسي تِ فایل ٍ ‪ ...‬هٌجش تِ دسیافر ًوشُی‬
‫غفش دس ایي زوشیي هیضَد‪.‬‬
‫‪ ‬والسّا ٍ هسذّای گفسِ ضذُ دس آىّا حذاللّای الصم ّسسٌذ‪ .‬یؼٌی ضوا هیزَاًیذ تشای ساحرزش ضذى خیادُ‪-‬‬
‫ساصیساى یا ضیگشازش ضذى وذزاى تِ ایي والسّا هسذّای دیگشی اضافِ وٌیذ یا تِ ول زوشیي والسّای‬
‫دیگشی اضافِ وٌیذ‪ٍ .‬لی دلر داضسِ تاضیذ وِ والسّای گفسِ ضذُ ٍ هسذّای آًْا تایذ تِ ّویي ضىل‪ ،‬هَجَد‬
‫تاضٌذ‪.‬‬
‫‪ ‬سَاالذ خَد سا تا فشسسادى ایویل تِ آدسس ‪ [email protected]‬هغشح وٌیذ‪.‬‬
‫‪ً ‬حَُ زحَیل حضَسی زوشیي هسؼالثاً اػالم خَاّذ ضذ‪.‬‬
‫تمریه ‪ : 1‬ومایش اعداد‬
‫والس ‪ NumberString‬سا خیادُ ساصی وٌیذ‪.‬‬
‫هیخَاّین تِ جای ضىل سلوی‪ ،‬تا ضىل ًَضساسی اػذاد واس وٌین‪ .‬تشای ایي هٌظَس تایذ والس صیش سا خیادُساصی وٌیذ‪.‬‬
‫اػذاد سا تِ غَسذ صیش تِ ضىل ًَضساسی ًوایص هیدّین‪:‬‬
‫‪Hezar o Shast o Shesh‬‬
‫‪Sad o Bist o Do‬‬
‫‪Do Milliard o Haftsad o Chehel o Haft Million o Davazdah‬‬
‫دس جذٍلی وِ دس اًسْای زوشیي آهذُ اسر‪ ،‬هیزَاًیذ لیسر زوام حاالذ هوىي سا تثیٌیذ‪.‬‬
‫‪class NumberString‬‬
‫{‬
‫;)‪NumberString(long num‬‬
‫;)‪NumberString(String str‬‬
‫;)‪NumberString(NumberString ns‬‬
‫;)‪void setNumber(long num‬‬
‫;)‪NumberString add(NumberString ns‬‬
‫;)‪NumberString sub(NumberString ns‬‬
‫;)‪NumberString mult(NumberString ns‬‬
‫;)(‪long toInteger‬‬
‫;)(‪String toNumberString‬‬
‫}‬
‫‪ ‬تا گشفسي یه سضسِ اص اػذاد تا ووه ‪ Constructor‬دٍم‪ ،‬ضیء سا همذاسدّی وٌیذ‪ .‬هاًٌذ‪“1066” :‬‬
‫‪ Constructor ‬سَم‪ ،‬واس ودی گشفسي اص یه ضیء سا اًجام هی دّذ‪.‬‬
‫‪ ‬هسذ ‪ setNumber‬ػذد رخیشُ ضذُ سا تا همذاس گشفسِ ضذُ تِ سٍص هیوٌذ‪.‬‬
‫‪ ‬هسذّای ‪ add,sub,mult‬واس جوغ‪ ،‬زفشیك ٍ ضشب سا سٍی اػذاد اًجام هی دٌّذ‪ .‬زَجِ داضسِ تاضیذ وِ اًجام‬
‫ّیچىذام اص ایي اػوال ًثایذ هٌجش تِ زغییش دس ػولًَذّا ضَد ٍ تایذ ًسیجِ دس یه ضیء جذیذ تشگشداًذُ ضَد‪.‬‬
‫زوشیي سشی دٍم تشًاهِ ساصی ضیءگشا‬
‫‪ Constructor ‬اٍل تا گشفسي یه ػذد‪ ،‬ضیء سا همذاسدّی اٍلیِ هیوٌذ‪.‬‬
‫‪3‬‬
.‫ تش هیگشداًذ‬int ‫ ًوایص سلوی ػذد سا تِ غَسذ‬toInteger ‫ هسذ‬
0
Sefr
10
Dah
20
Bist
100
Sad
1000
Hezar
1
Yek
11
Yazdah
30
Si
200
Devist
1,000,000
Million
2
Do
12
Davazdah
40
Chehel
300
Sisad
1,000,000,000
Milliard
3
Se
13
Sizdah
50
Panjah
400
Chaharsad
4
Chahar
14
Chahardah
60
Shast
500
Pansad
5
Panj
15
Panzdah
70
Haftad
600
Sheshsad
6
Shesh
16
Shanzdah
80
Hashtad
700
Haftsad
7
Haft
17
Heftdah
90
Navad
800
Hashtsad
8
Hasht
18
Hejdah
900
Nohsad
9
Noh
19
Noozdah
‫زوشیي سشی دٍم تشًاهِ ساصی ضیءگشا‬
.‫ تش هیگشداًذ‬String ‫ ًوایص ًَضساسی سا تِ غَسذ‬toNumberString ‫ هسذ‬
4
‫تمریه ‪ : 2‬فتوشاپ متىی‬
‫والس ‪ Layer‬سا خیادُ ساصی وٌیذ‪.‬‬
‫دس ایي زوشیي تا ووه والس ‪ Layer‬هحیغی هطاتِ ًشمافضاس ‪ Photoshop‬سا تشای وطیذى ػىسّا سٍی ّن ایجاد‬
‫هیوٌیذ‪ .‬تشای ایي هٌظَس غفحِ ای سا دس خشٍجی تایذ ًوایص دّیذ‪ .‬دس ایي غفحِ ّش ًمغِ اص غفحِ هیزَاًذ ضص‬
‫همذاس هسفاٍذ داضسِ تاضذ وِ ّشهمذاس سا تِ غَسذ صیش تایذ دس خشٍجی ًوایص دّیذ‪:‬‬
‫کاراکتر معادل‬
‫مقدار‬
‫]‪[Space‬‬
‫‪5‬‬
‫‪.‬‬
‫‪4‬‬
‫‪,‬‬
‫‪3‬‬
‫‪:‬‬
‫‪2‬‬
‫*‬
‫‪1‬‬
‫‪#‬‬
‫‪0‬‬
‫تا ووه جذٍل فَق ّشغفحِ سا تایذ تِ ایي غَسذ دس خشٍجی ًوایص دّیذ وِ واساوسش هؼادل تا همذاس آى ًمغِ سا دس‬
‫خشٍجی ًوایص دّیذ ٍ تِ دًثال ّشًمغِ یه واساوسش ‪ّ Space‬ن چاج وٌیذ‪.‬‬
‫لسور اغلی ایي زوشیي‪ ،‬اهىاى زشویة چٌذ ‪ Layer‬تا ّوذیگش اسر وِ ‪ً Blending‬اهیذُ هیضَد‪ .‬تشای ایٌىاس سٍش‪-‬‬
‫ّای صیادی ٍجَد داسد وِ ضوا دس ایي زوشیي ضص ًَع خشواستشدزش سا خیادُساصی خَاّیذ وشد‪ .‬جْر اعالػاذ تیطسش دس‬
‫هَسد ‪ Blending‬تِ آدسس صیش هشاجؼِ وٌیذ‪:‬‬
‫‪http://en.wikipedia.org/wiki/Blend_modes‬‬
‫ضص همذاس هخسلف داسد خیادُساصی هی وٌیذ‪ .‬دس اداهِ زَضیح ّشوذام تشای ایي حالر سادُ آٍسدُ ضذُ اسر‪.‬‬
‫دس زواهی لسور ّای تؼذی‪ ،‬تِ جای ‪ Layer‬تاالیی اص ‪ ،top‬تِ جای ‪ Layer‬صیشیي اص ‪ ٍ bottom‬تِ جای ‪Layer‬‬
‫ًْایی وِ ضاهل ًسیجِ زشویة ایي دٍ اسر اص ‪ result‬اسسفادُ هیضَد‪ .‬دس فشهَلّا هٌظَس همذاس یه ًمغِ اص ایي‬
‫‪ّLayer‬اسر‪.‬‬
‫زوشیي سشی دٍم تشًاهِ ساصی ضیءگشا‬
‫ایي ضص سٍش تشای ّشًَع ػىسی لاتل خیادُساصی ّسسٌذ ٍلی ضوا آىّا سا زٌْا تشای حالر سادُای وِ ّشًمغِ زٌْا‬
‫‪5‬‬
‫‪: Multiply‬‬
‫دس ایي سٍش تا اسسفادُ اص ‪ ،top‬ػىس زیشُزش هیضَد‪ .‬تِ ایي ضىل وِ ّشاًذاصُ ًماط ‪ top‬خشسًگزش تاضٌذ‪ ،‬ػىس ًْایی‬
‫حاٍی ًسخِی زیشُزشی اص ‪ bottom‬خَاّذ تَد‪ .‬فشهَل سادُ ضذُ تشای هحاسثِ همذاس ّشًمغِ اص ‪ result‬تِ غَسذ صیش‬
‫اسر‪:‬‬
‫‪result = (top*bottom)/5‬‬
‫‪: Screen‬‬
‫دس ایي سٍش تا اسسفادُ اص ‪ ،top‬ػىس سٍضيزش هیضَد‪ .‬تِ ایي ضىل وِ ّشاًذاصُ ًماط ‪ top‬سٍضيزش تاضٌذ‪bottom ،‬‬
‫سٍضيزش خَاّذ ضذ‪ .‬فشهَل سادُ ضذُ تشای هحاسثِ همذاس ّشًمغِ اص ‪ result‬تِ غَسذ صیش اسر‪:‬‬
‫]‪result = 5-[((5-top)*(5-bottom))/5‬‬
‫‪: Addition‬‬
‫دس ایي سٍش همذاس ‪ top‬تا ‪ bottom‬جوغ هی ضَد‪.‬‬
‫فشهَل هحاسثِ همذاس ّشًمغِ اص ‪ result‬تِ غَسذ صیش اسر‪:‬‬
‫‪result = bottom+top‬‬
‫‪: Subtract‬‬
‫دس ایي سٍش همذاس ‪ top‬اص ‪ bottom‬ون هی ضَد‪.‬‬
‫فشهَل هحاسثِ همذاس ّشًمغِ اص ‪ result‬تِ غَسذ صیش اسر‪:‬‬
‫‪result = bottom-top‬‬
‫‪: Darken‬‬
‫دس ایي سٍش همذاس‪ result‬تشاتش تا همذاس زیشُزش ‪ bottom ٍ top‬خَاّذ تَد‪.‬‬
‫زوشیي سشی دٍم تشًاهِ ساصی ضیءگشا‬
‫‪6‬‬
‫فشهَل هحاسثِ همذاس ّشًمغِ اص ‪ result‬تِ غَسذ صیش اسر‪:‬‬
‫}‪result = min{bottom,top‬‬
‫‪: Lighten‬‬
‫دس ایي سٍش همذاس‪ result‬تشاتش تا همذاس سٍضيزش ‪ bottom ٍ top‬خَاّذ تَد‪.‬‬
‫فشهَل هحاسثِ همذاس ّشًمغِ اص ‪ result‬تِ غَسذ صیش اسر‪:‬‬
‫}‪result = max{bottom,top‬‬
.‫ سا خیادُساصی وٌیذ‬Layer ‫ والس‬،‫تا ووه زَضیحاذ فَق‬
class Layer
{
Layer(int width,int height);
void addPoint(int x, int y,int strength);
void addLine(int x1, int y1, int len, boolean isHorizontal, int strength);
void addRectangle(int x1, int y1, int x2, int y2, int strength);
void addSolidCircle(int x,int y, int radius, int strength);
Layer multiply(Layer l);
Layer screen(Layer l);
Layer add(Layer l);
Layer subtract(Layer l);
Layer darken(Layer l);
Layer lighten(Layer l);
void invert();
void clear();
String draw();
‫زوشیي سشی دٍم تشًاهِ ساصی ضیءگشا‬
}
7
‫ همذاس زوام ًماط یه غفحِی‬.‫ ساصًذُی ایي والس یه غفحِی خالی سا تا اتؼادی وِ گشفسِ اسر هیساصد‬
.‫ اسر‬5 ‫خالی تشاتش تا‬
‫ تشای ایي هٌظَس‬.‫ یه ضىل تِ غفحِ اضافِ هیضَد‬،‫ ضشٍع هیضًَذ‬add ‫ دس زوام هسذّای سسن ضىل وِ تا‬
‫ دس غَسزی وِ تشخی اص ًماط‬.‫ اص همادیش لثلی هَجَد دس غفحِ ون وٌیذ‬strength ُ‫ًماط ضىل سا تِ اًذاص‬
:‫ آى ًماط سا ًادیذُ تگیشیذ ٍ تمیِ ضىل سا تىطیذ‬،‫ضىلی وِ لشاس اسر اضافِ ضَد دس غفحِ لشاس ًگشفر‬
[new-value]=[old-value]-[strength]
.‫ یه ًمغِ سا دس هخسػاذ زؼییي ضذُ تا همذاس گفسِ ضذُ اضافِ هیوٌذ‬addPoint ‫ هسذ‬
‫‪ ‬هسذ ‪ addLine‬یه خظ سا تا ًمغِ ضشٍع دادُ ضذُ تِ غفحِ اضافِ هیوٌذ‪ .‬دس غَسذ وِ همذاس‬
‫‪ isHorizontal‬تشاتش تا ‪ true‬تاضذ خظ سا تِ غَسذ افمی هیوطذ ٍ دس غیش ایٌػَسذ خظ سا ػوَدی هی‪-‬‬
‫وطذ‪ .‬عَل خظ تِ اًذاصُ ‪ len‬اسر وِ دس غَسذ هثثر تَدى دس جْر هثثر هخسػاذ تایذ وطیذُ ضَد ٍ دس‬
‫غَسذ هٌفی تَدى‪ ،‬خالف جْر هخسػاذ ٍ دس غَسذ غفش تَدى زٌْا یه ًمغِ دس ًمغِ ضشٍع تایذ وطیذُ‬
‫ضَد‪.‬‬
‫‪ ‬هسذ ‪ addRectangle‬یه هسسغیل سا تِ غفحِ اضافِ هیوٌذ‪ .‬دلر وٌیذ وِ هخسػاذ ًمغِ ضشٍع لضٍهاً‬
‫همادیش ووسشی اص ًمغِ ًْایی ًذاسًذ ٍ هوىي اسر دٍ ًمغِ ّشًسثسی تا یىذیگش داضسِ تاضٌذ‪ .‬تشای ًوًَِ اگش دس‬
‫یه خظ یا سسَى تاضٌذ‪ ،‬ضىلی وِ اضافِ هی ضَد یه خظ خَاّذ تَد ٍ دس غَسزی وِ ایي دٍ ًمغِ تش ّن‬
‫هٌغثك تاضٌذ یه ًمغِ تِ ضىل اضافِ خَاّذ ضذ‪.‬‬
‫‪ ‬هسذ ‪ addSolidCircle‬یه دایشُ سا تا هخسػاذ زؼییي ضذُ ٍ ضؼاع ‪ radius‬تِ ضىل اضافِ هیوٌذ‪ .‬دلر‬
‫وٌیذ وِ یه دایشُ زَخش تایذ اضافِ ضَد ٍ ًماط سٍی هحیظ سا ًثایذ تِ غفحِ اضافِ وٌیذ‪.‬‬
‫‪ ‬هسذّای زشویة دٍ غفحِ ّوگی یه ‪ Layer‬سا تِ ػٌَاى خاساهسش هیگیشًذ وِ ّواى ‪ Layer‬تاالیی هحسَب‬
‫هیضَد ٍ ضیء وًٌَی وِ ایي هسذ سٍی آى غذا صدُ ضذُ‪ّ ،‬واى ‪ Layer‬صیشیي اسر‪ً .‬حَُ خیادُساصی ایي‬
‫هسذّا تِ ّواى زشزیثی وِ آهذُ اًذ‪ ،‬دس اتسذای زوشیي زَضیح دادُ ضذُ اسر‪ .‬ضوا تایذ تذٍى زغییش دس ایي دٍ‬
‫‪ ،Layer‬یه ‪ Layer‬جذیذ سا وِ حاغل اص زشویة دٍ غفحِ اسر تشگشداًیذ‪.‬‬
‫‪ ‬هسذ ‪ invert‬همذاس زوام ًماط سا هؼىَس هی وٌذ‪ ،‬تا اسسفادُ اص فشهَل صیش‪:‬‬
‫‪ً pixel$‬مغِای اص غفحِ ٍ ‪ result‬همذاس ًمغِ تؼذ اص اػوال هسذ اسر‪#‬‬
‫‪result = 5-pixel‬‬
‫‪ ‬هسذ ‪ clear‬زوام غفحِ سا خان هیوٌذ‪ .‬یؼٌی همذاس زوام ًماط غفحِ سا غفش هیوٌذ‪.‬‬
‫‪ ‬هسذ ‪ draw‬زوام غفحِ سا دس یه سضسِ لشاس هیدّذ ٍ تشهیگشداًذ‪.‬‬
‫‪ ‬دس زواهی هحاسثاذ‪ ،‬اگش همذاس ًمغِ ای ووسش اص غفش تذسر آهذ‪ ،‬همذاس آى سا تشاتش تا غفش دس ًظش تگیشیذ‪ .‬اگش‬
‫همذاس ًمغِ تیطسش اص ‪ 5‬ضذ‪ ،‬همذاس آى سا تشاتش تا ‪ 5‬دس ًظش تگیشیذ‪.‬‬
‫زوشیي سشی دٍم تشًاهِ ساصی ضیءگشا‬
‫‪8‬‬
‫‪ ‬دس غَسزی وِ دٍ ‪ Layer‬تا ّن ‪ blend‬ضذًذ ٍ اتؼاد هسفاٍزی داضسٌذ تایذ تِ غَسذ صیش ‪ Layer‬حاغل اص‬
‫زشویة سا تساصیذ‪:‬‬
‫‪ً .1‬ماط هطسشن سا تا فشهَل هشتَط تِ ‪ blending‬هشتَط زشویة وٌیذ‪.‬‬
‫‪ً .2‬ماط غیشهطسشن وِ دس یىی ّسر ٍ دس دیگشی ًیسر سا تذٍى زغییش دس ‪ًْ Layer‬ایی لشاس دّیذ‪.‬‬
‫‪ .3‬همذاس ًماعی وِ دس ّیچوذام اص ‪ّ Layer‬ا ًیسسٌذ سا ‪ 5‬دس ًظش تگیشیذ‪.‬‬
‫‪ ‬هخسػاذ غفحِ اص تاال سور چح ضشٍع هیضَد‪:‬‬
‫‪ً ‬وًَِ ای اص خشٍجی حاغل اص فشاخَاًی چٌذ هسذ سسن ‪$‬لسور خاییي ضىل تا هسذ ‪ addPoint‬خیادُساصی ضذُ‬
‫اسر‪:#‬‬
‫زوشیي سشی دٍم تشًاهِ ساصی ضیءگشا‬
‫‪9‬‬
‫تمریه‪ :3‬شرکت وانسازی‬
‫ضشور ‪ Nickles Bakery‬لػذ داسد سیسسن فشٍش هحػَالذ خَد سا خَدواس وٌذ‪ .‬تِ ایي غَسذ وِ خشیذاس تا چٌذ‬
‫جولِ خشیذ خَد سا هطخع هیوٌذ ٍ دس اًسْا هحػَل تِ ّوشاُ فاوسَس خشیذ تِ خشیذاس دادُ هیضَد‪.‬‬
‫ایي ضشور تشای ضشٍع زٌْا ‪ 3‬هحػَل صیش سا تِ ایي سٍش تِ فشٍش هی سساًذ‪:‬‬
‫چربی‬
‫کالری‬
‫وزن‬
‫اسم محصول‬
‫قیمت‬
‫‪1%‬‬
‫‪110‬‬
‫‪560gr‬‬
‫‪Whole Grain White Bread‬‬
‫‪1$‬‬
‫‪1.5%‬‬
‫‪100‬‬
‫‪728gr‬‬
‫‪Honey Whole Wheat‬‬
‫‪2$‬‬
‫‪0.5%‬‬
‫‪90‬‬
‫‪672gr‬‬
‫‪Texas Toast‬‬
‫‪5$‬‬
‫دس خَاسر خشیذاس تِ ّش غَسذ هوىي اسر تاضذ‪ ،‬فمظ هَاسد صیش سا دس هَسد ایي دسخَاسر هیداًین‪:‬‬
‫‪ ‬خشیذاس اسن هحػَالذ سا تِ ّواى ضىل وِ هیداًین دس جوالزص هیآٍسد‪.‬‬
‫‪ ‬خشیذاس دلیماً یه هحػَل سا تشای خشیذ اًسخاب هیوٌذ‪.‬‬
‫‪ ‬دس ًْایر خشیذاس هوىي اسر ّشیه اص هحذٍدیرّای صیش سا دس هَسد سفاسش خَد اػوال وٌذ‪ٍ ،‬لی حذالل یىی‬
‫اص ایي هحذٍدیرّا سا ػالٍُ تش ًام هحػَل تایذ اػالم وٌذ‪ .‬دس غیش ایٌػَسذ تایذ خیغام «هطىل دس آهادُساصی‬
‫هحػَل» ًوایص دادُ ضَد وِ دس اداهِ زَضیح آى آهذُ اسر‪.‬‬
‫زوشیي سشی دٍم تشًاهِ ساصی ضیءگشا‬
‫‪15‬‬
‫مثال‬
‫فرمت درخواست‬
‫محدودیت‬
‫‪Texas Toast‬‬
‫]‪[product-name‬‬
‫ًام هحػَل‬
‫‪1500$‬‬
‫‪[integer]$‬‬
‫ّضیٌِ‬
‫‪1000 Fat Calories‬‬
‫‪[integer] Fat Calories‬‬
‫والشی چشتی‬
‫‪2350 grams‬‬
‫‪[integer] grams‬‬
‫ٍصى‬
‫‪ ‬تِ جض هحذٍدیر ًام هحػَل‪ ،‬تالی هحذٍدیرّا تِ هؼٌای حذاوثش هوىي تشای آى هحذٍدیر اسر‪.‬‬
‫‪ ‬والشی چشتی‪ ،‬هیضاى دسغذ چشتی دس والشی هحػَل اسر‪$.‬دسغذ چشتی ضشتذس والشی‪#‬‬
‫‪ ‬فشؼ وٌیذ ّوَاسُ زؼییي ایي هحذٍدیرّا دس جوالذ هثثر اسر ٍ دسخَاسر ًویزَاًذ تا جولِی‬
‫هٌفی خالف ایي هحذٍدیرّا سا تخَاّذ‪.‬‬
‫یه دسخَاسر هحسول هیزَاًذ تِ ضىل صیش تاضذ‪:‬‬
‫‪I want to buy Whole Grain White Bread. I have 300$. My doctor said I can have up‬‬
‫‪to 1000 Fat Calories this weekend. I think I would be staying all day here if you‬‬
‫!‪don’t stop looking at me and go start making my bread‬‬
‫دس اداهِ خس اص خشداصش دسخَاسر خشیذاس‪ ،‬تا زَجِ تِ تَدجِ ضشور ساخسي هحػَل آغاص هیضَد‪.‬‬
‫تشای ساخسي هحػَالذ ایي ضشور‪ ،‬حیازی زشیي هادُ اٍلیِ‪ ،‬خویش ًاى اسر‪ .‬تشای ایي هٌظَس ایي ضشور یه هضسػِ گٌذم‬
‫خشیذاسی وشدُ اسر‪ .‬تشای ساخسي خویش ًاى تایذ همذاس هٌاسثی گٌذم سا اص هضسػِ تشداضر وشدُ تاضین‪.‬‬
‫تشای ایي واس تا تشداضسي اص تَدجِ ضشور‪ ،‬همذاسی داًِ گٌذم خشیذاسی هیوٌین‪ .‬تؼذ اص واضسي داًِ گٌذم‪ ،‬تا یه ّفسِ‬
‫آتیاسی سٍصاًِ‪ّ ،‬ش داًِ گٌذم زثذیل تِ یه ضاخِ گٌذم هیضَد ٍ هیزَاًین آى سا تشداضر وٌین‪.‬‬
‫تؼذ اص تشداضر همذاس هٌاسة تافِ گٌذم‪$‬دسسِ گٌذم‪ #‬هیزَاًین واس اله وشدى‪ ،‬وَتیذى ٍ خویش وشدى سا آغاص وٌین‪.‬‬
‫تؼذ اص ایي هشحلِ خویش گٌذم آهادُ هیضَد ٍ تا زَجِ تِ هحػَل هَسد ًیاص همذاسی اص آى اسسفادُ هیضَد‪.‬‬
‫تا زَجِ تِ ایٌىِ آهادُ وشدى خویش گٌذم‪ ،‬عثك هشاحل گفسِ ضذُ‪ ،‬یه ّفسِ عَل هیوطذ‪ ،‬هوىي اسر خشیذاسی دس‬
‫حیي اًجام ایي هشاحل خشیذ جذیذی اًجام دّذ‪ .‬دس ایٌػَسذ خشیذاس سا دس یه غف لشاس ًویدّین‪ ،‬فمظ تِ خشیذاس خیغام‬
‫«هطىل دس آهادُساصی هحػَل» سا وِ دس اداهِ آهذُ اسر سا ًطاى هیدّین!‬
‫پیغام «مشکل در آمادهسازی محصول»‪:‬‬
‫دس غَسزی وِ خشیذاس دسخَاسر دسسسی ًذادُ تاضذ‪ ،‬ضشور دس حال آهادُساصی هحػَل تشای خشیذاس تاضذ ٍ یا تَدجِ‬
‫ضَد‪:‬‬
‫‪Your request cannot be processed.‬‬
‫تشای خیادُساصی اص یه عشح ضیءگشا ووه هیگیشین وِ دس اداهِ ًحَُ خیادُساصی آى زَضیح دادُ ضذُ اسر‪.‬‬
‫زوشیي سشی دٍم تشًاهِ ساصی ضیءگشا‬
‫هَجَد تشای زَلیذ زوام هحػَالذ خَاسسِ ضذُ وافی ًثاضذ‪ّ ،‬یچىاسی ًثایذ اًجام ضَد ٍ فمظ خیغام صیش تِ خشیذاس دادُ‬
‫‪11‬‬
‫پیاده سازی مدل شیءگرا‪:‬‬
‫تشای ول ضشور والس ‪ NicklesBakeryInc‬سا خیادُ ساصی وٌیذ‪ .‬دلر وٌیذ وِ فمظ ایي یه والس سا دس فایل‬
‫‪ public‬زؼشیف وٌیذ‪:‬‬
‫‪public class NicklesBakeryInc‬‬
‫{‬
‫;)‪NicklesBakeryInc(double initialBudget‬‬
‫;)‪String processRequest(String request‬‬
‫;)‪setBudget(double budget‬‬
‫;)(‪int getBudget‬‬
‫;)(‪int getWheatFlourAmount‬‬
‫;)(‪BakeryFactory getBakeryFactory‬‬
‫;)(‪Farm getFarm‬‬
‫;)(‪BakeryTime getTime‬‬
‫;)‪void setTime(BakeryTime time‬‬
‫}‬
‫‪ ‬ساصًذُ ضشور سا تا یه تَدجِ اٍلیِ ساُ هیاًذاصد‪.‬‬
‫‪ ‬هسذ ‪ processRequest‬دسخَاسر خشیذاس سا دس لالة یه سضسِ دسیافر هیوٌذ ٍ تا زَجِ تِ زَضیحاذ اٍل‬
‫زوشیي یا فاوسَس خشیذ سا تِ خشیذاس هی دّذ یا هطىل دس خشداصش دسخَاسر سا اػالم هیوٌذ‪ً .‬حَُ خیادُساصی‬
‫ایي هسذ دس اًسْای زوشیي دس تخص «خشداصش دسخَاسر» آهذُ اسر‪.‬‬
‫زوشیي سشی دٍم تشًاهِ ساصی ضیءگشا‬
‫‪12‬‬
‫‪ ‬هسذّای ‪ getBudget ٍ setBudget‬اهىاى دسسشسی ٍ زغییش همذاس تَدجِ ضشور سا هیدٌّذ‪ .‬همذاسی وِ‬
‫‪ getBudget‬تش هیگشداًذ‪ ،‬وف همذاس ٍالؼی تَدجِ اسر‪ .‬یؼٌی دس غَسزیىِ تَدجِ ‪ 10.5‬دالس تاضذ‪ ،‬تایذ‬
‫همذاس ‪ 10‬سا تشگشداًذ‪.‬‬
‫‪ ‬هسذ ‪ getWheatFlourAmount‬همذاس خویش زَلیذ ضذُ دس واسخاًِ سا تش هیگشداًذ‪.‬‬
‫‪ ‬هسذّای ‪ getFarm ٍ getBakeryFactory‬اهىاى دسسشسی تِ هضسػِ ٍ واسخاًِ ضشور سا هیدٌّذ‪.‬‬
‫‪ ‬هسذّای ‪ getTime ٍ setTime‬اهىاى دسسشسی ٍ زغییش ضیء صهاى سا هیدٌّذ‪.‬‬
‫‪class BakeryTime‬‬
‫{‬
‫;)(‪BakeryTime‬‬
‫;)‪void setBakeryTime(int time‬‬
‫;)(‪int getBakeryTime‬‬
‫;)(‪void stepTime‬‬
‫}‬
‫‪ ‬ساصًذُ والس‪ ،‬همذاس اٍلیِ صهاى سا تا ػذد یه همذاسدّی هیوٌذ‪.‬‬
‫‪ ‬هسذّای ‪ getBakeryTime ٍ setBakeryTime‬اهىاى دسسشسی ٍ زغییش صهاى سا هیدٌّذ‪.‬‬
‫‪ ‬هسذ ‪ stepTime‬یه ٍاحذ تِ صهاى اضافِ هیوٌذ‪.‬‬
‫ایي ضشور تایذ یه هضسػِ ٍ یه واسخاًِ تشای ساخر ًاى داضسِ تاضذ‪ .‬تشای واسخاًِ والس ‪ BakeryFactory‬سا‬
‫خیادُساصی وٌیذ ٍ تشای هضسػِ والس‪ Farm‬سا خیادُساصی وٌیذ‪.‬‬
‫‪class BakeryFactory‬‬
‫{‬
‫;)‪BakeryFactory(Wheat[] sheaves‬‬
‫;)‪addSheaves(Wheat[] sheaves‬‬
‫;)(‪void grind‬‬
‫;)(‪WheatFlour knead‬‬
‫‪ ‬ساصًذُ والس ‪ BakeryFactory‬تا گشفسي چٌذ تافِ گٌذم ضیء سا همذاس دّی اٍلیِ هیوٌذ‪ .‬هوىي اسر‬
‫آسگَهاى ‪ null‬تاضذ‪ ،‬دس ایٌػَسذ والس تذٍى ّیچ تافِی گٌذهی ساخسِ هیضَد‪.‬‬
‫‪ ‬هسذ ‪ addSheaves‬چٌذ تافِ گٌذم سا تِ واسخاًِ اضافِ هیوٌذ‪.‬‬
‫‪ ‬هسذ ‪ grind‬واس وَتیذى سا اًجام هیدّذ‪ٌّ .‬گام غذا صدى ایي هسذ زوام تافِّای گٌذم هَجَد اهىاى خویش‬
‫ضذى خیذا هیوٌٌذ‪ .‬اگش تؼذ اص غذا صدى ایي هسذ تافِی گٌذهی اضافِ ضذ‪ ،‬ایي تافِی جذیذ اهىاى خویش ضذى‬
‫زوشیي سشی دٍم تشًاهِ ساصی ضیءگشا‬
‫}‬
‫‪13‬‬
‫ًذاسد ٍ تایذ تا غذا صدى ایي هسذ‪ ،‬ایي اهىاى سا تِ آى اضافِ وشد‪ .‬ایي هسذ خس اص ازوام واس خیغام صیش سا ًوایص‬
‫هیدّذ‪:‬‬
‫‪[sheaves-count] sheaves grinded successfully.‬‬
‫دس غَسزی وِ زؼذاد تافِّا یه تَد تِ جای ‪ sheaves‬تایذ ‪ً sheaf‬وایص دادُ ضَد‪:‬‬
‫‪1 sheaf grinded successfully.‬‬
‫تشای حاالذ دیگش زٌْا زؼذاد تافِّایی وِ وَتیذُ ضذُ اًذ سا تایذ تِ جای ]‪ [sheaves-count‬لشاس دّیذ‪:‬‬
‫‪123 sheaves grinded successfully.‬‬
‫‪ ‬هسذ ‪ knead‬زوام تافِّایی وِ وَتیذُ ضذُاًذ سا خویش هیوٌذ ٍ یه ضیء اص ًَع ‪ WheatFlour‬تش هی‪-‬‬
‫گشداًذ‪ .‬تِ اصای ّش ‪ 55‬تافِ وَتیذُ ضذُ‪ ،‬یه ٍاحذ تِ ضیء اعالق هیوٌین‪ .‬تِ عَس هثال اگش ‪ 175‬تافِ وَتیذُ‬
‫ضذُ داضسین‪ٍ 3 ،‬احذ تشای همذاس ‪ WheatFlour‬دس ًظش هیگیشین ٍ ‪ 25‬تافِ وَتیذُ ضذُ دسر ًخَسدُ تالی‬
‫هیهاًذ‪ .‬دس غَسزی وِ ووسش اص ‪ 55‬تافِی وَتیذُ ضذُ ٍجَد داضر‪ ،‬ایي هسذ تایذ همذاس ‪ null‬سا تشگشداًذ‪.‬‬
‫‪class WheatFlour‬‬
‫{‬
‫;)‪WheatFlour(int amount‬‬
‫;)‪void setAmount(int amount‬‬
‫;)(‪int getAmount‬‬
‫}‬
‫‪ ‬ساصًذُ والس تا گشفسي همذاس خویش‪ ،‬ضیء سا هیساصد‪.‬‬
‫زوشیي سشی دٍم تشًاهِ ساصی ضیءگشا‬
‫‪14‬‬
‫‪ ‬هسذّای ‪ getAmount ٍ setAmount‬اهىاى دسسشسی ٍ زغییش همذاس خویش سا هیدٌّذ‪.‬‬
‫‪class Farm‬‬
‫{‬
‫;)(‪Farm‬‬
‫;)(‪void plow‬‬
‫;)‪boolean seed(int num‬‬
‫;)(‪boolean water‬‬
‫;)(‪Wheat[] harvest‬‬
‫;)(‪BakeryTime getTime‬‬
‫;)‪void setTime(BakeryTime time‬‬
‫}‬
‫‪ ‬ساصًذُ والس تا غذا صدى هسذ ‪ plow‬تایذ هضسػِ سا ضخن تضًذ ٍ سدس ضیء سا تساصد‪.‬‬
‫‪ ‬هسذ ‪ plow‬هضسػِ سا ضخن هی صًذ‪ .‬اگش هضسػِ ضخن صدُ ًطذُ تاضذ‪ ،‬غذا صدى ّشوذام اص هسذّا تایذ تیزأثیش‬
‫تاضذ ٍ ّش هسذ تا همذاس هخػَظ خَد سا تشای ایي ازفاق اػالم هی وٌٌذ‪ .‬دس غَسزی وِ هضسػِ خش تاضذ‪ ،‬ضخن‬
‫صدى تی زأثیش خَاّذ تَد‪ .‬زا صهاًی وِ هضسػِ تشداضر ضَد‪ .‬دس غَسزی وِ هضسػِ خالی تاضذ‪ ،‬ضخن صدى هَفمیر‪-‬‬
‫آهیض خَاّذ تَد ٍ خیغام صیش تایذ دس یه خظ ًوایص دادُ ضَد‪:‬‬
‫‪Farm has been plowed.‬‬
‫‪ ‬هسذ ‪ seed‬تِ زؼذاد خَاسسِ ضذُ داًِ دس هضسػِ هیواسد ٍ دس اًسْا همذاس ‪ true‬سا تش هیگشداًذ‪ .‬دس غَسزیىِ‬
‫هضسػِ ضخن صدُ ًطذُ تاضذ‪ ،‬واسی ًویوٌذ ٍ همذاس‪ false‬سا تش هیگشداًذ‪ .‬دلر وٌیذ تؼذ اص یه تاس فشاخَاًی‬
‫ایي هسذ‪ ،‬دیگش اهىاى اضافِ وشدى داًِ ٍجَد ًذاسد زا تؼذ اص تشداضر ٍ ضخن دٍتاسُ‪ .‬زا لثل اص آى غذا صدى ایي‬
‫‪ ‬هسذ ‪ water‬هضسػِ سا آتیاسی هیوٌذ‪ّ .‬ش سٍص فمظ یىثاس هیزَاى هضسػِ سا آتیاسی وشد‪ .‬دس غَسزی وِ هضسػِ‬
‫ضخن صدُ ًطذُ تاضذ یا تیطسش اص یىثاس دس سٍص تخَاّین هضسػِ سا آتیاسی وٌین‪ ،‬ایي هسذ واسی ًویوٌذ ٍ همذاس‬
‫‪ false‬سا تش هیگشداًذ‪.‬‬
‫‪ ‬هسذّای ‪ getTime ٍ setTime‬اهىاى دسسشسی ٍ زغییش ضیء صهاى سا هیدٌّذ‪.‬‬
‫تؼذ اص ‪ 7‬تاس آتیاسی‪ ،‬زواهی داًِّا زثذیل تِ گٌذم هیضًَذ ٍ هیزَاى گٌذمّای زَلیذ ضذُ سا تشداضر وشد‪.‬‬
‫زوشیي سشی دٍم تشًاهِ ساصی ضیءگشا‬
‫هسذ واسی اًجام ًویدّذ ٍ هسذ زٌْا همذاس ‪ false‬سا تش هیگشداًذ‪ّ .‬ضیٌِ واضر ّش داًِ ‪ 0.01$‬اسر‪.‬‬
‫‪15‬‬
‫‪ ‬هسذ ‪ harvest‬زوام داًِّایی وِ زثذیل تِ گٌذم ضذُاًذ سا تشداضر هیوٌذ ٍ تش هیگشداًذ‪ .‬تؼذ اص تشداضر‬
‫هضسػِ خالی هیضَد ٍ هیزَاى تا ضخن صدى دٍتاسُ اص هضسػِ اسسفادُ وشد‪ .‬لثل اص تشداضر گٌذم ًویزَاى هضسػِ‬
‫سا ضخن صد‪.‬‬
‫‪class Wheat‬‬
‫{‬
‫;)‪setID(int id‬‬
‫;)(‪int getID‬‬
‫}‬
‫‪ ‬هسذّای ‪ getID ٍ setID‬اهىاى دسسشسی ٍ زغییش ضٌاسِی گٌذم سا هیدٌّذ‪ .‬ضٌاسِی ّشگٌذم سا ٌّگام‬
‫تشداضر وشدى تایذ تشاتش تا صهاى وًٌَی لشاس دّیذ‪.‬‬
‫پردازش درخواست‪:‬‬
‫دس ایي تخص ًحَُ خیادُساصی هسذ ‪ processRequest‬اص والس ‪ NicklesBakeryInc‬ضشح دادُ هیضَد‪:‬‬
‫ّش دسخَاسر تِ غَسذ یه سضسِ اص خشیذاس دسیافر هیضَد‪ .‬دس غَسزی وِ ضشور دس حال آهادُساصی یه هحػَل‬
‫دیگش تَد ٍیا دسخَاسر‪ ،‬عثك زَضیحاذ تخص هحذٍدیرّای دسخَاسر خشیذاس‪ً ،‬الع تَد یا تَدجِ ضشور وافی ًثَد‬
‫تایذ خیغام «هطىل دس آهادُساصی هحػَل» تشگشداًذُ ضَد‪.‬‬
‫دس غیش ایٌػَسذ خشداصش دسخَاسر آغاص هیضَد‪.‬‬
‫تا زَجِ تِ اٍلَیر هحذٍدیرّا تایذ دس خَاسر تشسسی ضَد‪:‬‬
‫‪ ‬دس غَسزیىِ سمف ّضیٌِ زَسظ خشیذاس زؼییي ضذُ تَد‪ ،‬تا سمف ّضیٌِ ضشٍع وٌیذ ٍ حذاوثش هحػَلی وِ‬
‫زوشیي سشی دٍم تشًاهِ ساصی ضیءگشا‬
‫‪16‬‬
‫اهىاى زَلیذ آى ٍجَد داسد سا دس ًظش تگیشیذ ٍ آًمذس زؼذاد هحػَالذ سا ون وٌیذ وِ زوام هحذٍدیرّای دیگش‬
‫سػایر ضذُ تاضٌذ‪.‬‬
‫‪ ‬دس غَسزیىِ سمف ّضیٌِ هطخع ًطذُ تَد ٍلی سمف ٍصى زؼییي ضذُ تَد‪ ،‬تاص ّن حذاوثش زؼذاد هحػَالذ سا‬
‫دس ًظش تگیشیذ ٍ آًمذس اص ایي زؼذاد ون وٌیذ زا هحذٍدیرّای دیگش ّن سػایر ضذُ تاضٌذ‪.‬‬
‫‪ ‬دس اًسْا اگش ّیچ هحذٍدیسی تِ جض سمف والشی چشتی زؼییي ًطذُ تَد‪ ،‬حذاوثش زؼذاد هحػَالذ سا تش اساس‬
‫ایي هحذٍدیر خیذا وٌیذ‪.‬‬
‫تؼذ اص خیذا وشدى زؼذاد هحػَالذ تا ووه جذٍل صیش همذاس خویش هَسد ًیاص سا هحاسثِ وٌیذ‪:‬‬
‫مقدار خمیر‬
‫نام محصول‬
‫‪20‬‬
‫‪Whole Grain White Bread‬‬
‫‪10‬‬
‫‪Honey Whole Wheat‬‬
‫‪8‬‬
‫‪Texas Toast‬‬
‫تا زَجِ تِ همذاس خویش هَسد ًیاص‪ ،‬زؼذاد داًِ ّای هَسد ًیاص سا تذسر آٍسیذ ٍ سدس تا وسش تَدجِ اص ضشور تِ ایي‬
‫زؼذاد داًِ دس هضسػِ تىاسیذ‪ .‬دس ًْایر زوام هشاحل گفسِ ضذُ تشای ساخر خویش سا عی وٌیذ زا خویش تِ اًذاصُ وافی‬
‫ساخسِ ضَد‪.‬‬
‫تشای ضثیِساصی گزس صهاى خس اص واضسي داًِّا‪ ،‬دس یه حلمِ فمظ ‪ 7‬تاس هسذ ‪ stepTime‬اص ضیء صهاى‬
‫‪ BakeryTime‬غذا تضًیذ‪ .‬تا ایي ًَع ضثیِساصی اهىاى ٍجَد دسخَاسر دس حیي خشداصش یه دسخَاسر اص تیي‬
‫هیسٍد‪ٍ .‬لی وواواى ایي لاتلیر تشسسی هیضَد‪ .‬زَضیحاذ تیطسش دس اًسْای زوشیي آهذُ اسر‪.‬‬
‫تؼذ اص تذسر آٍسدى خویش تِ اًذاصُ وافی‪ ،‬تا وسش وشدى همذاس هَسد ًیاص تشای ساخر هحػَل اص همذاس خویش هَجَد‪،‬‬
‫هحػَل ساخسِ هیضَد ٍ ّوچٌیي تِ همذاس ّضیٌِ خالع دسیافسی اص خشیذاس تِ تَدجِ ضشور اضافِ هیضَد‪ .‬فاوسَس‬
‫تایذ تِ غَسزی وِ دس اداهِ آهذُ اسر‪ ،‬زَسظ ایي هسذ تشگشداًذُ ضَد‪.‬‬
‫دس زواهی لسورّای فاوسَس تِ جای همذاس ٍالؼی تَدجِ اص وف ایي همذاس تایذ اسسفادُ وٌیذ‪.‬‬
‫تا زَجِ تِ ایٌىِ سمف ّضیٌِ زؼییي ضذُ تَد یا ًِ‪ ،‬دٍ ًَع فاوسَس داسین‪:‬‬
‫‪Invoice:‬‬
‫]‪[product-name] x [amount‬‬
‫‪Total Price: [price]$‬‬
‫‪Invoice:‬‬
‫]‪[product-name] x [amount‬‬
‫‪Paid: [paid]$‬‬
‫‪Change: [change=paid-price]$‬‬
‫‪Total Price: [price]$‬‬
‫زوشیي سشی دٍم تشًاهِ ساصی ضیءگشا‬
‫دس غَسزی وِ هحذٍدیر ّضیٌِ زؼییي ضذُ تَد‪ ،‬تالی خَلی وِ تایذ تشگشداًذُ ضَد ّن تایذ دس فاوسَس دسج ضَد‪:‬‬
‫‪17‬‬
‫دس ّش دٍ ًَع فاوسَس‪ ،‬تایذ تِ اًذاصُ ‪ TotalPrice‬تِ تَدجِ ضشور اضافِ ضَد‪.‬‬
‫تشای ًوًَِ ایي دٍ فاوسَس اص خشٍجیّای سیسسن ّسسٌذ‪:‬‬
‫‪Invoice:‬‬
‫‪Texas Toast x 100‬‬
‫‪Total Price: 500$‬‬
‫فاوسَس تا ّضیٌِ زؼییي ضذُ‪:‬‬
‫‪Invoice:‬‬
‫‪Honey Whole Wheat x 112‬‬
‫‪Paid: 250$‬‬
‫‪Change: 26$‬‬
‫‪Total Price: 224$‬‬
‫توجه‪:1‬‬
‫دس زوشیي ضواسُ ‪ ،3‬فمظ خشٍجی ضوا تشسسی ًویضَد‪ .‬زواهی هسذّای ضوا زَسظ ساهاًِ زػحیح خَدواس تِ زٌْایی‬
‫تشسسی هیضًَذ زا واسوشد دسسر آًْا هطخع ضَد‪ً .‬حَُی خیادُساصی هسذّا ّن دس زحَیل حضَسی تشسسی هیضًَذ‪.‬‬
‫دس ًسیجِ خیادُساصی زٌْا یه هسذ وِ خشٍجی دسسر سا تذّذ‪ً ،‬وشُای دسیافر ًخَاّذ وشد‪.‬‬
‫توجه‪:2‬‬
‫دلر وٌیذ وِ دس ّیچىذام اص زوشیيّا ًثایذ وذ ضوا‪ ،‬دس ّیچ حالسی‪ ،‬خغای صهاى اجشا زَلیذ وٌذ‪$ .‬خغاّایی هاًٌذ‪:‬‬
‫زوشیي سشی دٍم تشًاهِ ساصی ضیءگشا‬
‫‪18‬‬
‫‪#NullPointerException‬‬
‫هَفك تاضیذ‬