logo

객체지향 프로그래밍 소개

이름에서 알 수 있듯이 객체 지향 프로그래밍(OOP)은 프로그래밍에서 객체를 사용하는 언어를 나타냅니다. 객체 지향 프로그래밍은 프로그래밍에서 상속, 숨기기, 다형성 등과 같은 실제 엔터티를 구현하는 것을 목표로 합니다. OOP의 주요 목적은 데이터와 이에 대해 작동하는 함수를 결합하여 해당 함수 외에는 코드의 다른 부분이 이 데이터에 액세스할 수 없도록 하는 것입니다.

OOP 개념:



  • 수업
  • 사물
  • 데이터 추상화
  • 캡슐화
  • 계승
  • 다형성
  • 동적 바인딩
  • 메시지 전달

1. 수업:

클래스는 사용자 정의 데이터 유형입니다. 해당 클래스의 인스턴스를 생성하여 액세스하고 사용할 수 있는 데이터 멤버와 멤버 함수로 구성됩니다. 이는 한 유형의 모든 개체에 공통된 속성 또는 메서드 집합을 나타냅니다. 클래스는 객체의 청사진과 같습니다.

예를 들어: 자동차 등급을 고려해보세요. 서로 다른 이름과 브랜드를 가진 많은 자동차가 있을 수 있지만 모두 4개의 바퀴, 속도 제한, 마일리지 범위 등을 갖는 것과 같은 몇 가지 공통 속성을 공유합니다. 따라서 여기서는 Car가 클래스이고 바퀴, 속도 제한, 마일리지는 그들의 재산입니다.



자바 컬렉션

2. 개체:

객체지향 프로그래밍의 기본 단위이며 실제 개체를 나타냅니다. 객체는 클래스의 인스턴스입니다. 클래스가 정의되면 메모리가 할당되지 않지만 인스턴스화(객체 생성)되면 메모리가 할당됩니다. 객체에는 ID, 상태 및 동작이 있습니다. 각 개체에는 데이터와 데이터를 조작하는 코드가 포함되어 있습니다. 개체는 서로의 데이터나 코드에 대한 세부 정보를 알 필요 없이 상호 작용할 수 있습니다. 허용되는 메시지 유형과 개체가 반환하는 응답 유형을 아는 것만으로도 충분합니다.

예를 들어 Dog는 색상, 품종, 짖음, 수면 및 먹는 것과 같은 몇 가지 특성을 갖는 실제 개체입니다.



OOP의 객체

물체

3. 데이터 추상화:

자바 문자열을 int로 변환

데이터 추상화는 객체지향 프로그래밍의 가장 필수적이고 중요한 기능 중 하나입니다. 데이터 추상화란 데이터에 대한 필수 정보만 외부에 제공하고 배경 세부 정보나 구현을 숨기는 것을 말합니다. 자동차를 운전하는 남자의 실제 사례를 생각해 보십시오. 남자는 액셀러레이터를 밟으면 자동차의 속도가 빨라지고 브레이크를 밟으면 차가 멈출 것이라는 것만 알지만, 액셀러레이터를 밟으면 속도가 어떻게 증가하는지 모르고 자동차의 내부 메커니즘에 대해서도 모릅니다. 또는 자동차의 가속기, 브레이크 등의 구현. 이것이 바로 추상화입니다.

4. 캡슐화:

완전한 형태의 IDE

캡슐화는 단일 단위로 데이터를 감싸는 것으로 정의됩니다. 이는 코드와 코드가 조작하는 데이터를 함께 묶는 메커니즘입니다. 캡슐화에서는 클래스의 변수나 데이터가 다른 클래스로부터 숨겨지며 선언된 클래스의 멤버 함수를 통해서만 액세스할 수 있습니다. 캡슐화와 마찬가지로 클래스의 데이터는 다른 클래스로부터 숨겨지므로 캡슐화라고도 합니다. 데이터 숨기기 .

객체 지향 프로그래밍의 캡슐화

캡슐화의 실제 예를 생각해 보면 회사에는 계정 섹션, 재무 섹션, 판매 섹션 등과 같은 다양한 섹션이 있습니다. 재무 섹션은 모든 금융 거래를 처리하고 재무와 관련된 모든 데이터 기록을 유지합니다. 마찬가지로 판매 섹션에서는 모든 판매 관련 활동을 처리하고 모든 판매 기록을 유지합니다. 이제 어떤 이유로든 재무 부서 직원이 특정 달의 판매에 대한 모든 데이터가 필요한 상황이 발생할 수 있습니다. 이 경우 판매 섹션의 데이터에 직접 접근할 수 없습니다. 그는 먼저 판매 부서의 다른 담당자에게 연락한 다음 특정 데이터를 제공하도록 요청해야 합니다. 이것이 바로 캡슐화입니다. 여기서는 영업 부문의 데이터와 이를 조작할 수 있는 직원을 단일 이름의 영업 부문으로 묶습니다.

5. 상속:

상속은 OOP(객체지향 프로그래밍)의 중요한 기둥입니다. 다른 클래스로부터 속성과 특성을 파생시키는 클래스의 기능을 상속이라고 합니다. 클래스를 작성할 때 우리는 다른 클래스로부터 속성을 상속받습니다. 따라서 클래스를 생성할 때 모든 속성과 함수를 반복해서 작성할 필요가 없습니다. 이러한 속성과 함수는 해당 클래스를 소유한 다른 클래스에서 상속될 수 있기 때문입니다. 상속을 통해 사용자는 가능할 때마다 코드를 재사용하고 중복성을 줄일 수 있습니다.

객체지향 프로그래밍의 상호간섭

6. 다형성:

자바 인스턴스화

다형성이라는 단어는 다양한 형태를 갖는다는 것을 의미합니다. 간단히 말해서, 다형성을 메시지가 두 가지 이상의 형식으로 표시되는 능력으로 정의할 수 있습니다. 예를 들어, 한 사람이 동시에 다른 특성을 가질 수 있습니다. 동시에 남자는 아버지, 남편, 직원입니다. 그래서 같은 사람이라도 상황에 따라 다른 행동을 보인다. 이것을 다형성이라고 합니다.

OOP의 다형성

7. 동적 바인딩:

자바테이블

동적 바인딩에서는 함수 호출에 응답하여 실행될 코드가 런타임에 결정됩니다. 동적 바인딩은 특정 프로시저 호출과 연관된 코드가 런타임 호출 시점까지 알려지지 않음을 의미합니다. 동적 메서드 바인딩 상속의 주요 이점 중 하나는 일부 파생 클래스 D가 기본 클래스 B의 모든 멤버를 갖는다는 것입니다. 일단 D가 B의 공개 멤버를 숨기지 않으면 D의 개체는 어떤 컨텍스트에서든 B를 나타낼 수 있습니다. B를 사용할 수 있는 곳. 이 특징은 하위 유형 다형성으로 알려져 있습니다.

8. 메시지 전달:

이는 객체지향 프로그래밍과 병렬 프로그래밍에 사용되는 통신 형태입니다. 객체들은 서로 정보를 주고받음으로써 서로 통신합니다. 개체에 대한 메시지는 프로시저 실행에 대한 요청이므로 원하는 결과를 생성하는 수신 개체의 함수를 호출합니다. 메시지 전달에는 객체 이름, 함수 이름, 전송할 정보를 지정하는 작업이 포함됩니다.

객체지향 프로그래밍이 필요한 이유

  • 프로젝트의 개발 및 유지 관리를 더욱 쉽게 만듭니다.
  • 보안 문제에 좋은 데이터 숨기기 기능을 제공합니다.
  • 객체 지향 프로그래밍을 사용하면 실제 문제를 해결할 수 있습니다.
  • 코드 재사용성을 보장합니다.
  • 이를 통해 우리는 다양한 데이터와 함께 작동하는 일반 코드를 작성할 수 있으므로 기본적인 내용을 반복해서 작성할 필요가 없습니다.