inflearn logo
강의

Course

Instructor

Kim Younghan's Practical Java - Basics

static 변수2

312

kimsr92103604

3 asked

0

static 변수2 강의에서

정리부분에 static 변수는 클래스가 특별히 관리하는 변수이기 때문에 1개만 존재해야 한다고 배웠는데.

public class Data3 {
public String name;
public static int
count; //static //static이 붙은 변수는 메서드 영역에서 관리
public static int count1;
}

 

static 이 붙은 count1 변수에 오류가 발생되지 않아요 ! 클래스에서 1개만 존재하는게 다른것을 의미하는 건가요?

 

java 객체지향

Answer 2

1

David

안녕하세요. 김소련님, 공식 서포터즈 David입니다.

예제 코드

Class A {
  private static int staticAge1 = 1;
  private static int staticAge2 = 1;
  private int nonStaticAge = 2;
}

A a1 = new A();
A a2 = new A();

예제 코드를 보시면 클래스 A의 인스턴스가 2개 생성되었습니다.

이때, 각 인스턴스는 서로 다른 nonStaticAge 변수를 갖게 됩니다. 다르게 말하면 각 인스턴스는 자신만의 nonStaticAge를 갖게 되는 것입니다.

그러나 staticAge1, staticAge2는 1개씩만 존재하게 됩니다. 다르게 말하면 모든 인스턴스가 공유하게 되는 변수(static으로 선언된 변수)가 존재하는 것입니다. 이는 클래스 변수라고도 불리는 static 변수의 특성 때문입니다. 이런 특성 때문에 1개만 존재해야 한다고 말하는 것입니다.

감사합니다.

0

jeha00

클래스 변수가 1개만 생성된다는 의미가 아니라, 클래스 변수마다 1개씩만 생성된다는 의미입니다 🙂
클래스 변수 count, count1이 있다면 메서드 영역에 1개씩만 생성된다는 의미이죠.
말씀하신 대로 받아들여질 수도 있다고 생각해요. ㅎㅎ

질문있습니다

0

16

1

1번 문제 질문입니다.

0

20

1

음악플레이어 문제 중 코드질문

0

16

1

9장 상속 문제와 풀이 질문

0

31

1

강의 자료에 사소한 오타가 있습니다.

0

42

2

매서드 참조값 반환??

0

61

1

접근제어자 - 쇼핑카트 문제에서 상품출력 부분 메서드

0

63

1

자바 기본편 - .(dot)에 관한 질문입니다!

0

82

1

공부방법

0

71

2

상속관계에서 멤버 변수는 오버라이딩 되는 개념이 아닌가요?

0

78

1

static method 질문

0

60

1

캡슐화 문제풀이 ShoppingCart 요구사항에 문제가 있어보입니다. 피드백 주세요

0

90

1

Method1에서 Student 객체

0

70

1

3강 18. null 질문

0

64

1

this 와 super의 호출 순서는 부모-자식관계 떄문만인가요?

0

72

1

팩토리 메서드 패턴과 일반 생성자 사용의 장단점

0

94

1

문의

0

101

1

9장 상속 문제와 풀이 부분 궁금한게 있어서 질문드립니다

0

85

1

상속과 그에 따른 메모리 구조 질문

0

59

1

call메소드에서 멤버에 접근하는 방식을 이해 못 했습니다

0

71

1

수강기한

0

132

1

기본편 객체지향 프로그래밍에 대한 정의

0

82

1

섹션10 상속 메모리 구조 및 문제 관련 질문

0

84

1

추가 지식 학습

0

149

2