객체지향(Object-Oriented Programming)을 줄여서 OOP란 표현을 더 많이하며'Hello World' 를 찍는 예제를 통해 그 특성을 이해 해봅시다~절차적 프로그래밍 // 사용파트+구현파트 int main() { printf("Hello, World!"); printf("Hello, World! Again"); return 0; } 입력을 받아 명시된 순서대로만 처리하고 결과를 내는 방식으로 코드의 라인수대로 진행합니다.OOP가 가진 장점중 하나인 코드의 재사용이 불가능하지만 명령의 재 사용을 위해 코드를 점프하는'goto' 와 같은 명령이 있는 언어도 있습니다. 구조적 프로그래밍 //사용파트 int main() { say("Hello, World!"); say("Hello, World!"); return 0; } //구현파트 int g_sayCount = 0; void increseSayCount() { g_sayCount++; } void say(string message) { if(g_sayCount==0) hello(message) else helloAgain(message); increseSayCount(); } void hello(string message) { printf(message); } void helloAgain(string message) { printf(message + "Again"); } 절차적 프로그래밍 방식의 개선된 형태 프로그램을 함수단위로 나누고 함수끼리 호출하는 방식입니다.큰 문제를 해결하기 위해 문제를 작은 단위들로 나누어 해결하는 방식 Top-Down 방식입니다.함수를 통한 코드의 재사용이란 장점은 어느정도 가능해졌습니다. 하지만 책임단위 구분이 없고 누가 누구를 호출할수 있는지에 대한 규칙이 없기때문에 함수가 늘어갈수록 유지보수가 어려워집니다.객체지향 프로그래밍 //사용파트 int main() { TalkMan talkMan= new TalkMan(); talkMan.say("Hello, World!"); talkMan.say("Hello, World!"); return 0; } //객체 정의파트 public class TalkMan(){ public int sayCount = 0; public void increseSayCount() { sayCount++; } public void say(string message) { if(sayCount==0) hello(message) else helloAgain(message); increseSayCount(); } public void hello(string message) { printf(message); } public void helloAgain(string message) { printf(message + "Again"); } } 큰 문제를 작게 쪼개는 것이 아니라, 작은 문제들을 해결하는 객체를 만든다. 객체들을 조합해 큰 문제를 해결하는 Bottom-Up 방식으로 구조적 프로그래밍 샘플을 그대로 변환하였습니다 단순하게 구조적으로 작성된 함수를 집합을 시켰습니다. 이것만으로 OOP의 특성을 모두 이용했다고 볼수는 없지만 작은 문제를 해결하는 객체(Class)를 정의하고 집합을 시킨것만으로OOP의 시작으로 볼수 있습니다.적어도 다음 장점이 생겨났습니다.책임을 객체단위로 생성하고 재사용 가능코드의 유지보수가 객체단위로 용이해짐
객체지향 프로그래밍
객체지향(Object-Oriented Programming)을 줄여서 OOP란 표현을 더 많이하며
'Hello World' 를 찍는 예제를 통해 그 특성을 이해 해봅시다~
절차적 프로그래밍
입력을 받아 명시된 순서대로만 처리하고 결과를 내는 방식으로 코드의 라인수대로 진행합니다.
OOP가 가진 장점중 하나인 코드의 재사용이 불가능하지만 명령의 재 사용을 위해 코드를 점프하는
'goto' 와 같은 명령이 있는 언어도 있습니다.
구조적 프로그래밍
절차적 프로그래밍 방식의 개선된 형태 프로그램을 함수단위로 나누고 함수끼리 호출하는 방식입니다.
큰 문제를 해결하기 위해 문제를 작은 단위들로 나누어 해결하는 방식 Top-Down 방식입니다.
함수를 통한 코드의 재사용이란 장점은 어느정도 가능해졌습니다. 하지만 책임단위 구분이 없고
누가 누구를 호출할수 있는지에 대한 규칙이 없기때문에 함수가 늘어갈수록 유지보수가 어려워집니다.
객체지향 프로그래밍
큰 문제를 작게 쪼개는 것이 아니라, 작은 문제들을 해결하는 객체를 만든다. 객체들을 조합해 큰 문제를 해결하는 Bottom-Up 방식으로
구조적 프로그래밍 샘플을 그대로 변환하였습니다 단순하게 구조적으로 작성된 함수를 집합을 시켰습니다.
이것만으로 OOP의 특성을 모두 이용했다고 볼수는 없지만 작은 문제를 해결하는 객체(Class)를 정의하고 집합을 시킨것만으로
OOP의 시작으로 볼수 있습니다.
적어도 다음 장점이 생겨났습니다.