내가 표현하는 객체지향

송수용·2022년 6월 6일
0

getSomething()

목록 보기
12/14

객체지향

객체 지향의 키워드 및 특징

클래스 - 객체를 만들기 위한 정보를 정의한 것 (변수, 메서드 등을 정의해서)
인스턴스 - 클래스가 정의한 것을 실제로 메모리에 할당하는 것
추상화 - 객체들을 공통적인 특성을 파악하여 묶은 것을 정의하는 것, 클래스의 특성을 설계한다는 개념
캡슐화 - 객체를 캡슐처럼 만든다는 의미, 외부에 정보 노출을 막고 권한이 있는 객체만 접근할 수 있도록 함 (코드 재활용, 정보은닉)
상속 - 부모 클래스에게 속성과 기능들을 그대로 물려받는다는 의미, 물려받은 것 중 일부를 수정해서 사용도 가능
다형성 - 상황에 따라 다른 의미로 해석될 수 있다는 것, 같은 객체가 다른 형태로 재구성될 수 있다.
다형성>오버라이딩 - 부모 클래스의 메서드와 매개변수를 다시 정의하는 것
다형성>오버로딩 - 같은 이름의 메서드를 여러 개 정의, 매개변수를 타입과 수를 변경하여 다르게 호출할 수 있도록 함

한마디로 표현하면....하나의 역할, 기능, 부품 등으로 표현할 수 있을 것 같다.
모든 것들은 저마다의 존재 이유가 있다.
가위는 어떤 물체를 자르거나 음식 등을 자르거나 하는 용도로 쓰인다.
용도에 따라서 세부적으로도 나눌 수도 있다.

좀 더 이해하기 쉬운 표현이라고 한다면
나는 회사조직도를 떠올렸다.
회사가 있고, 각 부서* 처가 있다. 각 역할들이 모여 구성원들로 이루고, 부서가 된다.
부서는 부처가 되고 그 위에 임원이 있고 전체적으로 회사를 이루는 것 처럼
위의 키워드를 참고하여 보고 프로그래밍적(?)으로 생각해서 객체지향을 빗대어 표현해본다면

클래스 - 객체를 만들기 위한 정보를 정의한 것 (변수, 메서드 등을 정의해서)

  • 각 직원들의 역할과 할 수 있는 역량이라고 생각봤다.

인스턴스 - 클래스가 정의한 것을 실제로 메모리에 할당하는 것

  • 직원들이 가지고 있는 업무데이터를 생각해봤다.

추상화 - 객체들을 공통적인 특성을 파악하여 묶은 것을 정의하는 것, 클래스의 특성을 설계한다는 개념

  • 직원들이 모인 부서(경영지원, 영업팀, 인사과 등)와 같이 공통적으로 하는 업무에 대한 것이라고 생각했다.

캡슐화 - 객체를 캡슐처럼 만든다는 의미, 외부에 정보 노출을 막고 권한이 있는 객체만 접근할 수 있도록 함 (코드 재활용, 정보은닉)

  • 부서에서 회의한 내용을 기록한 회의록 정도로 생각해봤다.
    회의록은 해당 부서 또는 관리자밖에 볼 수 없기 때문이다.

상속 - 부모 클래스에게 속성과 기능들을 그대로 물려받는다는 의미, 물려받은 것 중 일부를 수정해서 사용도 가능

  • 사수와 함께하는 신입정도로 비유해볼 수 있을 것 같다.

다형성 - 상황에 따라 다른 의미로 해석될 수 있다는 것, 같은 객체가 다른 형태로 재구성될 수 있다.

  • 직원1, 직원2 가 있는데 직원1이 나가도 다른 신입,경력 직원이 들어와 그 일을 수행할 수 있어야한다.
  • 축구에서 골키퍼 라는 포지션은 있지만, 김승규가 부상이면 조현우가 뛸 수 있어야 한다.

다형성>오버라이딩 - 부모 클래스의 메서드와 매개변수를 다시 정의하는 것

  • 각 부서의 담당 업무는 해야하는 내용은 같지만, 일하는 스타일은 다를 수 있다.

다형성>오버로딩 - 같은 이름의 메서드를 여러 개 정의, 매개변수를 타입과 수를 변경하여 다르게 호출할 수 있도록 함

  • 회사를 가게되면 한 가지 일만 하는 경우는 드물 것이다.
    같은 큰 부류의 일을 하더라도 여러가지 일을 하는 것으로 생각해보았다.
profile
#공부중 #협업 #소통중시 #백엔드개발자 #능동적 #워커홀릭 #스파르타코딩 #항해99 #미니튜터 #Nudge #ENTJ #브레인스토밍 #아이디어뱅크

0개의 댓글