본문 바로가기
JAVA

[JAVA] Chapter 6. Method

by varcode 2023. 7. 6.
반응형

메서드
자바에서 메서드(Method)는 클래스 내에서 기능을 구현한 코드 블록이다. 메서드는 클래스 내에서 여러 번 호출될 수 있으며, 반복적으로 사용되는 코드를 재사용 가능하도록 만들어준다.

메서드는 반환 타입, 메서드 이름, 매개변수 리스트, 내용의 4가지 요소로 구성된다.

 

메서드 이름과 내용은 필수이고 반환 타입과 매개변수는 선택사항이기 때문에 반환 값은 없거나, 1개이다. return 문이 사용되면 그 자리에서 메서드는 종료되고 반환 값을 반환하는데 메서드는 값을 1개까지만 반환할 수 있기 때문에 여러 개를 반환하고 싶은 경우에는 반환 타입을 배열로 작성해서 배열을 반환한다.

메서드를 호출하기 위해서는 메서드 이름과 파라미터 개수가 같아야 하며 메서드를 호출할 때 파라미터는 call by value로 전달되기 때문에 copy된 data가 전달된다.

 

재귀적 호출
재귀적 메서드를 사용하면 코드가 간결해진다는 장점이 있지만, 호출 스택이 계속 쌓이기 때문에 Stack Overflow가 발생할 수 있다는 단점이 있다. 아래의 코드는 재귀 함수를 잘못 작성한 예시이다.

public class Recursive {
    public static void main(String[] args) {
        printHi(3);
    }
    
    public static void printHi(int n) {
        System.out.println("Hi");
        
        printHi(--n);
        if (n == 1) return;
    }
}

 

어느 부분이 잘못되었을까? Hi가 3번 출력된 후 종료될 것 같지만, printHi 함수를 호출한 후에 종료 조건을 적어주었기 때문에 무한 루프에 빠지게 된다. 재귀는 *반드시* 종료 조건을 먼저 적은 후 자신을 호출해야 한다.

 

 

변수 : local, instance, static
local, instance, static
변수는 변수의 범위와 생명주기에 따라 구분된다.

1. local 변수
local
변수는 메서드나 블록 내에서 선언되고, 해당 블록에서만 사용할 수 있다. 메서드가 실행될 때 생성되고. 메서드가 종료될 때 소멸된다.

 

2. instance 변수
instance
변수는 클래스의 인스턴스(객체)에 속해 있으며, 객체의 생성과 함께 생성되어 객체가 소멸할 때까지 존재한다. 객체의 각 인스턴스마다 값이 독립적으로 유지된다.

 

3. static 변수
static
변수는 클래스 변수라고도 하며, 클래스 내부에 선언되고 모든 객체에 공유된다. 객체가 아닌 클래스에 속하는 변수이기 때문에 객체의 생성과 상관없이 프로그램이 시작될 때 생성되어 프로그램이 종료될 때까지 존재한다. 클래스의 모든 인스턴스에서 동일한 값을 유지한다.

반응형

'JAVA' 카테고리의 다른 글

[JAVA] Chapter 7. Class (2)  (0) 2023.07.08
[JAVA] Chapter 7. Class (1)  (0) 2023.07.07
[JAVA] Chapter 5. Control  (0) 2023.07.05
[JAVA] Chapter 4. Operator  (0) 2023.07.04
[JAVA] Chapter 3. Type Conversion  (0) 2023.07.03

댓글