Java에서 배열은 소위 말하는 first-class object가 아닙니다. 따라서 배열 자체에는 method가 있을 수 없습니다 - 그래서 배열은 length()로 만들 수가 없지요.
String의 경우 method length() 가 아니라 property length로 만들 수 도 있습니다만, 그런 경우에는 String class의 구현을 필요없이 제한하게 되므로 (length를 property로 갖지 않는 String class를 얼마든지 만들 수 있겠지요) legnth()는 method로 만들었다고 볼 수 있겠지요.
Java에서 배열은 소위
Java에서 배열은 소위 말하는 first-class object가 아닙니다. 따라서 배열 자체에는 method가 있을 수 없습니다 - 그래서 배열은 length()로 만들 수가 없지요.
String의 경우 method length() 가 아니라 property length로 만들 수 도 있습니다만, 그런 경우에는 String class의 구현을 필요없이 제한하게 되므로 (length를 property로 갖지 않는 String class를 얼마든지 만들 수 있겠지요) legnth()는 method로 만들었다고 볼 수 있겠지요.
생각도 안해보고 있었는데...
그런 이유가 있었군요.
왜 length()인가 찾아 봤습니다.
CharSequence 인터페이스의 length()를 구현한거네요.
-- Signature --
青い空大好き。
蒼井ソラもっと好き。
파란 하늘 너무 좋아.
아오이 소라 더좋아.
CharSequence는 JDK 1.4부터 등장했습니다
그 이전에는 java.lang.String은 java.lang.Object 만을 상속하는 클래스였죠.
그 것 말고는 먼저 분이 말씀하신게 맞습니다.
댓글 달기