package ayayay;
import java.util.Scanner;
public class Market {
private static int array_length;
private Scanner sc;
private Drink[] drink;
private Beer[] beer;
private Fruit[] fruit;
private Snack[] snack;
private Ramen[] ramen; //클래스 배열 생성
public Market() {
sc=new Scanner(System.in);
array_length=10;
drink = new Drink[array_length];
beer = new Beer[array_length];
fruit = new Fruit[array_length];
snack = new Snack[array_length];
ramen = new Ramen[array_length];
}
void SetNamePriceProduct(String category, String...name) {
int a,b,c,d,e;
if(category.toLowerCase().equals("drink")) {
int n=name.length;
for(int i=0;i<n;i++) {
System.out.println("name :"+ name[i]);
System.out.print("price : ");
a = sc.nextInt();
if(a>=500&&a<=2500) **drink[i] = new Drink(name[i],a);** //생성자로 값 넣기
else {
while(true) {
System.out.println("!!inpute error");
System.out.println("price :");
a = sc.nextInt();
if(a>=500&&a<=2500) {
drink[i] = new Drink(name[i],a); break;}
}
}
}
}
}//void setname 끝나는 곳.
public void print(Fruit[] f, Beer[] b, Drink[] d, Ramen[] r, Snack[] s) {
System.out.println("******************Product************");
print(f);
print(b);
print(d);
print(r);
print(s);
System.out.println("*************************************");
}
public Drink[] getD() {
return drink;
}
public Beer[] getB() {
return beer;
}
public Fruit[] getF() {
return fruit;
}
private void print(Fruit[] f) {
System.out.println("FRUIT :");
for(int j=0;j<fruit.length;j++) {
System.out.println(" "+"name :"+fruit[j].getName()+", price :"+fruit[j].getPrice());
}
}
private void print(Beer[] b) {
System.out.println("BEER :");
for(int j=0;j<beer.length;j++) {
System.out.println(" "+"name :"+beer[j].getName()+", price :"+beer[j].getPrice());
}
}
private void print(Drink[] d) {
System.out.println("DRINK :");
for(int j=0;j<drink.length;j++) {
System.out.println(" "+"name :"+drink[j].getName()+", price :"+drink[j].getPrice());
}
}
--------------------------------------------------------------
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Market m= new Market();
m.SetNamePriceProduct("DRInk", "Coke","Sprite","welchs","delmonte","cider","fanta");
m.SetNamePriceProduct("RAmen", "sin","samyang","jin","6gyejang");
m.SetNamePriceProduct("FrUit", "apple","mango","kiwi","banana","watermelon","melon","orange");
m.SetNamePriceProduct("beEr", "cloud","hite","cass");
m.SetNamePriceProduct("sNaCK", "jjanggu");
m.print(m.getF(), m.getB(), m.getD(), m.getR(), m.getS());
}
}
다른부분은 내용만 똑같은거라 짤랐고요. 중간에 setnameprice 메소드에서 drink[i] = new Drink(name[i],a); 이 내용이 있는데요 여기서 생성자 만들어서 객체를 생성한 것 아닌가요? 찾아보니까 nullpointerexception이 배열은 있는데 객체가 생성이 안된다고 하더라고요. 근데 객체생성이 안됬다고하니 답답합니다 ㅠㅠㅠ