PDA

View Full Version : سوال: برنامه دفترچه تلفن



pakhgirl11
پنج شنبه 25 آذر 1389, 21:26 عصر
سلام
می خوام برنامه دفترچه تلفن بنویسم.خودم این طوری نوشتم ولی nullpointer errorمی ده.این یه بخش از ابرنامه امه.میشه بگید این چه errorیی است و چه جوری درست میشه.
ممنون

import java.util.Scanner;
class phonebook
{
String name;
String phone;
String cellphone;
String address;
phonebook(String n,String p,String c,String a){
name = n;
phone = p;
cellphone=c;
address=a;
}
public static void main (String[] args)
{
Scanner scan=new Scanner(System.in);
phonebook[] person=new phonebook[length];
System.out.print("please enter name of your new contact");
person[0].name=scan.next();}}

javaphantom
جمعه 26 آذر 1389, 15:37 عصر
سلام
می خوام برنامه دفترچه تلفن بنویسم.خودم این طوری نوشتم ولی nullpointer errorمی ده.این یه بخش از ابرنامه امه.میشه بگید این چه errorیی است و چه جوری درست میشه.
ممنون

import java.util.Scanner;
class phonebook
{
String name;
String phone;
String cellphone;
String address;
phonebook(String n,String p,String c,String a){
name = n;
phone = p;
cellphone=c;
address=a;
}
public static void main (String[] args)
{
Scanner scan=new Scanner(System.in);
phonebook[] person=new phonebook[length];
System.out.print("please enter name of your new contact");
person[0].name=scan.next();}}






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

توی جاوا باید حتما یک کلاس public وجود داشته باشه. که شما تعریف نکرید یا علی نوشتی class phonebook باید اینطوری بنویسی public class phonebook

بعد constructor یا همان متدود سازنده کلاس ک همنام کلاس هست باید حتما public باشه تا بتوی از بیرون از کلاس ازش instance بگیری و گرنه نمی تونی این کار رو بکنی. پس باید دوباره public رو پشتش بیاری.

متغیر length کجا تعریف شده. از کجا اومده اومدنش بهر چه بود و به کجا می ره. اگر c هم کار می کنید باید هر متغییر معلوم باشه که پدر مادرش کیه و برای چیه

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

pakhgirl11
جمعه 26 آذر 1389, 21:56 عصر
نمی دونم چی نوشتی یعنی از چه ساختار زبانی استفاده کردی یک جورایی شبیه c و java ولی هر دو اشتباه.

توی جاوا باید حتما یک کلاس public وجود داشته باشه. که شما تعریف نکرید یا علی نوشتی class phonebook باید اینطوری بنویسی public class phonebook

بعد constructor یا همان متدود سازنده کلاس ک همنام کلاس هست باید حتما public باشه تا بتوی از بیرون از کلاس ازش instance بگیری و گرنه نمی تونی این کار رو بکنی. پس باید دوباره public رو پشتش بیاری.

متغیر length کجا تعریف شده. از کجا اومده اومدنش بهر چه بود و به کجا می ره. اگر c هم کار می کنید باید هر متغییر معلوم باشه که پدر مادرش کیه و برای چیه

اگر می خواهی آرایه ای یک کلاس داشته باشی که من اینطوری فهمیدم کلا اشتباه داره کارت.
شما قبلش یک زحمت می دادیدن به خودتون یکم مطالعه می کردین بد نبود می دونم مطالعه کار خیلی زشتیه ولی شما انجام بدین
البته کاملا واضحه که برنامه تو محیط جاوا نوشته شده.شباهت چندانی هم به c نداره.
در مورد این برنامه هم من کاملا مطالعه کردم و در example ای هم ندیدم قبل اسم کلاس public نوشته باشن.هیچ وقت هم واسه این جاوا errorنداده بهم.
در مورد constructor هم تو این example که اتفاقا بی اشکال run میشه من باز هم public ندیدم.حالا اگه به فرض حرف شما درست باشه هم من تو برنامه فقط از یک class استفاده کردم.
length هم معلومه که باید تعریف بشه ولی انجا برنامه را کوتاه کردم و به جای 1 عددی نوشتم lengthیعنی کلا یه طولی ارایه.
در اخر اشکال من همون مورد اخره که خودم میدونم اشتباهه. می خوام یه ارایهای از object ها بسازم ولی در scan.next بهم error میده که نمیدونم چیه.

javaphantom
جمعه 26 آذر 1389, 22:48 عصر
البته کاملا واضحه که برنامه تو محیط جاوا نوشته شده.شباهت چندانی هم به c نداره.
در مورد این برنامه هم من کاملا مطالعه کردم و در example ای هم ندیدم قبل اسم کلاس public نوشته باشن.هیچ وقت هم واسه این جاوا errorنداده بهم.
در مورد constructor هم تو این example که اتفاقا بی اشکال run میشه من باز هم public ندیدم.حالا اگه به فرض حرف شما درست باشه هم من تو برنامه فقط از یک class استفاده کردم.
length هم معلومه که باید تعریف بشه ولی انجا برنامه را کوتاه کردم و به جای 1 عددی نوشتم lengthیعنی کلا یه طولی ارایه.
در اخر اشکال من همون مورد اخره که خودم میدونم اشتباهه. می خوام یه ارایهای از object ها بسازم ولی در scan.next بهم error میده که نمیدونم چیه.

نذاشتن public کاملا درست می گی هیچ ربطی به زمان compile time نداره یعنی می تونی هیچ کدوم رو نذاری ولی با این کار، کار خودتو محدود می کنی. حالا که انقدر می دونی داری چی کار می کنی exception ی که سیستم داره بر می گردونرو اینجا بنداز و کد درستو رو بزار نه سودو کدتو تا دقیق بشه بهت کمک کرد.