2009-12-21 2 views
1

데이터 형식이 코드 조각입니까? 즉, 소프트웨어입니까? 정수, char 등의 기본 데이터 유형에 대해 얘기하고 있습니다. 그렇다면 OOP 프로그래밍의 객체가 데이터 유형의 확장임을 나타냅니다. 즉, 기본적으로 프로그래머는 객체 생성시 다른 수준으로 데이터 유형을 가져 왔습니까?OOP 개체와 비교 한 데이터 형식

답변

0

webopedia의 정의에 따르면 실제로 소프트웨어입니다. '확장자'는 올바른 단어가 아니지만 기본 데이터 유형에서 모든 객체가 존재 함을 알 수 있습니다 (약간의주의를 기울이고 올바른 상황에서). 그리고 모든 기본적인 데이터 유형은 1과 0에서 존재합니다.

1

데이터 유형이 "코드 조각"인지 궁금한 점은 궁극적으로 그렇습니다. 언어 자체가 아니라 프로그래밍 할 언어를 작성하는 데 사용 된 언어로 작성해야합니다.

"기본 데이터 유형"에 대해 : 나는 당신이 "원시 유형"이라고 생각하는 것을 생각합니다. 원시 형은 전적으로 프로그래밍 언어에 따라 좌우됩니다. 당신은 정수와 char를 언급했으나 이것들은 많은 언어로 존재하지 않습니다. 상당수의 언어는 모든 숫자 유형을 단일 숫자 유형으로 함께 묶습니다. 일부 언어는 부호있는 정수와 부호없는 정수를 구별합니다. 별개의 문자 유형이없는 언어는 숫자 또는 단일 문자 문자열을 대신 사용할 수 있습니다.

언어가 정의하는 기본 유형에 상관없이 "거북이가 항상"있습니다 - 언어에는 항상 코드를 빌드 할 수있는 내장 "마법"(데이터 유형, 연산자)이 있습니다. 때로는 언어가 새로운 유형을 추가하거나 기본 유형을 변경하는 것을 지원할 수도 있습니다.

"OOP의 객체를 데이터 유형의 확장으로": OOP 언어의 클래스 및 인터페이스는 확실히 유형으로 간주됩니다. 그러나 그들은 데이터 유형이 행동을 정의 할 수도 있다는 사실에 대한 정의를하지 않는다고 생각합니다. 그리고 OO 클래스는 정적 메소드 만 정의 할 수 있으므로 데이터 자체를 유지하지 않고도 데이터를 통과시킬 수 있습니다.

또한 "확장"이란 의미에 따라 다릅니다. 많은 OOP 언어에서는 실제로 상속을 통해 기존 클래스를 확장 할 수 있지만 기본 유형을 확장 할 수는 없습니다. 마지막으로 많은 언어에서 구성을 통해 새로운 데이터 유형을 정의 할 수 있습니다. 예를 들어 C 구조체는 이러한 복합 유형입니다. 나는 그러한 구조체를 그 구성 요소 유형의 확장이라고 결코 부르지 않을 것입니다, 그것은 단순히 완전히 새로운 유형입니다.

일부 언어에는 확장형 시스템이 있습니다. 즉, 프로그래머가 자체 형식을 만들 수 있습니다. 그러나 C 구조체에 대해 설명 된 것처럼 OO 언어에만 국한되지는 않습니다. 이 주제에 관심이 있다면

, 당신은 위키 피 디아에 대해 많은 것을 읽을 수 있습니다 http://en.wikipedia.org/wiki/Primitive_data_type http://en.wikipedia.org/wiki/Type_theory http://en.wikipedia.org/wiki/Type_system

1

네, 코드입니다. 예, 소프트웨어입니다. 모든 "기본"데이터 유형을 프로세서 내부의 비트에서 발생하는 함수의 추상화로 생각할 수 있습니다. 이를 달성하기 위해 프로그래머가 언어 또는 컴파일러 등의 프로그래머가 될 수 있습니다. 프로세서에서 전기적으로 일어나는 일과 얼마나 멀리 떨어져 있는지는 언어에 따라 다릅니다.예를 들어 C#의 "정수"와 같은 "기본"데이터 유형은 실제로 메모리에서 이동하는 방식이 꽤 복잡합니다. 예를 들어, C와 같은 언어에는없는 "boxing"이라는 개념이 있습니다. 이 기능을 구현하려면 프로그래머가 필요하므로 소프트웨어입니다.

2

당신이 정말로 w00t 브레인 푸드에 준비가되어 있다면 올해의 OOPSLA Onward를 확인해야합니다! 윌리엄 쿡 작문 : On Understanding Data Abstraction, Revisited. 그는 추상 데이터 유형 및 객체에 대해 설명합니다.