본문 바로가기
교육, 학습/스프링 입문을 위한 자바 객체지향의 원리와 이해

JAVA의 OOP - 절차적, 구조적 프로그래밍의 유산

by 개발하는 경제학도 2022. 2. 2.

책 소개

현재 읽고 있는 '스프링 입문을 위한 자바 객체 지향의 원리와 이해' 중의 일부를 적은 내용입니다.


절차적/ 구조적 프로그래밍

객체 지향 프로그래밍은 절차적/ 구조적 프로그램을 포함하고 있다.

 

1. 절차적 프로그래밍

절차적 프로그래밍은 goto를 쓰지 말라는 것으로, 자바에서도 이를 사용하지 못하도록 예약어로 선점해두었다.

goto를 쓰면 실행 순서 즉, 제어 흐름을 이리저리 움직일 수 있다. 이렇게 되면 사람이 프로그램의 실행 순서를 이해하기에 너무 복잡해질 우려가 있기 때문에 사용을 금지한다.

 

2. 구조적 프로그래밍

함수를 사용하라는 것이다. 함수를 사용하면 좋은 점은 중복 코드를 한 데 모아 관리할 수 있으며, 논리를 함수 단위로 분리할 수 있어 이해하기가 쉬운 코드가 되기 때문이다.

추가적으로, 구조적 프로그래밍에서는 공유할 때 문제가 발생할 수 있는 전역 변수보다는 지역 변수를 사용하라는 지침도 있다.

 


자바에서의 유산

함수는 객체 지향 언어의 메서드와 같은 것이다.

객체 지향 프로그래밍에서 제어문이 있을 수 있는 유일한 공간은 메서드 내부에 있다. 따라서 객체 지향 언어는 메서드 안에서 절차적/ 구조적 프로그래밍의 유산을 확인할 수 있다.

 

함수와 메서드

함수(Function)와 메서드(Method)는 다르지 않다. 

차이점을 굳이 찾자면 메서드는 반드시 클래스 정의 안에 존재해야 하는 반면, 함수는 클래스 또는 객체와 아무 관계가 없다.

참고로 객체 지향 언어에서 클래스 외부에 존재할 수 있는 것은 없다.

 

댓글