Java

Java 프로그래밍 - 함수와 메서드

여행하는 개발자(SOO) 2022. 2. 9. 17:56
728x90

함수란(function)


  • 하나의 기능을 수행하는 일련의 코드
  • 구현된(정의된) 함수는 호출로 사용할 수 있다. / 기능이 끝나면 원래의 코드로 제어가 반환된다.
  • 함수로 구현된 기능을 여러 곳에서 재사용이 가능

함수 정의하기


함수는 이름, 매개변수(parameter), 함수 몸체(body)로 구성된다.

// 반환이 없는 함수는 함수이름 앞에 void를 붙인다.
// void add();
int add(int num1, int num2) {
    int result;
    result = num1 + num2;
    return result;
}

함수 구현하기 예제


public class FunctionTest {
    // 매개변수 2 개를 받아서 더하는 함수 선언
    public static int addNum(int num1, int num2) {
        int result = num1 + num2;
        return result;
    }

    // 아무것도 return 하지 않기 때문에 void로 선언
    // 밑에서 "안녕하세요"를 넘겨받아 출력
    public static void sayHello(String greeting) {
        System.out.println(greeting);
    }

    // 1 ~ 100까지 더하는 함수 선언
    public static int calcSum() {
        int sum = 0;
        int i;

        for(i = 0; i <= 100; i++) {
            sum += i;
        }

        return sum;
    }

    public static void main(String[] args) {
        int n1= 10;
        int n2 = 20;

        // addNum함수를 total변수에 할당
        // 매개변수 n1(10), n2(20)을 넘겨준다.
        int total = addNum(n1, n2);
        System.out.println(total); // n1(10) + n2(20) = 30;

        sayHello("안녕하세요");

        // total에 calcSum() 함수를 재할당 한다.
        total = calcSum();
        System.out.println(total); // 5050
    }

}

메서드(method)


  • 객체의 기능을 구현하기 위해 클래스 내부에 구현되는 함수
  • 멤버 함수(member function)라고도 한다.
  • 메서드를 구현함으로써 객체의 기능이 구현된다.
  • 메서드의 이름은 그 객체를 사용하는 객체(클라이언트)에 맞게 작명하는 것이 좋다.
    ex)getPersonName() //camelCase로 작성

객체의 속성은 멤버 변수로, 객체의 기능은 메서드로 구현한다.


  • 멤버 변수는 class 내부의 메소드들에서 참조 가능
public class Student {
    // 속성 =    Student class의 멤버변수로 선언
    public int studentID;
    public String studentName;
    public String address;

    // 기능  = 메서드로 구현
    public void showStudentInfo() {
        System.out.println(studentID + " 학번 학생의 이름은 " + studentName + "이고, 주소는 " + address + "입니다.");
    }

    public String getStudentName() {
        return studentName;
    }

    public void setStudentName(String name) {
        studentName = name;
    }
}
728x90