메서드 정의
프로그래밍에서 [반복되는 명령어]들을 찾아서 별도로 묶어서 필요할때 마다 불러서 사용할 수 있도록 한것을 메서드(함수)라고 한다.
메서드를 사용하는 이유
- 프로그램의 구조화 -> 유지/보수 편리
- 반복되는 코딩-> 구조화 (재사용 코딩)
메서드 사용하면 장점
ㄱ.코드량 줄어든다 -> 컴파일 용량 줄어든다->실행 성능 향상
ㄴ.코드 가독성 좋아지고, 유지 보수 용이.
ㄷ.팀 작업 가능해짐 -> 개발 생산성 향상 ->수익
ex) 반복적인 코딩 -> 라인 긋기(50줄) ->메서드 선언 + 사용
*참고*
함수가 기본이 되는 프로그래밍 방식을 구조적 프로그래밍 언어 : C언어
객체가 기본이 되는 프로그래밍 방식을 객체 지향적 프로그래밍 언어 : Java, 요즘 대부분 언어
메서드(함수) 선언 형식
[접근지정자] [기타제어자] 리턴자료형 메서드명([매개변수...]) ----->메서드 선언부(프토로 타입)
{ 메서드 몸체(body)
===>구현부
//코딩
//
[return 리턴값;]
[return;]
}
메서드 3요소 이해
ㄱ. 기능 - 메서드명 작명 : 라인(선) 긋기(출력) 하는 기능 drawLine(내가 결정하는거임)
ㄴ. 매개변수 (drawLine 에서는 매개변수 없다고 생각하고 만듬)
ㄷ. 리턴값 + 리턴자료형
x void
[접근지정자][기타제어자]
public static
메서드 3요소 작성(예시)
윤년 체크 반복 발생 - 윤년 체크 메서드 선언 후 재사용
1) 기능 : 윤년체크하는 메서드 isLeapYear
2) 매개변수 : 체크할 년도 int year
3) 리턴값 + 리턴자료형 : 리턴자료형으로 어떤게 좋을지 생각하고 결정해야한다.
- int return -1; return1; if(==1) //윤년~
- void syso("평년"); syso("윤년") 재사용 x]
- String return "평년"; return"윤년"; if(.equals("윤년"))
-boolean 윤년 true 평년 false if(메서드명()){}
윤년인 경우 아닌경우 두가지 -> boolen
****선택이유 중요
윤년 관련해서 메서드를 만들경우에는 윤년인경우와 아닌 경우 둘중 한가지 이므로
boolean 형으로 자료형을 고려하는게 좋다.
오버로딩
***중요***
[오버로딩] 또는 오버로드 Overloading, Overload
메서드명(함수명)은 똑같고, 매개변수 갯수, 타입이 다른 또 다른 함수를 중복해서 선언하는 것
(=똑같은 메서드명으로 중복선언한 경우이며 중복함수를 의미한다.)
오버로딩을 하는 이유(왜? 똑같은 메서드명으로 여러개 중복 선언합니까? )
같은 메서드라서 자료형을 다르게 입력받을 수 있게되는 장점이 있다.
[면접관] 오버로딩과 오버라이딩 차이를 알려주세요!