이번 소개에서는 메소드에 관해서 소개 해드리겠습니다.
메소드란 각 클래서에서 프로그래머가 직접 작업 수행하는 부분을 만들어놓고 필요할때마다 불러와 작업을 수행하는 기능이에요. 글로는 이해하기 어려우실테니 그림을 보여드리며 설명 드릴께요.
저의 자바프로젝트 이름은 Java#08, class이름은 Ex01로 할께요.
저희가 class를 만들때 옵션중에서 위에것 같이 main메소드를 만들것인가 묻는옵션이있지요. 이 메소드는 저희가 자바를 실행시켰을때 불러오는 메소드로 이 메소드가 없으면 실행을 할수가 없어요. 위에 main메소드 처럼 저희가 직접 메소드를 구현하여 불러올수가있습니다.
일단 메소드를 만드는 방식은 접근지정자, 리턴타입, 메소드이름, 메소드인자 그리고 메소드 안에 들어갈 메소드 코드 이렇게 여러가지가 필요해요. 하나씩 살펴보도록 하겠습니다.
접근지정자: 접근 지정자는 메소드 맨앞에있는 public을 말하는거에요. 아직 상속에 대해서 설명을 드리질 않았기때문에 자세한건 상속에서 설명드리겠습니다. 일단 접근 지정자에는 public, private, protected라는 3종류가있어요. 저희는 이번소개에서 public만 일단 쓰겠습니다.
리턴타입: 일단 리턴이라는것부터 설명드리겠습니다. 리턴이란 자바가 실행시킨 특정 메소드에서 얻어지는 데이터가 있을경우 그 데이터를 메소드가 불려진 곳으로 다시 돌려주는것을 뜻해요. 리턴타입은 말그대로 메소드가 다시 돌려주는 데이터의 타입이 무엇인지 정해주는거에요. 리턴 타입은 크게 두종류로 나눌수가있어요. 리턴할 데이터가 존재 할경우와 아닌경우, 아닌 경우엔 위에 main메소드 처럼 void를 써주시면됩니다. 만약 리턴할 데이터가 존재한다면 그 데이터의 타입을 써주시면 되는거죠.
메소드이름: 메소드이름은 메소드를 불러올때 이름으로 불러오기때문에 꼭 필요한 부분입니다. 예를 들어 덧셈하는 메소드를 만들었따면 메소드이름을 덧셈으로 하여 불러올때 덧셈이라고 쓰면 되는거지요.
메소드인자: 메소드인자는 메소드를 부를때 메소드에서 임의로 필요한 데이터를 메소드에게 넘겨주는 역활을합니다. 위에 예를 들었듯이 덧셈을 하려면 덧셈을위한 값 두개또는 그이상이 필요하겠지요. 그 데이터를 메소드인자를 통해 전해줄수있는겁니다. 만약 전해줄 데이터가 없다면 인자들은 안쓰셔도 됩니다 그냥 ()만 해주시면되요.
정적메소드: 정적메소드는 class에 main메소드가 포함되어있을경우 접근지정자와 리턴타입 중간에 static이란걸 붙여주어 메소드를 만들어야해요. static이붙은 메소드를 정적메소드라고해요. 정적메소드안의 메소드코드에서 만약 또다른 메소드를 불러온다면 정적메소드만 불러올수가있어요. 그렇기때문에 우린 main메소드 에서 다른 메소드를 불러오기 위해서는 메소드를 만들때 정적메소드로 만들어줘야하는거지요.
메소드코드: 위에 모든 필요 요소들을 정의했다면 이제 중괄호 안에 메소드가 실행시킬 코드를 적는겁니다. 이 코드들을 메소드코드 라고해요.
그럼 이제 간단한 메소드 하나를 만들어 보도록할께요.
이런식으로 만들어봤습니다. 어떻게 실행될지 예상이 가시나요?
저희가 자바를 실행할겁니다. 그럼 main메소드 자신이 가지고있는 코드들을 한줄씩 실행시키겠죠. 그렇다면 SayYo();라는메소드를 호출하게 되겠네요. SayYo()메소드를 보시면 "Yo"라는 문자열을 출력하도록 되어있네요. 그럼 출력란엔 "Yo"가 출력될것이고 SayYo()메소드가 끝나고 다시 main메소드로 돌아와 더이상 실행시킬 코드가없으니 끝나겠죠.
이런식으로 출력이되네요. 이번엔 다른 조금 다른 형식으로 메소드를 만들어보겠습니다.
이번엔 리턴타입과 메소드인자가 있는 메소드를 만들어봤습니다.
이번엔 digit이라는 인트변수에 times10메소드에서 리턴하는 데이터를 바로 저장하는 방식으로 해보았습니다. main메소드에서 times10메소드를 콜할때 10이라는 데이터를 times10메소드의 인자(int num)를 통해 보냈네요. 그럼 times10메소드는 10이라는 데이터를 곱하기 10을 하여 다시 리턴하는 코드를 가지고있구요. 그렇다면 출력은 100이 나오겠네요.
이번 소개에서는 간단하게 메소드에 대해서 소개 해드렸습니다. 메소드는 자바 어디에서든지 쓰이는 기능이기때문에 잘 숙지하고 계셔야해요^^ 그럼 이번 소개는 여기까지 하겠습니다. 읽어주셔서 감사합니다.
'Programming > Java' 카테고리의 다른 글
#07. 반복문, 제어문 (0) | 2012.09.06 |
---|---|
#06. if, else 조건문 (0) | 2012.09.06 |
#05. 명시적,자동적 데이터 변환 (0) | 2012.09.06 |
#04. 연산자 (0) | 2012.09.06 |
#03. 입출력(I/O)기능2 (0) | 2012.09.06 |