자바 면접 준비

서재환·2022년 4월 1일
0

면접준비

목록 보기
1/4

객체지향 4대 특징 정리

<캡슐화>
추상화를 통해 객체에 타입을 부여하여 다루어질 수 있는 대상으로 만드는 것 (아래 설명)

추상화(공통된 속성과 행위를 추출해 객체화 시키는 것)를 통해 만들어진 객체(추상 객체)가 고유의
타입을 가지게 되고 추상객체의 타입을 통해 여러 개별 객체가 공통으로 다루어 질 수 있어 유연성이 확
보 된다.

추가로 일부 속성과 행위를 외부에 노출시키지 않음으로써 객체 내부 변경이 외부에 영향을 적게 미치도
록 한다.

<추상화>
공통된 속성과 행위를 추출하는 것

<상속>
다른 객체의 속성과 행위를 가져 오는 것, 추상 타입을 상속받음으로써 그 타입으로 다뤄질 수 있도록
만드는 것이 핵심

<다형성>
하나의 타입이 서로 다른 타입으로 지칭될 수 있는 특성 (아래 설명)

다형성은 객체지향 언어에서 상속을 통해 확보된다. 상속은 속성과 행위 뿐 아니라 타입도 상속시킨다. 
이에 상속받은 클래스는 자신의 고유 타입 뿐만 아니라 상위 타입을 가지게 된다. 이러면 2개의 타입을 
갖게 되는데 이를 다형성이라고 한다.

정리

객체는 속성, 행위 그리고 타입의 집합이다. 

캡슐화는 추상화를 통해 타입을 부여하는 것이다.

상속은 속성과 행위만이 아니라 타입까지도 물려 준다. 

다형성은 여러 타입을 가질 수 있는 특성이다.

참고자료

추상 클래스, 추상 메서드, 인터페이스 정리

추상 클래스의 고유 특징

1. 추상 메서드에 구현부가 있을 수도 있고 없을 수도 있다.

2. 추상 클래스를 상속받는 클래스의 경우 추상 메서드를 모두 다 구현 할 필요는 없다.
   만일 추상 메서드를 다 구현하지 않을 경우 해당 클래스는 추상 클래스로 작성해야한다.

3. 추상 클래스는 기본 생성자를 가진다. 따라서 인스턴스 생성이 가능하다.

인터페이스의 특징

1. 인터페이스에는 추상 클래스에 구현부가 있을 수 없다.

2. 인터페이스는 기본 생성자를 갖지 않는다.

3. 추상클래스와 다르게 인터페이스를 implements 한다는 의미에 상속 한다는 의미는 없다.
   상속이란 기본 생성자를 갖는 객체에 한해서 해당 용어가 사용될 수 있다.

포인트

각각의 개념을 학습 후 개념과 개념을 서로 연관지어 생각하기

접근 제어자

클래스나 인터페이스가 가지고 있는 멤버의 접근을 제어하기 위한 지시어
같은 클래스 멤버같은 패키지 멤버자식 클래스 멤버그 외 영역
PublicOOOO
ProtectedOOOX
DefaultOOXX
PrivateO XXX

final

해당 키워드가 붙으면 처음 정의된 상태가 변하지 않는다는 것을 보장한다는 의미
1) 변수(variable)
변수에 final을 붙이면 이 변수는 수정할 수 없다는 의미가 된다. 수정 불가한 
범위는 그 변수의 값에 한정된다. 수정될 수 없기 때문에 초기화 값이 필수적이다.

2) 메서드(method)
메서드에 final이 붙으면 override가 제한된다. 즉, 상속받은 클래스에서 해당 
메서드를 수정해서 사용하지 못하도록 제한하는 것이다.
  
  
3) 클래스(class)
클래스에 final이 붙으면 다른 클래스가 상속할 수 없는 클래스가 된다.

오버로딩 vs 오버라이딩

오버로딩

클래스 내 같은 이름의 메서드가 있더라도 매개변수의 유형 또는 개수가 다르면 
이름을 중복해서 사용하더라도 서로 다른 함수를 사용할 수 있는 특징

오버라이딩

상속을 받은 객체가 있을 때 해당 객체에서 상속받은 객체의 메서드를 그대로 
사용하거나 해당 메서드를 재정의해서 사용할 수 있는 특징

직렬화 VS 역직렬화

직렬화

객체를 전송 가능한 json 형태로 변경하는 것
  
전제조건
Serializable 인터페이스를 implements한 클래스를 상속받은 클래스의 경우 
직렬화가 가능한 클래스가 그 대상

역직렬화

json 형태를 객체 형태로 변환하는 것

0개의 댓글