정적변수,정적메서드 강의 3분대
파풀레이션 변수 앞에 스태틱이 안붙었다면
Person.파풀레이션과 p3.파풀레이션 출력 값은 어떻게 될까요?
답변 2
0
정적변수를 인스턴스 변수로 바꾼다고 한다면, 각 객체 안의 변수가 각각 생기는 개념입니다.
그러면 일단 Person.population은 오류가 발생합니다. 정적변수가 없는데 정적변수로 접근하려고 하니까요. 그래서 코드에서 지우고 p3.population만 살펴보면 1이 나옵니다.
각 객체가 인스턴스 변수로 1씩 가지고 있는 형태가 되겠죠.
그렇게 하면 변수명에 지은 의미가 사라져버리게 되겠네요.
public class Person {
// 정적 변수
public int population = 0;
public Person() {
population++; // 생성자 안에 static이 붙은 변수를 하나 올리는 행위를 한다?
}
public static void main(String[] args) {
Person p1 = new Person();
Person p2 = new Person();
Person p3 = new Person(); // 그리고 똑같은 클래스에서 객체를 3개를 만들었다.
System.out.println("Population: " + p3.population);
}
}출력값
Population: 1
0
안녕하세요, 인프런 AI 인턴입니다. 이재윤님.
정적 메서드와 정적 변수에 대해 궁금하신 점이 있군요. 우선, Person.파풀레이션과 p3.파풀레이션의 출력 값을 이해하기 위해서는 정적 변수(static variable)와 인스턴스 변수(instance variable)의 차이점을 알아야 합니다.
정적 변수(static variable): 클래스에 속하며, 모든 인스턴스가 이 변수를 공유하게 됩니다. 즉, 클래스의 어느 인스턴스를 통해서든 동일한 값을 얻게 됩니다.
인스턴스 변수(instance variable): 각 인스턴스에 속하며, 인스턴스마다 독립적인 값을 가집니다. 각 객체마다 별도로 관리됩니다.
이제, 질문하신 대로 파풀레이션 변수가 정적 선언 없이 사용될 경우의 동작 방식은 다음과 같습니다.
Person.파풀레이션: 클래스 자체에서 인스턴스 변수를 직접 접근하려고 시도하는 경우는 문법적으로 올바르지 않으며, 컴파일 오류가 발생합니다. 인스턴스 변수를 사용하려면 인스턴스를 통해 접근해야 합니다.
p3.파풀레이션: 각각의 인스턴스가 독립적인 값을 가지며, p3 인스턴스에 대해 특정한
파풀레이션값을 가진다면 그 값으로 출력됩니다.
관련 질문에 대한 유사한 내용을 본 링크에서 찾아보실 수 있습니다:
더 궁금한 점이 있으시면 언제든지 질문해 주세요. 이해를 도울 적절한 답변을 제공해드리겠습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
26년2회 실기기출은 언제쯤...
0
24
2
이론 공부법 요약본 버전 업데이트 문의
0
21
2
정처기 필기 준비할때 이 이론을 다시 외워도 될까요?
0
55
2
조건 반복문 질문: for 문 ?
0
63
1
정처기 26-2회. 9번 질문드립니다!
0
81
1
이론 보면서 질문이 있습니다.
0
78
2
정보처리기사 실기 26년 2회 SRT 스케줄링 문제 단위 질문
0
88
2
유튜브(정보처리기사 실기 | 26년 2회 기출문제 코드 해설)
0
149
2
262 정처기 실기 C언어코딩
0
47
1
정보처리기사 262 실기 Hash(해시) 질문
0
81
2
static 변수 질문입니다.
0
62
2
파이썬 4강 질문입니다.
0
71
2
모의고사 1회 3번문제
0
90
3
41강 30:10
0
68
2
이론 공부법 질문 있습니다.
0
91
2
부모의 생성자 관련 질문
0
67
2
시험지 문제에 필기해도 되나요?
0
90
3
41강 11:23
0
60
2
4강파이썬 질문입니다
0
55
2
try-catch 핸들러명
0
66
2
36강 3:48
0
65
2
35강 18:27
0
68
2
자식 코드 내 super() 생략
0
60
2
출력질문
0
76
2





