java - adding an object to an array in for loop. with set and get. -
im little confused on adding objects array of 7 objects.
i have loop , want add item object 3 arguments. have used set , this. @ end of loop, id .add item object array list. when try error:
exception in thread "main" java.lang.nullpointerexception @ item.add(item.java:88) @ homework3main.main(homework3main.java:38)
there no errors flags on lines 88 in item class , 38 in main, dont know how correct.
public class item { public static int x = 0; public static string setname; public static double setprice; public static int setprioirty; public int priority=-1; public static double price; public static string name; private static item[] list; item(){ this(-1,0, null); priority=-1; price=0; name="no name yet."; }// default constructor. public item(int i, double j, string k) { setitem(i,j,k);//constructor 3 arguments. } public void setitem (int i, double j, string k){// setting item 3 attributes. setpriority(i); setprice(j); setname(k); } public void setname(string k) {//setting individual attributes in item. // todo auto-generated method stub //page 378 name=k; priority=-1; price=0; } public void setprice(double j) {//setting individual attributes in item. // todo auto-generated method stub if (j<0&&j>100){ system.out.println("error: price low or high"); } else price=j; } public void setpriority(int i) {//setting individual attributes in item. // todo auto-generated method stub priority =((i>=0&&i<7)?i:0); } public double getprice(){ return price; } public string getname(){ return name; } public double getpriority(){ return priority; } // eclipse made me create method when wanted "add itemobject list" public static void add(item itemobject) { system.out.println("enter item"+x); if (x<7) { list[x]=itemobject; system.out.println("item added @ index " + x); x++; } } } ---------------------------------main
public class homework3main extends item { public static void main(string[] args) { item list[]=new item [7]; // array object scanner keyboard= new scanner(system.in); for(int x=0; x<list.length;x++){ item itemobject=new item (setprioirty,setprice,setname); //creating new object 3 variables, name, price, priority //list[x]=new item();// right? system.out.println("enter item want add list"); list[x].setname=keyboard.next(); system.out.println("enter price"); scanner pricedouble= new scanner(system.in); list[x].setprice=pricedouble.nextdouble(); system.out.println("enter priority of item"); scanner priorityint= new scanner(system.in); list[x].setprioirty=priorityint.nextint(); //item itemobject=new item (setprioirty,setprice,setname); list[x].add(itemobject); }
the main method wrong place initialize item's array. here,
item list[]=new item [7]; you have declared local array called list. instead, initialize list instance variable of item in constructor or part of declaration.
additionally, don't see reason why class main method, homework3main, should extend item. plus, naming convention in java name classes starting uppercase character, e.g. item , homework3main.
Comments
Post a Comment