[해결] 클래스 메소드 (static 메소드)를 몰랐었음. 해결. [질문] 정답코드처럼 두 개의 클래스로 나누지 않고 (menu, order 클래스) 제가 한 것처럼 하나의 클래스로 해보고 싶습니다. (order 클래스) 그런데 어디가 틀렸는지 모르겠습니다 ㅠㅠ # 중국집 주문하기(복합 클래스) #### CODE <a class='btn btn-default' href='/codes/23202'>Link</a> ``` public class main{ public static void main (String[] args) { Order jja = new Order("짜장", 4900); Order jjam = new Order("짬뽕", 5900); Order tang = new Order("탕수육", 13900); Order.totalPrice(jja, jjam, tang); } } class Order { String name; int price; Order(String n, int p){ name = n; price = p; } void totalPrice(Order j, Order jj, Order t){ int result = 0; result = j.price + jj.price + t.price; System.out.printf("주문 합계: %d원\n", result); } } ``` #### INPUT ``` ``` #### OUPUT ``` /root/var/tmp/2020_05_01_07_59_08_1965fb75/main.java:7: error: non-static method totalPrice(Order,Order,Order) cannot be referenced from a static context Order.totalPrice(jja, jjam, tang); ^ 1 error ```
에러메시지 읽어보시면 non-static method totalPrice(Order,Order,Order) cannot be referenced from a static context 즉 totalPrice(jja, jja, tang) 메소드에 static이 안붙어서 메소드를 호출하지 못하는것 같습니다. totalPrice메소드에 static을 붙여야합니다.
# 클래스 메소드 제시한 코드에서, 클래스 메소드를 호출하고 있습니다. ``` Order.totalPrice(jja, jjang, tang); ``` 따라서 totalPrice() 메소드를, 인스턴스 메소드가 아닌, 클래스 메소드로 변경해야 합니다. ``` // static 추가 - 클래스 메소드가 됨 static void totalPrice(Order j, Order jj, Order t){ int result = 0; result = j.price + jj.price + t.price; System.out.printf("주문 합계: %d원\n", result); } ```
감사합니다