Java 객체지향 프로그래밍

Java에 대한 기본문법을 알고있지만 객체지향 프로그래밍이라는 것에 익숙치 않아서 다시 공부해보고자 한다.

공부를하면서 차근차근 채워나갈 생각

객체지향 프로그래밍?

단어 뜻 그대로 프로그램을 객체라는 기본 단위로 나누고 이 객체들간의 상호작용을 기본개념으로 한다.

객체지향 프로그래밍은 프로그램을 유연하고 변경하기 쉽게 만들기 때문에 재사용성이 용이하여 대규모 프로젝트에서 많이 사용되는 방법론이다. 유지보수가 쉽고 개발이 간단하다. 하지만 처리속도가 느리고 객체에 따른 용량이 증가한다. 그리고 설계단계에 시간이 많이 소요된다.

객체지향의 4가지 특성

1. 추상화(Abstraction)

  • 객체들의 공통적인 특징을 뽑아내는 것이다.

2. 캡슐화(Encapsulation)

  • 데이터 구조와 데이터를 다루는 방법을 결합시켜 묶는다.
  • 데이터를 은닉하고 그 데이터를 접근하는 기능을 노출시키지 않는다는 의미
  • 데이터의 변경이 해당 클래스 내부에서만 일어난다.
    <접근 제어 지시자>
    • public : 모든 곳에서 접근 가능
    • protected : 상속 / 같은 패키지 내 클래스에서 접근 가능
    • private : 내부 클래스에서만 접근 가능

3. 상속(Inheritance)

  • 상위개념의 특징을 하위 개념이 물려받는 것을 의미한다. 즉, 하나의 클래스가 가지고 있는 데이터와 함수를 다른 클래스에서 쓸 수 있도록 물려주고자 할 때 상속의 특징을 사용한다.
  • 코드의 재사용성을 증가 시킬 수 있다.

4. 다형성(Polymorphism)

  • 하나의 메소드나 클래스가 다양한 방법으로 동작하는 것을 의미한다.
  • 일반적으로 오버라이딩이나 오버로딩을 의미
    • 오버로딩 : 같은 이름의 메소드가 파라미터의 개수나 타입에 따라서 다른 기능을 하는 것
    • 오버라이딩 : 같은 이름의 메소드가 여러 클래스에서 다른 기능을 하는 것

0개의 댓글