안녕하세요. 항상 상세하고 친절한 답변 감사드립니다.
java에서의 class부분 공부하다 궁금한점이 생겨 문의드립니다.
104p의 경우 AAclass의 속성을 정의하는 코드가 public class Example 안에 코딩되어 있습니다. 추가로 앞에 static이 붙었구요.
그런데 161p의 경우 IntClass의 속성을 정의하는 코드가 public class 밖에 코딩되어 있습니다. 이경우는 static이 없네요.
그 차이점을 제외하면 두 개의 예제는 코드는 다르지만, 표현하고 있는 것은 거의 비슷한 코드로 보입니다.
그런데 어쨌든 하나는 public안에서 정의를 하고 있고 하나는 밖에서 정의를 하고 있는데요.
근데 104p의 예제를 161p의 스타일처럼 밖에서 정의하는거로 바꿔서 해도 결과는 다르지 않더군요..
그럼에도 이렇게 2개의 예제에서 다르게 처리되는 이유가 있는지 궁금합니다.
다시 말해 class를 public class 밖에서 정의하는것과 안에서 정의하는 것 차이가 뭔지 궁금합니다.
답변을 부탁드리겠습니다. 항상 감사드립니다.
아울러 오자 제보합니다. 104p의 "static class AAclass{" 옆의 해설에 보면 "Example 클래스를 정의한다."인데 "AAclass를 정의한다"로 바꿔야 하지 않나 싶습니다.
감사합니다.
안녕하세요 길벗수험서 운영팀입니다.
단순히 구현 방법의 차이 이외에는 없습니다.
JAVA에서 객체화, 모듈화는 class를 기준으로 이루어집니다.
class 내부에는 또 다른 하위 클래스가 존재할 수 있고(104쪽)
외부의 클래스를 가져와 사용할 수도 있죠(161쪽)
만약 하나의 클래스 외에 다른 곳에서 사용되지 않는다 싶으면 굳이 외부 클래스로 빼서 작성할 필요 없이 내부에서 단순 메소드나 변수로 정의해버리거나, 복잡해서 가독성을 높여야겠다 싶으면 하위 클래스로 만들어 사용합니다.
반면 어떤 로직이나 알고리즘이 이 클래스에서만 사용될 것이 아니라 여기저기서 사용될 여지가 많다 싶으면 외부 클래스로 뽑아내서 다른 클래스들도 이용이 편리하게 만들어줘야 겠죠. (공통모듈)
---
오탈로 학습에 불편을 드려 사과드립니다.
해당 내용은 정정 후 정오표에 등록하도록 하겠습니다.
행복한 하루되세요 :)
-
관리자2020-07-16 13:51:52
안녕하세요 길벗수험서 운영팀입니다.
단순히 구현 방법의 차이 이외에는 없습니다.
JAVA에서 객체화, 모듈화는 class를 기준으로 이루어집니다.
class 내부에는 또 다른 하위 클래스가 존재할 수 있고(104쪽)
외부의 클래스를 가져와 사용할 수도 있죠(161쪽)
만약 하나의 클래스 외에 다른 곳에서 사용되지 않는다 싶으면 굳이 외부 클래스로 빼서 작성할 필요 없이 내부에서 단순 메소드나 변수로 정의해버리거나, 복잡해서 가독성을 높여야겠다 싶으면 하위 클래스로 만들어 사용합니다.
반면 어떤 로직이나 알고리즘이 이 클래스에서만 사용될 것이 아니라 여기저기서 사용될 여지가 많다 싶으면 외부 클래스로 뽑아내서 다른 클래스들도 이용이 편리하게 만들어줘야 겠죠. (공통모듈)
---
오탈로 학습에 불편을 드려 사과드립니다.
해당 내용은 정정 후 정오표에 등록하도록 하겠습니다.
행복한 하루되세요 :)