클래스 메소드와 인스턴스 메소드

2023. 9. 5. 22:05프로그래밍 언어/JAVA

1. 클래스를 설계할 때, 멤버변수 중 모든 인스턴스에 공통으로 사용하는 것에 static을 붙인다.

- 생성된 각 인스턴스는 서로 독립적이기 때문에 각 인스턴스의 변수는 서로 다른 값을 유지한다. 그러나 모든 인스턴스에서 같은 값이 유지되어야 하는 변수는 static을 붙여서 클래스변수로 정의해야 한다.

 

2. 클래스 변수(static변수)는 인스턴스를 생성하지 않아도 사용할 수 있다.

- static이 붙은 변수는 클래스가 메모리에 올라갈 때 이미 자동적으로 생성되기 때문이다.

 

 

3. 클래스 메소드(static 메소드)는 인스턴스 변수를 사용할 수 없다.

- 인스턴스변수는 인스턴스가 반드시 존재해야지만 사용할 수 있는데, 클래스 메소드는 인스턴스 생성 없이도 호출가능하니가 클래스 메소드가 호출될 때 인스턴스가 존재하지 않을수도 있기 때문에 클래스 메소드에서 인스턴스 변수를 사용할 수 없다.

 

 

4. 메소드 내에서 인스턴스 변수를 사용하지 않다면, static을 붙이는 것을 고려한다.

- static을 붙이면 메소드 호출시간이 짧아지므로 성능이 향상된다.

 

 

 

 

'프로그래밍 언어 > JAVA' 카테고리의 다른 글

오버로딩과 오버라이딩  (0) 2023.09.06
생성자  (0) 2023.09.06
JVM의 메모리 구조  (0) 2023.09.05
변수와 메소드  (0) 2023.09.04
클래스와 객체  (0) 2023.09.04