// 에드센스

객체지향에 대해 설명해주세요

  • 객체란? -> 현실에 존재하는 대상
  • 프로그래밍에서 필요한 데이터를 추상화시켜 상태행위를 가진 객체를 만들고
  • 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법론

 

객체지향의 장단점이 뭐죠?

  • 장점은
    • 코드 재사용성이 좋다. 상속을 통한 확장도 가능
    • 유지보수가 쉽다. 절차지향에서는 일일이 찾아서 수정해야하지만, 객체지향에서는 클래스 내부를 보면 된다
    • 대형 프로젝트에 적합하다. 클래스단위로 모듈화 가능이기에 협업에 용이
  • 단점은
    • 개발속도가 상대적으로 느리다
    • 설계하기 쉽지 않다

 

클래스와 인스턴스가 뭐죠?

  • 클래스는
    • 대상의 속성과 행위를 변수와 메서드로 정의한 것
  • 인스턴스는
    • 정의한 클래스를 실제 메모리에 할당시키는 것

 

객체지향의 특성은 뭐가있죠?

  • 캡슐화
    • 클래스라는 캡슐에 속성과 행위를 묶고, 외부로부터 보호하는 것
      • 데이터 보호
      • 데이터 은닉 -> 필요한 부분만 노출
    • 접근제어자
    • 게터, 세터 -> 결합도를 낮출 수 있다
  • 상속
    • 기존 클래스를 재활용하여 새로운 클래스를 만드는 것
    • 속성과 행위를 물려받음
    • 중복을 제거하고 필요한 부분만 수정할 수 있다
  • 추상화
    • 객체지향 관점에서 클래스를 정의하는 것
    • 객체의 본질적이고 공통적인 부분만 추출하여 정의하는 것
      • 추상클래스
      • 인터페이스
  • 다형성
    • 객체의 속성이나 행위가 상황에 따라 여러가지 형태를 가질 수 있는 것
    • 상위클래스의 참조변수가 하위클래스 객체를 참조하는 것
      • 오버로딩
      • 오버라이딩
        • 오버로딩 오버라이딩처럼 메서드가 상황에따라 다르게 동작할 수 있고
      • 아래 사진처럼 상위클래스 변수가 하위클래스 변수를 받을 수 있는것
      • 이것이 다형성

 

 

 

참고:

https://www.codestates.com/blog/content/%EA%B0%9D%EC%B2%B4-%EC%A7%80%ED%96%A5-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%ED%8A%B9%EC%A7%95

 

객체 지향 프로그래밍의 4가지 특징ㅣ추상화, 상속, 다형성, 캡슐화 -

객체 지향 프로그래밍은 객체의 유기적인 협력과 결합으로 파악하고자 하는 컴퓨터 프로그래밍의 패러다임을 의미합니다. 객체 지향 프로그래밍의 기본적인 개념과 그 설계를 바르게 하기 위

www.codestates.com

 

+ Recent posts