본문 바로가기
프로그래밍 언어/자바의 정석 기초편

자바의 정석 기초편 ch6-14~16 메서드란? 메서드의 선언부와 구현부

by life grow 2022. 6. 30.

6-14 메서드란?

 

1. 문장들을 묶어놓은 것

- 작업 단위로 문장들을 묶어서 이름 붙인 것 

{ }  < 이걸로

 

코드의 중복은 반드시 제거해야 한다.

 

메서드: 하나의 작업을 하는 코드를 { } 안에

집어넣고 하나로 묶고 이름을 붙인 것

 

메서드 호출(사용) 방법: 메서드 이름();

 

메서드로 코드 중복을 해결할 수 있다.

메서드를 호출하면 위에 문장들이 들어온 것이라고 생각하면 된다.

 

2. 값(입력)을 받아서 처리하고, 결과를 반환(출력)

 

제약을 제외하면 메서드랑 함수랑 비슷한 말

메서드는 클래스 안에 있어야 된다.

함수는 클래스에 독립적.

 

메서드에 뭔가 입력을 주면 출력이 나온다.

근데 실제 안에서 어떻게 동작하는지는 몰라도 됨.

그래서 메서드를 블랙박스라고도 한다.

 

메서드의 장점

 

만약 코드에서 변경사항이 생기면

메서드는 한 곳만 고치면 된다.

반면 중복된 코드는 두 곳 전부 고쳐야 한다.

또 메서드를 다른 프로그램에서 가져다 사용할 수 있다.

 

메서드의 작성

 

- 반복적으로 수행되는 여러 문장을 메서드로 작성

반복적으로 수행되지 않더라도 여러 문장으로 구성된

하나의 작업을 메서드로 만들면 좋다.

그러면 코드가 간결하고 이해하기 쉬워진다.

 

- 하나의 메서드는 한 가지 기능만 수행하도록 작성

두 작업을 하나로 묶을 수 있지만

가능하면 별도의 메서드로 작성하면 좋다.

그렇게 되면 나중에 코드를 유지 보수하기 쉽고

코드를 최소의 의미 있는 단위로 나눠놔야 재사용성이 높아진다.

 

메서드 = 선언부 + 구현부

 

매개변수 목록은 0~n개 가능

반환타입: 메서드가 작업한 결과의 타입

출력값은 0~1개

 

작업 결과가 여러 개일 경우

배열을 이용, 하나의 객체로 묶어서 줘야 한다. 객체는 변수들을 묶어 놓은 것

(게시판에 첨부파일 올릴 때 한 개밖에 안된다면 압축해서 올리지 않나?

그것과 똑같다.)

반환할 값이 없으면 반환타입에 void

 

6-15 메서드의 구현부

 

지역변수(lv) : 메서드(메서드 영역) 내에 선언된 변수

매개변수(입력)들도 메서드 안에 선언되어서 지역변수이다.

 

int add(){

}

int multiply(){

}

 

매개변수도 지역변수다.

메서드가 종료되면 지역변수들도 모두 사라진다. (x, y, result)

그래서 서로 다른 메서드 영역에 있는 변수들은 이름이 똑같아도 상관없다.

두 개의 메서드 영역이 겹치지 않는다.