OOP의 특수 용어 인 "방법"은 어디에서 시작됩니까?


13

"방법"은 객체 지향 프로그래밍에서 특수한 용어입니다. 이 단어가 언제이 특별한 의미로 사용되기 시작했는지, 그리고 어떤 프로그래밍 언어 나 다른 정량적 학습과 관련되어 있는지 아는 사람이 있습니까?

답변:


11

Java와 C #은 C ++에서 메소드 를 얻었고 Simula 에서 얻었습니다 .

그리고 Algol은 아마도 Simula에 영향미쳤을 것입니다 :

또한 MIT ALGOL 버전 인 AED-0은 데이터 구조 (해당 방언의 "플렉스")를 프로 시저와 직접 연결하여 나중에 "메시지", "방법"및 "멤버 기능"이라고하는 것을 미리 구성합니다.


3
IIRC, C ++는 일반적으로 'method'보다 'member function'을 선호합니다.
tdammers

같은 Wikipedia 기사에 따르면, 용어의 용어 (OPP와 관련)를 60 년대 상반기에 배치합니다.
Tulains Córdova

2

명확한 대답을 찾기는 어렵지만 방법으로 사물을 언급하는 첫 번째 언어는 시뮬 라 인 것으로 보이지만 거짓이거나 소급 적 일 수 있습니다. 함수 (수학의 함수)와 프로 시저 (수학의 함수)가 프로그래밍 언어로 표시되는 것을 감안할 때, "방법"은 "방법론"의 짧은 형식이라는 것이 가장 좋습니다.

이들 모두는 컴퓨터 프로그램을 구성하는 코드 비트 인 서브 루틴입니다. OOP 스타일 프로그래밍의 기본 아이디어는 코드를 최대한 재사용하는 것이기 때문에 "Method"가 선택되었다고 생각합니다. 따라서 프로 시저를 가질 수는 있지만 메서드를 사용하면 작업중인 스타일이 더 명확 해집니다. 솔직히, 나는 메소드 함수를 호출하는 것으로 알려져 있으며 메소드라는 함수를 들었습니다.


6
- 내가 잘못 '그림'두려워 방법 과 (프로세스가 목표 달성) 방법론 다른 의미를 가지고 (연구)을하고 있습니다.
JK

1
또한 "방법"은 오랫동안 영어 단어로 존재 해 왔습니다. 더 이상 계약 할 단어를 찾을 필요가 없습니다.
Steve314

"method"대신 "function"을 사용할 때, 이것은 C ++의 결함이며, C에는 "procedure"라는 개념이없고, "function"만 반환한다는 사실에 기인합니다 void. C ++ 멤버 함수는 Simula와 달리 일반 함수와 밀접한 관련이 있습니다. 암시 적 this매개 변수가 있고 런타임 디스패치 메커니즘이 처리하는 내용을 실제로 변경하지는 않습니다. C가 함수와 프로 시저를 같은 것으로 처음 취급했는지는 모르겠지만, 파스칼 (새로운 언어)에는 키워드 functionprocedure키워드가 있습니다. IIRC이지만 파스칼 함수에는 부작용이있을 수 있습니다.
Steve314

구체적으로, 방법 은 프로세스 자체가 아니라 목표, 설명 / 지식을 달성하는 방법입니다. 이것은 객체의 유형을 정의하는 또 다른 추상 개념 인 "클래스"와 관련하여 의미가 있습니다. 해당 클래스에 속하는 한 객체 클래스와 각 객체로 X를 수행하는 방법을 얻습니다. 특정 객체에 일반 방법을 적용하고 해당 객체에 특정한 결과를 얻습니다.
SF.

1

나는 수십 년 동안 이것에 대한 정보를 찾고 있습니다. 지금까지 필자는이 용어가 수치 계산의 특수 서브 필드에서 Simula로 들어 왔으며, 함수 (예 : 고유 값 등)를 구현하는 특정 알고리즘을 종종 메소드 라고합니다 . 이는 동일한 수학적 함수를 계산 하기 위한 다양한 수치 방법 을 다양한 상충 관계로 가질 수 있기 때문 입니다. OOP에서, 때문에 방법은 무시, 당신은 클래스에 맞게 다르게 구현 "같은"기능이있을 수 있습니다 - 예를, 지역은 다르게 구현 될 것이다 사각형 모두, 모양 가지고 영역을. 이것은 전통적인 수학적 방법의 개념을 합리적으로 확장 한 것 같습니다.


0

나는 OOP 역사에서이 단어의 어원에 대해 아무것도 모른다. 그러나 나는 그것이 공제 적이 지 않다는 것을 알고 있습니다. 더 나은 용어 (더 많은 추론 용어 또는 MDT)는 반응 또는 행동 일 수 있습니다.


2
나는 당신에게 동의하지 않을 것을 전적으로 확신합니다. "방법"은 모든 것들이 시작된 것에 대한 완벽한 cromulent 단어입니다. 각각의 '물건'이 하나의 클래스 인 다양한 것들을 모델링하는 방법이며, 물건의 상태를 변경하는 방법이 있습니다. 같은 방식으로 방법이 현실 세계의 것들을 변화시킵니다.
Vatine

"method"는 원래 "procedure"와 유사한 구현 코드를 설명했다고 생각합니다. 결과를 계산하는 방법 / 프로 시저 / 알고리즘입니다. 구현이 알려지지 않은 인터페이스에 이것을 사용하는 것은 다소 좋지만, 원래 (시뮬 라에서) "메시지"가 그 용도로 사용되었을 것입니다. 그럼에도 불구하고 메소드를 호출 할 때 어떤 구현을 (콜 사이트에서) 알 수없는 경우에도 구현 코드를 호출합니다.
Steve314

1
'function', 'procedure'및 'method'라는 세 단어를 생각합니다. 'function'에는 수학적 의미가 있습니다 (출력은 입력을 맵합니다). 군대의 감각); '방법'에는 두 가지 의미가 없으므로 OOP에서 선호되는 이유 일 수 있습니다.
tdammers

"cromulent"에 대한 @Vatine +1
MattDavey

-1

REAL BASIC, VBx 및 VB.net 배경을 가진 프로그래머는 "FUNCTION"및 "SUB"라는 두 가지 유형의 메소드 선언을 알고 있습니다. BASIC 언어 계열에서는 "SUB"키워드뿐만 아니라 "FUNCTION"키워드를 사용하여 함수를 선언 할 수 있습니다. 이 둘의 차이점은 "FUNCTION"은 "SUB"로 값을 리턴 할 수 있거나 리턴하지 않으며 코드를 실행하지만 값을 리턴하지 않는다는 것입니다. 그러나 OO 개념의 출현으로 sub 및 function이라는 용어가 방법으로 상호 교환 적으로 사용되기 시작했습니다.


2
파스칼의 절차 / 기능도
마찬가지입니다.

3
VB는 "방법"이 아니라 "서브 루틴"의 줄임말 인 "함수"및 "서브"를 사용합니다.
앤트

5
Alan Kay가 OOP와 스몰 토크를
떠 올릴
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.