자바에서 Return Type

findViewById();라는 펑션의 Return Type이 View Class인데 , 이 return 값을 받는 쪽은 어째서 Type이 View 혹은 ,, textView 등 View를 상속받은 Data type이어야 하나요? 어차피 주소값이 날라오는거 아닌가요? 그냥 Int나 float이 그 주소값을 받아버리면 안되나요? 주소값이랑 그 주소에 있는 Data의 Type이 어디에 Match되어 저장되어 있는건가요??? 그 Type이라고 하는것은 Data의 크기 그 이상의 의미를 갖고 있는건가요?

터무니없는 질문인 느낌이 들긴 하는데 , 대충이라도 알려주시면 감사합니다!

1답변

  • 자바에서는 메모리 주소를 직접 다루는 것을 허용하지 않습니다. 달리말하면 C/C++처럼 주소를 직접적으로 다루는 인터페이스를 제공하지 않는다라고 이해할 수 있습니다. 따라서 말씀하신 int, float으로 주소값을 받아서 객체를 조작하는 것은 불가능합니다.

    자바에서는 객체를 변수에 할당 시 해당 객체에 대한 참조를 갖게 됩니다. 이 참조가 객체를 찾아내는 방식이 C/C++관점에서 보면 포인터와 유사하게 동작한다고 이해할 수는 있겠지만 그렇다고 해서 메모리의 주소값을 다룰 수 있는 것은 아닙니다.

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.