본문 바로가기

JAVA

[JAVA] 기초문법 - 클래스와 객체1(2)

메서드

함수의 일종

개체의 기능을 제공하기 위해 클래스 내부에 구현되는 함수

함수란?

하나의 기능을 수행하는 일련의 코드 중복되는 기능은 함수로 구현하여 함수를 호출하여 사용한다.

EX) 두개의 숫자를 더하는 기능(함수)을 구현. 해당 함수에 숫자 2개(매개변수)를 전달(입력)하여 호출하면 두 수를 더한 결과(반환 값)를 얻을 수 있다.

함수 정의 예제

int add(int num1,int num2){

int result;

result=num1+num2;

return result;//반환 함수 반환형과 동일해야함.

//반환값 형태가 없으면 void라 명시

}

함수 정의 형태

(함수 반환형) (함수이름)(매개변수){

}

함수 사용 예제

public class Plus {

public static void main(String[] args) {

int num1=10;

int num2=20;

System.out.println(addnum(num1,num2));

}

public static int addnum(int n1,int n2) {

int result=n1+n2;

return result;

}

}

매개변수는 값을 복사한 것임 n1에 값이 변한다고 num1이 변하는 것이 아님.

함수와 스택 메모리

함수가 호출될 떄 사용하는 메모리 ㅡ 스택(stack)

함수의 기능 수행이 끝나면 자동으로 반환되는 메모리

 

함수 호출과 스택 메모리 구조

main함수에서 addnum을 호출할때, 함수가 사용하는 메모리= 스텍메모리

스텍

함수 호출 마다 스텍 메모리에 변수들이 쌓인다. addnum이 끝나면 addnum부분 메모리 공간이 없어진다.ㅡ>메인 부분만 남는다.

클래스에서 메서드 구현하기

함수를 왜 쓸까?

1. 코드를 효율적으로 구현하기 위해

2. 오류가 났을때 해당 함수만 수정하면 된다. ㅡ> 유지보수가 쉽다.

3. 함수 구현할때 하나의 기능을 함수 이름에 맞게 구현하는 것이 적절하다.