객체지향에 대해 설명해주세요
- 객체란? -> 현실에 존재하는 대상
- 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고
- 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법론
객체지향의 장단점이 뭐죠?
- 장점은
- 코드 재사용성이 좋다. 상속을 통한 확장도 가능
- 유지보수가 쉽다. 절차지향에서는 일일이 찾아서 수정해야하지만, 객체지향에서는 클래스 내부를 보면 된다
- 대형 프로젝트에 적합하다. 클래스단위로 모듈화 가능이기에 협업에 용이
- 단점은
- 개발속도가 상대적으로 느리다
- 설계하기 쉽지 않다
클래스와 인스턴스가 뭐죠?
- 클래스는
- 대상의 속성과 행위를 변수와 메서드로 정의한 것
- 인스턴스는
- 정의한 클래스를 실제 메모리에 할당시키는 것
객체지향의 특성은 뭐가있죠?
- 캡슐화
- 클래스라는 캡슐에 속성과 행위를 묶고, 외부로부터 보호하는 것
- 데이터 보호
- 데이터 은닉 -> 필요한 부분만 노출
- 접근제어자
- 게터, 세터 -> 결합도를 낮출 수 있다
- 클래스라는 캡슐에 속성과 행위를 묶고, 외부로부터 보호하는 것
- 상속
- 기존 클래스를 재활용하여 새로운 클래스를 만드는 것
- 속성과 행위를 물려받음
- 중복을 제거하고 필요한 부분만 수정할 수 있다
- 추상화
- 객체지향 관점에서 클래스를 정의하는 것
- 객체의 본질적이고 공통적인 부분만 추출하여 정의하는 것
- 추상클래스
- 인터페이스
- 다형성
- 객체의 속성이나 행위가 상황에 따라 여러가지 형태를 가질 수 있는 것
- 상위클래스의 참조변수가 하위클래스 객체를 참조하는 것
- 오버로딩
- 오버라이딩
- 오버로딩 오버라이딩처럼 메서드가 상황에따라 다르게 동작할 수 있고
- 아래 사진처럼 상위클래스 변수가 하위클래스 변수를 받을 수 있는것
- 이것이 다형성
참고:
'면접' 카테고리의 다른 글
[자바] 자바는 버전별로 어떤 차이가 있나요? (1) | 2024.09.14 |
---|---|
[면접] 자바 Stream API에 대해 설명해주세요 (0) | 2024.09.14 |
[면접] 배열의 중복제거를 위한 방법을 알려주세요 (0) | 2024.09.14 |
[면접] 자바 컬렉션에 대해 설명해주세요 (0) | 2024.09.14 |
[면접] MVC 패턴에 대해 설명해주세요 (0) | 2024.09.14 |