Notice
Recent Posts
Recent Comments
Link
관리 메뉴

데브마우스

[Java]인스턴스 멤버와 static 멤버 본문

Java/Java: 문법 정리

[Java]인스턴스 멤버와 static 멤버

데브마우스 2023. 10. 15. 20:02

인스턴스란 무엇인가요?

인스턴스 변수는 객체마다 다른 값을 갖는 고유한 변수입니다. 인스턴스 마다 고유한 값을 가지기 때문에, 인스턴스마다 특별한 값을 가져야할 경우 인스턴스 변수로 선언합니다.

class Sample{
	int intSample = 0;
	static int staticIntSample = 0;
	
	void methodSample() {
		System.out.println("methodSample입니다.");
	}
	static void methodSample2() {
		System.out.println("test2");
	}
}

public class Main {
	public static void main(String[] args) {
		Sample samp = new Sample();
		Sample samp2 = new Sample();
		
		samp.intSample = 100;
		samp2.intSample = 10;
		System.out.println("samp.intSample: " + samp.intSample); // 출력: samp.intSample: 100
		System.out.println("samp2.intSample: " + samp2.intSample); // 출력: samp2.intSample: 10
	}
}

static이란 무엇인가요?

static 변수는 모든 객체가 공유하는 변수입니다. static 변수는 모든 객체가 공유한다는 점에서 현실 세계의 사람들이 모두 공유하고 있는 공기를 떠올리게끔 합니다.

변수나 메서드 앞에 static을 붙일 경우 static 멤버(변수와 메서드를 포함해서 부르는 말)이 됩니다.

 

static으로 선언하면  클래스를 생성자로 생성하지 않고 static의 멤버를 사용할 수 있습니다. 왜냐하면 static으로 선언할 경우 프로그램이 실행 되기 전 미리 만들어두기 때문입니다.

 

static 멤버는 이클립스에서 글씨가 기울어져있어서 한 눈에 바로 확인이 가능합니다.

특징 인스턴스 멤버 static 멤버
변수의 특징 각각의 객체마다 다른 값을 가집니다. 각각의 객체가 값을 공유합니다.
생성 시점 생성자를 통해 만들어집니다. 프로그램이 실행 되기 전 미리 만듭니다.
멤버 사용 방법 생성자를 통해 생성한 뒤부터 멤버를 사용할 수 있습니다. [클래스이름.스태틱변수] 혹은 [클래스이름.스태틱메서드]로 생성자를 사용하지 않고 사용이 가능합니다.
이클립스의 특징 인스턴스 멤버는 글씨가 기울어져 있지 않습니다. static 멤버는 글씨가 기울어져있습니다.