我沒有長時間與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 /湯姆。這個網站不允許我發佈更多的代碼行。它要求我分裂它。 –