[해결] 클래스 메소드 (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
```
tkgksw님의 답변
에러메시지 읽어보시면 non-static method totalPrice(Order,Order,Order) cannot be referenced from a static context
즉 totalPrice(jja, jja, tang) 메소드에 static이 안붙어서 메소드를 호출하지 못하는것 같습니다.
totalPrice메소드에 static을 붙여야합니다.
sehongpark님의 답변
# 클래스 메소드
제시한 코드에서, 클래스 메소드를 호출하고 있습니다.
```
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);
}
```
wldudrhdwndi님의 답변
감사합니다