인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

김재훈님의 프로필 이미지

작성한 질문수

나도코딩의 자바 기본편 - 풀코스 (20시간)

퀴즈 #7

코드 순서 문의

작성

·

87

0

 코드 순서에 궁금한 점이 있어 질문드립니다 !

class HamBurger {
    String name;

    public HamBurger(String name) {
        this.name = name;
    }

    public HamBurger() {
        this("햄버거");
    }
}

이렇게 작성되는 코드와

class HamBurger {
    String name;

    public HamBurger() {
        this("햄버거");
    }

    public HamBurger(String name) {
        this.name = name;
    }
}

이렇게 작성되는 코드가 구동에 있어 차이가 발생하는지 궁금합니다 !

코드는 위에서부터 순서대로 진행된다고 알고 있어서 첫 번째 방법의 코드가 더 맞는 방법이 아닌지 생각이 되는데, 선생님께서는 두 번째 방법으로 작성하셔서 차이점 설명 부탁드리겠습니다 ..!

 

추가적으로,

// 햄버거 메소드
String[] ingredient = {"양상추", "패티", "피클"};

    public void cook() {
        System.out.println(this.name + "를 만듭니다.");
        System.out.println("빵 사이에 들어가는 재료는?");
        for (int i = 0; i < ingredient.length; i++) {
            if (i == 0) {
                System.out.println("> " + ingredient[i]);
            } else {
                System.out.println("+ " + ingredient[i]);
            }

// 치즈버거 메소드
public void cook() {
        super.cook();
        System.out.println("+ 치즈");
    }

// 새우버거 메소드
public void cook() {
        super.cook();
        System.out.println("+ 새우");
    }

퀴즈를 이렇게 풀어서 정답과 동일하게 출력은 되었는데, 혹여나 풀이 방법에 틀린 점이 있거나 개선할 점이 있는지 피드백 부탁드립니다 :)

답변 1

0

나도코딩님의 프로필 이미지
나도코딩
지식공유자

안녕하세요?

자바에서 클래스 내 메소드의 정의 순서는 코드의 동작에 영향을 주지 않아요. 그래서 강의에서 정의한 순서나, 김재훈님께서 정의하신 순서나 동작은 동일합니다. 그 메소드가 어디엔가 잘 정의만 되어 있으면 문제가 없답니다 😊

풀이해주신 코드도 배열과 반복문을 활용하여 강의에서 알려드린 코드보다 더 잘 작성해주셨습니다 👍

감사합니다.

김재훈님의 프로필 이미지
김재훈
질문자

정의 순서에는 크게 상관이 없었군요 ! 감사합니다 :)