인스턴스 변수와 로컬 변수 간의 차이

Anonim

인스턴스 변수와 로컬 변수

인스턴스 변수는 객체 지향 프로그래밍에있는 변수 유형입니다. 클래스에 정의 된 변수이며 해당 클래스의 각 객체는 해당 변수의 개별 사본을 보유합니다. 반면, 지역 변수의 사용은 객체 지향 프로그래밍 언어에만 국한되지 않습니다. 그것이 정의 된 특정 코드 블록 (예를 들어, 함수, 루프 블록 등) 내에서만 평가 될 수있는 변수이다. 이러한 이유로 인해 지역 변수에는 지역 범위가 있다고합니다.

인스턴스 변수 란 무엇입니까? 인스턴스 변수는 클래스 내의 각 객체의 상태를 저장하는 객체 지향 프로그래밍에 사용됩니다. 멤버 변수 또는 필드 변수라고도합니다. 인스턴스 변수는 Java에서 static 키워드를 사용하지 않고 선언됩니다. 인스턴스 변수에 저장된 값은 각 객체에 고유하며 (각 객체는 별도의 사본을 가짐) 객체에 저장된 값은 해당 객체의 상태를 나타냅니다. 인스턴스 변수에 대한 공간은 해당 오브젝트가 힙에 할당 될 때 힙에 할당됩니다. 따라서 인스턴스 변수는 객체가 살아있는 한 메모리에 유지됩니다. 예를 들어 한 자동차의 색상은 다른 자동차의 색상과 별개입니다. 따라서 자동차 객체의 색상은 인스턴스 변수에 저장 될 수 있습니다. 실제로 인스턴스 변수는 클래스 내부와 외부 메소드로 선언됩니다. 일반적으로 인스턴스 변수는 선언 된 클래스 내에서만 액세스 할 수 있도록 private로 선언됩니다.

지역 변수 란 무엇입니까?

지역 변수는 지역 범위를 갖는 변수이며 특정 코드 블록 내에서 선언됩니다. 지역 변수는 메소드가 임시 상태를 저장하는 데 사용하는 변수로 볼 수 있습니다. 지역 변수의 범위는 변수가 선언 된 위치를 사용하여 결정되며 특수 키워드는이 용도로 사용되지 않습니다. 일반적으로, 로컬 변수에 대한 액세스는 선언 된 코드 블록 내에서 (즉, 해당 코드 블록의 시작 및 끝 괄호 사이에서) 제한됩니다. 지역 변수는 일반적으로 호출 스택에 저장됩니다. 이것은 재귀 함수 호출이 로컬 변수의 복사본을 별도의 메모리 주소 공간에 저장되도록 유지합니다. 메서드가 실행을 끝내면 해당 메서드에 대한 정보가 호출 스택에서 튀어 나와 저장된 로컬 변수도 파괴됩니다.

인스턴스 변수와 지역 변수의 차이점은 무엇입니까? 인스턴스 변수는 메소드 외부의 클래스 내에서 선언되며 객체의 상태를 저장하는 반면 로컬 변수는 코드 블록 내에서 선언되며 메서드의 상태를 저장하는 데 사용됩니다.인스턴스 변수는 해당 변수가 들어있는 객체가 live이고 해당 로컬 변수가 해당 메소드 / 코드 블록을 실행하는 동안 활성화되어있는 동안 live입니다. 인스턴스 변수 (public으로 선언 된)는 클래스 내에서 액세스 할 수 있지만 로컬 변수는 선언 된 코드 블록 내에서만 액세스 할 수 있습니다. 인스턴스 변수의 사용은 객체 지향 프로그래밍에만 국한되며 로컬 변수에는 그러한 제한이 없습니다.