본문 바로가기

청년취업아카데미/DayLog

[ Java ] Day 01 - ② 객체지향에서 중요한 개념

# OOP(Object-oriented Programming)

  1. Inheritance
  2. Polymorphysn
  3. Information Security

1. Inheritance (상속)

  • extends
  • implements

(2) Polymorphysm (다형성)

  • Overriding
  • OverLoading
  • (면접 단골 질문) 오버라이딩과 오버로딩의 비교! 오버라이딩은 메소드를 재정의하는 것이고, 오버로딩은 메소드를 다중 정의하는 것이다.

(3) Information Security (정보보호)

  • Private (Encapsulation)
  • Information Hiding

 

# OOP Check 개념

  1. static
  2. constructor
  3. abstract class
  4. interface

(1) 인스턴스 변수와 클래스 변수

  • 클래스 변수 : static 변수

(2) 생성자

: 인스턴스가 생성될 때 마다 호출되는 "인스턴스 초기화 메소드"

(3) 추상 클래스

: 객체를 생성할 수 있는 공통 개념만을 표현하기 위한 인스턴스를 만들 수 없는 클래스

  • 추상 클래스의 특징
    1. 클래스의 프레임만 구성한다
    2. 하나 이상의 추상 메소드를 포함
    3. 직접 객체 생성 불가능
    4. 추상 클래스에서 정의된 추상적인 기능은 하위 클래스에서 상세 구현하도록 한다.

*** 면접 단골 손님 : 추상클래스와 인터페이스 비교

  • 인터페이스 지시어 interface, 상속시 implements
  • 추상클래스 지시어 abstract class, 상속시 extends
  • 추상 클래스 구조

(4) 인터페이스

: 일종의 추상클래스로서, 추상클래스(미완성 설계도)보다 추상화 정도가 높다.미리 정해진 규칙에 맞게 구현하도록 표준을 제시하는 데 사용됨

  • 인터페이스의 구조

  • 인터페이스의 특징
    1. 구성요소(멤버)는 추상메서드와 상수만 가능하다. public abstract 생략. (생략할 수 있기 때문에 안쓴다.)
    2. 클래스처럼 상속이 가능하다. (클래스와 달리 다중상속 허용)
    3. 인스턴스를 생성할 수 없고, 클래스 작성에 도움을 줄 목적으로 사용함.