ورود

View Full Version : سوال گرامری در مورد (.) که این بار بین چند متد استفاده میشه؟(لطفا بی توجه نباشید)



اندرویدی
دوشنبه 14 اردیبهشت 1394, 18:12 عصر
سلام. یک چیزی که من هنوز متوجه نشدم استفاده از (.) بین چند تابع و یا همون متد هست. ببینید من مفهوم زیر رو کاملا متوجه میشم.


public class A {
void example(){//......}
....
}
public class b{
public static void main(String[] args){
A obj=new A();
obj.example();
}
}


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

a().b().c().d();


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


if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
}

keyhan.taktaz
دوشنبه 14 اردیبهشت 1394, 18:27 عصر
به مثال زیر دقت کن متوجه میشی

class A
{
public A hello()
{
return this;
}

public A goodBye()
{
return this;
}

}

A a = new A();
a.hello().goodBye();

اگه متودی نوع کلاس رو برگردونه میشه اینججوری استفاده کرد
بیشتر توی کلاس هایی استفاده میشه که چند متد پشت سر هم قراره اجرا بشن و برای راجتی اینجور تعریف میشه
اینو میتونید اینجوری هم اجرا کنید
A a = new A();
a.hello();
a.goodBye();

اندرویدی
دوشنبه 14 اردیبهشت 1394, 18:37 عصر
ممنون. توضیحاتتون عالی بود. یک سوال کوچکی که الان برام ایجاد شد اینه که اگر بخواهیم ترتیب اجرای متد ها رو بررسی کنیم. باید از چب به راست باشه؟ مثلا از چپ ترین متد که ()hello هست اول اجرا میشه و بعد دومین متد و الی اخر....
درسته؟

keyhan.taktaz
دوشنبه 14 اردیبهشت 1394, 18:40 عصر
فرقی نمیکنه...
بسته به نیازتون.اگه تو متود goodBye نیاز به عملیاتی دارید که تو hello اجرا میشه، اول باید hello رو اجرا کنید

tux-world
سه شنبه 15 اردیبهشت 1394, 09:00 صبح
ترتیبشو دیگه باید خودتون رعایت کنید.مگر اینکه تو متدها بررسی کنید که تابعی اجرا شده قبلش یا نه