علت استفاده از متد equals
سلام
یک سوال برام پیش اومده این که ما چرا از متد equals برای مقایسه دو شی اسفاده میکنیم.
از اونجایی که این متد برای مقایسه باید بازتعریف بشه و چند خط کد برای بازتعریفش نیاز هست.
خب ما که میتونیم تو main متغیر های جدید تعریف کنیم و توسط get مقادیر را به اونها نسبت بدیم و از == برای مقایسه استفاده کنیم پس چرا این متد را به کار میگیریم؟
نقل قول: علت استفاده از متد equals
مقایسه با == برای مقایسه مقادیر اولیه (مثل int, char, boolean, double و...) است و همچنین برابری دو اشاره گر به یک آبجکت. اگر دو آبجکت مقادیر برابری داشته باشن و دو آبجکت یکی نباشن، باید با equals شرایط برابریشون رو مشخص کنیم.
چون مثلا:
Object o1=new Object(1);
Object o2=new Object(1);
این دو آبجکت هستند و برابر نیستند. اگر متوجه نشدی بگو مثال واضح تر بزنم
نقل قول: علت استفاده از متد equals
خیلی ممنونم از جوابتون
این را میدونستم اما سوالم چیز دیگه ای هست
مثلا تو همین نمونه شما ما میتونیم
int a=o1.Object;
int b=o2.object;
if o1==o2
.
.
.
اینطوری مقادیر را اول نسبت بدهیم بعد مقایسه کنیم
مزیت equal نسبت به این روش چیه؟
ممنونم
نقل قول: علت استفاده از متد equals
خب خیلی متدها قرار نیست کار خیلی خاصی انجام بدن. ولی فرض کنید هر آبجکت دارای 10 فیلد از انواع مختلف باشه. اون موقع برای هر مقایسه دو آبجکت از یک نوع باید ده تا شرط مثلا بذارید هر جا بخواید مقایسه انجام بدید. یا مثلا ممکنه شما بخواید برابری رو یه جور دیگه تعریف کنید. مثلا من میگم دو رشته وقتی با هم برابر هستند که حروفشون برابر باشه فارغ از اینکه بزرگ یا کوچک باشه. این خودش میتونه برای یکی از فیلدها باشه. در کل یه جور جمع و جور کردن کد هست