-

[JAVA 문법 Step 7] - 메서드 본문

CS/JAVA

[JAVA 문법 Step 7] - 메서드

흣차 2021. 11. 30. 23:27
728x90
반응형

메서드는 자바에서 정말 중요한 파트입니다.

메서드는 뜻이 행위라고 하는데 예를 이 사진으로 보겠습니다.

커피머신과 손님이라는 클래스를 만들었을 때 손님클래스안에는 커피마시기를 구현하고자 하고

커피머신 클래스에는 커피만들기를 구현하려고 한다고 가정합시다.

이렇게 MethodEx01 내부에 메서드를 만들고 void start(){ } 하게 되면 이 중괄호 내부에 들어가는 코딩 내용들이 start라는 메서드를 실행시켰을 때 나옵니다.

이 start() 메서드를 항상 메모리에 띄우는 방법이 있습니다.

바로 static입니다.

메서드도 이전에 배웠던 것처럼 똑같이 static을 통해 메모리 공간에 띄울 수 있습니다.

이렇게 한 번 입력해볼까요?

같은 클래스 내부니까 클래스는 굳이 안써도 되지만 여기서 더 작성해볼게요

바로 이렇게 말이죠. 그럼 출력값이 어떻게 나올까요???

start()를 내부에서 Sysout한 것과 똑같이 나와야겠죠??

이 구문이 뜨는거 확인되시나요???

지금 메모리에는 start와 main이 static에 띄워져 있습니다.

또한 main안에 MethodEx01.start()를 실행했을 때 start()메서드 내부로 들어가서 저 구문을 실행하는 원리입니다.

즉 자바는 줄순서대로 구문이 실행되는 것이 아닙니다. 꼭 유념해주세요.

 

그럼 마지막으로 외부에 손님이라는 클래스를 만들고 내부에 커피마시기 메서드를 구현하여 main안에서 실행하려면 어떻게 해야할까요?

main 내부에서 실행하려면 손님이라는 클래스 s를 새로 선언하여야 합니다.

그리고 s에 연결연산자 .을 붙이고 커피마시기메서드를 작성해주시면 s내부에 있는 커피마시기 메서드가 실행됩니다.

해당 출력값은 맨 밑에서 확인해보세요 어떤가요?? 감이 오시나요?

여기서도 s.커피마시기() <--- 이 메서드가 실행될 때 제일 위의 

void 커피마시기(){
System.out.println("손님이 커피를 마셔요");
}

 

이 구문이 실행되는 것입니다.

자바는 절대 줄순서대로 실행되는 것이 아니라, static에 띄워진, 그 중에서도 main내부에 있는 것들을 우선적으로 실행한다는 것을 꼭 아시면 좋겠습니다.

감사합니다.

728x90
반응형
Comments