필드 = 멤버 변수 간단히 말하면 객체에 속한 변수이고 지역변수와 차별화를 두기위해 쓰는 용어임 ㅇㅅㅇ
익명(222.235)2019-01-29 18:51
ㄳㄳ
익명(115.86)2019-01-29 18:53
크게 전역변수/멤버변수/지역변수로 나뉜다.
전역변수가 존재하지 않는 언어가 있기도 하고,
이 경우 멤버변수를 static으로 하거나 혹은 static 클래스를 만들어서,
거기에 전역변수인것처럼 몰빵해서 쓰기도 한다.
기본 멤버변수는 그냥 클래스 스코프의 지역변수 정도로 생각하면 된다.
아, 물론 static으로 한다고 해서 스코프가 늘어나는게 아니므로, static해도 스코프는 클래스로 제한된다.
ㅇㅇㅇ(121.144)2019-01-29 19:00
사실 지역변수도 걍 static으로 쓰면 전역변수랑 유사하게 쓸수는 있다. 역시 스코프가 제한될뿐.
지역변수는 굳이 따지면 함수의 멤버변수인셈임.
ㅇㅇㅇ(121.144)2019-01-29 19:01
참고로 지역변수는 가능한한 static으로 안하는게 좋다.
원래 전역변수나 static은 해당 자료형의 기본값으로 초기화된다.(0이나 0.0 이나 null 이런식으로)
이게 원하는 초기화일지 아닐지는 당연히 상황에 따라 다른데
함수의 지역변수는 static으로 하면 초기값에 대한 설정이 상당히 까다로워진다.
클래스의 static변수의 경우는 원하는 초기값을 주기가 쉬운데, 함수의 지역변수는 다른게 실행되기 때문에 그게 안됨.
논리적이고 개념적인 제어가 어려우므로 가능하면 지역변수를 static으로 안쓰는게 좋다.
ㅇㅇㅇ(121.144)2019-01-29 19:06
아, 이거 또 중요한건데,
초기화 되는 시점은 프로그램 로딩될때다.
전역변수는 물론이려니와 static 붙은 모든놈이 먼저 메모리 적재되면서 초기화됨.
쓰고보니 별로 안중요할지도 모르겠네... 보통은 자기 필요할때 또 초기화 시키니까...
전역변수를 제대로 써본적이 없어서 모르겠다...
필드가뭐임?
인스턴스 변수 얘기하는거?
필드가 그거잖아. 자바에서 클래스 안에 만든 변수
그럼 전역이 아니지
클래스안에서의 모든 멤버들 ㅇㅅㅇ
클래스 안에 있는 필드를 쓰는거라고하는데 C하다가 하니까 혼동옴 ..
멤버함수에선 전역변수처럼 쓸 수 있긴 하겠다 ㅋㅋ
필드 = 멤버 변수 간단히 말하면 객체에 속한 변수이고 지역변수와 차별화를 두기위해 쓰는 용어임 ㅇㅅㅇ
ㄳㄳ
크게 전역변수/멤버변수/지역변수로 나뉜다. 전역변수가 존재하지 않는 언어가 있기도 하고, 이 경우 멤버변수를 static으로 하거나 혹은 static 클래스를 만들어서, 거기에 전역변수인것처럼 몰빵해서 쓰기도 한다. 기본 멤버변수는 그냥 클래스 스코프의 지역변수 정도로 생각하면 된다. 아, 물론 static으로 한다고 해서 스코프가 늘어나는게 아니므로, static해도 스코프는 클래스로 제한된다.
사실 지역변수도 걍 static으로 쓰면 전역변수랑 유사하게 쓸수는 있다. 역시 스코프가 제한될뿐. 지역변수는 굳이 따지면 함수의 멤버변수인셈임.
참고로 지역변수는 가능한한 static으로 안하는게 좋다. 원래 전역변수나 static은 해당 자료형의 기본값으로 초기화된다.(0이나 0.0 이나 null 이런식으로) 이게 원하는 초기화일지 아닐지는 당연히 상황에 따라 다른데 함수의 지역변수는 static으로 하면 초기값에 대한 설정이 상당히 까다로워진다. 클래스의 static변수의 경우는 원하는 초기값을 주기가 쉬운데, 함수의 지역변수는 다른게 실행되기 때문에 그게 안됨. 논리적이고 개념적인 제어가 어려우므로 가능하면 지역변수를 static으로 안쓰는게 좋다.
아, 이거 또 중요한건데, 초기화 되는 시점은 프로그램 로딩될때다. 전역변수는 물론이려니와 static 붙은 모든놈이 먼저 메모리 적재되면서 초기화됨. 쓰고보니 별로 안중요할지도 모르겠네... 보통은 자기 필요할때 또 초기화 시키니까...
자바 막 시작해서 잘 모르지만 ㄳㄳ