ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 객체지향프로그래밍
    코드스테이츠 43기 2023. 1. 13. 12:53

    객체 지향 프로그래밍 (Object-Oriented Programming, OOP)은 프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체로 만들고, 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. 이로인해 데이터와 기능을 한번에 묶어서 처리할 수 있다.

    캡슐화 Encapsulation

    데이터(속성)와 기능(메서드)을 하나의 단위로 묶는 것을 말한다. 구현은 숨기고,동작은 노출시키며, 느슨하게 결합하여 언제든 수정할 수 있도록 설계한다. 더 엄격한 클래스는 속성의 직접적인 접근을 막고, 설정ㅇ하는 함수(setter),불러오는 함수 (getter)를 철저하게 나누기도 함.

    **높은 응집도,낮은 결합도**

    코드가 복잡하지 않게 만들고, 재사용성을 높임

     

     

    추상화 Abstraction

    객체들이 공통적으로 필요로하는 속성이나 동작을 하나로 만드는 작업이다, 내부구현은 아주 복잡한데 실제로 노출되는 부분은 단순하게 만든다는 개념(인터페이스를 단순하게!!!)

    코드가 복잡하지 않게 만들고, 변화에 대한 영향을 최소화함!

     

    상속 Inheritance

     

    상속은 하위클래스가 상위클래스의 속성과 행위를 물려받는것이다.

    즉 새로운 클래스가 기존 클래스의 데이터와 연산을 이용할 수 있게 되는 것이다.

    재사용으로 인해 코드가 줄어들고, 범용적인 사용이 가능하다며, 자료와 메서드의 사용 및 추가가 가능하다는 장점이 있다.

    하지만 단점도 존재하기 때문에 코드 재사용의 목적보다는 기능 확장의 목적에서 사용하는 것이 좋다.

    단점은 상위클래스의 변경이 어려워지고, 상속이 잘못사용될 수 있다는 것이다.

     

    다형성 Polymorphism

    똑같은 메서드라고 하더라도, 다른 방식으로 구현될 수 있는 것

    각자의 특성에 맞는 방식으로 동작하기 때문에, 코드를 간결하게 해주고 유연하게 해준다.

    동일한 메서드에 대해, 조건문 대신 객체의 특성에 맞게 달리 작성하는 것이 가능함.

     

     

     

     

     

    오버라이딩-> 상위클래스가 가지고 있는 메소드를 하위 클래스가 재정의해서 사용하는 것

    오버로딩 -> 같은 이름의 메서드가 인자의 개수나 자료형에 따라 다른 기능을 하는 것

Designed by Tistory.