Method

이상해씨·2023년 4월 25일
0

JAVA

목록 보기
10/40

Method

  • 호출시에만 실행
  • 특정 작업 수행시 사용되는 함수
  • 코드를 재사용하기 위해 사용

1) 함수 선언

  • Method는 class 안에 선언
  • Java에서는 println()과 같은 고유 메소드를 제공
public class Main{
	static void testMethod(){
    	//code
    }
}
  • void : 반환 값이 없음을 의미
  • static : Main의 class

2) 호출 recall

  • 함수이름();
public class Main {
  static void myMethod() {
    System.out.println("I am so sleepy");
  }

  public static void main(String[] args) {
    myMethod();
    myMethod();
  }
}

//println 구문 2번 실행. "I am so sleepy" \n "I am so sleepy"

3) 매개변수 Parameter와 인수 argument

3-1) 매개변수(parameter)

  • 함수 정의시 사용되는 값

  • 함수 내에서 변수

  • 여러 매개변수를 입력할 수 있음. Method(parameter1, parameter2, parameter3);

3-2) 인수/인자 (argument)

  • 호출시 반환되는 값
public class Main {
  static void myMethod(String name, int classNum) {
    System.out.println(classNum +"반의 " +name+ " 선생님");
  }

  public static void main(String[] args) {
    myMethod("김",1);
    myMethod("이",2);
    myMethod("박",3);
  }
}
// 1반의 김 선생님
//2반의 이 선생님
//3반의 박 선생님

// parameter는 name, argument는 "김",1/"이",2/"박".3
//argument는 name과 classNum

4) 반환 값 return

  • void는 return값이 없음
  • method의 return 값이 있는 경우, void 대신 데이터 형태를 써준다.(int, string, float)
    <데이터 형태><함수>
public class Main {
  static int testMethod(int x) {
    return 5 + x;
  }

  public static void main(String[] args) {
    int y= testMethod(4);
    System.out.println(y)
    
    //System.out.println(testMethod(4));
  }
}
//9 

5) 오버로딩 Overloading

  • 메소드 오버로딩 : 사용하고자하는 이름과 같은 메소드가 있어도 매개변수 혹은 데이터 타입이 다를 경우, 같은 메소드 이름을 사용하여 메소드를 정의할 수 있음.
  • 메소드 이름을 고민할 필요 없음
  • 메소드 하나로 같은 기능을 할 수 있는 메소드 생성
    -> 코드의 재사용화에 용이
static int plusMethodInt(int x, int y) {
  return x + y;
}

static double plusMethodDouble(double x, double y) {
  return x + y;
}

public static void main(String[] args) {
  int myNum1 = plusMethodInt(8, 5);
  double myNum2 = plusMethodDouble(4.3, 6.26);
  System.out.println("int: " + myNum1);
  System.out.println("double: " + myNum2);
}
//W3School overloading code example

6) 범위 Scope

  • {} cury braces를 사용하여 코드 실행 범위를 설정
  • 코드는 {}안에서만 작동.

7) 재귀 recursion

7-1) 재귀

  • 자기자신을 호출하는 것
  • 복잡한 문제를 풀기 쉽도록 간단하게 해줌 (A way to break complicated problems down into simple problems which are easier to solve.)
public class Main {
  public static void main(String[] args) {
    int result = sum(10);
    System.out.println(result);
  }
  public static int sum(int k) {
    if (k > 0) {
      return k + sum(k - 1);
    } else {
      return 0;
    }
  }
}
// 55
//W3School recusion code example

7-2) 재귀 정지조건(Halting Condition)

  • 재귀함수는 자신을 끝없이 호출
  • 이로 인해 과한 메모리 낭비, 프로세스 성능 저해 발생
  • 따라서 이를 방지하기 위해서는, 모든 재귀함수는 정지조건이 존재해야함. (if문)


참고

profile
공부에는 끝이 없다

0개의 댓글