Conversation
|
이번 과제 리뷰를 맡게 된 백엔드 운영진 이수종입니다 😊 |
| String name; | ||
| int studentId; | ||
| String major; | ||
|
|
||
| Student(String name, int studentId, String major) { | ||
| this.name = name; | ||
| this.studentId = studentId; | ||
| this.major = major; | ||
| } |
There was a problem hiding this comment.
Student 클래스의 필드와 생성자를 보면 접근제어자가 명시되지 않아 default 상태로 되어 있습니다.
자바에는 public, private, protected, default 총 4가지 접근제어자가 있는데, 혹시 의도적으로 default를 선택하신 건지 아니면 생략하신 건지 궁금합니다.
또한 다른 접근제어자들도 숙지하고 계시다면 default 와 private, public, protected의 차이를 적어주시면 좋을 것 같습니다.
특히 private과 default의 차이, 그리고 객체의 필드에는 보통 어떤 접근제어자를 쓰는 게 좋을지 생각해보시면 앞으로 클래스 설계에 많은 도움이 될 것 같습니다.
There was a problem hiding this comment.
리뷰와 피드백 감사합니다!
접근제어자는 따로 의도한 건 아니고, 아직 익숙하지 않아 생략했었습니다.
피드백을 보고 따로 찾아본 결과
- default : 같은 패키지에서만 접근 가능, 다른 패키지에서는 접근 불가
- private : 해당 클래스 내부에서만 접근 가능 (가장 제한적), 필요한 경우엔 메서드(getter/setter)를 통해 접근하기 가능
- public : 다른 패키지, 다른 클래스 모두 사용 가능 (가장 열려있음)
- protected : 같은 패키지에서는 접근 가능, 다른 패키지에서는 상속받은 경우만 접근 가능
이라는 답을 얻었습니다.
또한 객체의 필드에는 private 접근제어자를 사용하면 좋을 것 같다는 생각이 들었습니다. 이유는 외부에서 마음대로 변경 못 하게 막기 위해서 + 접근을 통제하기 위해서라고 생각합니다!
과제명
객체 배열 관리 프로그램
💡 작업 내용
🔗 참고 링크
🤔 느낀 점 / 어려웠던 점