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가 함수와 프로 시저를 같은 것으로 처음 취급했는지는 모르겠지만, 파스칼 (새로운 언어)에는 키워드 function와 procedure키워드가 있습니다. 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.