ورود

View Full Version : آرایه ای از کلاس



fatemehmahdieh
جمعه 02 فروردین 1392, 12:14 عصر
سلام می خواستم ببینم نوشتن چنین کدی در جاوا اشکالی داره یعنی ایجاد آرایه ای از یه کلاس
Player1[] C=new Player1[in.nextInt()];
کلاس player1 خودم تشکیل دادم
آخه کامپایلر برای این کد خطا نمی گیره اما موقع اجرا خطا ایجاد می شه :ناراحت:

younes221
جمعه 02 فروردین 1392, 23:17 عصر
سلام ؛



کلاس player1 خودم تشکیل دادم
آخه کامپایلر برای این کد خطا نمی گیره اما موقع اجرا خطا ایجاد می شه :ناراحت:
حداقل میگفتین چه خطایی ایجاد میشه !؟ دستورتون فکر نمیکنم مشکلی داشته باشه بجز اینکه خطای I/O بده . یعنی ورودی رو اشتباه وارد کردین . یا اعداد رو به صورت رشته گرفتین و باید به نوع صحیح Cast کنید .

راه حل دوم :

شما میتونید به جای ساخت آرایه Static ، از کلاس ArrayList استفاده کنید . خیلی راحت هم میتونید از طریق متدهایی که این کلاس براتون تدارک دیده مدیریتش کنید .


ArrayList<Person> arrayList = new ArrayList<>();
arrayList.add(new Person("younes", "jjjj", (byte)44));

chris66001
سه شنبه 06 فروردین 1392, 09:56 صبح
سلام می خواستم ببینم نوشتن چنین کدی در جاوا اشکالی داره یعنی ایجاد آرایه ای از یه کلاس
Player1[] C=new Player1[in.nextInt()];
کلاس player1 خودم تشکیل دادم
آخه کامپایلر برای این کد خطا نمی گیره اما موقع اجرا خطا ایجاد می شه :ناراحت:

اول : سعي كنيد براي اين كد يدونه try-catch بزاريد تا اكسپشن رو براتون Handel كنه (ارور رو toString كنيد)
دوم : الان اين دستور درسته .

Player1[] C=new Player1[in.nextInt()];

ولي تنها مشكلي كه داره اينه كه مثلا شما 3 رو وارد ميكني اين دستور مياد 3 تا ارايه رو تشكيل ميده ولي براي اينها نمياد حافظه تخصيص بده شما بايد براي تك تك عناصر آرايه كلاس رو new كني.

Player1[0] = new Player1();


سوم : يا همونطور كه دوست خوبم گفت از ArrayList استفاده كني.