آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

کار با اشیا

Ali.Ab  10 سال پیش  10 سال پیش
0 0

سلام به همه.

یه سوال خیلی ساده در مورد اشیا دارم.

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

 //کدهای کلاس اول
public int x;
classname obj=new classname();
obj.x=10;

//کدهای کلاس دوم
t.settextsize(clasname.obj.x);
+1 0
اول اینکه obj.x رو توی متد میتونی مقدار بدی در بدنه کلاس نمیتونی اینطوری مقدار بدی ..دوم اینکه classname.obj.x بی معنیه و با نام کلاس نمیتونی object هایی که در اون کلاس تعریف کردیو استفاده کنی...راه حلش اینه که ClassName obj = new ClassName(); رو در کلاس دوم بنویسی و بعدش میتونی از obj.x استفاده کنی... (10 سال پیش)
0 0
دوست عزیز واقعا از توجه و راهنماییتون ممنونم. اگه میشه یه راهنمایی هم ئرمورد تعریف متغیرش بکنید. من وقتی متغیر رو به صورت مقدار دهی اولیه تعریف میکنم درست میشه ولی اگه به این صورت بذارم نمیشه: public int x; . . . public void load();{ x=10; } (10 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
مسعود فرمانی  10 سال پیش
0 0

بعد از پرانتز متد load چون semicolon گذاشتی کدهای بین کروشه ها دیگه جزو بدنه متد محسوب نمیشن و همونطور که گفتم برای اینکه x رو توی متد load مقدار بدی باید semicolon بعد پرانتز load  رو پاک کنی...

 private int x ;
public void load(){
x = 10;
}
پاسخ به سوال 
Ali.Ab  10 سال پیش
0 0

بازم از توجهتون ممنونم.

اون سمیکلون اشتباه تایپی بود درهر صورت بدون اون هم برنامه مشکل داره. نمی دونم چرا یه چیز به این سادگی انقدر دردسر شده. واسه همین برای اینکه بیشتر از این وقت شما هم گرفته نشه سورس پروژه رو قرار دادم اگه یه نگاهی بندازید و اصلاحش کنید واقعا ممنون میشم.

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

 //اینطوری درست کار میکنه
public int x=10;

//اینطوری کار نمیکنه
public int x;
public void load(){
x=10;
}

source


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .