클래스 메소드와 인스턴스 메소드
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 |