함수란 (function)
- 하나의 기능을 수행하는 일련의 코드
- 구현된(정의된) 함수는 호출하여 사용하고 호출된 함수는 기능이 끝나면 제어가 반환됨.
→ 기능을 작성한 후 그 기능을 불러쓸 수 있게되고 그 함수는 수행이 끝나면 제어가 반환이 된다.
- 함수로 구현된 하나의 기능은 여러 곳에서 동일한 방식으로 호출되어 사용될 수 있음
예)
숫자 두 개를 입력받아 더한다.
가장 좋은 성적 두 개를 더한다.
두 거리를 더한다.
→ 더하기 함수 사용 : add();
반환값이 있을 수 있고 반환값 없이 제어만 실행될 수도 있다.
함수는 하나의 공통적인 기능을 만들어서 여러군데에서 공유해서 사용가능하다. 더한다라는 동일한 기능을 한군데에서 수정할 수 있다.
함수 정의하기
함수는 이름, 매개변수 부분이 중요함!
함수에 필요한 input이 있는지? (매개변수)
- 정수 2개를 받아서 반환하는 함수 (2개의 매개변수)
- 매개변수가 있다면 타입과 변수명을 작성해준다.
- 값을 돌려주기 위해선 return을 작성해준다.
- return 값과 동일한 자료형으로 함수 이름 앞에도 동일한 자료형을 써준다.
→ 반환값에 대한 데이터 타입
- 수행만 하고 반환을 안할수도 있다. - void
함수 호출과 스택 메모리
- 스택 메모리: 함수가 호출될 때 지역 변수들이 사용하는 메모리
- 함수의 수행이 끝나면 자동으로 반환되는 메모리.
지역변수들은 이렇게 지역에서만 사용된 후 자동으로 삭제된다.
메서드 (method)
- 객체의 기능을 구현하기 위해 클래스 내부에 구현되는 함수
- 멤버 함수 (member function)이라고도 함 - C++
- 메서드를 구현함으로써 객체의 기능이 구현됨
- 메서드의 이름은 그 객체를 사용하는 객체(클라이언트)에 맞게 짓는 것이 좋음. 호출하는 입장에 맞게 명명하기.
예) getStudentName
함수와 메서드의 차이?
함수 : 어딘가에 속해있지 않는다. 단독 모듈, 호출만 해주면 된다.
메서드 : 클래스 안에 속해있다. 그 클래스의 멤버변수들를 활용해서 구현되는 것.