Java & Kotlin

[Java 객체지향] 함수와 메소드

Sue 2022. 1. 24. 18:00

함수

  • 기능을 구현하기 위한 일련의 코드 집합
  • 함수로 구현된 기능은 여러 곳에서 호출되어 사용될 수 있다.
  • 기능을 함수로 구현하지 않았을 경우, 오류 발생 시 코드를 일일히 수정해야하는 번거로움이 발생할 수 있다.
  • 함수는 이름, 매개변수, 몸체(body), 반환값으로 구성된다.
  • 함수 이름 앞 타입은 반환값 타입. 반환값이 없다면 void

 

함수 예제
package ch02;

public class FunctionEx {

    // 두 수를 입력받아 합을 구해 값을 반환하는 함수
    public static int add(int num1, int num2) {
        int result;
        result = num1 + num2;
        return result;
    }

    // 0부터 100까지 정수 값의 합을 구해 출력하는 함수
    public static int calculSum() {
        int sum = 0;
        for (int i = 0; i <= 100; i++) {
            sum += i;
        }

        return sum;
    }

    // 인사말을 입력받아 출력하는 함수
    public static void sayHello(String greeting) {
        System.out.println(greeting);
    }


    public static void main(String[] args) {

        int n1 = 10;
        int n2 = 20;

        int total = add(n1,n2);
        System.out.println(total);

        total = calculSum();
        System.out.println(total);

        sayHello("안녕하세요");

    }

}

 

수행 결과

30 5050 안녕하세요

스택 메모리

: 함수가 호출될 때 지역 변수들이 사용하는 메모리 공간이다.

  1. 메인 함수가 사용할 공간(n1, n2, total)이 생성된다.
  2. add() 함수가 사용할 공간(num1,num2, result)이 생성된다.
  3. add() 함수 수행이 완료되면 add() 함수가 사용한 메모리 공간은 해제된다.

 

메서드

  • vs 함수 : 함수는 단독 모듈로 어딘가 속해 있는 것이 아닌 반면, 메서드는 클래스 내부에 속해 객체의 기능을 구현하기 위해 생성된 함수이다.
  • 멤버 함수라고도 함 (C++, 자바에서는 메서드라는 용어가 많이 사용)
  • 메서드의 이름은 그 객체를 사용(호출)하는 객체의 입장에서 짓는 것이 좋다 e.g. getStudentName()