세상에는 다양한 컴퓨터 언어들이 있습니다.

ex) C, C++, C#, Java, 파이썬 등

 

이러한 언어들을 크게 객체지향 프로그래밍, 절차지향 프로그래밍으로 나눌 수 있습니다.

 

 

 

 

 

절차지향 프로그래밍의 구조

 

 

◎ 절차지향 프로그래밍이란?

(Procedure Oriented Programming, POP)

 

말그대로 절차, 순차적인 처리를 중요시 되는 프로그래밍입니다.

물이 높은곳에서 아래로 흐르는 강물처럼 유기적으로 연결되도록 만드는 프로그래밍 기법입니다.

 

 

 

절차 지향 프로그래밍 언어

 

 

장점

▶ 컴퓨터 작업 처리 방식과 유사해 실행속도가 빠르다.

단점

▶ 유지보수가 어렵다.

정해진 순서가 바뀌면 동일한 결과를 보장받기 어렵다.

변하는 현실세계와 사용자의 요구에 유연하게 대처하지 못한다

 디버깅이 어렵다.

 

 

 

 

 

 

 

객체지향 프로그래밍 언어

 

◎ 객체지향 프로그래밍이란?

(Object Oriented Programming OOP)

 

'현실 세계를 프로그래밍 세계로 옮겨 놓는 행위'

이런 기능을 다른 말로 "모델링"이라고도 합니다.

현실 세계의 업무를 프로그램화 시키는데 도움을 줍니다.

 

 

컴퓨터 프로그래밍의 한가지 기법으로 객체를 만들고,

객체를 사용하는 프로그래밍 방법이라고 할 수있습니다.

 

 

 

 

 

객체지향 프로그래밍의 구성요소들

 

 

객체지향 프로그래밍의 기본 구성 요소

 

▶ 클래스(Class)

같은 종류의 집단에 속하는 속성과 행위를 정의한 것입니다.

객체, 컨트롤, 컴포넌트 등을 만들어내는 설계도

 

 

▶ 객체(Object)

현실 세계에서 어떤 특징(속성)을 가지며 어떤 동작(메서드)을 수행할 수 있는 단위 하나를 개체로 표현 가능합니다.

 

자동차 설계도(클래스) -> 조립(인스턴스화) -> 자동차(객체, Object)

 

객체를 만들어 내는 설계도(클래스), 이 클래스에서 조립된 물건 하나가 바로 객체입니다.

* 클래스는 대문자로 시작하고, 객체는 소문자로 시작하는게 기본 원칙

 

 

▶ 메서드(Method)

메서드는 클래스의 기능과 동작을 나타내는 가장 많이 사용하는 구성요소입니다.

자동차로 예를 들면, 전진(), 후진(), 좌회전() 같은 동작을 나타냅니다.

 

장점

잘 설계된 클래스를 만들어 라이브러리로 재사용해 생산성 향상.

▶ 수정해야할 부분이 클래스 내부에 멤버 변수 혹은
    메서드로 존재하기 때문에 유지보수가 용이하다.

객체단위로 모듈화시켜 개발할 수 있어, 여러명이 투입되는 
   대형프로젝트에서 업무분담에 용이하다.

단점

▶ 객체가 많아지면 용량이 커진다.

설계 시 많은 시간이 소요 될 수 있다.

처리속도가 상대적으로 느리다.

 

 

 

 

객체지향 프로그래밍의 특징

 

▶ 캡슐화 (Encapsulation)

 

객체의 속성(Data fields)과 행위(Method)를 하나로 묶고, 실제 구현 내용 일부를 외부에 감추어은닉.

 

캡슐화는 구조화된 데이터 개체 값 또는 상태를 숨겨 권한이 없으면 접근하지 못하도록 차단합니다.

 

캡슐화의 또 다른 의미는 연관된 자료 구조와 메서드(함수)를 한 테두리로 묶는 것입니다.

 

 

 

 

▶ 추상화 (Abstract)

 

자료 추상화는 불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 프로그램을 간단히 만드는 것

실제로 존재하는 객체들을 프로그램으로 만들기 위한 공통적인 특성을

파악해서 필요없는 특성을 제거하는 과정.

 

 

▶ 다형성 (Polymorphism)

 

특정 클래스의 메서드는 매개변수에 따라 여러 가지 다양한 형태일 수 있습니다.

한 객체가 다른 여러형태(객체)로 재구성 되는 것을 말합니다.

 

즉, 이러한 클래스의 특징을 다형성이라고 합니다.

 

 

 

▶ 상속 (inheritance)

부모 클래스의 멤버를 자식 클래스에서 재사용하는 개념을 상속이라고 합니다.

 

 

 

 

 

 

※ 참고자료(Reference)

▷ <C#교과서> 박용준 저서(길벗출판사)

radait.tistory.com/4

ko.wikipedia.org/wiki/%EA%B0%9D%EC%B2%B4_%EC%A7%80%ED%96%A5_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D    (위키백과)

 www.learnqtp.com/tutorial-class-object-properties-methods-uft/

www.ajonit.com/

반응형

+ Recent posts