인스턴스 변수 및 클래스 변수 정의
멤버 변수를 선언할 때 static 키워드로 수정된 변수를 클래스 변수라고 하고, static 키워드로 수정되지 않은 변수를 클래스 변수라고도 합니다.
예를 들어:
classMain{floatx;//인스턴스 변수 staticinty;//클래스 변수}
알아채다:
변수 유형 앞에 static 키워드를 배치해야 합니다.
인스턴스 변수와 클래스 변수의 차이점
1. 서로 다른 객체의 인스턴스 변수는 서로 다릅니다.
클래스는 new 연산자를 사용하여 여러 개의 서로 다른 개체를 만들 수 있습니다. 이러한 개체에는 서로 다른 멤버 변수가 할당됩니다. 한 개체의 인스턴스 변수를 변경해도 다른 개체에는 영향이 없습니다. 개체의.
2. 모든 객체는 클래스 변수를 공유합니다.
클래스에 클래스 변수가 있는 경우 new 연산자를 사용하여 여러 개체를 만들면 이러한 개체에 할당된 클래스 변수는 동일한 메모리를 차지합니다. 한 개체의 클래스 변수를 변경하면 다른 개체의 클래스에 영향을 미칩니다. 즉, 객체가 클래스 변수를 공유한다는 것입니다.
3. 클래스 이름을 통해 클래스 변수에 직접 액세스합니다.
Java 프로그램이 실행되면 클래스의 바이트코드 파일이 메모리에 로드됩니다. 클래스가 객체를 생성하지 않으면 클래스의 인스턴스 변수에 메모리가 할당되지 않습니다. 그러나 클래스의 클래스 변수는 클래스가 메모리에 로드될 때 해당 메모리 공간이 할당됩니다. 이 클래스가 객체를 생성하면 서로 다른 객체의 인스턴스 변수가 서로 다릅니다. 즉, 서로 다른 메모리 공간이 할당되며 클래스 변수는 더 이상 메모리를 재할당하지 않습니다. 모든 객체는 클래스 변수, 즉 클래스 변수를 공유합니다. 모든 객체는 동일합니다. 클래스 변수가 차지하는 메모리 공간은 프로그램이 종료될 때까지 해제되지 않습니다.
따라서 클래스 변수는 객체를 통해서만 접근할 수 있을 뿐만 아니라 클래스 이름을 통해서도 직접 접근할 수 있고, 객체의 인스턴스 변수는 클래스 이름을 사용하지 않고 객체를 통해서 접근할 수 있습니다.