코딩에서 메소드와 함수의 차이점은 무엇입니까
게시 됨: 2018-09-21코딩 용어
프로그래밍에는 정확히 동일한 것을 설명하는 데 사용되는 다양한 용어가 있으며 동일한 것을 참조하는 것처럼 보이지만 실제로는 그렇지 않은 용어도 있습니다. 더 혼란스럽게 만들기 위해. 일부 용어는 말하는 언어의 종류에 따라 또는 한 언어에서 동일한 유형의 다른 언어로 이동할 때 다르게 사용됩니다. 따라서 "메소드", "함수", "인터페이스" 또는 "추상 클래스"와 같은 일부 용어는 한 컨텍스트에서는 한 가지를 의미하지만 다른 컨텍스트에서는 완전히 다른 것을 의미할 수 있기 때문에 일부 사람들에게는 매우 혼란스러울 수 있습니다.
OOP 방법 개요
방법은 본질적으로 지정된 개체에 대해 실행되는 단계별 절차입니다. 메서드는 C++와 같은 객체 지향 프로그래밍 언어에서만 사용됩니다. 기본적으로 메서드는 메서드를 통해 전달되는 개체의 특성을 변경하거나 메서드를 통해 전달된 개체의 기존 특성을 기반으로 특정 절차를 수행할 수 있습니다. 때로는 메서드를 통해 전달된 개체에 영향을 주지 않거나 개체의 기존 특성에 의해 변경되지 않는 코드를 통해 메서드를 실행할 수도 있습니다. 그러나 이것은 훨씬 덜 일반적이며 방법을 처리하는 촉진된 방법이 아닙니다.
읽기 – 선택할 JavaScript 프레임워크
절차적 코딩의 기능
반면에 함수는 많은 입력을 받아 일정 수의 값을 반환하는 프로시저를 나타내는 훨씬 더 일반적인 용어입니다. 혼란스럽게도 함수와 메서드는 프로그래밍할 때 같은 일을 하거나 같은 종류의 절차를 참조하는 것처럼 들리지만 그렇지 않습니다. 함수는 객체와 연관되지 않으며 기본적으로 객체 지향이 아닌 모든 고급 언어에서 사용됩니다. 반면에 메서드는 개체 에만 연결되며 이 용어는 개체를 처리하거나 프로시저가 클래스 내에 있을 때만 사용됩니다. 따라서 함수는 주어진 입력을 기반으로 값을 반환하는 반면 메서드는 객체의 특성을 변경하거나 객체의 기존 특성을 기반으로 값을 반환합니다.
코딩 인터페이스 및 추상 클래스
함수와 메소드 사이의 혼동과 유사합니다. 인터페이스와 추상 클래스 사이에는 많은 혼란이 있습니다. 그러나 인터페이스와 추상 클래스는 함수 및 메서드와 달리 공통점이 많고 특성이 혼동되기 쉽습니다. 이 둘을 구별하는 가장 쉬운 방법은 인터페이스가 객체 지향 프로그래밍 언어 에만 존재한다는 것을 이해하는 것입니다. 추상 클래스는 거의 모든 고급 언어에 존재합니다.
심층 인터페이스
인터페이스는 기본적으로 클래스 간의 모든 유사성을 설명하기 위해 만드는 기반입니다. 따라서 다른 개체를 만들고 싶지만 모두 동물이라고 가정해 보겠습니다. 그래서 인간, 유인원, 침팬지. 분명히 이 세 동물은 공통점이 많으며 이러한 유사성을 모두 정의하는 것이 현명할 것이므로 각 클래스 전체에서 모두 구현되도록 할 수 있습니다. 예를 들어, 각각은 머리, 4개의 팔다리, 입, 코, 혀 등을 가지고 있습니다.
따라서 인터페이스에서 이러한 특성을 정의하고 인터페이스에서 정의했기 때문입니다. 각 클래스가 인터페이스를 구현할 때 인터페이스에 정의된 메서드를 통해 이러한 특성을 정의하고 초기화 해야 합니다 . 그렇지 않으면 코드가 실행되지 않습니다. 추상 클래스 대신 인터페이스를 사용하는 주된 이유는 각 동물의 특성이 동일하기 때문입니다. 그러나 동물마다 다르게 구현합니다. 예를 들어, 모든 침팬지. 인간과 유인원은 코가 있지만 너비, 길이, 용도가 모두 약간 다를 수 있습니다. 따라서 이러한 차이점은 개별 클래스에서 정의됩니다. 그러나 코가 있다는 사실은 인터페이스에 정의되어 있습니다.

읽기 – Laravel이 2018년 최고의 PHP 프레임워크인 이유
추상 클래스를 사용하는 방법
추상 클래스는 인터페이스와 정확히 같습니다. 그러나 인터페이스와 달리 메서드와 함수는 실제로 정의 하고 초기화할 수 있지만 반드시 그럴 필요는 없습니다. 게다가 추상 클래스를 구현하는 클래스 대신 추상 클래스를 슈퍼클래스로 만든다. 이것은 실제로 인터페이스와 비교할 때 추상 클래스의 주요 단점입니다. 클래스는 원하는 만큼 많은 인터페이스를 구현할 수 있지만 수퍼 클래스는 하나만 가질 수 있습니다. 즉, 클래스는 하나의 추상 클래스만 사용할 수 있지만 여러 인터페이스를 사용할 수 있습니다.
추상 수업은 훌륭합니다. 그러나 구현 방법이 동일한 동일한 특성이 있는 경우. 그러나 개체 간에 구현이 다른 일부가 있는 경우도 있습니다. 예를 들어 남성과 여성이라는 두 개의 클래스가 있고 둘 사이의 유사성을 정의하려는 경우 추상 클래스를 사용하는 것이 가장 좋습니다. 왜요? 성별 간의 특정 특성이 동일하고 정확히 동일한 방식으로 구현되기 때문입니다. 예를 들어, 입은 거의 같은 크기이며 같은 목적을 수행합니다. 눈의 크기와 기능은 성별에 따라 거의 동일합니다.
따라서 이러한 특성을 정의하는 함수 또는 메서드를 추상 클래스에서 초기화할 수 있습니다. 그러나 엉덩이나 눈썹과 같은 특정 특성은 남녀 모두에 존재합니다. 그러나 이러한 특성은 둘 사이에 매우 다릅니다. 따라서 추상 클래스는 이러한 특성을 정의하는 메서드나 함수를 초기화하지 않습니다. 그리고 그것을 서브클래스에 맡길 것입니다.
요약
이 설명이 너무 혼란스럽거나 장황하지 않기를 바랍니다. 프로그래밍이 처음인 경우 여전히 혼란스러워도 걱정하지 마십시오. 프로그래밍의 기본과 일부 용어 간의 미묘한 차이점을 이해하는 데 사용할 수 있는 액세스 가능한 리소스가 많이 있습니다.
당신이 전문 프로그래머가 되고 싶다면 그것을 언급하는 것이 매우 중요합니다. 절차 및 객체 지향 프로그래밍(OOP) 개념을 모두 학습하는 것은 필수입니다. 물론. 많은 소프트웨어 엔지니어는 OOP 코딩을 수행하기 전에 통합 모델 언어를 사용하여 프로젝트 또는 응용 프로그램 요구 사항을 개체 및 다이어그램에 매핑합니다. 소프트웨어 엔지니어링 학습을 위한 온라인 리소스가 많이 있습니다. 십대와 고등학생을 위해 High School Technology Services는 다양한 실습 교육을 제공합니다. 성인과 전문가를 위해 코딩 부트캠프 인스티튜트는 절차적 코딩과 OOP 코딩 모두에 중점을 둔 많은 기본에서 고급 프로그래밍 수업을 제공합니다.
저자 소개
Matt Zand는 프로그래머, 사업가, IT 컨설턴트 및 작가입니다. 그는 WEG2G 그룹의 설립자이자 소유자입니다. 그는 DC Web Makers의 설립자이기도 합니다. 그의 취미는 하이킹, 자전거 타기, 야외 활동, 여행, 등산입니다.