我没有长时间与Java保持联系,现在我正在努力初始化Array对象。每次它给NullPointerException。Java - 无法初始化对象数组
package RoomExpenses;
import java.util.Scanner;
我已经把所有的主要变量外PSVM
public class ExpenseManager
{
static int n=5;
static Person p[]=new Person[n];
static long average=0,total=0;
主要方法
public static void main(String[] args)
{
// p=new Person[n];
Scanner sc=new Scanner(System.in);
initialize();
System.out.println("Please enter details of all the "+n+" persons");
for(int i=0;i<n;i++)
{
//p[i]=new Person();
//It is not allowing me initialize here and giving error.
System.out.println("Details of Person No: "+(i+1));
System.out.println("Enter name: ");
p[i].Name=sc.nextLine();
System.out.println("Enter expense done by "+p[i].Name);
p[i].expense=sc.nextLong();
p[i].id=i+1;
p[i].balance=0;
}
计算平均费用
/* Calculate Average Expense */
for(int i=0;i<n;i++)
{
total+=p[i].expense;
}
average=total/n;
/* Calculate Average Expense */
计算平衡每个人都有。积极意味着人应该从别人那里得到钱。
消极手段的人应该付钱给别人
/* Calculate Balance*/
for(int i=0;i<n;i++)
{
p[i].balance=p[i].expense-average;
}
/* Calculate Balance*/
显示人的详细信息。
System.out.println("Details of all the persons.");
System.out.println("Id\t\tName\t\tExpense\t\tBalance");
for(int i=0;i<n;i++)
{
System.out.println(p[i].id+"\t\t"+p[i].Name+"\t\t"+p[i].expense+"\t\t"+p[i].balance);
}
}
public static void initialize()
{
for(int i=0;i<n;i++)
{
p[i]=new Person();
}
}
class Person
{
String Name;
int id;
long expense,balance;
Person()
{
Name="";
id=0;
expense=0;
balance=0;
}
}
总是发布*精确*堆栈跟踪/错误消息,并解释你的确切位置/时间,你遇到你的错误。理想情况下,如果您发布代码,编译并运行它来展示问题应该是微不足道的。以上内容不是这样,需要读者将您发布的代码拼凑在一起。虽然只是张贴链接不鼓励genral,*也*包括一个链接说http://pastebin.com/准备运行的代码将有助于在这种情况下,以节省不必要的努力。 –
请避免将您的代码分成块以在其间写入文本。这使得难以看出这些块是否属于一起或者是否存在代码缺失。 – Tom
对不起W.Prins /汤姆。这个网站不允许我发布更多的代码行。它要求我分裂它。 –