[ java ] in KIDS 글 쓴 이(By): hell (나누구야) 날 짜 (Date): 1997년10월09일(목) 22시10분36초 ROK 제 목(Title): 자바의 데이터형과 변수 (4) ------------------------------------------------------------------------------ 뉴스제공시각 : 02/01 00:00 출처 : 마이크로 제목 : 자바프로그래밍[2]/자바의 데이터형과 변수 (4) ----------------------------------------------------------------------------- 문자열(String) C/C++에서 문자열은 char형의 배열이었다. 하지만 자바에서는 조금 다르다. 자바에 서 문자열은 String이라는 클래스의 인스턴스들이다. 따옴표 등 C/C++에서와 동일 한 형식으로 문자열을 사용할 수 있도록 자바에서 지원하고는 있고 문자열을 합칠 수 있도록 '+' 연산자를 제공하고 있지만, 그 사실을 제외하고는 다른 여타 클래스와 전혀 틀릴 바가 없다. 특별 대우받는 클래스라고 하면 될까? 한 가지 더 놀라운 사실은 String 객체는 내용을 수정할 수 없는 객체라는 점이다. 상수와 같다. 이런 까닭에 StringBuffer라는 클래스가 별도로 제공된다. 처음 자바 프로그래밍을 할 때 제일 당혹스러운 것중 하나가 이 문자열이 C/C++와 상이하다는 점이다. 배열이 아니라서 지금까지 배운 지식으로 문자열을 다루는 것은 턱도 없는 일이다. 이들 클래스에 대해서는 다음에 별도로 다루기로 하겠다. 참고로 지금까지 예제에서 사용한 '+' 연산자는 문자열끼리 이어 새로운 문자열 객체 를 만들어 내는 연산자이다. 이 연산자는 대상중 어느 한쪽이 문자열이기만 하면 사 용할 수 있으며, 문자열이 아닌 데이터는 자동으로 문자열로 변환해 준다. 이 때 사 용되는 것들이 각 클래스에 정의된 toString() 메쏘드이다. 자바 컴파일러는 내부적으 로 toString() 메쏘드를 사용해서 '+' 연산자를 구현한다. int와 같은 기본 데이터형은 각 데이터형에 해당하는 특별한 클래스인 Integer, Character 등의 클래스에 정의되 어 있는 toString() 메쏘드를 사용하여 문자열로 변환된다. 필자 연락처 : dynaxis@dice.postech.ac.kr 정리 : 박은숙 참고자료 ① Kathleen Jensen and Niklaus Wirth, "Pascal User Manual and Report," 4th Ed., 1991, Springer-Verlag New York, Inc., pp.10 ② 월간 마이크로소프트웨어 1996년 12월호 pp. 296-306, "자바에서의 한글 구현과 그 해결책" ③ Bjarne Stroustrup, "The C++ Programming Language," 2nd Ed. Addison-Wesley, 1991 ④James Gosling, Bill Joy, and Guy Steele, "The Java Language Specification," Addison-Wesley, 1996 ⑤Richard S. Wiener and Lewis J. Pinson, "An Introduction to Object-Oriented Programming and C++," Addison-Wesley, 1988 ⑥Richard S. Wiener and Lewis J. Pinson, "An Introduction to Object-Oriented Programming and Smalltalk," Addison-Wesley, 1988 ⑦ Tim Lindholm and Frank Yellin, "The Java Virtual Machine Specification," Addison-Wesley, 1996 ⑧ Ken Arnold and James Gosling, "The Java Programming Language," Addison-Wesley, 1996 ⑨ Mary Campione and Kathy Walrath, "The Java Tuturial, Object-Oriented Programming for the Internet," Addision-Wesley, 1996 이달의 숙제 지금까지 배운 지식을 활용해서 세모꼴로 생긴 2차원 배열을 구현하는 것이 가능하 다. 논리적으로 위와 같은 형태의 배열의 기능을 하는 배열을 선언해서 초기화 해 보자. 당연하지만 C/C++, 파스칼과 같은 언어에서는 위와 같은 배열을 만드는 것이 불가능 하다. |