What is Object?
Java : 2006/11/01 17:55
얼마전 스터디에서 Object의 정의에 대한 열띤 토론이 있었습니다. 추상적인 개념에 대한 토론이라 어떤 결론을 내릴 수가 없었습니다. 전 "기존에 사용되는 의미"에 집중해서 Object가 무엇인지 살펴보도록 하겠습니다.
Object에 대한 정의는 Java Tutorial에 한페이지 정도의 분량으로 설명이 돼있습니다. Object는 Object-Oriented 기술의 핵심이며 실제 세상의 Object는 주변에서 둘러 볼 수 있는 모든 것이라는 말이 첫문장에 나옵니다.
마지막 부분은 원문이 더 보기가 좋을 것 같아서 그냥 긁어 왔습니다.(사실은 귀차니즘?ㅋ) Java는 객체 지향 언어이며(완벽하진 않은 것 같습니다만..잘 몰라서 이렇게 밖에 말을 못하겠네요.) Java Tutorial에 위와 같이 정의를 해두고 있습니다. 이건 마치 법이나 마찬가지라고 생각합니다. Java의 근본인 Object에 대한 개념을 나름대로의 개념으로 재정의 하겠다는 것은 위험한시도라고 생각합니다. :)
Object에 대한 정의는 Java Tutorial에 한페이지 정도의 분량으로 설명이 돼있습니다. Object는 Object-Oriented 기술의 핵심이며 실제 세상의 Object는 주변에서 둘러 볼 수 있는 모든 것이라는 말이 첫문장에 나옵니다.
실제 세상의 Object는 크게 두가지 특성이 있는데 바로 상태와 행동이다. 실제 세상이 객체가 가지는 상태와 행동을 식별해내는 것이 Object-Oriented Programing을 시작하는 가장 중요하다. "이 객체는 무슨 상태를 가질 수 있을까?" "이 객체는 무슨 행동을 할까?" 등을 질문해보면 실제 세상의 Object가 얼마나 복잡한가 알 수 있을 것이다. 그리고 어떤 Object는 다른 Object를 가지고 있을 수도 있을 것이다. 이러한 관찰을 모두 Object-Oriented Programming 세상으로 옮기면 된다.
객체를 사용하여 코딩할 때의 장점들은 다음과 같다.

객체를 사용하여 코딩할 때의 장점들은 다음과 같다.
- Modularity : The source code for an object can be written and maintainedindependently of the source code for other objects. Once created, anobject can be easily passed around inside the system.
- Information-hiding: By interacting only with an object's methods, thedetails of its internal implementation remain hidden from the outsideworld.
- Code re-use: If an object already exists (perhaps written by anothersoftware developer),you can use that object in your program. This allows specialists toimplement/test/debug complex, task-specific objects, which you can thentrust to run in your own code.
- Pluggability and debugging ease: If a particular object turns out to be problematic, you can simply remove it from your application and plug in a different object as its replacement. This is analogous to fixing mechanical problems in the real world. If a bolt breaks, you replace it, not the entire machine.
마지막 부분은 원문이 더 보기가 좋을 것 같아서 그냥 긁어 왔습니다.(사실은 귀차니즘?ㅋ) Java는 객체 지향 언어이며(완벽하진 않은 것 같습니다만..잘 몰라서 이렇게 밖에 말을 못하겠네요.) Java Tutorial에 위와 같이 정의를 해두고 있습니다. 이건 마치 법이나 마찬가지라고 생각합니다. Java의 근본인 Object에 대한 개념을 나름대로의 개념으로 재정의 하겠다는 것은 위험한시도라고 생각합니다. :)
'Java' 카테고리의 다른 글
| local inner class의 예 (0) | 2006/11/05 |
|---|---|
| 객체지향의 구멍 static (0) | 2006/11/04 |
| i++와 i=i+1 속도 비교 (0) | 2006/11/02 |
| Comparator를 사용하여 비교하기. (0) | 2006/11/02 |
| Arrays.sort() & Collections.sort() (2) | 2006/11/02 |
| What is Object? (12) | 2006/11/01 |
| Agile Java 2장 연습문제 풀기 (2) | 2006/10/29 |
| Lazy Initialization 언제 사용 해야 될까요? (9) | 2006/10/28 |
| Agile Java 1장 연습문제 풀기 (2) | 2006/10/27 |
| JUnit 3.8 과 JUnit 4의 차이 (0) | 2006/10/27 |
| Reference의 위험성 (10) | 2006/10/27 |






