All Honey Tip

[기술 면접] 3. 상속과 조합을 설명해보세요.

상속 조합

저번 시간에 이어서, 이번엔 상속과 조합에 대해 알아본 후에 Call by Value와 Call By Reference에 대해 알아보도록 하겠습니다.

image 59



Q: 상속과 조합을 설명해보세요.

상속은 is - A이고 조합은 have - B로 말씀드릴 수 있습니다. 추가로, 상속에서 부모의 변화는 자손에게 영향을 끼치므로 유연하지 못 하고, 조합은 다른 클래스를 소유한 클래스가, 포함되는 클래스에 영향을 끼치지 못 합니다.

상속
class 동물 {}
class 강아지 extends 동물 {}
조합
class 자동차 {
    바퀴 c;
}
class 바퀴 {}



Q: 상속의 단점에는 무엇이 있나요?

캡슐화를 깨며 상위 클래스의 변경이 하위 클래스의 변경에 영향을 줄 수 있습니다.



Q: 접근제어자를 설명해보세요.

객체가 수행하는 기능의 협력 범위를 표현합니다. 접근 제어자는 외부에 보여주고 싶은 정보들을 선택적으로 제공하여 캡슐화가 가능합니다.

  • public : 전체 영역에서 접근 가능합니다.
  • private : 해당 클래스 내에서만 접근 가능합니다.
  • protected : 같은 패키지, 다른 패키지의 자손에서만 접근 가능합니다.
  • default : 는 같은 패키지 내에서만 접근 가능합니다.



Q: 전역 변수와 static 변수에 대해 말씀해주세요.

두 가지 모두 프로그램 종료 시점에서 메모리가 해제됩니다.

  • 전역 변수는 new로 초기화하고, 다른 영역에서도 접근할 수 있으므로 상대적으로 보안이 취약합니다.
  • static 변수는 선언된 함수 내에서만 접근할 수 있습니다. 컴파일 시 가장 먼저 메모리에 올라가고 최초 1회 초기화 이후, 초기화되지 않습니다. 메모리에 고정되기 때문에, 남용 시 프로그램 실행 속도를 저하할 수 있습니다.



Q: Call by Value와 Call By Reference가 무엇인가요?

Call by Value란, 값을 호출하는 것을 의미하며 전달받은 값을 복사하여 처리합니다. 즉, 전달받은 값을 변경해도 원본은 변경되지 않습니다.

  • java

Call by Reference란 참조에 의한 호출을 의미하며, 전달받은 값을 직접 참조합니다. 즉, 전달받은 값을 변경하면 원본도 같이 변경됩니다.



마치며

이번 시간엔 상속과 조합, 전역 변수와 static, 그리고 면접 질문에 자주 등장한다는 Call by Value와 Call By Reference에 대해 간단하게 설명해보았습니다.

다음 시간에는 추상클래스 / 인터페이스 / 클래스 / 객체에 대해 알아보겠습니다.

상속 조합


코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다