رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

سوال درمورد استفاده از متود های تو در تو


پست های پیشنهاد شده

با سلام خدمت تمام دوستان:rolleyes:

دوستان من یه مدته تو برنامه نویسی به مشکل بر خوردم.

به دوتا عکسی که پیوست کردم نگاه کنید.

5841b796c956e_Screenshot(5).png.4f973c993ddbf480fb744aaf7633ab05.png

لینک ارسال
به اشتراک گذاری در سایت های دیگر

شما هروقت سؤالی به این شکل داری، اروری که IDE میده رو هم بنویس که بشه راحت تر راهنمایی کرد .

اگر اشتباه نکنم، شما داری متدهای موجود توی جاوارو دوباره نویسی میکنی . اگر اینطور هست، باید قبل از متد مذکور، @Override قرار بدی به این شکل :

[align=left][shcode=java]

@Override

public void onClick(View V)

{

    //anything U want

}

[/shcode]

[align=right]اگه چند لحظه روی خود متد هم با موس بایستی، خودش توی ی لیست، گزینه اضافه کردن Override رو هم نمایش میده .

البته، شما کار عجیبی توی کدت کردی ! توی ی متد، ی متد دیگه تعریف کردی . این کاملا با مفاهیم جاوا تناقض داره ! پیشنهاد میکنم جاوارو خوب مطالعه کنید . این کدی که نوشتی، از ریشه اشتباه هست .[/align]

[/align]

لینک ارسال
به اشتراک گذاری در سایت های دیگر

شما هروقت سؤالی به این شکل داری، اروری که IDE میده رو هم بنویس که بشه راحت تر راهنمایی کرد .

اگر اشتباه نکنم، شما داری متدهای موجود توی جاوارو دوباره نویسی میکنی . اگر اینطور هست، باید قبل از متد مذکور، @Override قرار بدی به این شکل :

[align=left][shcode=java]

@Override

public void onClick(View V)

{

    //anything U want

}

[/shcode]

[align=right]اگه چند لحظه روی خود متد هم با موس بایستی، خودش توی ی لیست، گزینه اضافه کردن Override رو هم نمایش میده .

البته، شما کار عجیبی توی کدت کردی ! توی ی متد، ی متد دیگه تعریف کردی . این کاملا با مفاهیم جاوا تناقض داره ! پیشنهاد میکنم جاوارو خوب مطالعه کنید . این کدی که نوشتی، از ریشه اشتباه هست .[/align]

[/align]

ممنون از پاسخ شما دوست عزیز

دوست گرامی این متودی که من استفاده کردم در جاوا وجود نداره ولی جای دیگه امتحانش کردم و کار میکنه مشکل نداره هر چند اگر متود جاوا هم بذارم ارور میده

بله سوال منم دقیقا همینه اگر در جاوا یه متدو توی یه متد دیگه استفاده کنم ارور میده ولی من مجبوری این کارو کنم به عکس دوم توجه کنید

من یه سرویس تعریف کردم که کارایی که میخوام سرویس انجام بده باید در قسمت yourcode بنویسم.

خب حالا بلفرض من میخوام یه برنامه بنویسم که با اجرا شدن سرویس یه کارو انجام بده حالا شاید کاری که میخوام انجام بشه یه متد بود و باید اونو تو قسمت yourcode بنویسم اما اگر این کارو بکنم خطا میگیره ولی من چاره دیگه ندارم مثالشم تو عکس دوم میبینید

در عکس دوم من یه متد تعریف کردم که با زدن کلید افزایش صدای گوشی عملی رو انجام بده و اونو تو قسمت استارت سرویس قرار دادم اما چون استارت شدن سرویس خودش یه متوده به من این اجازه رو نمیده البته این فقط برای من یک مثاله.

اما شاید ما یه روز یه متد داشته باشیم که بخوایم کاری انجام بده و کار ما هم خودش یک متد باشه اونوقته که باید یه متودو توی یک متد دیگه بنویسیم و در نتیجه ارور میده

من میخوام بدونم اگه لازم باشه از یک متود توی یک متد دیگه استفاده کنم باید چی کار کنم و اگر نمیشه پس تکلیف من چیه مثلا همین عکس دومو به چه صورت دیگه میتونم بنویسیسم که همین کارو برای من انجام بده؟:-/

لینک ارسال
به اشتراک گذاری در سایت های دیگر

شما هروقت سؤالی به این شکل داری، اروری که IDE میده رو هم بنویس که بشه راحت تر راهنمایی کرد .

اگر اشتباه نکنم، شما داری متدهای موجود توی جاوارو دوباره نویسی میکنی . اگر اینطور هست، باید قبل از متد مذکور، @Override قرار بدی به این شکل :

[align=left][shcode=java]

@Override

public void onClick(View V)

{

    //anything U want

}

[/shcode]

[align=right]اگه چند لحظه روی خود متد هم با موس بایستی، خودش توی ی لیست، گزینه اضافه کردن Override رو هم نمایش میده .

البته، شما کار عجیبی توی کدت کردی ! توی ی متد، ی متد دیگه تعریف کردی . این کاملا با مفاهیم جاوا تناقض داره ! پیشنهاد میکنم جاوارو خوب مطالعه کنید . این کدی که نوشتی، از ریشه اشتباه هست .[/align]

[/align]

ممنون از پاسخ شما دوست عزیز

دوست گرامی این متودی که من استفاده کردم در جاوا وجود نداره ولی جای دیگه امتحانش کردم و کار میکنه مشکل نداره هر چند اگر متود جاوا هم بذارم ارور میده

بله سوال منم دقیقا همینه اگر در جاوا یه متدو توی یه متد دیگه استفاده کنم ارور میده ولی من مجبوری این کارو کنم به عکس دوم توجه کنید

من یه سرویس تعریف کردم که کارایی که میخوام سرویس انجام بده باید در قسمت yourcode بنویسم.

خب حالا بلفرض من میخوام یه برنامه بنویسم که با اجرا شدن سرویس یه کارو انجام بده حالا شاید کاری که میخوام انجام بشه یه متد بود و باید اونو تو قسمت yourcode بنویسم اما اگر این کارو بکنم خطا میگیره ولی من چاره دیگه ندارم مثالشم تو عکس دوم میبینید

در عکس دوم من یه متد تعریف کردم که با زدن کلید افزایش صدای گوشی عملی رو انجام بده و اونو تو قسمت استارت سرویس قرار دادم اما چون استارت شدن سرویس خودش یه متوده به من این اجازه رو نمیده البته این فقط برای من یک مثاله.

اما شاید ما یه روز یه متد داشته باشیم که بخوایم کاری انجام بده و کار ما هم خودش یک متد باشه اونوقته که باید یه متودو توی یک متد دیگه بنویسیم و در نتیجه ارور میده

من میخوام بدونم اگه لازم باشه از یک متود توی یک متد دیگه استفاده کنم باید چی کار کنم و اگر نمیشه پس تکلیف من چیه مثلا همین عکس دومو به چه صورت دیگه میتونم بنویسیسم که همین کارو برای من انجام بده؟:-/

دوست عزیز، شما برای اینکه از یک متد توی متد دیگه استفاده کنید، نباید همونجا تعریفش کنید .

شما خارج از متد، توی کلاس تعریفش می‌کنید، فقط توی موارد لازم متد مورد نظر رو فراخوانی می‌کنید .

مثلا عینی بخوام بزنم:

فرض کنید شما ی شرکت خودرو سازی دارین ! برای خودروی Y از ی فلز بخصوص استفاده میکنید . رویکردتون دقیقا به این شکله :

هر سری که میخواین اون ماشین رو بسازین، میرید به معدنی که اون فلز به صورت خام موجوده، فلز رو استخراج می‌کنید، به فلز خالص تبدیل میکنید، آلیاژش میکنید و میارید توی خودروتون استفاده میکنید !

ولی کار درست در اصل اینه که شما اگر این فلز رو جای دیگه ای توی دنیا تولید نمیکنن (هیچ کتابخونه ای نیست که ازش استفاده کنید تو کدتون) ی کارخونه دیگه ایجاد کنید که فقط اون فلز رو تولید میکنه ( ی متد بنویسید که اون کار رو براتون انجام بده) نه اینکه هر سری برای هر خودرو اون فلز رو استخراج کنید ( هر سری ی تابع بنویسید) .

توضیحاتم خیلی سطح پائین بودن، شاید منظورتونو درست متوجه نشدم، بهرحال ی توضیح اجمالی بود جهت اطلاع دوستانی که نیاز داشتن ...

لینک ارسال
به اشتراک گذاری در سایت های دیگر

شما هروقت سؤالی به این شکل داری، اروری که IDE میده رو هم بنویس که بشه راحت تر راهنمایی کرد .

اگر اشتباه نکنم، شما داری متدهای موجود توی جاوارو دوباره نویسی میکنی . اگر اینطور هست، باید قبل از متد مذکور، @Override قرار بدی به این شکل :

[align=left][shcode=java]

@Override

public void onClick(View V)

{

    //anything U want

}

[/shcode]

[align=right]اگه چند لحظه روی خود متد هم با موس بایستی، خودش توی ی لیست، گزینه اضافه کردن Override رو هم نمایش میده .

البته، شما کار عجیبی توی کدت کردی ! توی ی متد، ی متد دیگه تعریف کردی . این کاملا با مفاهیم جاوا تناقض داره ! پیشنهاد میکنم جاوارو خوب مطالعه کنید . این کدی که نوشتی، از ریشه اشتباه هست .[/align]

[/align]

ممنون از پاسخ شما دوست عزیز

دوست گرامی این متودی که من استفاده کردم در جاوا وجود نداره ولی جای دیگه امتحانش کردم و کار میکنه مشکل نداره هر چند اگر متود جاوا هم بذارم ارور میده

بله سوال منم دقیقا همینه اگر در جاوا یه متدو توی یه متد دیگه استفاده کنم ارور میده ولی من مجبوری این کارو کنم به عکس دوم توجه کنید

من یه سرویس تعریف کردم که کارایی که میخوام سرویس انجام بده باید در قسمت yourcode بنویسم.

خب حالا بلفرض من میخوام یه برنامه بنویسم که با اجرا شدن سرویس یه کارو انجام بده حالا شاید کاری که میخوام انجام بشه یه متد بود و باید اونو تو قسمت yourcode بنویسم اما اگر این کارو بکنم خطا میگیره ولی من چاره دیگه ندارم مثالشم تو عکس دوم میبینید

در عکس دوم من یه متد تعریف کردم که با زدن کلید افزایش صدای گوشی عملی رو انجام بده و اونو تو قسمت استارت سرویس قرار دادم اما چون استارت شدن سرویس خودش یه متوده به من این اجازه رو نمیده البته این فقط برای من یک مثاله.

اما شاید ما یه روز یه متد داشته باشیم که بخوایم کاری انجام بده و کار ما هم خودش یک متد باشه اونوقته که باید یه متودو توی یک متد دیگه بنویسیم و در نتیجه ارور میده

من میخوام بدونم اگه لازم باشه از یک متود توی یک متد دیگه استفاده کنم باید چی کار کنم و اگر نمیشه پس تکلیف من چیه مثلا همین عکس دومو به چه صورت دیگه میتونم بنویسیسم که همین کارو برای من انجام بده؟:-/

دوست عزیز، شما برای اینکه از یک متد توی متد دیگه استفاده کنید، نباید همونجا تعریفش کنید .

شما خارج از متد، توی کلاس تعریفش می‌کنید، فقط توی موارد لازم متد مورد نظر رو فراخوانی می‌کنید .

مثلا عینی بخوام بزنم:

فرض کنید شما ی شرکت خودرو سازی دارین ! برای خودروی Y از ی فلز بخصوص استفاده میکنید . رویکردتون دقیقا به این شکله :

هر سری که میخواین اون ماشین رو بسازین، میرید به معدنی که اون فلز به صورت خام موجوده، فلز رو استخراج می‌کنید، به فلز خالص تبدیل میکنید، آلیاژش میکنید و میارید توی خودروتون استفاده میکنید !

ولی کار درست در اصل اینه که شما اگر این فلز رو جای دیگه ای توی دنیا تولید نمیکنن (هیچ کتابخونه ای نیست که ازش استفاده کنید تو کدتون) ی کارخونه دیگه ایجاد کنید که فقط اون فلز رو تولید میکنه ( ی متد بنویسید که اون کار رو براتون انجام بده) نه اینکه هر سری برای هر خودرو اون فلز رو استخراج کنید ( هر سری ی تابع بنویسید) .

توضیحاتم خیلی سطح پائین بودن، شاید منظورتونو درست متوجه نشدم، بهرحال ی توضیح اجمالی بود جهت اطلاع دوستانی که نیاز داشتن ...

ببخشید دوست عزیز من درست متوجه نشدم باید چکار کنم

میشه مثال عکس دوم که یک سرویس هست کدش رو برای من تصحیح کنید تا بفهمم باید چکار کنم؟

من حتی وقتی متودمو تو خود کلاس مینویسم تا جای دیگه فراخوانی بشه به من اجازه نمیده این کارو کنم در ضمن کد ها تست شده هست و مشکلی نداره تنها خطایی که میگیره همین متود های تو در تو هست

اگه میشه مثلا به من بگید در عکس دوم کد ها رو چکار کنم تا درست بشه در این صورت دقیقا متوجه میشم که چطور از یه متود تو یه متود دیگه استفاده کنم:blush:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

آقا خب مگه چی میشه به من جواب بدید یکی به من پاسخ بده تو همه کارام به مشکل برخوردم به خاطر این:S:s:huh:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...