사막여우♥ 접속 : 4572 Lv. 54 Category
Profile
Counter
- 오늘 : 14 명
- 전체 : 32455 명
- Mypi Ver. 0.3.1 β
|
[Object-Oriented Programming] public, private, void, static (9)
2012/10/03 AM 09:51 |
계속 나오고 있지만 정확히 모르는 것들.
1. static
objective-c를 공부할 때부터 정확히 모르고 사용하던 명령어. 구글링을 통해 전역변수"처럼" 사용하고 싶은 변수가 있는 경우에 붙여주면 된다고 알고 있었다. member variable의 경우에는 해당 클래스에서 생성된 instance에 각각 생성되는 것으로 동일한 클래스에서 "찍혀나온" instance라 할지라도 서로 독립적인 메모리 공간을 할당받는다. 즉, 서로 다른 값을 저장할 수 있는 것(정확히는 가리키는 것)이다. 하지만 같은 클래스에서 찍혀나온 것들이 공통으로 가져야 하는 "값"이 필요한 경우에는 instance마다 독립적인 공간을 가질 필요가 없다. 이런 경우 static을 변수 앞에 붙여주게 된다. 결과적으로 클래스 변수라는 이름으로 불리고 있으며, 같은 클래스에서 찍혀나온 instance가 항상?? 동일한 값을 가지게 되는 변수가 된다.
의문점: static이 붙은 경우, 동일한 클래스에서 찍혀나온 instance가 동일한 값을 가지는 class variable을 instance마다 일일이 할당받는 것인지 혹은 하나의 값이 저장된 메모리 공간이 있고 이를 "가리키기만" 하는 것인지 확실하지 않다. 이 부분에 대한 것은 알고 지나가면 좋을 듯한 느낌이 든다.
2. public
이것을 앞에 붙이게 되면, 단순히 동일한 class 안에서만 공통적으로 사용될 수 있는 것이 아닌..같은 프로그램 안에서라면 어디서든 접근할 수 있는 변수가 된다. 말 그대로 진정한 전역변수가 되는 듯하다.
3. void
어떤 값을 입력 받고, 여러 가지 처리를 한 후에, 반환하는 값이 없다면 void를 쓴다. |
|
|
|
|
원래 함수는 원리턴이 기본으로 해야 합니다.
하지만 불가피한 상황이라면 포인터로 넘겨서 값을 리턴 받아야죠.
물론 뒤로가면 다른 문제때문에 포인터남발하는 경우가 있습니다만....,일단 배울때는 원리턴이 기본이라는거 꼭 깔고 가셔야 함요~