객체 지향 프로그래밍

Ouroboros·2023년 8월 7일
0

개발상식

목록 보기
1/17

객체 지향이란?

작은 부품인 객체를 만들고 이렇게 만들어진 객체들을 결합하여 하나의 프로그램을 만드는 것

객체 : (프로그래밍에서 객체) 프로그램에서 구현하고자 하는 모든 대상
클래스 : (현실세계)객체를 추상화 한 것


        추상화       (객체생성=인스턴스화)
(현실세계)객체 -------------> 클래스 -------------> (프로그래밍)객체
말똥이 25세        class Person{       person p1;
               String name;      p1.name = "말똥이";
               Int age; }       p1.age = "25";



객체 지향 프로그래밍을 하는 이유

  1. 재사용성
    상속으로 불필요한 코드의 중복을 피하고, 코드를 재사용할 수 있어 효율적이다.

  2. 유지보수의 우수성
    캡슐화로 외부 데이터를 보호하여 필요한 부분만을 수정할 수 있어서 안전하며 경제적이다.
    또한 상속을 통해 원래의 기능을 활용할 수 있다.

  3. 업무 분담 유리
    클래스 단위로 모듈화 되어 있어 대형 프로젝트에 적합하며, 테스트가 용이하다.

*객체지향 프로그램의 단점 : 대체적으로 실행속도가 느리며, 코딩 난이도가 상승할 수 있다.



객체 지향 프로그래밍의 특징

  1. 추상화
    공통적인 특성을 활용해서 필요한 부분만을 간소화한다.
    ex) 지하철 노선도
      지형정보나 정확한 거리를 제거하고,
      승차역과 환승역의 정보를 잘 보이게 표시

  2. 캡슐화
    필요한 데이터와 정보를 그룹화한 것
    변수와 메소드를 클래스로 묶어서 관리하는 것은 재활용을 용이하게 하며, 정보 은닉의 장점을 가져올 수 있다.

  3. 상속
    상위 클래스의 속성과 특성을 하위 클래스에 물려줄 수 있다.
    코드 재사용성에 유리하다.

  4. 다형성
    어떤 객체의 속성이나 기능이 상황에 따라 여러 가지 형태의 성질을 가질 수 있다.
     *오버로딩 : 메소드의 중복 정의
          메소드 이름이 같더라도,
          매개변수의 개수 또는 타입, 순서를 다르게 하여 다른메소드를 정의하는 것

   *오버라이딩 : 메소드 재정의 > 상속받아서 새롭게 덮어씌우기
         상속받은 메소드를 자식클래스가 새롭게 정의하는 것



참고 자료

1)
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

2)
https://youngjinmo.github.io/2021/04/features-of-oop/

0개의 댓글