728x90
반응형
인스턴스 멤버(Instance Member)와 스태틱 멤버(Static Member)
두 가지 멤버 유형은 객체 지향 프로그래밍에서 클래스와 객체의 동작과 속성을 다루는 데 있어서 핵심적인 역할을 합니다.
1. 인스턴스 멤버(Instance Member)
개념과 특징
인스턴스 멤버는 객체(인스턴스)를 생성한 후에 사용할 수 있는 멤버입니다.
클래스로부터 생성된 각 인스턴스마다 독립적으로 존재하며, 객체의 상태를 나타내는 데 사용됩니다.
인스턴스 멤버에는 다음과 같은 것들이 있을 수 있습니다:
- 인스턴스 변수(Instance Variable)
- 객체의 상태를 저장하는 변수로, 객체마다 다른 값을 가질 수 있습니다.
- 인스턴스 메서드(Instance Method)
- 객체의 동작을 정의하는 메서드로, 인스턴스 변수에 접근하고 조작하는 데 사용됩니다.
인스턴스 멤버 사용하기
public class MyClass {
int instanceVar; // 인스턴스 변수
public void instanceMethod() { // 인스턴스 메서드
System.out.println("Instance method is called. Instance variable value: " + instanceVar);
}
}
public class Main {
public static void main(String[] args) {
MyClass obj1 = new MyClass();
obj1.instanceVar = 10; // 인스턴스 변수 설정
obj1.instanceMethod(); // Output: Instance method is called. Instance variable value: 10
MyClass obj2 = new MyClass();
obj2.instanceVar = 20; // 인스턴스 변수 설정
obj2.instanceMethod(); // Output: Instance method is called. Instance variable value: 20
}
}
2. 스태틱 멤버(Static Member)
개념과 특징
스태틱 멤버는 클래스 레벨에서 사용할 수 있는 멤버로, 모든 인스턴스가 공유하는 변수 또는 메서드입니다.
클래스로부터 생성된 모든 객체들은 스태틱 멤버를 동일하게 사용할 수 있습니다.
스태틱 멤버에는 다음과 같은 것들이 있을 수 있습니다:
- 스태틱 변수(Static Variable)
- 모든 객체가 공유하는 변수로, 한 곳에만 저장되어 모든 인스턴스에서 같은 값을 공유합니다.
- 스태틱 메서드(Static Method)
- 인스턴스와 관계없이 클래스 레벨에서 호출되는 메서드로, 인스턴스 변수에 접근할 수 없습니다.
스태틱 멤버 사용하기
public class MyClass {
static int staticVar; // 스태틱 변수
public static void staticMethod() { // 스태틱 메서드
System.out.println("Static method is called. Static variable value: " + staticVar);
}
}
public class Main {
public static void main(String[] args) {
MyClass.staticVar = 100; // 스태틱 변수 설정
MyClass.staticMethod(); // Output: Static method is called. Static variable value: 100
MyClass.staticVar = 200; // 스태틱 변수 값 변경
MyClass.staticMethod(); // Output: Static method is called. Static variable value: 200
}
}
3. 인스턴스 멤버와 스태틱 멤버의 차이점
- 인스턴스 멤버는 인스턴스 생성 후 사용 가능하며, 각 인스턴스마다 독립적인 값을 가집니다. 반면에 스태틱 멤버는 클래스 레벨에서 사용 가능하며, 모든 인스턴스가 동일한 값을 공유합니다.
- 인스턴스 멤버는 인스턴스 메서드 내에서 사용되어 객체의 상태를 조작하는 데 적합하고, 스태틱 멤버는 클래스 메서드 내에서 사용되어 객체와 관계없는 작업에 적합합니다.
인스턴스 멤버와 스태틱 멤버는 자바 프로그래밍에서 객체와 클래스의 특성과 동작을 다루는 데 중요한 역할을 합니다.
이해하고 활용하는 것이 객체 지향 프로그래밍의 기본이며, 자바 개발에서 빼놓을 수 없는 개념입니다.
잘못된 정보는 댓글로 알려주시면 감사하겠습니다.
728x90
반응형
'Java' 카테고리의 다른 글
Java - 28. 자바 상속(Inheritance) (0) | 2023.07.30 |
---|---|
Java - 27. 자바 싱글톤 패턴(Singleton Pattern) (0) | 2023.07.29 |
Java - 25. 자바의 인스턴스(Instance) (0) | 2023.07.27 |
Java - 24. 자바의 객체(Object) (0) | 2023.07.26 |
Java - 23. 자바의 멤버 변수와 지역 변수의 차이 (0) | 2023.07.25 |