JAVA/이론

21. [ JAVA ] 함수 (fanction)

천재단미 2024. 12. 10. 09:33
728x90
반응형

1. 자바 함수(fanction) 의 기본 구성

 

1) 함수(fanction) 정의

함수(fanction) 를 정의할 때는 접근 제어자, 반환 타입, 함수 이름, 매개변수 목록을 포함합니다.
예를 들어, 두 수를 더하는 함수를 정의하려면 다음과 같이 작성할 수 있습니다.
 

 
 




    add( int num1, int num2 ) {
         int total = num1  + num2;
         return total;                                     // 결과를 반환 ( 리턴 타입 )
    }



 
 
여기서 int는 반환값의 타입을 의미하며, add는 함수의 이름입니다. num1과 num 2는 매개변수입니다.
 
 
 
(1) 접근 제어자( 접근범위 )
  - public : 모든 클래스에게 접근 허용
  - protected : 상속 관계 클래스에게만 접근 허용
  - private : 선언된 클래스에서만 허용
 
 
(2) 반환 타입( 리턴 형식 )
  - 함수가 종료 후 함수를 호출 한 쪽에 특정 값을 전달 해 줄 수 있다.
 
 
(3) 매개변수와 인자
 -  매개변수(Parameter): 메서드를 정의할 때 사용되는 변수로, 실제 값을 받기 위한 틀입니다.
 -  인자(Argument): 메서드를 호출할 때 실제로 전달되는 값입니다. 
 




public class Main {
    public static void main( String[  ] args ) {
        int result = add3, 5 );                                          // 3과 5는 인자
        System.out.println( "Sum: " + result );                  // 출력: Sum: 8
    }

    // 두 수를 더하는 메서드
    public static int add( int a, int b ) {                           // a와 b는 매개변수
        return a + b;                                                      // 두 수의 합을 반환
    }
}



 
 
 
 
 

2. 함수 호출

 
함수를 호출하려면 함수 이름과 괄호 안에 인자를 전달합니다.
예를 들어:

 
 




    FuncTest func = new FuncTest();

    int num1 = 3;
    int num2 = 5;
    int total = add( num1, num2 );                                  // add 함수 호출
                   return total;    
                    System.out.println( func.add(3, 5) );        // 결과 출력: 8



 
 
 
 
 
 

3. 스택 메모리와 함수 호출

 
 
1) 스택메모리

  • 함수가 호출될 때 지역 변수들이 사용하는 메모리 공간입니다.
  • 함수 수행이 끝나면 이 메모리는 자동으로 반환됩니다.
  • 어휘적인 측면에서 봤을때 '스택'이라 하면, 아래서부터 순차적으로 쌓이는 것이라고 의미할 수 있습니다.
  • 아래 사진은 위에서 설명드린 예제를 기반으로 한 스택 메모리 구조입니다.

 

 
 
 
 
① 먼저 main()함수가 사용할 메모리 공간이 스택에 생성되는데, 위의 예제에서 볼 수 있듯이, 메인 함수에 있는 num1, num2, sum 변수들의 메모리 공간이 스택에 형성 되었습니다.
② 그 후, main() 함수에서 add() 함수를 호출합니다.
③ add() 함수가 사용할 메모리 공간인 n1, n2, result 를 스택에 저장합니다.
④ add() 함수 수행 후, 사용한 메모리 공간은 자동으로 삭제됩니다. (n1, n2, result 삭제)
⑤ main()함수로 돌아와서, sum 변수에 결과값을 저장합니다.
⑥ sum 값이 print 된 후, main() 함수가 종료되면, num1, num2, sum 의 메모리 공간도 자동으로 삭제됩니다.
 
 
 
2) 예시 
 
(1) 예시 
조건 1. 두수의 평균을 구하라.
조건 2. 이것을 함수로 만들어서, 재활용해서 사용하자.

 




    double avg (int num1, int num2 ){
        double avg = ( num1 + num2 ) / 2.0;
        return avg;
    }




        System.out.println(  func.avg(3 , 4)  );
        System.out.println(  func.avg(2712 , 3874)  );



 

 
 
(2) 예시 
조건 1. 학생 수학 점수를 학점으로 변환하는 함수 만들기
조건 2. 수학점수가 90점 이상이면, A학점
조건 3. 80이상 90미만이면, B학점
조건 4. 나머지는 모두 C학점 이라고 리턴하는 함수.
 

 




    String getGrade( int score ){
        if ( score >= 90 ){
            return "A학점";
        } else if ( score >= 80 && score < 90 ){
            return "B학점";
        } else {
            return "C학점";
        }
    }


        System.out.println(  func.getGrade(100)  );
        System.out .println(  func.getGrade(88)  );
        System.out .println(  func.getGrade(65)  );



 

 
 
 
 
(3) 예시 
 
조건 1. 홀수 짝수 구분하는 함수
조건 2.  func.isEven(13); => 홀수니까, fales
조건 3. func.isEven(20); => 짝수니까, true
 

 
 


       

    String isEven( int num ) {
        if (num % 2 == 0) {
            return "true";
        } else {
            return  "fales";
        }
    }




        System.out.println(func.isEven(13));
        System.out .println(func.isEven(20));





or



    boolean i isEven( int number){
         if (number % 2 == 0 ){
            return true  ;
        } else {
            return  fales;
        }
    }




 
 

 
 
 
 

728x90
반응형
home top bottom
}