우당탕탕 개발일지

[자바] 메소드, 메소드 호출 본문

자바

[자바] 메소드, 메소드 호출

민아당긴아 2023. 10. 23. 10:07

메소드? 처음 듣는 용어라 지레 겁먹었는데, 그냥 클래스 내의 함수이다.

입력값이 메소드를 거치면 어찌저찌 변환되어서 출력값으로 반환된다.

입력값 유무, 출력값 유무에 따라 메소드 형태가 달라진다.

1. 메소드의 구조
2. 메서드의 입력값과 리턴값
3. 메서드 호출
4. 메서드 속 변수의 효력

이 네 가지에 대해 공부한 내용을 적어보려 한다.

 

1. 메소드의 구조

리턴자료형 메서드명 (자료형 매개변수1, 자료형 매개변수2, ...) {
	...
    return 리턴값;
}

이런 형태이다. 리턴자료형에는 int, void 등의 자료형이 들어가는데, 여기서 void는 반환값이 없다는 의미이다.
따라서 void가 나오면 return문이 없다.

예시자료

예를 들어 이 hello 메서드에서는 리턴자료형이 String이고, "hello"라는 문자열을 반환한다.

2. 메서드의 입력값과 리턴값

위에서 언급했듯이 입력값의 유무, 리턴값의 유무에 따라 메서드의 형태가 달라진다. 

2-1. 입력값 O, 리턴값 O

int sum(int a, int b) {
    return a+b;
}

 

입력값이 있으니 () 안에 자료형과 매개변수가 들어가고, return문이 있다.

2-2. 입력값 X, 리턴값 O

String say() {
    return "Hi";
}

입력값이 없으니 () 안이 비어있다.

2-3. 입력값 O, 리턴값 X

void sum(int a, int b) {
    System.out.println(a+"과 "+b+"의 합은 "+(a+b)+"입니다.");
}

리턴값이 없는 경우 리턴자료형에 void라고 명시해준다.

2-4. 입력값 X, 리턴값 X

void say() {
    System.out.println("Hi");
}

둘다 없는 경우 ()안도 비어있고, void라고 쓴다.

3. 메서드 호출

3-1. 입력값 O, 리턴값 O

입력값과 리턴값이 있는 메서드는 다음과 같이 호출할 수 있다.

자료형 변수 = 객체.메서드명(입력인수1, 입력인수2, ...)

예를 들면 이런 식이다.

Sample sample = new Sample();
int result = sample.sum(3, 4);

Sample 이라는 클래스 안에서 sample이라는 새로운 인스턴스(객체)를 생성하고, result라는 정수형 변수 안에 sum(3,4) 메서드를 수행한 리턴값을 넣는다.

3-2. 입력값 X, 리턴값 O

입력값이 없고 리턴값이 있는 메서드는 다음과 같이 호출할 수 있다.

자료형 변수 = 객체.메서드명()

예를 들면 이런 식이다.

String a = sample.say();

3-3. 입력값 O, 리턴값 X

입력값이 있고 리턴값이 없는 메서드는 다음과 같이 호출할 수 있다.

Sample sample = new Sample();
sample.sum(3, 4);

3-4. 입력값 X, 리턴값 X

입력값 리턴값이 없는 메서드는 다음과 같이 호출할 수 있다.

Sample sample = new Sample();
sample.say();

 

4. 메서드 속 변수의 효력

메서드 속 변수는 메서드 안에서만 효력이 있고, 밖에 나가면 효력이 없다.
예를 들어 메서드 속 변수 a는 밖에 나가면 새로 선언해야한다.

원한다면 메서드 속 변수의 효력을 유지할 있는데, 방법은 2가지가 있다.

1) return문 이용하기: 입력값이 원시자료형인 경우 return문을 이용하면 입력값을 메서드 밖에서도 쓸 수 있다.

2) 객체를 입력값으로 이용하기: 입력값에 사용할 객체를 미리 선언한 뒤, 객체를 입력값으로 사용하면 메서드 밖에서도 객체는 변경된 속성값을 유지한다.

 

-공부하면서 적은 거라 틀릴 수 있음-