| [ WWW ] in KIDS 글 쓴 이(By): seasons (오히려전법) 날 짜 (Date): 1996년08월24일(토) 20시28분21초 KDT 제 목(Title): WW 강좌 10 : Java 배우기 (20) A.Fun.A.Day(396) WWW 강좌 10 : Java 배우기 (20) ----------------------------------------------- < 자바 백서 > 계속 2.3C와 C++에서 제거된 특성 앞 절에서는 자바언어의 특성에 집중했다. 이 절에서는 자바언어의 설계에서 C와 C++로부터 제거된 특성을 다룬다. 첫 번째로 C와 C++로부터 과잉(Redundan- cy)된 것을 제거하는 것이다. 많은 방법으로, C언어는 많은 경우 필요로 하는 특성을 제공하여 같은 것을 가리키는 너무 많은 방법을 제공하는 겹친 특성들의 집합으로 발전했다. "C에 클래스"를 추가하는 시도로써 심지어 C++은 C의 문제는 그대로 물려받은 체, 더욱 많은 과잉을 추가했다. ⊙ Typedefs, Defines, and the Preprocessor 자바언어로 쓰여진 원시코드(Source Code)는 간결하다. 전처리기도, #define과 그와 관계된 특성도, typedef도, 그러한 특성이 없는, 헤더파일도 더 이상 자바에는 없다. 헤더파일을 대신하여, 자바언어는 인터페이스(Interface)가 다른 클래스와 메쏘드 정의를 제공한다. C와 C++에서 중요한 문제는 다른 프로그래머의 코드를 이해하기 위한 상당량 의 목차(Context)였다 - 프로그램을 분석하기 전에 관계된 모든 헤더파일, #define, typedef를 읽어야 했다. 이렇게 되자, 이런 스타일의 프로그램밍은 더 좋은 프로그램밍 실제의 목적을 창조하거나 물리쳐 다른 사람이 이해할 수 없는 새로운 프로그램밍 언어를 각기 프로그래머들로 하여금 고안하게 하는 결과 를 낳았다. #define은 상수를 이용하면 된다. typedef는 클래스를 이용하면 된다 - 무엇 보다도, 클래스는 효과적으로 새로운 종류를 선언한다. 자바언어 컴파일러가 클래스 정의를 모든 종류의 정보를 지니는 바이너리폼(Binary Form)에서 링크 시 에 바꾸어 컴파일하기 때문에 헤더화일이 필요 없다. 이런 낡은 습관을 제거하여, 자바언어는 획기적인 목차에 자유롭게(Context Free) 되었다. 프로그래머는 코드를 읽고 이해할 수 있으며, 더욱 중요하게 더욱 빠르고 쉽게 코드를 바꾸고 재활용할 수 있다. ⊙ 구조체와 공용체(Structures and Unions) 자바언어는 복잡한 데이터인 구조체와 공용체가 없다. 클래스를 사용할 때 구조체와 공용체가 필요 없다 - 클래스의 인스탄스 변수를 사용하면 된다. 다 음의 코드예제는 좌표와 사각형 클래스를 선언하는 것이다. 구현된 내용을 얼마 나 감추는 가에 따라 private 또는 public으로 인스탄스 변수를 만들 수 있다. class Point extends Object { float x; float y; 인스탄스 변수에 접근하는 함수를 만들고 } class Rectangle extends Object { Point lowerLeft ; Point upperRight ; 인스탄스 변수에 접근하는 함수를 만들고 } ⊙ 함수(Functions) 자바언어에는 함수가 없다. 객체지향 프로그램밍은 함수적이고 프로시져 적인 (Procedural) 스타일을 빼었었다. 두 개의 스타일을 혼합하여 객체지향 언어의 순수성을 혼동시키고 희박하게 만들뿐이다. 함수로 할 수 있는 것이면, 클래스와 클래스의 메쏘드를 정의하여 더 잘 할 수 있다. 함수를 제거하여, 자바언어는 프로그래머로써 일을 광범위하게 간결화했다 - 클래스와 메쏘드로만 일하면 된다. -- ___o ___o ___o ___o ___o __ \\ __ __ \\ __ __ \\ __ __ \\ __ __ \\ __ (*)/ (*) (*)/ (*) (*)/ (*) (*)/ (*) (*)/ (*) +---------------------------------------------------------------------------+ | Won Geun Baek E-Mail: wgbaek@pharaoh.telecom.samsung.co.kr | | Samsung Electronics co. TEL : 02-405-1376 (7:00-18:00 Korea) | +---------------------------------------------------------------------------+ +--------------------------------------------------- | 오히려 전 / | 법 없이도 살수 있는 놈이죠. :<))* \ +----------------------------- hmh@gregory.kaist.ac.kr |