Contents

조회 수 379 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
book_7247.png


2.3.2 자바에서 사용하지 않는 구조체

C 언어에는 구조체가 있고, C++와 자바에는 클래스가 있다. 자바는 C++의 문법 구조를 따르고 있으며, C++는 C 언어를 기반으로 하고 있다. C 언어의 구조체는 C++에 와서 완전하게 다른 모습인 클래스라는 이름으로 발전해서, 원래의 구조체와 클래스가 공존하게 된다. 그리고 이 클래스를 사용자가 쓰기 편리하도록 깔끔하게 완성시킨 듯한 느낌이다.

□ 구조체
◇ C 언어의 사용자 정의 데이터 타입

□ 클래스
◇ C++와 자바에서의 사용자 정의 데이터 타입

하지만 자바에서는 과감하게 구조체를 없애 버린다. 그 이유는 구조체의 기능을 클래스가 전부 할 수 있기 때문이다. 여기서 주장하고자 하는 것은 구조체에서 발전된 개념이 클래스라는 것이다.

□ 자바에서 구조체
◇ 자바에는 구조체가 없다.
◇ 구조체에서 발전된 개념이 클래스이다.

표준으로 C와 C++ 언어가 존재하고, C와 C++를 확장시켜서 각각의 회사들은 자신들의 컴파일러를 만들고 자신들의 문법을 추가하게 된다. 각 회사에서 다른 버전의 언어를 만들더라도 C와 C++의 기본적인 문법의 틀은 벗어나지 않는다.

개인적으로 바라보는 자바 문법은 C++의 문법에서 불필요하고 난해한 요소들을 제거하고, 객체지향을 위한 디자인 중심의 언어로 다시 만든 듯한 느낌이다. 그렇다고 해서 C++의 꼭 필요한 기능을 없앤 것은 아니다. 있을 건 다 있다. 그리고 구조체가 없어도 클래스로 대체할 수 있기 때문에 자바에서는 과감하게 없애버린 것이다.

□ 결론
◇ 클래스는 구조체의 개념을 포함한다.

클래스는 비단 자바 언어뿐만 아니라 C++, C#, Visual C++에서 통용되는 개념이다. 그렇기 때문에 자바의 클래스 개념을 제대로 이해한다면, 다른 C++ 계열의 언어를 쉽게 터득할 수 있을 것이다. 클래스는 C++ 계열의 언어를 공부한다면 누구나 기억해야 하는 객체지향 언어의 기본에 해당한다.

☞ 참고
C++에서 구조체와 클래스를 동시에 사용하는 이유는 C 언어와의 호환성을 유지하기 위해서이다. 자바의 경우 처음부터 C++을 기반으로 만들어진 언어이기 때문에 아예 처음부터 구조체를 제외시켜 버린 것이다.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
44 Java 3.2.3 컴파일과 실행 IT장인 2013.12.28 340
43 Java 3.2.2 자바의 환경설정 IT장인 2013.12.28 451
42 Java 3.2.1 자바 JDK IT장인 2013.12.28 353
41 Java 3.1.2 Introduction IT장인 2013.12.28 242
40 Java 3.1.1 핵심 Question IT장인 2013.12.28 277
39 Java 2.4.3 결론 IT장인 2013.11.22 302
38 Java 2.4.2 배우게 될 클래스 IT장인 2013.11.22 350
37 Java 2.4.1 메모리와 클래스 IT장인 2013.11.22 382
36 Java 2.3.5 클래스와 메모리 IT장인 2013.11.22 314
35 Java 2.3.4 클래스와 데이터베이스 IT장인 2013.11.22 353
34 Java 2.3.3 클래스의 역할 IT장인 2013.11.22 353
» Java 2.3.2 자바에서 사용하지 않는 구조체 IT장인 2013.11.22 379
Board Pagination Prev 1 2 3 4 5 6 Next
/ 6