안녕하세요
프로그래밍을 하는 분들이라면 매서드란 말을 모를 수가 없을 것 입니다
그리고 프로그래밍을 시작 한 지 얼마 안 된 분들 메서드가 뭐지?? 할 수 있을 것 입니다
이번 포스팅에서 메서드란 무엇인지 제 나름대로 설명해보겠습니다
만약 틀린 부분이 있다면 댓글바랍니다!
목차
Method란?
메서드의 사용 방법
void 메서드 선언
void 메서드(파라미터) 선언
void 메서드(파라미터 여러개) 선언
결과 리턴 메서드() 선언
메서드 오버로딩(Overloading)
Method란?
메서드(method) 또는 멤버 함수(member function)는 객체 지향 프로그래밍에서 객체과 관련된 서브 루틴 (또는 함수)이며 데이터와 멤버 변수에 대한 접근 권한을 갖는다.
클래스 기반 언어에서 클래스 내부에 정의되어 있다. 메서드는 프로그램이 실행되고있을때 클래스에서 생성된 인스턴스와 관련된 동작을 정의한다. 메서드는 런타임 중에 클래스 인스턴스 (또는 클래스 객체)에 저장되어 있는 데이터에 접근할 수 있는 특수 속성을 가지고 있다. 바인딩은 클래스와 메서드 간의 연관관계를 말합니다. 클래스와 관련된 메서드는 클래스에 바인딩 할 수 있다. 메서드는 컴파일 타임 (정적 바인딩) 또는 런타임 (동적 바인딩)에 클래스에 바인딩 할 수 있다.
위키백과
위키백과에서 정의한 Method입니다
설명이 많이 복잡하네요 ㅎㄷ
Method를 한글로 번역하면 방법을 의미합니다
개발자가 특정한 행동을 정의하면 그 행동을 호출하면 프로그램에서 그대로 실행하는 것을 의미합니다
메서드를 사용하는 이유는 보통 두 가지가 있습니다
1. 소스 코드의 가독성 : 하나의 이벤트 안에 모든 행동을 다 넣으면 코드가 굉장히 길어집니다
나 혼자 프로젝트를 하면 상관없지만 여러사람이 같이 하는 프로젝트라면 다른 사람이 내 코드를 봤을 때 보기가 굉장히 힘들어집니다
그러므로 메소드를 사용하여 비슷한 성격의 행동을 모아서 보여주면 다른 사람이 코드를 봤을 때 더 쉽게 이해할 수가 있습니다
2. 소스 코드의 재사용성 : 굉장히 긴 코드가 있습니다
그 코드가 여러 번 사용된다면 그 코드를 일일히 계속 적어주면 보기도 힘들고 관리도 어렵고 보기도 굉장히 어려울 것입니다
메소드를 사용하여 해당 메소드를 호출하면 그 동작을 수행하게 구현할 수 있습니다
메서드의 사용 방법
메서드의 사용 방법은
1. 메서드 선언
2. 메서드 호출
두 가지 방법으로 이루어져 있습니다
메서드 선언
public static 리턴타입(자료형, void) 메서드명() {
메서드 작성
return 리턴 데이터;
}
메서드를 사용하기 위해서는 메서드를 선언해야합니다
위와 같이 선언해줍니다
리턴타입에는 int, string, boolean 등의 자료형을 넣어줍니다
리턴타입에 void가 들어가는 경우 return받는 데이터가 없다는 것을 의미합니다
리턴받는 자료형이 있다면 메서드의 마지막에 return 리턴데이터를 입력해줍니다
메소드의 리턴타입과 같은 자료형으로만 return을 받을 수 있습니다
리턴타입이 void라면 return을 할 필요가 없습니다
메서드 호출
메서드명();
메서드를 호출하는 방법은 간단합니다
메서드명(); 으로 호출하면 됩니다
이제부터 예제를 바탕으로 메서드의 사용 방법 여러 가지를 알아보겠습니다!
void 메서드 선언
public static void 메서드명()을 사용하여 Hellow World!를 출력하는 메서드를 만들었습니다
main 메서드에서 HelloWorld() 메서드를 다섯 번 호출합니다
public class Method {
public static void main(String[] args) {
HelloWorld(); // HellowWorld 메서드 호출
HelloWorld(); // HellowWorld 메서드 호출
HelloWorld(); // HellowWorld 메서드 호출
HelloWorld(); // HellowWorld 메서드 호출
HelloWorld(); // HellowWorld 메서드 호출
}
// HelloWorld 메서드 선언
public static void HelloWorld()
{
System.out.println("Hellow World!");
}
}
결과 화면
Hellow World! (??) 오타가 있었네요 ㄷㄷ
쨋든! Hellow World!를 다섯 번 출력 한 모습입니다
void 메서드(파라미터) 선언
public static void 메서드명(파라미터)을 사용하여 이름을 출력하는 NamePrint 메서드를 만들었습니다
메서드를 선언할 때 () 사이에 파라미터를 넣으면 호출할 때 파라미터를 입력하면 그 파라미터를 메서드에서 사용합니다
public class Method {
public static void main(String[] args) {
NamePrint("홍길동"); // NamePrint 메서드 호출
NamePrint("김철수"); // NamePrint 메서드 호출
NamePrint("박영희"); // NamePrint 메서드 호출
NamePrint("강아지"); // NamePrint 메서드 호출
NamePrint("고양이"); // NamePrint 메서드 호출
}
// NamePrint 메서드 선언
public static void NamePrint(String Name)
{
System.out.println(Name);
}
}
결과 출력
NamePrint를 호출하여 각각 이름을 출력해줍니다
void 메서드(파라미터 여러개) 선언
public static void 메서드명(파라미터 여러개)을 사용하여 a + b를 의 값을 출력하는 메서드를 만들었습니다
2번과 똑같지만 파라미터를 한 개가 아닌 여러 개를 넘기는 것도 가능합니다
public class Method {
public static void main(String[] args) {
PlusAB(6, 5); // PlusAB 메서드 호출
PlusAB(10, 20); // PlusAB 메서드 호출
PlusAB(100, 523); // PlusAB 메서드 호출
PlusAB(4123, 2312); // PlusAB 메서드 호출
PlusAB(46783, 12348); // PlusAB 메서드 호출
}
// PlusAB 메서드 선언
public static void PlusAB(int a, int b)
{
System.out.println("a + b = " + (a + b));
}
}
결과 출력
결과 리턴 메서드() 선언
public static 데이터타입 메서드명()을 사용하여 데이터를 넘겨줄 수 있습니다
public class Method {
public static void main(String[] args) {
System.out.println("A의 값은 : " + PlusAB(10, 20));
}
// PlusAB 메서드 선언
public static int PlusAB(int a, int b)
{
return a + b;
}
}
메서드 오버로딩(Overloading)
메서드 오버로딩은 같은 메서드여도 매개변수가 다르거나, 리턴받는 데이터타입이 다른 경우 여러 개를 선언할 수 있는 것을 의미합니다
바로 예제를 통해서 확인해보겠습니다
아래처럼 Overloading이란 이름이 같은 메서드지만 매개변수와 데이터타입이 달라 에러없이 잘 돌아갑니다
public class Method {
public static void main(String[] args) {
System.out.println("Overloading1 : " + Overloading("홍길동", "20살"));
System.out.println("Overloading2 : " + Overloading(10, 20));
}
// Overloading1 메서드 선언
public static String Overloading(String Name, String Age)
{
return Name + Age;
}
// Overloading2 메서드 선언
public static int Overloading(int a, int b)
{
return a + b;
}
}
결과 화면
여기까지 예제를 통한 메서드에 대해서 알아봤습니다
정리하고 보니 뭔가 1% 부족한 것 같아 아쉬운 느낌이네요 ㅠ
자바를 공부하는 분들에게 제 글이 도움이 되었으면 좋겠습니다!
틀린 부분이 있거나 궁금한 사항 있으시면 댓글 부탁드립니다
'프로그래밍 > JAVA' 카테고리의 다른 글
[JAVA] 숫자/소수점 반올림/올림/내림 방법 (0) | 2021.05.13 |
---|---|
[JAVA] java.lang.NumberFormatException 에러 해결 방법 (0) | 2021.05.13 |
[JAVA] 이클립스 자동 줄 맞춤 (0) | 2021.05.10 |
[JAVA] 소수점 자릿수 반올림 및 속도비교 (0) | 2021.05.08 |
[JAVA] double와 float의 차이점 (0) | 2021.05.05 |