PDA

View Full Version : سوال: مقداردهی اولیه به کلاس های موجود در آرایه



پرستوجان
جمعه 05 شهریور 1389, 12:52 عصر
اگرtypeازجنس کلاس باشه درتعریف یک آرایه چگونه میتوان مقداردهی اولیه نمود

manij_mhm
جمعه 05 شهریور 1389, 14:24 عصر
اگرtypeازجنس کلاس باشه درتعریف یک آرایه چگونه میتوان مقداردهی اولیه نمود

سلام.



public class s{
private int a;
public s(int h){
a = h;
}
public void print(){
Console.Write(a.ToString());
}
}
static void Main(string[] args){
s[] o ={ new s(7), new s(8), new s(9) };
o[2].print();
Console.Read();
}

پرستوجان
یک شنبه 07 شهریور 1389, 17:19 عصر
ببخشید
اگه میشه یه توضیحی راجع به خط چهارم ویازدهم بدید.
توکدوم قسمت این کد داریم کلاسمون رومقداردهی میکنیم.
شکرفراوان ازشما:لبخندساده:

manij_mhm
دوشنبه 08 شهریور 1389, 11:08 صبح
تابع

public s(int h){
a = h;
}

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

s test = new s(9)
که این خط باعث میشه تابع سازنده کلاس فراخونی بشه .طبق کد بالا مقدار ارگومان در متغیر کلاسی s.a فرار میگیره.
حالا برای یه ارایه می نویسیم:

s[] o ={ new s(7), new s(8), new s(9) };

در واقع داریم هر خونه از ارایه رو با اعداد 7و8و9 مقذاردهی می کنیم.

میتونید توی یه کلاس چند تا سازنده هم داشته باشید که موقع ایجاد یک شی از کلاس بر اساس تعداد پارامتر های ورودی تابع مورد نظر فراخونی میشه.


موفق باشید.

mostafa_shaeri_tj
دوشنبه 08 شهریور 1389, 13:07 عصر
در تعداد بالا استفاده از این روش خوب نیست.

بهتره برای تعداد بالا بعد از تعریف آرایه تو یه حلقه ی For به آیتم ها مقدار اولیه بدیم.