220906 필드(Field) 와 메서드(Method)

김다은·2022년 9월 7일
1

TIL

목록 보기
4/14

필드와 메서드 각각의 정의와 특징 그리고 사용 방법 및 활용
세 가지 변수의 특징

필드(Field)란

객체의 속성을 정의할 때 사용되는 클래스에 포함된 변수를 말한다.

Java에는 변수를 크게 3가지로 구분한다.
1. 클래스변수
2. 인스턴스 변수
3. 지역 변수

클래스 변수와 인스턴스 변수가 필드이며 이 들의 특징은 static의 유무로 구분할 수 있다는 것이다.
Static 키워드가 있으면 클래스 변수, 없으면 인스턴스 변수이다.

그렇다면 지역 변수는 무엇일까?
지역 변수는 클래스 변수와 인스턴스 변수에 포함하지 않는 메서드 내에 모든 변수이다.
아래 코드를 확인해보자

class VariableSection {	//클래스
	int instanceVariable;	//static이 없는 인스턴스 변수
    static int classVariable;	//static이 있는 클래스 변수
    
    void method() {	//메서드
    	int localVariable = 0;	//두 변수를 제외한 메서드 내에 모든 변수인 지역 변수
    }
}

위 코드를 보고 3가지 변수를 확인 할 수 있었다.
3가지 변수를 구분하기 위해 기억해야하는건 아래 2가지이다.
1. 선언된 위치
2. static의 유무


3 가지 변수에 대해 좀 더 자세히 알아보자

클래스 변수(class variable)

static 키워드로 선언하는 변수이며 특성을 저장하는데에 자주 사용되며 공통된 저장 공간을 가지고 있어 공유가 가능하여 공유 변수의 성질도 가지고 있다.
클래스명.클래스변수명을 사용하면 인스턴스를 따로 생성하지 않아도 사용이 가능하다.
초기화를 하지 않아도 힙메모리에서 강제로 초기화가 가능하다.

static이 붙어있는 멤버를 정적멤버라고 하는데 static으로 선언된 정적멤버는 이미 클래스 내부에 저장 공간이 존재하므로 따로 객체를 생성하지 않다고 바로 사용이 가능하다.
클래스명.멤버명으로 사용이 가능하다.

인스턴스 변수(instance variable)

각 인스턴스가 가지고 있는 고유한 속성을 저장하기 위해 자주 사용된다.
new 생성자()를 통해 개별성을 가지게 된다.
독립적인 저장공간을 가진다.
초기화를 하지 않아도 힙메모리에서 강제로 초기화가 가능하다.

지역 변수(local variable)

메서드 내에 선언되며 메서드{}블록에서만 사용이 가능한 변수이다.
스택 메모리에 저장되며 메서드가 종료되면 더이상 사용이 불가하다.
선언시 초기화를 해주어야 한다.

힙메모리 - 필드 변수(클래스 변수&인스턴스 변수)는 객체를 없애지 않으면 없어지지 않는다
스택메모리 - 한동안 사용되지 않으면 자동으로 삭제된다


메서드(Method)란

입력을 가지고 어떤 일을 수행한 다음에 결과물을 내어놓는 것 다시말해 어떤 작업을 수행하는 명령문들을 말한다.
메서드에는 메서드 시그니처(머리), 메서드 바디(몸통)으로 구분이 가능하다.

아래 코드를 확인해보자

public static int sum(int a, int b){	//메서드 시그니처(머리)
	int result = a + b;  //메서드 바디(몸통)
    return result;
}

이러한 메서드는 먼저 인스턴스를 생성하고 .포인트 연산자로 호출이 가능하다.

메서드 오버로딩

클래스안에 같은 이름의 메서드를 여러개 두는것을 말한다.
메서드 오버로딩을 하려면
1. 메서드의 이름이 동일해야 한다
2. 매개 변수의 개수나 타입이 달라야 한다.

profile
이제는 더이상 물러날 곳이 없다

0개의 댓글