Статичен срещу нестатичен метод
Методът е поредица от твърдения, които се извършват за изпълнение на конкретна задача. Методите могат да приемат вход и да произвеждат изходи. Статичните и нестатичните методи са два типа методи, присъстващи в обектно-ориентираните езици за програмиране. Статичният метод е метод, който е свързан с клас. Метод, който е свързан с обект, се нарича нестатичен (екземпляр) метод. В обектно ориентираните езици методите се използват като механизъм за работа с данни, които се съхраняват в обекти.
Какво е статичен метод?
В обектно-ориентираното програмиране статичният метод е метод, който е свързан с клас. Следователно статичните методи нямат възможност да работят върху конкретен екземпляр от клас. Статичните методи могат да бъдат извиквани, без да се използва обект от класа, който съдържа статичния метод. Следва пример за дефиниране на статичен метод в Java. Статичният трябва да се използва при определяне на статичен метод в Java.
публична класа MyClass публична статична невалидна MyStaticMethod () // код на статичния методСтатичният метод, дефиниран по-горе, може да се нарече по следния начин, като се използва името на класа, към който принадлежи.
MyClass.MyStaticMethod ();
Едно важно нещо, което трябва да се отбележи, е, че статичните методи имат достъп само до статични членове.
Какво е нестатичен метод?
Нестатичен метод или метод на инстанция е метод, който се асоциира с обект в клас. Следователно нестатичните методи се наричат с помощта на обект от класа, в който методът е дефиниран. Нестатичен метод може да получи достъп до статични членове, както и до статични членове на клас. В много обектно ориентирани езици (като C ++, C #, Java), когато се извиква нестатичен метод, обектът, който се е позовал на метода, се предава като неявен аргумент (нарича се референцията "това"). Така че вътре в метода тази ключова дума може да се използва за препратка към обекта, наречен метода. Следва пример за дефиниране на метод на инстанция в Java.
публична класа MyClass публична невалидна MyInstanceMethod () // код на метода инстанция
Дефинираният по-горе метод може да се нарече по следния начин, като се използва обект от класа, към който принадлежи.
MyClass objMyClass = нов MyClass ();
objMyClass.MyInstanceMethod ();
Каква е разликата между статичния и нестатичния метод?
Статичните методи са методи, които са свързани с клас, докато нестатичните методи са методи, които са свързани с обекти от клас. Един клас трябва първо да бъде инстанциран, за да се позове на нестатичен метод, но статичните методи не изискват това изискване. Те могат да бъдат просто извикани с помощта на името на класа, който притежава статичния метод. Друга важна разлика е, че нестатичният метод обикновено притежава референция към обекта, който е извикал метода и до него може да се осъществи достъп чрез тази ключова дума вътре в метода. Но тази ключова дума не може да се използва в статични методи, тъй като те не са свързани с конкретен обект.