나는 변수는 두 가지 방법으로 분류 될 수 있다는 사실을 알고 : -모든 인스턴스 변수가 함수 외부에 선언 되었습니까?
첫 번째 방법은 범위에 따라 글로벌 및 로컬 변수로 분류하는 것입니다. 변수가 클래스의 인스턴스의 모든 메소드 (예 : 클래스 전체에서 액세스 가능할 때)는 전역 변수라고하며 클래스의 인스턴스에있는 코드 블록 내에서만 액세스 할 수있는 경우 변수가 알려져 있습니다 지역 변수로.
두 번째 방법은이를 클래스/정적 인스턴스/비 정적 변수으로 분류하는 것입니다. 클래스/정적 변수는 클래스에 속하는 변수이며 클래스의 모든 인스턴스에 대해 이러한 변수의 복사본이 하나만 존재하며 공유됩니다. 인스턴스 변수는 클래스의 인스턴스에 속하며 각 인스턴스에 대해 별도의 복사본이 생성되는 변수입니다.
강사는 인스턴스 변수는 함수 외부에서만 선언 할 수 있다고 말합니다. 이게 왜 그렇게? 지역 변수가 인스턴스 변수가 될 수 있습니까?
가'functions' 외부에 선언 ... 자바에서 어떤 기능 만 방법이 없습니다. –
아니요, 그럴 수 없습니다. 그들의 범위는 하나의 선언 된 후에 메소드 내부에서의 사용으로 제한됩니다. 다른 메소드 나 객체에서 액세스 할 수 없습니다. – f1sh
개체에서 호출되는 메서드가 인스턴스 또는 정적 인 경우 해당 메서드의 범위 내에서 선언 된 모든 변수가 해당 인스턴스와 일치합니다. 그러한 변수의 범위는 해당 메서드 호출에만 해당되므로 부적절한 점의 종류. – David