인스턴스 변수는 무엇입니까?
인스턴스 변수는 상주하는 모든 객체에 대해 고유 한 값을 갖는 객체 지향 프로그래밍의 데이터 조각입니다. 인스턴스 변수를 인스턴스 멤버, 비 정적 필드 및 데이터 멤버라고도합니다. 그것들은 객체가 계산에 사용하는 특정 데이터 조각을 보유하는 대부분의 객체의 중요한 부분입니다.
예를 들어, 객체 A에 "blah"라는 인스턴스 변수가있는 경우, 두 개의 "blah"변수가있는 인스턴스 변수가 있습니다. 각 변수는 캡슐화하는 객체와 관련이 있습니다. Object A와 관련된 변수 "blah"의 전체 이름은 "A.Blah"이며, 객체 B와 관련된 변수 "blah"의 전체 이름은 "B.Blah"입니다. 이러한 변수에 자체 값이있을 수있는 경우 각각. 오브젝트 A와 B가 동일한 유형이고 해당 유형의 다른 객체 C가 생성되고 객체 C는 인스턴스 변수 "blah"가있는 경우자체 고유 한 값.
인스턴스 변수는 종종 정적 변수와 혼동되지만 두 가지는 크게 다릅니다. 특정 유형의 모든 객체가 고유 한 인스턴스 변수와 달리 정적 변수는 하나의 값 만 가지며이 값은 적절한 유형의 모든 객체에 대해 동일합니다. 정적 변수는 종종 클래스 변수라고하며 인스턴스 변수와 다릅니다.
가 가시성 속성에 따라 할당 된 가시성 속성에 따라 인스턴스 변수는 특정 객체, 객체 및 하위 클래스 또는 다른 객체뿐만 아니라 객체에만 볼 수 있습니다. 대중 가시성이라고하는 최종 가시성 유형은 객체 지향 프로그래밍에서 캡슐화 원칙을 위반하기 쉽기 때문에 예를 들어 변수와 같은 나쁜 관행으로 간주됩니다. 이 금기에도 불구하고 공개 insta가NCE 변수는 유용합니다. 예를 들어, Java의 많은 표준 클래스에는 공개 인스턴스 변수가있어 때때로 속성을 쉽게 수정할 수 있습니다.
인스턴스 변수의 가시성도 상속과 함께 작동합니다. 한 클래스가 다른 클래스로부터 상속되면 두 클래스에 즉시 서로의 인스턴스 변수에 액세스 할 수 없습니다. 슈퍼 클래스 및 서브 클래스의 개인 인스턴스 변수는 해당 클래스로만 제한되어 있으므로 서브 클래스의 개인 변수는 슈퍼 클래스로 볼 수 없으며 그 반대도 마찬가지입니다. 슈퍼 클래스와 서브 클래스가 볼 수있는 유일한 인스턴스 변수는 슈퍼 클래스의 보호 변수입니다.