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

Popular posts from this blog

iphone - Three second countdown in cocos2d -

hyperlink - how to do url routing in php -

c - Avoiding Extra Malloc in Linked List (node->next = NULL) -