본문 바로가기

국비필기노트/Java

java_다른 클래스의 메서드 호출하기

 단순 메서드의 기능만 가져오고싶은 경우

 

 

B01이라는 메서드의 print( ) 구문을 Main에서 가져다 사용하고싶다.

파라미터로 넘겨야할 값도 없고 print()도 void인 경우엔

그냥 일반적으로 객체를 생성하고 b를 통해 메서드를 호출하면 된다.

 

 Main 클래스에서 값을 넘기는 경우

 

 

값이 항상 고정되어있는 값이 아니기에 유지보수를 위해 Main클래스에서 B01로 값을 넘겨야할 경우엔

객체를 생성하고 b를 통해 B01의 클래스에 접근을 하고 ( ) 안에 대입하고싶은 값을 넣어준다.

여기서 중요한 것은 값을 넘겼으니 받을 곳이 반드시 있어야하기에 값을 넣고싶은 메서드(ex.print)의 ( ) 안에 데이터타입과 그 값을 담을 변수명(ex.a)을 반드시 입력해준다.

 

 가져오려는 클래스에 return값이 있는 경우

 

 

print메서드에는 syso("자바")와 return 값이 있다.

syso("자바)는 b.print()가 print의 기능을 불러왔음으로 "자바"가 정상출력되며 기능을 받아옴과 동시에 return의 "실행"값도 받아와 그 값을 a라는 변수에 담아주었다.

 

그리고 Main에서 return의 "실행"이라는 값을 받아 출력을 시켜줘야하기에 a라는 변수를 통해 실행을 출력시킨 것이다.

 

 return값이 있는 클래스에 값을 대입하고싶은 경우

 

 

값의 유지보수를 위해 Main에서 값을 넣고싶은데 해당 메서드에 return값이 있는 경우의 데이터의 이동 경로를 살펴보자면 "자바"라는 값을 b를 통해 b01의 클래스에 접근하고 print라는 메서드를 찾아 ( )  안에 값을 담을 공간이 있는지 체크를 하고 있다면 값을 변수 a에 담는다.

 

그 a라는 값은 syso(a)안으로 들어가고 정상출력되며 실행이란 값은 print구문을 불렀던 그 장소인 b.print("자바")로 들어가게 되는데 그 값은 Main안의 a라는 변수에 담기고 syso(a)를 통해 출력된다.

 

여기서 A01의 a와 B01의 a라는 변수는 각자 다른 클래스의 지역변수임으로 같은 변수명을 공유해도 문제가 없다.

 

 서로다른 패키지의 클래스를 불러올 경우

 

출처: https://seollica.tistory.com/69

important해준다.