TIL 30 | [Java] 객체지향과 Java

Yoonsik·2022년 7월 13일
0

JAVA

목록 보기
5/11

이번 포스트에서기본적인 객체지향과 java에 대한 개념을 다뤄볼려고 합니다.

객체

객체란 실세계 우리 주변의 모든 것(명사형)을 뜻합니다. ex) TV, 의자, 자동차 등...
객체는 각자 자신만의 고유한 특성(state)과 행동(behavior)을 지니고, 다른 객체들과 서로 상호작용하며 존재합니다.
실세계는 이러한 객체들의 집합이라고도 할 수 있습니다.

객체지향 언어

객체지향 언어는 위에서 설명한 실세계의 객체들을 프로그램 내에 표현하기 위해 클래스와 객체 개념을 도입하였습니다.

💻 객체지향 언어의 특성

  • 캡슐화

    캡슐화란 객체를 캡슐로 싸서 내부를 보호하고 볼 수 없게 하는 것으로, 외부 접근으로부터 내부를 보호하고, 노출되어선 안되는 정보를 은닉합니다.

    ex) 실세계 객체의 캡슐화 사례 -
    [캡슐과 알약], [TV케이스와 TV], [사람의 피부,근육과 장기,뇌]

    객체는 캡슐화가 기본 원칙이지만, 외부와의 접속을 위해 몇 부분만 공개 노출합니다.
    실세계와 달리 자바에서의 객체는 클래스(class)라는 캡슐을 사용하며, 해당 클래스의 속성은 필드(멤버변수)와 메소드(멤버함수)로 구성됩니다.
    이때 멤버변수는 객체의 특성(state)을 나타내고, 멤버함수는 객체의 행동(behavior)을 나타냅니다.

  • 상속

    실세계에서 상속은 상위 개체의 속성이 하위개체에 물려져서, 하위개체가 상위개체의 속성을 모두 가지는 관계를 뜻합니다.

    자바의 상속은 자식 클래스(sub class)가 부모 클래스(super class)의 속성을 물려받고 기능을 추가하여 확장(extends) 하는 개념입니다.

    상속은 슈퍼클래스의 필드와 메소드를 물려받아 코드를 재사용함으로, 코드 작성에 드는 시간과 비용을 줄입니다.

  • 다형성

    다형성은 같은 이름의 메소드가 클래스 혹은 객체에 따라 다르게 동작하도록 구현되는 것을 말합니다.
    상속 관계의 다형성을 보여주는 사례로는 다음 2가지가 있습니다.

    - 메소드 오버라이딩(overriding)
    슈퍼클래스에 구현된 메소드를 서브클래스에서 동일한 이름으로 자신의 특징에 맞게 다시 구현하는 것

    - 메소드 오버로딩(overloading)
    클래스 내에서 이름이 같지만 서로 다르게 동작하는 메소드를 여러개 만드는 것


profile
꾸준함의 힘

0개의 댓글