본문 바로가기
Language/JAVA

JAVA 객체(4) - 메서드 두 번째

by 파2RI 2023. 7. 20.

메서드의 대략적인 개념을 배웠다면 메서드를 쓰는 방법을 알아보자.

 

앞서 말했듯이 메서드=함수, 일련의 과정을 처리해주는 기계이다.

 

 

입력값 ------> 메 서 드 ------> 리턴값

 

* 이때 입력값의 자료형(int면 int, String이면 string) = 리턴값의 자료형(int/String)이어야 한다!

 

 

 

'메서드'는 아래와 같은 구조를 띤다.

 

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

	...
    
    return 리턴값;
    
    }

 

예시를 들어 보자면

 

int setSum(int a, int b){  // a ,b는 매개변수 : 메서드로 전달한 값을 저장하는 변수(그릇)

		return a + b;
	
	}

 

여기에서 return은, a+b가 리턴값이 된다는 의미이다. 즉 a와 b를 입력하면 a+b가 return = 리턴 된다는 의미!

출력값(리턴값)은 오직 return에 의해서만 가능하다.

 

 

즉 메서드의 출력값을 나타내려면,

 

'자료형' '리턴값을 받을 변수' = 객체.메서드명(인수1, 인수2 ...)
int result = firstsum.setSum(3, 5)

 

result = 리턴값을 받을 변수

firstsum = 클래스로 찍어내 new 생성한 객체

setSum = 사용하는 메서드

 

 

 

전체적인 형태를 살펴보자면,

 

package hakwon3;

class Sum{  // 이 과정을 반복적으로 사용할 것이므로, Sum 클래스로 만들어 둔다.
	
	int a, b;
	
	int setSum(int a, int b){  // a ,b는 매개변수 : 메서드로 전달한 값을 저장하는 변수(그릇)

		return a + b;
	
	}
	
}


public class Practice {

	public static void main(String[] args) {
		
		Sum firstsum = new Sum();
        	// firstsum이라는 'Sum 클래스'의 '객체'를 만들고, setSum '메서드를 사용한다.'
            
		int firstresult = firstsum.setSum(7, 8);  
        	// 7, 8은 인수 : 메서드로 전달할 값(메서드에 직접 대입할 값)
                // firstresult가 firstsum 객체를 setSum에 돌려 얻은 return 값, 즉 출력값이다.
           	 
		Sum secondsum = new Sum();
		int secondresult = secondsum.setSum(10, 9);
		Sum thirdsum = new Sum();
		int thirdresult = thirdsum.setSum(3, 1);
		
		System.out.println(firstresult);
		System.out.println(secondresult);
		System.out.println(thirdresult);
		
		}
		
	}

 

 

이때, 입력값이 없을 수도, 출력값이 없을 수도, 둘 다 없을 수도 있다.

 

 

 

1. 입력값이 없을 때

 

String Say() {

	return ("Hi");
    
    }

 

Say 메서드는 받는 값이 없다. 그렇지만 사용하면 무조건 "Hi"를 리턴한다.

 

 

예시)

 

package hakwon3;

class Say{
	
	int a, b;
    
		String Nick(/*void*/) {
			return ("Hi"); // Nick 클래스는 입력값 없이 "Hi"를 리턴한다.
	}
	
}


public class Practice {

	public static void main(String[] args) {
		
		Say firstsample = new Say();
		String firstresult = firstsample.Nick(); 
		Say secondsample = new Say();
		String secondresult = secondsample.Nick(); 
		
		System.out.println(firstresult);
		System.out.println(secondresult);
		
		}
		
	}

 

Hi
Hi

 

 

 

2. 리턴값이 없을 때

 

 

리턴값은 무조건 return으로 받으므로, 

 

void Sum(int a, int b) {

	System.out.println(a+b);
    
    }

 

라 하여도 retrun 값은 없다. println은 그냥 Sum 안에서 사용하는 문장이지 리턴값이 아니다. 

 

* 리턴값이 없는 메서드는 클래스 자료형을 void라 표기한다.

입력값이 void이기 때문!

 

 

 

To be continued...

'Language > JAVA' 카테고리의 다른 글

JAVA 객체 (6) - a++ 연습문제  (0) 2023.07.21
JAVA 객체(5) - 메서드에서 빠져나가기  (0) 2023.07.21
JAVA 객체(3) - 연습문제  (0) 2023.07.18
JAVA 객체(2) - 메서드  (0) 2023.07.18
JAVA 객체(1) - 클래스  (0) 2023.07.18