자바를마스터하장!
30
2019-06-05 12:54:50
3
513

자바 프로그래밍 , 경우에 따라 받는 객체 다르게 만들기


안녕하세요 이제 자바 배운지 3개월된 신생아(?)입니다.. ㅜㅜ

다름이 아니라 
while(true) {
   System.out.println("번호를 고르시오 (1번, 2번, 3번)");
   String text = scan.nextLine();
   
   if (text.contentEquals("1번") || i.contentEquals("1")) {
       Vanila va = new Vanila();
       break
     }
   else
       System.out.println("잘못된 번호입니다. 다시 고르세요 ");
}
va.taste()  

상황설명 : 번호를 1,2,3번 중에 골라서 각각 번호에 맞는 객체를 생성하려고 한다. 
                1번은 바닐라 , 2번은 딸기, 3번은 초콜릿 으로 각각 클래스로 만들어져있다. 
                
질문 : 제가 이제 위에서 text로 1번을 받으면 바닐라의 객체를 생성하려고 하는데, 이게 그 블럭 안에서만 적용이 되더라구요.. 밑에서 va(바닐라 객체)의 taste(맛), price(가격) 등 함수들을 이용해야하는데, 어떻게 해야할지 모르겠습니다 ㅜㅜ 

도와주시면 감사하겠습니다 ㅜㅜ 


0
0
  • 답변 3

  • 자바를마스터하장!
    30
    2019-06-05 13:40:30

    ㅜㅜㅜ 우선 정말 빠른 답변 감사합니다 !

    while 문 밖에 Vanila va = null; 선언하고
    if 문 안에 va = new Vanila(); 하는 거 말씀 하시는거 같은데 ,

    총 맛이 바닐라랑 딸기랑 초코릿 세 가지 클래스인데,
    그러면 그 밑에 맛, 가격 함수 구할 때 각각 함수 다 써야 하나요?

    예를 들어
    위에서 Vanila va = null; , Strawberry st = null; , Chocolate co = null; 이라고 선언후에
    밑에서 scanf문에서 1번 택하면 va = new Vanila(); 가 적용이 되는데,

    그러면 이제 바닐라의 맛(taste), 가격(price) 메소드만 호출해야하는데
    사실 사용자가 입력하기 전에 어떤 값을 입력할지 몰라서 밑에 각각 클래스에 해당되는 메소드 다 작성 해야 하는 건가요?
    va.taste();
    st.taste();
    co.taste();

    va.price();
    st.price();
    co.price();

    이렇게 하니까 st가 null 값을 가져서 오류가 뜨더라구요 ....

    추가 질문 답변해주시면 감사하겠습니다 ㅜㅜ

    0
  • 자바를마스터하장!
    30
    2019-06-05 14:24:48

    정말 감사합니다 !!!!! 제가 뒷 부분을 더 공부해야겠지만 .... ㅜㅜ


    설명도 깔끔하시고 친절하게 답변 해주셔서 감사합니다 !! 좋은 하루 보내세요 

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.