참 궁금합니다.
같은 "그것"을 놓고 어떤 곳에서는 변수라 그러고, 어떤 곳에선(특히 C#) 인스턴스라 그러고 다른 데에서는(주로 COM) 또 객체라 그러네요? 구글에 물어봐도 딱히 시원하게 구분이 안되군요.....
이 세 단어의 정확한 차이점이 뭔가요?
변수는, 보통 값을 넣을 수 있는 이름붙어있는 공간이라고 생각하시면 됩니다. 일반적으로 값을 변경할 수 있습니다. 값과 1:1로 대응하여 그 값을 이름으로 대신하는 것은 보통 상수라고 합니다.(예를 들면, pi = 3.14같이.)
인스턴스는 객체지향 프로그래밍에서, 객체를 실제로 구성하여 만든 것을 말합니다. 문자열을 추상화하여 String이라는 클래스로 만들었다고 합시다. 이것을 이용하여 실제로 "abcd"라는 문자열을 생성하면 이 문자열은 String클래스의 인스턴스입니다.
객체는, 객체지향 프로그래밍(Object-Oriented Programing)에서 사용하는 개념입니다. 어떤 대상이나 개념을 하나의 단위로 묶어내는 것입니다. 보통 그 개념을 구성하는 자료와 거기 사용할 연산을 정의합니다.
저는 프로그래밍을 취미로 하기 때문에, 정의가 불분명하거나 전문적이지 않을 수 있습니다. 또한 제가 생각하고 있는 개념을 쓴 것이므로, 제가 처음 공부한 언어인 자바의 개념에 더 가까울 것이라고 생각합니다.
변수를 모르실리는 없을 것같고... 객체와 인스턴스는 동일하다고 보시면 됩니다. "class가 instanciation을 거치면 instance(object)가 된다."로 많이 표현합니다.
----- 오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
C++을 예로 들겠습니다.
Class A {} ;
...
int n ; // int는 data(?) type이고 n은 int type의 변수 n 입니다. A a ; // A는 class(Object) type이고 a는 A class의 instance a 입니다.
객체는 arrtribute 와 method를 합치고 은닉하고 한 것이지요. OOP에서는 말입니다.
그 Object를 C++에서는 class로 구현을 한 것이구요. 다른 OOP언어에서는 다른 방식으로 구현을 한 것도 있겠죠.
제가 알고 있는 것은 이렇네요. 혹시 틀리거나 하면 지적을(덜덜덜)....
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
그건..
변수는, 보통 값을 넣을 수 있는 이름붙어있는 공간이라고 생각하시면 됩니다.
일반적으로 값을 변경할 수 있습니다. 값과 1:1로 대응하여 그 값을 이름으로
대신하는 것은 보통 상수라고 합니다.(예를 들면, pi = 3.14같이.)
인스턴스는 객체지향 프로그래밍에서, 객체를 실제로 구성하여 만든 것을 말합니다.
문자열을 추상화하여 String이라는 클래스로 만들었다고 합시다. 이것을 이용하여
실제로 "abcd"라는 문자열을 생성하면 이 문자열은 String클래스의 인스턴스입니다.
객체는, 객체지향 프로그래밍(Object-Oriented Programing)에서 사용하는
개념입니다. 어떤 대상이나 개념을 하나의 단위로 묶어내는 것입니다.
보통 그 개념을 구성하는 자료와 거기 사용할 연산을 정의합니다.
저는 프로그래밍을 취미로 하기 때문에, 정의가 불분명하거나 전문적이지 않을
수 있습니다. 또한 제가 생각하고 있는 개념을 쓴 것이므로, 제가 처음 공부한 언어인
자바의 개념에 더 가까울 것이라고 생각합니다.
변수를 모르실리는
변수를 모르실리는 없을 것같고...
객체와 인스턴스는 동일하다고 보시면 됩니다.
"class가 instanciation을 거치면 instance(object)가 된다."로 많이 표현합니다.
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
그냥 저도 한 마디 보태자면...
C++을 예로 들겠습니다.
Class A {} ;
...
int n ; // int는 data(?) type이고 n은 int type의 변수 n 입니다.
A a ; // A는 class(Object) type이고 a는 A class의 instance a 입니다.
객체는 arrtribute 와 method를 합치고 은닉하고 한 것이지요. OOP에서는 말입니다.
그 Object를 C++에서는 class로 구현을 한 것이구요. 다른 OOP언어에서는 다른 방식으로 구현을 한 것도 있겠죠.
제가 알고 있는 것은 이렇네요. 혹시 틀리거나 하면 지적을(덜덜덜)....
댓글 달기