JAVA Programming/JAVA 개념 정리

JAVA의 조상 C++

psy_er 2021. 9. 23. 01:03
728x90

JAVA의 조상 C++

c 언어의 문법을 바탕으로 객체지향적 특징을 갖도록 확장시킨 것이다. 초창기에 c++c with classes로 불렸다. c++c언어 문법 체계를 계승하면서 cc언어만큼 효율적이고 높은 이식성을 지향한다. c 언어와의 호환성이 좋아 소스 레벨 차원에서 기존의 c 소스 코드를 그대로 가져다 사용 가능하다. 링크 레벨은 c 오브젝트와 라이브러리 링크가 가능하다. , 엄격한 type-checking을 수행해 런타임 오류를 줄여 디버깅 시 편리하게 해 주었다..

 

프로그램 = 데이터 + 알고리즘으로 구성되어 있다. 데이터는 프로그램에서 사용하는 정보이고 알고리즘은 문제를 해결하는 절차들이다. 프로그래밍 기법 중에 문제 해결 방식에 따른 분류로 절차 지향형 프로그래밍과 객체지향형 프로그래밍이 있다.

 

프로그래밍 방식

 

절차 지향형 프로그래밍은 문제 해결의 방식을 절차들의 집합으로 본다. 데이터보다 절차 즉 알고리즘 작성에 치중한다. 입력된 데이터를 적절하게 가공하는 순차적인 명령어들의 집합이다. 구조화 프로그래밍으로 몇 가지 기본적인 구조(순차, 반복, 선택)를(순차, 반복, 선택) 이용하여 순차적으로 프로그래밍하는 방식이다. 단계별 세분화로 하향식 설계 프로그래밍이다.

 

객체지향형 프로그래밍은 하나의 프로그램을 상호 연결된 객체들의 집합으로 본다. 단순 절차 알고리즘보다 객체 즉 데이터를 더 중시한다. 문제와 관련된 객체를 만들고 이 객체들 간의 메시지 교환으로 문제를 해결한다. 객체는 데이터와 알고리즘을 포함한다. 상향식 설계로 낮은 수준의 객체를 이용하여 더 높은 수준의 객체를 작성한다.

 

 

객체지향 도입 목적

 

c++에 객체지향을 도입한 목적은 소프트웨어 생산성을 향상하기 위해서이다. 소프트웨어의 생명주기 단축 문제를 해결할 필요가 있었다.. 원래 작성된 코드의 재사용성을 향상할 필요가 있었다. 실세계에 대한 쉬운 모델링을 위해 객체지향을 도입했다. 과거엔 수학계산이나 통계처리에 편리한 절차 지향 언어가 적합했으나, 현대에는 속성과 행위를 갖는 객체를 중심으로 하는 객체 지향 언어가 적합하다.

 

728x90

c++에 추가된 기능

 

네임스페이스 : 식별자가 가시적인 영역을 한정한다.

인라인 함수 : 함수 호출 대신 함수 코드의 확장 사입

함수 다중 정의 : 매개 변수의 개수나 타입이 다른 동일한 이름의 함수들을 선언한다.

디폴트 매개 변수 : 인수 생략으로 매개 변수에 기본 값이 전달되도록 함수 선언

레퍼런스 : 기존 왼쪽 값에 별명을 사용한다.

new/delete 연산자 : 동적 메모리 할당/해제를 위한 연산자이다.

연산자 재정의 : 기존 연산자에 새로운 연산 내용을 정의한다.

구조체와 클래스 : 변수와 함수의 묶음, 타입명과 같이 사용 가능하다.

템플릿 : 자료형에 의존하지 않고 일반화시킨 함수나 클래스이다.

 

728x90

'JAVA Programming > JAVA 개념 정리' 카테고리의 다른 글

JAVA 클래스 상속  (1) 2021.11.10
JAVA 캡슐화 정보은닉  (12) 2021.09.26
JAVA와 c++의 차이점  (7) 2021.09.24
JAVA instance static 메서드 오버 로딩  (1) 2021.09.22
JAVA 응용 프로그램의 기본 구조  (3) 2021.09.21