Object Oriented Programming (OOP)

OOP (객체 지향 프로그래밍)의 Java의 대표 특성이기도 하다. 여기서 객체란 하나의 역할을 수행하는 매소드와 변수의 묶음이다. OOP의 특징은 다음과 같이 있다.

  1. Abstraction
    Abstraction(추상화)란 필요한 부분, 중요한 부분을 하나의 개념으로 통합한다는 것이다.
  2. Encapsulation Encapsulation(캡슐화)란 클래스에 정의된 멤버 변수를 감싸서 외부에 노출 시키지 않는 다는 의의가 있다. (Protected, Private - Private는 클래스 내에서 접근 가능, Protected는 자식 클래스에서 접근 가능)
  3. Inheritance
    상속이라는 개념이며 객체들 간의 관계를 구축한다. 상속을 통해 코드를 재사용 할 수 있다. (Java에서 extends를 사용)
  4. Polymorphism 다형성으로 부모의 매서드를 받아 자신의 역할에 맞게 활용할 수 있다. (Overriding, Overloading - 오버로딩은 매서드가 같은 이름을 갖고 있으나 다른 인자를 받음, 오버라이딩은 같은 함수를 하위 클래스에서 재정의 하는 것)

OOP는 SOLID를 따른다고 하는데, 추후에 또 적어보겠다!

Reference

https://hwan-shell.tistory.com/226
https://www.guru99.com/java-data-abstraction.html