객체지향 정복기

김용욱·2024년 6월 5일

자바수련장

목록 보기
1/4

1. a.k.a Object-Oriented Programming, OOP


객체지향 프로그래밍은 객체들의 유기적인 협력과 결합으로 프로그래밍하는 것이다. 우선 프로그램의 아주 작은 부품이라고 할 수 있는 객체를 만들고, 여러 객체를 결합해 하나의 프로그램을 완성하는 것을 의미한다.
*객체 : 속성과 기능을 가지는 프로그램 단위




장점

  • 변경이 용이해 유연한 프로그램을 짤 수 있다.
  • 코드 재사용을 통한 반복/변경 코드 최소화로 간결하게 표현 가능하다. 이로인해 유지보수에 유리하다.



필요한 부분만 고쳐 원하는 결과물을 작업할 수 있다는 점이 정말 흥미롭다.




마치 레고처럼





2. 객체지향 사황

1. 추상화

핵심적이거나 공통되는 속성 및 기능을 간추리는 것

  • 중복 코드 줄일 수 있다.
  • 코드의 재사용성이 증가한다.
  • 유지보수, 가독성을 높일 수 있다.

2. 상속

두 클래스 사이에 부모-자식 관계를 설정

  • 코드의 재사용성을 높인다.
  • 중복을 제거해 프로그래밍 생산성과 유지보수에 크게 기여한다.

3. 다형성

동일한 코드이지만 동작방법, 결과가 다른 것

  • 다형성은 코드의 양을 줄이고, 여러 객체 타입을 하나의 타입으로 관리가 가능해 유지보수에 유리하다.
  • 대표적으로 오버로딩과 오버라이딩
*오버로딩 : 메서드의 이름은 같고 매개변수의 유형과 개수가 다르도록 하는 것
*오버라이딩 : 상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의해서 사용

다형성을 단숨에 이해할 수 있는 사진↓


4. 캡슐화

데이터와 메서드를 하나의 단위로 묶어 외부에서 직접 접근하지 못하도록 보호

  • 데이터 보호 : 외부로부터 클래스에 정의된 속성과 기능들을 보호
  • 데이터 은닉 : 내부의 동작을 감추고 외부에는 필요한 부분만 노출
  • 코드의 안정성을 높일 수 있다.
  • 코드의 재사용성을 높일 수 있다.


접근제어자 범위표는 다음과 같다.

*접근제어자 : 클래스 또는 클래스의 내부 멤버들에 사용되어 
            해당 클래스나 멤버들을 외부에서 접근하지 못하도록 접근 제한
profile
수시의 후예

0개의 댓글