이번에는 자바의 메소드에 대해서 설명하겠습니다!
메소드란?
우리가 함수(Function)이라고 부르는 것들을 매소드라고 부르는데요
이름뒤에 소괄호 () 가 대부분 붙습니다!
예시) System.out.println();
sc.nextInt();
이런식으로 소괄호가 뒤에있는 것들의 대부분이 메소드 입니다!
제가 함수(function)이라고도 부르는 이유는 바로 이것이 하나의 “기능” 이기 때문입니다.
이러한 기능들을 사용하기 위해서 우리는 메소드를 사용하는것이죠
자 그럼 메소드를 사용하기 위해 어떻게 해야할까요??
먼저, 선언을 해주어야겠죠?
선언은 class안에서 해주어야합니다, 또한 메인 메소드 밖에서 선언을 해주어야 합니다.
선언을 할때에는
public static 리턴타입 메소드이름(){
실행될 코드;
}
이런식으로 먼저 선언을 해주고 메소드 이름을 메인에 불러주면 저 실행될 코드가 실행이 되는 것이죠! 저 이름 한번으로!
그렇다면 코드가 조금 더 간단해 지겠죠??
메소드를 사용 할때
메소드이름();
이렇게 사용을 하면 됩니다.
자 그런데 만약에 이 메소드가 다른 클래스안에 있다면 어떻게 할까요??
그럴때는 메소드 앞에 클래스이름. 을 여주시면 됩니다.
classname.methodname();
이런 모양이 되겠죠??
자 그럼 이 . 이 뭘까요?? 이것은 우리가 하위 연산자 라고 부르며 “~~안에 있는것” 이라고 생각 하지면 좋습니당
scanner에서 sc.nextInt(); 는 Scanner안에 있는 nextInt()라는 메소드를 사용 하겠다~ 라는 뜻이 되겠죠??
그럼 예시를 보겠습니다
이 코드가 Method라는 class안에 namecall이라는 method가 있는 것이죠
이 코드는 Method라는 Class안에 있는 namecall이라는 메소드를 사용한 코드 입니다.
근데 이번에 return 값이 void죠?? 아무것도 리턴하지 않는 다는 소리입니다.
다른 예시를 보시죠
이번에는 int값을 반환 해 주었습니다
그리고 반환 받은 값을 다른 int변수에 넣어 콘솔에 나오게 하였죠
이렇게 return값을 void가 아닌 다른걸로 선언을 해주면 그 변수를 통해 return을 해주어고 return한 값을 메인에서 그 값을 활용해야 합니다!
반대로 void 즉 리턴값이 없다면 변수를 담아줄수도 없고 값을 변환 할 수 없습니다!
이것을 잘 인지해야 합니다!
다음은
오버로딩이란?(overloading)
메소드의 이름이 똑같지만 안에 들어가는 매개 변수의 타입이나 갯수가 다른 경우를 오버로딩이라고 합니다
이때 매개변수 이름이나 return 타입과는 무관합니다!(그 이유는 우리가 ㅁ소드를 선언을 할때 메소드의 이름을 보고 판단합니다! 그래서 return타입은 무관합니다!)
가장 중요한 것으로 다형성(polymorphism)을 구현하는데 사용이 됩니다!
여기서 다향성이란?
하나의 클래스나 하나의 함수가 다양한 방식으로 동작이 가능 한 것을 의미합니다!
예시코드
이렇게 다양하게 메소드를 만드는 것을 오버로딩이라고 합니다!
다음엔 class에 대해서 포스팅 해보겠습니다!
'프로그래밍 > 자바' 카테고리의 다른 글
자바 클래스와 배열 (0) | 2021.11.16 |
---|---|
자바 클래스 (0) | 2021.11.10 |
자바 반복문 2 (0) | 2021.11.10 |
자바 조건문 반복문 (0) | 2021.11.10 |
자바 연산자 (0) | 2021.10.29 |