ورود

View Full Version : کاربرد this چیه؟



abbasalim
پنج شنبه 17 اسفند 1391, 19:45 عصر
بنام خدا
سلام
دوستان میشه یکی بهم بگه:بوس: کاربرد this چیه ؟
این مثال الان this دقیقا توش چیکار میکنهمن نمیفهمم:متفکر:


// Fig. 8.4: ThisTest.java
// this used implicitly and explicitly to refer to members of an object.

public class ThisTest
{
public static void main( String[] args )
{
SimpleTime time = new SimpleTime( 15, 30, 19 );
System.out.println( time.buildString() );
} // end main
} // end class ThisTest

// class SimpleTime demonstrates the "this" reference
class SimpleTime
{
private int hour; // 0-23
private int minute; // 0-59
private int second; // 0-59

// if the constructor uses parameter names identical to
// instance variable names the "this" reference is
// required to distinguish between names
public SimpleTime( int hour, int minute, int second )
{
this.hour = hour; // set "this" object's hour
this.minute = minute; // set "this" object's minute
this.second = second; // set "this" object's second
} // end SimpleTime constructor

// use explicit and implicit "this" to call toUniversalString
public String buildString()
{
return String.format( "%24s: %s\n%24s: %s",
"this.toUniversalString()", this.toUniversalString(),
"toUniversalString()", toUniversalString() );
} // end method buildString

// convert to String in universal-time format (HH:MM:SS)
public String toUniversalString()
{
// "this" is not required here to access instance variables,
// because method does not have local variables with same
// names as instance variables
return String.format( "%02d:%02d:%02d",
this.hour, this.minute, this.second );
} // end method toUniversalString
} // end class SimpleTime

Hybrid
پنج شنبه 17 اسفند 1391, 19:53 عصر
سلام ؛ اگه دقت کرده باشید در کلاس سازنده کلاس SimpleTime نام Parameter Variable ها و Instance Variable ها با هم دیگه برابر هستند یعنی hour با hour و... . حالا یک سوال دارم : اگه در سازنده شما بنویسید hour به کدوم hour اشاره دارین ؟ به پارامتر hour یا به متغیر نمونه hour ؟

گاهی مواقع مثل همین مثال تشابه اسمی بین Parameter Variable ها و Instance Variable ها پیش میاد واسه اینکه شما به Instace Variable ارجا داشته باشید باید از کلمه کلیدی this استفاده کنید . یعنی اگه شما بنویسی this.hour به متغیر نمونه hour ارجا دارین . بیشتر واسه شفافیت کدزنیتون حتما از کلمه کلیدی this استفاده کنید.در کل this به کلاس و شی جاری ارجا داره .

esafb52
پنج شنبه 17 اسفند 1391, 19:54 عصر
دوست عزیز شی this به شی جاری که در اون در حال برنامه نویسی هستی اشاره میکنه
مثلا
this.hour = hour به
private int hour; اشاره میکنه

amirashna
پنج شنبه 17 اسفند 1391, 20:07 عصر
اموزش کامل مربوط به This در اینحا (http://learn.jquery.com/javascript-101/this-keyword/)بخوانید

M0TR!X
جمعه 18 اسفند 1391, 02:12 صبح
اموزش کامل مربوط به This در اینحا (http://learn.jquery.com/javascript-101/this-keyword/)بخوانید

داداش اینی که شما گذاشتین جاوا اسکریپته ! اینجا تالار جاواست

vahid-p
شنبه 19 اسفند 1391, 20:07 عصر
اینجا اساتید هستند ولی خب من مبتدی حداقل با جواب دادن به این سوالات شاید کمکی کرده باشم.

حتی this رو میشه برای constructor ها هم استفاده کرد. حتی برای متد ها.
مثلا تو مثال زیر با یه بار تعریف جامع و کامل constructor ، برای constructor با پارامترهای کمتر میتوانیم از this استفاده کنیم، و نیازی به چند بار نویسی نیست. ( البته میتوان به constructor با پارامترهای کمتر هم اشاره کرد ولی خب معمولا به بیشتر ارجاع داده میشه )

class Example
{
private String fName,lName;
private int age;
public Example(String fName,String lName,int age)
{
this.fName=fName;
this.lName=lName;
this.age=age;
}

public Example(String fName,String lName)
{
this(fName,lName,18);
}
}

amirashna
دوشنبه 21 اسفند 1391, 12:13 عصر
داداش اینی که شما گذاشتین جاوا اسکریپته ! اینجا تالار جاواست

درست می گید ، اشتباه شد :)