java 변수의 차이점 분석

1687 단어
클래스 변수도 정적 변수라고 하는데 변수 앞에static의 변수를 추가한 것이다.
실례 변수도 대상 변수, 즉static를 넣지 않은 변수라고 한다.
두 가지 차이점은 다음과 같습니다.
클래스 변수(정적 변수)는 모든 대상이 공유하고 그 중의 한 대상이 그 값을 바꾸면 다른 대상은 바뀐 결과를 얻을 수 있으며 클래스 변수는 클래스 이름을 통해 직접 호출할 수 있다. 예를 들어 A.xingS;
반면에 실례 변수는 대상이 사유하고 특정한 대상이 그 값을 바꾸어 다른 대상에게 영향을 주지 않는다. 실례 변수는 말 그대로 실례에 속하기 때문에 실례를 통해 다음과 같이 호출할 수 있다. 예를 들어 A a=new A().a.name;
부적절한 예를 들자. 유형 변수는 한 사람의 성씨와 같다. 실례 변수는 사람의 이름과 맞먹는다. 만약에 아버지가 성을 바꾸면 그의 모든 형제자매의 성은 모두 고쳐야 하지만 그들의 이름은 각자 사용한다.
예:
 
  
public class A{ 
static  int xingS = 0; //   
private int name = 0; //   
String id; //  
private String colorType; //   
private int size; //   
private static String depart; //    f
inal String name="zwm"; //
}
public class B{  
public void main (String[] args){      
A son1= new A();      
A son2= new A();      
son1.xingS = 3;  //
A.xingS = 3;      
son1.name = 4 ;      
System.out.println(son2.xingS); // 3      
// , son1 xingS,son2 a       
System.out.println(son2.name); // 0      
// , son1 name , son2 name  
}
}

클래스 변수는 정적 구성원 변수라고도 부른다. 대상을 만들지 않아도 메모리에 존재할 수 있고 실례 대상을 만들 때
메모리에는 모든 실례 대상의 모든 비정상적 구성원 변수에 대해 메모리 공간을 열어 이 대상의 모든 비정상적 구성원 변수 값을 저장합니다.
두 개의 서로 다른 실례 대상이 같은class류에 속하더라도 같은 이름의 비정상적인 구성원 변수가 메모리에서 차지하는 공간은 다르다.
정적 구성원 변수는 클래스 변수와 같다.모든 실례 대상은 하나의 클래스 변수를 공용하는데, 메모리에는 이 클래스 변수 값을 넣을 수 있는 공간이 한 군데만 있다.
따라서 만약에 한 대상이 클래스 변수 값을 바꾸면 다른 대상이 클래스 변수 값을 다시 취하는 것은 바뀐 것이다.

좋은 웹페이지 즐겨찾기