pat coding

[JAVA] 자바 신입 면접 질문 모음! 본문

Interview

[JAVA] 자바 신입 면접 질문 모음!

uuukpyo 2019. 11. 13. 20:55
728x90

객체지향프로그래밍(OOP)이란?

프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법

 

특징

 - 상속, 추상화, 캡슐화, 다형성 (상추캡다)

 

장점

 - 코드 재사용 용이 (클래스를 가져올 수 있고, 상속을 통해 확장이 가능)

 - 유지보수가 쉬움 (변수나 메서드만 수정하면됨)

 - 대형 프로젝트에 적합 (클래스단위로 모듈화시켜서 여러명이 나눠서 개발할 수 있음)

 

단점

 - 객체가 많으면 용량이 커짐

 - 설계시 많은 시간과 노력이 필요

 

상속이란?

자식클래스가 상속받고 싶은 부모클래스를 선택해서 물려받는 것

기능의 일부분을 변경해야 할 경우 상속받은 자식클래스에서 해당 기능만 다시 수정하여 사용할 수 있게 하는 것

 

추상화란?

구체적인 사물들의 공통적인 특징을 파악해서 이를 하나의 개념(집합)으로 다루는 것

 

캡슐화란?

데이터들과 그 데이터를 처리하는 코드들을 하나의 단위로 묶는것 
접근제어자를 통해 클래스외부에서 접근못하게하는 것

다형성이란?

서로 다른 클래스의 객체가 같은 메시지를 받았을 때 각자의 방식으로 동작하는 능력

접근제어자?

변수나 메서드를 선언할 때 접근 제어

접근제어자를 통해 캡슐화와 정보 숨김을 구현

 

- private : 같은 클래스 내에서만 접근 가능

- default : 같은 패키지 내에서만 접근 가능

- protected : 같은 패키지 내에서, 다른 패키지의 자손 클래스에서 접근가능

- public : 접근 제한이 전혀 없다

 

오버라이딩?

상속을 통해 부모클래스의 메서드와 같은 이름으로 매개변수를 재정의 하는 것


오버로딩?

같은 이름의 메소드를 여러개 정의 하는 것

매개변수 타입이 다르거나 개수가 달라야 함


추상클래스와 인터페이스?

공통점

- New 연산자로 인스턴스 생성 불가

- 프로토타입만 있는 메서드를 갖음

- 사용하려면 하위클래스에서 확장/구현 해야 함

 

차이점

- 사용하는 키워드가 다름

- 추상클래스는 일반 메서드를 사용할 수 있지만, 인터페이스는 메서드 선언만 가능

 

 

728x90
Comments