PDA

View Full Version : مشکل در دسترسی به فیلد کلاس



odise2004
یک شنبه 10 بهمن 1389, 18:59 عصر
سلام.
اینا کلاسای من هستن!



public class Mohre
{
public int Location;
}




public class Player
{
public String Name;
public int ID;
public Mohre Green = new Mohre();
}




public class Game
{
public static int play()
{
Player[] p1 = new Player[2];
p1[0].Green.Location = 0;
return p1[0].Green.Location;
}
}

حالا اجرا که میکنم اینجا :
p1[0].Green.Location = 0
این خطا رو میده:
Object reference not set to an instance of an object
یعنی مشکل از چیه؟؟
اگه Player رو بصورت آرایه تعریف نکنم خطا نمیده اما وقتی آرایه تعریف میکنم خطا میده!

amir-yeketaz
یک شنبه 10 بهمن 1389, 22:39 عصر
مشکل اینه که شما هنوز خونه های آرایه رو مقدار دهی نکردید!!! ... یعنی باید برای هر خونه ی ارایه که یه رفرنس به کلاس player هست یه حافطه اختصاص بدین ...
الان شما دو تا خونه ی آرایه تو هیپ ساختین ولی هنوز نگفتین که این خونه های آرایه به چه شی ای از نوع player اشراه کنه!!!

با این حساب اگه قبل از این جایی که ارور وجود داره بنویسین:

p1[0] = new player();

حله دیگه ... نه؟!

موفق باشید ...

odise2004
دوشنبه 11 بهمن 1389, 13:24 عصر
ممنون.اینطوری نوشتم:



Player[] Players = new Player[4];
for (int i = 0; i < 4; i++)
Players[i] = new Player();