프로그래밍/java

[자바JAVA] 메소드 (method)_ retrurn, static 메소드 호출

pupu91 2022. 7. 4. 09:29
반응형

 

 


retrurn

해당 메소드를 종료하고 자신을 호출 한 메소드로 돌아가는 예약어.

반환 값(리턴 값)을 가지고 자신을 호출 한 메소드로 돌아갈 수 있음

 


 

return은 가장 마지막에 작성해야 하고, 마지막에 작성되지 않을 경우 컴파일 에러를 발생시킴.

void 메소드의 경우 return;을 명시작으로 작성하지 않아도 컴파일러가 자동으로 추가 해줌.

 

● public 뒤에 바로 return으로 가지고 갈 타입을 명시한다.
● 아무 값도 리턴하지 않을 경우에는 void, 값을 반환하는 경우에는 반환 값의 자료형으로 작성한다.

public String testMethod(){
       return 리턴값 ;  
}

 

 

 


매개변수와 리턴 값 복합 활용

 


  • 매개변수도 존재하고 리턴값도 존재하는 메소드를 이용하여 간단한 계산기를 만들어 보자.
public static void main(String[] args) {
	int first = 100;
	int second = 10;
		
	Application7 app7 = new Application7();
	System.out.println("두 수를 더한 결과 : " + app7.plusTwoNumbers(first, second));
	System.out.println("두 수를 뺀 결과 : " + app7.minusTwoNumbers(first, second));
	System.out.println("두 수를 곱한 결과 : " + app7.multipleTwoNumbers(first, second));
	System.out.println("두 수를 나눈 결과 : " + app7.divideTwoNumbers(first, second));
    }
    public int plusTwoNumbers(int first, int second) {
		return first + second;
	}
    public int minusTwoNumbers(int first, int second) {
	    return first - second;
	}
    public int multipleTwoNumbers(int first, int second) {
		return first * second;
	}
    public int divideTwoNumbers(int first, int second) {
		return first / second;
	}
 }
 ● 실행 결과
두 수를 더한 결과 : 110
두 수를 뺀 결과 : 90
두 수를 곱한 결과 : 1000
두 수를 나눈 결과 : 10

 

 

 


static 메소드 호출

 


 

  • static 메소드를 호출하는 방법 : 클래스명. 메소드명();
public static void main(String[] args) {
      System.out.println("20과 30의 합 : " + Application8.sumTwoNumbers(20, 30));
    }
	  public static int sumTwoNumbers(int first, int second) {
		return first + second;
}

 

  • 동일한 클래스 내에 작성 된 static 메소드는 클래스명 생략이 가능하다.
public class Application8 {

	public static void main(String[] args) {
           System.out.println("20과 30의 합 : " + sumTwoNumbers(20, 30));
  }
	public static int sumTwoNumbers(int first, int second) {
	    	return first + second;
	}

 

 


다른 클래스에 작성한 메소드 호출

 


 

 

public class Calculator {
    public int minNumberOf(int first, int second) {
		return first > second ? second : first;
	}
public static int maxNumberOf(int first, int second) {
		return first > second ? first : second;
	}

 

 

 

  •  non -static 메소드 호출

클래스명 사용할 이름 = new 클래스명();

사용할이름.메소드명();

public class Application9 {
   public static void main(String[] args) {
    int first = 100;
	int second = 150;
    Calculator calc = new Calculator(); 
	int min = calc.minNumberOf(first, second); 
	System.out.println("두 수 중 최소값은 : " + min);
	}
● 실행결과
두 수 중 최소값은 : 100

 

 

 

  • static 메소드 호출

다른 클래스에서 작성 된 static 메소드의 경우 호출할 때 클래스명을 반드시 기술해야 한다.

 

public class Application9 {
   public static void main(String[] args) {
     int first = 100;
	 int second = 150;
     Calculator calc = new Calculator(); 
	 int max = Calculator.maxNumberOf(first, second);
	 System.out.println("두 수 중 최대값은 : " + max);	
	}
 ● 두 수 중 최대값은 : 150

 

  • static 메소드도 non-static 메소드처럼 호출은 가능하지만 권장하지 않는다. 이미 메모리에 로딩 되어 있는 static 메소드는 여러 객체가 공유하게 되는데그 때 객체로 접근하게 되면 인스턴스가 가진 값으로 공유 된 값에 예상치 못하는 동작을 유발할 수 있기 때문에사용을 제한해달라는 경고이다. 
반응형