static
2024. 4. 12. 23:35ㆍ정보처리,전산/JAVA
반응형
■ static 멤버
public class Counter {
private static int count = 0;
public static void increment() {
count++;
}
public static int getCount() {
return count;
}
}
public class Main {
public static void main(String[] args) {
Counter.increment(); // count를 1 증가시킴
System.out.println("Count using static method: " + Counter.getCount()); // count의 현재 값 출력
// 다른 Counter 인스턴스를 생성하여 정적 변수에 접근
Counter.increment(); // count를 1 증가시킴
System.out.println("Count using static method (new instance): " + Counter.getCount()); // count의 현재 값 출력
}
}
Count using static method: 1
Count using static method (new instance): 2
static 키워드를 사용하면 count 변수는 클래스 수준의 변수이기 때문에 모든 Counter 인스턴스가 동일한 count 변수를 공유한다. 따라서 각 인스턴스에서 increment() 메서드를 호출하여 count 값을 증가시킬 때 모든 인스턴스의 count 값이 변경된다.
■ static 이 아닌 경우
public class Counter {
private int count = 0;
public void increment() {
count++;
}
public int getCount() {
return count;
}
}
public class Main {
public static void main(String[] args) {
// 첫 번째 Counter 클래스의 인스턴스 생성
Counter counter1 = new Counter();
counter1.increment(); // count를 1 증가시킴
System.out.println("Count using instance method (counter1): " + counter1.getCount()); // counter1의 count 값 출력
// 두 번째 Counter 클래스의 인스턴스 생성
Counter counter2 = new Counter();
counter2.increment(); // count를 1 증가시킴
System.out.println("Count using instance method (counter2): " + counter2.getCount()); // counter2의 count 값 출력
}
}
static 키워드를 사용하지 않았기 때문에 각 Counter 인스턴스는 독립적인 count 변수를 가지고 있다. 따라서 각 인스턴스의 increment() 메서드 호출은 해당 인스턴스의 count 값을 변경하며, 각 인스턴스의 count 값은 서로 영향을 주지 않는다
Count using instance method (counter1): 1
Count using instance method (counter2): 1
각 인스턴스가 독립적인 인스턴스 변수 count를 가지고 있기 때문에, 각각의 인스턴스에서 increment() 메서드를 호출할 때마다 해당 인스턴스의 count 값만 증가하므로 각 인스턴스에 대해 서로 다른 count 값이 출력된다.
반응형
'정보처리,전산 > JAVA' 카테고리의 다른 글
ArrayIndexOutOfBoundsException (0) | 2024.05.08 |
---|---|
객체 생성 (0) | 2024.04.21 |
public static void main(String[] args) (0) | 2024.04.12 |
JDBC - 데이터베이스에서 UPDATE 쿼리를 실행 (0) | 2024.04.08 |
생성자 - 업캐스팅 (0) | 2024.03.12 |