자바와 객체 지향

Timo·2021년 4월 23일
0
post-thumbnail

객체 지향의 4대 특성 - 캡! 상추다

  • 캡슐화: 정보 은닉
  • 상속: 재사용
  • 추상화: 모델링
  • 다형성: 사용 편의

추상화

추상화란 구체적인 것을 분해해서 관찰자가 관심 있는 특성만 가지고 재조합하는 것이라고 정리할 수 있다.

OOP의 추상화는 모델링이다.
자바는 class 키워드를 통해 객체 지향의 추상화를 지원한다.

  • 객체: 세상에 존재하는 유일무이한 사물
  • 클래스: 분류, 집합 같은 속석과 기능을 가진 객체를 총칭하는 개념
    (같은 특성을 지닌 여러 객체를 총칭하는 집합의 개념이다.)

상속: 재사용 + 확장

객체 지향의 상속은 재사용과 확장으로 이해하는 것이 맞다.
확장, 세분화, 상위 클래스 - 하위 클래스로 이해해야 한다.

  • 객체 지향의 상속은 상위 클래스의 특성을 재사용하는 것이다.
  • 객체 지향의 상속은 상위 클래스의 특성을 확장하는 것이다.
  • 객체 지향의 상속은 is a kind of 관계를 만족해야 한다.

인터페이스: 구현 클래스 is able to 인터페이스
-> 구현 클래스는 인터페이스할 수 있다.

(인터페이스는 be able to, 즉 “무엇을 할 수 있는”이라는 표현 형태로 만드는 것이 좋다.)

다형성: 사용 편의성

객체 지향에서 다형성이라고 하면 오버라이딩과 오버로딩이라고 할 수 있다.

상위 클래스 타입의 객체 참조 변수를 사용하더라도 하위 클래스에서 오버라이딩(재정의)한 메서드가 호출된다.
(상위 클래스가 하위 클래스의 그릇이 되어 반복문을 통해 각기 재정의한 메서드를 실행할 수 있는 이유)

자바가 확장한 객체 지향

abstract
추상 클래스는 인스턴스, 즉 객체를 만들 수 없다. 즉, new를 사용할 수 없다.

static
static 블록은 클래스 생성 시의 실행 블록이다. 클래스의 생성자라고 생각하면 편하다.

T 메모리의 스태틱 영역에 패키지, 클래스가 로딩되는 시점은 해당 패키지 또는 클래스가 처음으로 사용될 때다.

클래스 정보는 해당 클래스 코드에서 맨 처음 사용될 때 T 메모리의 스태틱 영역에 로딩되며, 이때 단 한번 해당 클래스의 static 블록이 실행된다.

profile
나는 매일 성장하는 사람

0개의 댓글