본문 바로가기
> 프로그래밍 언어/JAVA

[그림으로 배우는 자바, part1]: 05 메소드

by 자몽주스 2023. 2. 6.
728x90

그림으로 배우는 자바,

파트1: 입문!

메소드

참고 사이트:

자바, 입문하기! | CloudStudying

메소드, 일련의 코드 묶음!

메소드:

일련의 동작을 하나로 묶는 것

 

입력 값에 따른

반환 값이 있다

메소드 호출:

메소드 실행

 

을 입력하고

그에 따른 결과

반환받는 형식으로 동작한다.

메소드 정의:

메소드를 사용(호출)하려면

먼저 일련의 코드들이 미리 작성돼 있어야 함

 

Java API:

자바에서 미리 제공하는 코드들 

- 메소드의 구성요소 (4) -

1) 호출코드와 일치해야함

 

메소드 이름: square

2) 입력변수 만들어주기

메소드 실행에 필요한 정보를

받아오는 변수

매개변수, 또는 파라미터 라고 함

 

해당 입력변수 n에는

메소드 호출 시

입력한 값인 정수 3 이 대입된다.

 

타입 또한,

입력한 값에 맞춰서 정의 해줘야 함

값 계산하고 반환할 때

return 을 써서 반환

최종적으로 반환 값

타입을 적어준다

 

메소드 완성

단일 파라미터 메소드

단일 파라미터 메소드:

입력 변수가 하나만 있는 메소드

 

square 라는 메소드를 호출하는데

입력 값 4

square(4)

한 개이다

 

입력 값 하나를 받기위한

입력 변수 또한

한 개

 

입력변수 = 파라미터

square 메소드

입력 값 4를 받아서 호출되면

파라미터

즉, 입력변수 n 으로 대입이 된다

 

변수 생성 및 제곱 값 대입:

int result;

result = n * n;

4 * 4 실행되고

그 값이 result로 대입된다

대입된 result 값 int 타입으로 return (반환) 

그러곤 메소드를 호출했던 해당 위치로 반환

 

따라서 최종적인 x 값은 16

예제 문제
예제

3 이라는 값을 변수 n에 저장

cube 라는 메소드 호출

전달값을 n 으로 하고 있으므로

n 의 값 3이 전달 된다

파라미터

파라미터를 만들어준다

int 타입으로

 

num 에는 3이 들어가고

(파라미터에 3이 들어가니까)

result 변수 만들어주고

 

num의 3제곱 넣어줌

그리고 int타입으로 return 돼서

해당 메소드 호출했던 곳으로 반환

 

x = 27

n = 3

다중 파라미터 메소드

- 다중 파라미터 메소드 -

times 라는 메소드를 호출하는데

입력 값이 2개

(3,4)

입력 값이 2개니까

입력 변수(파라미트) 또한 2개 이다

 

입력 값 - 입력 변수 개수 비례

각각 대입된 후

int 타입으로 반환

 

int a = 12

int b = 30

예제

r하고 h가 double 타입이니까

parameter 에

2개의 double 타입이 존재해야 함

부피 반환

double 로

타입 반환

타입 일치 해야 한다

반환 값 타입도 일치하는지

신경써야함

예제

-오류 해결하기-

square 이 double 인데

입력변수 타입이 int 이므로

square 실수 부분을 캐스팅 해준다

 

9 가 return 돼서

int 타입으로 반환됨

a = 9

 

cube의 2는

double 타입 n 으로 대입되지만

실수 타입이 아님에도 가능하다

 

왜냐하면 정수<실수 이기 때문

(자동변환 됨)

n = 2.0

즉, 8.0 이 반환된다

근데 int 타입 변수 b 에 넣고 있으니

캐스팅을 해준다

파라미터 / 반환 값이 없는 메소드

- 파라미터가 없는 메소드 -

소괄호 사이에

아무것도 입력 값이 존재하지 않음

 

입력 값이 존재하지 않으니

입력 변수 또한 존재하지 않음

 

파라미터만 없을 뿐,

기존 메소드와 동일하게 동작한다

 

10이 int 타입으로 반환돼서

a 변수에 저장

파라미터가 없는 대표적 예

Math.random()

- 1~10 사이의 정수 구하기 -

1) 10 사이의 정수를 구하는 거니까

10을 곱해준다

n 사이의 정수를 구하면

n 만큼 곱해줌

 

2) 정수형으로 캐스팅 함

소수점 이하 버려짐

 

3) 1을 더하면

1 부터 10사이의 정수가 만들어진다

메소드에는 항상 리턴값이

존재하는 건 아니다

return 오른 쪽에

값이 없는 걸 확인

= return 값이 없는 메소드

 

값이 없기 때문에

타입 또한 void 를 사용해준다

반환 값이 없기 때문에

return 키워드생략 가능

<메소드 중첩>

총 3개의 별표가 찍히게 된다

최종 결과로

별표 3개가 출력

***

결론: 메소드 내부에서 또다른

메소드를 호출 할 수 있다

 

728x90