"방법"은 객체 지향 프로그래밍에서 특수한 용어입니다. 이 단어가 언제이 특별한 의미로 사용되기 시작했는지, 그리고 어떤 프로그래밍 언어 나 다른 정량적 학습과 관련되어 있는지 아는 사람이 있습니까?
"방법"은 객체 지향 프로그래밍에서 특수한 용어입니다. 이 단어가 언제이 특별한 의미로 사용되기 시작했는지, 그리고 어떤 프로그래밍 언어 나 다른 정량적 학습과 관련되어 있는지 아는 사람이 있습니까?
답변:
Java와 C #은 C ++에서 메소드 를 얻었고 Simula 에서 얻었습니다 .
그리고 Algol은 아마도 Simula에 영향 을 미쳤을 것입니다 :
또한 MIT ALGOL 버전 인 AED-0은 데이터 구조 (해당 방언의 "플렉스")를 프로 시저와 직접 연결하여 나중에 "메시지", "방법"및 "멤버 기능"이라고하는 것을 미리 구성합니다.
명확한 대답을 찾기는 어렵지만 방법으로 사물을 언급하는 첫 번째 언어는 시뮬 라 인 것으로 보이지만 거짓이거나 소급 적 일 수 있습니다. 함수 (수학의 함수)와 프로 시저 (수학의 함수)가 프로그래밍 언어로 표시되는 것을 감안할 때, "방법"은 "방법론"의 짧은 형식이라는 것이 가장 좋습니다.
이들 모두는 컴퓨터 프로그램을 구성하는 코드 비트 인 서브 루틴입니다. OOP 스타일 프로그래밍의 기본 아이디어는 코드를 최대한 재사용하는 것이기 때문에 "Method"가 선택되었다고 생각합니다. 따라서 프로 시저를 가질 수는 있지만 메서드를 사용하면 작업중인 스타일이 더 명확 해집니다. 솔직히, 나는 메소드 함수를 호출하는 것으로 알려져 있으며 메소드라는 함수를 들었습니다.
void
. C ++ 멤버 함수는 Simula와 달리 일반 함수와 밀접한 관련이 있습니다. 암시 적 this
매개 변수가 있고 런타임 디스패치 메커니즘이 처리하는 내용을 실제로 변경하지는 않습니다. C가 함수와 프로 시저를 같은 것으로 처음 취급했는지는 모르겠지만, 파스칼 (새로운 언어)에는 키워드 function
와 procedure
키워드가 있습니다. IIRC이지만 파스칼 함수에는 부작용이있을 수 있습니다.
나는 수십 년 동안 이것에 대한 정보를 찾고 있습니다. 지금까지 필자는이 용어가 수치 계산의 특수 서브 필드에서 Simula로 들어 왔으며, 함수 (예 : 고유 값 등)를 구현하는 특정 알고리즘을 종종 메소드 라고합니다 . 이는 동일한 수학적 함수를 계산 하기 위한 다양한 수치 방법 을 다양한 상충 관계로 가질 수 있기 때문 입니다. OOP에서, 때문에 방법은 무시, 당신은 클래스에 맞게 다르게 구현 "같은"기능이있을 수 있습니다 - 예를, 지역은 다르게 구현 될 것이다 원 과 사각형 모두, 모양 가지고 영역을. 이것은 전통적인 수학적 방법의 개념을 합리적으로 확장 한 것 같습니다.
나는 OOP 역사에서이 단어의 어원에 대해 아무것도 모른다. 그러나 나는 그것이 공제 적이 지 않다는 것을 알고 있습니다. 더 나은 용어 (더 많은 추론 용어 또는 MDT)는 반응 또는 행동 일 수 있습니다.
REAL BASIC, VBx 및 VB.net 배경을 가진 프로그래머는 "FUNCTION"및 "SUB"라는 두 가지 유형의 메소드 선언을 알고 있습니다. BASIC 언어 계열에서는 "SUB"키워드뿐만 아니라 "FUNCTION"키워드를 사용하여 함수를 선언 할 수 있습니다. 이 둘의 차이점은 "FUNCTION"은 "SUB"로 값을 리턴 할 수 있거나 리턴하지 않으며 코드를 실행하지만 값을 리턴하지 않는다는 것입니다. 그러나 OO 개념의 출현으로 sub 및 function이라는 용어가 방법으로 상호 교환 적으로 사용되기 시작했습니다.