inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Java로 배우는 자료구조

메서드 호출과 프로그램의 기능적 분할 1

왜 main 함수 안에서 함수를 정의하면 오류가 나는 건가요?

4249

토마토

작성한 질문수 4

0

static은 원래 main 함수 안에서 정의 하면 안 되는건가요?

왜 그러면 안 되나요? 

java

답변 1

0

김현지

안녕하세요, 토마토님!

자바에서는 메소드를 중첩으로 정의하는 경우가 없습니다. (클래스는 중첩이 가능합니다.)

따라서 main 메소드 내부에서 메소드를 정의하는 경우는 특별한 경우에만 가능합니다.

public static void main(String[] args) {

      Comparator<Integer> compare = new Comparator<Integer>() {

            @Override

            public int compare(Integer o1, Integer o2) {

                  return o1 - o2;

            }

      };

}

위의 경우는 Comparator 인터페이스가 자바 표준 라이브러리에 포함되어있기 때문에 가능한 정의입니다.

이것 외의 사용자 정의 함수를 main 메소드 내부에 정의하려고 하면, 오류가 발생합니다.

따라서 main 메소드 외부에 메소드를 정의해준 후에 main 메소드에서 사용해주시면 됩니다.

  • static 메소드의 경우, main 메소드에서 클래스.메소드명 으로 사용할 수 있습니다.
    인스턴스 생성이 필요하지 않습니다.
  • 그 외의 메소드의 경우, 인스턴스를 생성해준 후에 사용할 수 있습니다.
    객체 생성 후 객체.메소드명 으로 사용할 수 있습니다.

혹시 궁금하신 점이 있다면 댓글 남겨주세요.

도움이 되었으면 좋겠습니다. :)

연습문제 자료들 어디서 볼 수 있을까요

3

966

0

강의자료 어디서 보나요

0

817

0

변수, 배열, 반복문에서 이중for문

1

856

1

섹션1,섹션2의 연습문제에 대한 코드 공유

0

324

0

교수님이 말씀하신 반복문 수업 끝날 때 말씀해주신 연습문제 답 코드 어딨는지 아시는 분계시나요 도와주세요

0

286

0

소수의 개념을 알겠지만 원리를 모릅니다.. 그냥 외워야 할까요?

0

787

1

강의노트를 못 찾겠습니다 ㅠㅠ

0

644

1

오버라이딩

0

405

1

강의자료는 어디서 볼수있나요??

0

495

1

2-1장 (클래스, 객체, 참조변수 3) 마지막 값이 덮어씌워지는 문제

0

214

0

추상클래스와인터페이스 관련강의

0

219

0

for구문에서 {}

1

277

2

강의자료 소스코드는 따로 없는건가요?

0

306

1

자바 IDE 선택에 대한 질문입니다.

0

372

1

inner class에 대한 질문

0

247

0

remove(index) 구현 질문

0

337

1

훌륭한 코드를 볼때 마다 감탄스럽습니다.

0

334

0

교수님이 자랑 스럽습니다.

0

209

0

상속 3에 예제 2의 영상이 올라와있어요~

0

215

0

3,4 순서가 바뀌어서 업로드 되어 있습니다

0

184

0

강의 노트는 어디서 확인할 수 있나요?

0

558

3

휼륭한 강의 감사합니다.

2

241

0

코드의 차이점이 뭔가요 ??

0

235

1

add와 remove 메소드를 사용할때, size-1에 대한 질문

0

219

1