Метод (програмування)

Ме́тод в об'єктно-орієнтованому програмуванніпідпрограма (процедура, функція), що використовується виключно разом із класом (методи класу) або з об'єктом (методи екземпляра).

Види

Розрізняють прості методи і статичні методи (методи класу):

  • прості методи мають доступ до даних об'єкта (конкретного екземпляра даного класу)
  • статичні методи не мають доступу до даних об'єкта і для їх використання не потрібно створювати екземпляри (даного класу).

Метод екземпляра (простий метод)

Приклад простого методу на JavaScript:

const person = {
  name: 'Vasya',
  surname: 'Pupkin',
  born: '01.01.1990',
  //метод, що видає інформацію про персону
  getData() {
    return person.name + ' ' + person.surname + ', ' + person.born;
  }
};
const personData = person.getData(); //'Vasya Pupkin, 01.01.1990'

Статичний метод

Методи і властивості, які не прив'язані до конкретного екземпляру об'єкта, називають «статичними». Їх записують прямо в саму функцію-конструктор.

'use strict';
//створюємо клас для зберігання інформації про журнали 
function Journal(date) {
  this.date = date;
//додаємо метод для перетворення дати
  this.formatDate = function(date) {
    return date.getDate() + '.' + (date.getMonth() + 1) + '.' + date.getFullYear();
  };
//додаємо метод для коректного виводу дати випуску журналу 
  this.getTitle = function() {
    return 'Выпуск от ' + this.formatDate(this.date);
  };
}
//додаємо метод для порівняння дати випуску двох журналів
Journal.compare = function(journalA, journalB) {
  return journalA.date - journalB.date;
};
// створюємо масив журналів
const journals = [
  new Journal(new Date(2012, 1, 1)),
  new Journal(new Date(2012, 0, 1)),
  new Journal(new Date(2011, 11, 1))
];
//знаходимо журнал який був вупещений раніше
function findMin(journals) {
  let min = 0;
  for (let i = 0; i < journals.length; i++) {
    // використовуємо статичний метод
    if (Journal.compare(journals[min], journals[i]) > 0) min = i;
  }
  return journals[min];
}

const firstJournal = findMin(journals).getTitle(); //Выпуск от 1.12.2011

Використання на практиці

Подібно до процедури в процедурних мовах програмування, метод, як правило, складається із послідовності операцій для виконання дії, множини вхідних параметрів для налаштування цієї дії, та, можливо, вихідного значення деякого типу (значення, що повертається).

Призначення методів полягає в здійсненні певних дій над полями класу (змінними-членами) та надання механізму доступу до цих полів даних, що інкапсулюються в об'єкті або класі.

Класифікація

Залежно від способу використання, методи поділяються на:

  • змістовні — надаються клієнтам класу і визначають його інтерфейс, звичайно є публічними;
  • спеціальні — викликаються автоматично при створенні (конструктори), знищенні (деструктори), копіюванні (конструктори копіювання), перетворенні типу тощо;
  • допоміжні — викликаються з змістовних та спеціальних методів, звичайно не надаються клієнтам класу і є захищеними або приватними.

Залежно від впливу на стан об'єкта, методи поділяються на:

  • конструктори — встановлюють початковий стан об'єкта;
  • деструктори — скидають стан об'єкта;
  • селектори (геттери) — надають значення атрибута;
  • модифікатори (сеттери) — встановлюють значення атрибута;
  • ітератори — надають послідовний доступ до множини атрибутів.

Методи в JavaScript

Всі значення в JavaScript, за винятком null і undefined, містять набір допоміжних функцій і значень, доступних «через крапку». Такі функції називають «методами», а значення - «властивостями». Тут ми розглянемо основи використання властивостей і методів.

Приведемо деякі стандартні методи різних типів даних:

Методи String

В рядків є метод toUpperCase (), який повертає рядок у верхньому регістрі

let hello = "Hello world!";

hello = hello.toUpperCase(); // "HELLO WORLD!"

Також є метод toLowerCase (), який працює аналогічно попередньому але повертає рядок у нижньому регістрі.

Метод indexOf (Str) повертає позицію першого символу першого входження підрядка Str в рядку.

Метод lastIndexOf (Str) повертає позицію останнього входження Str в рядку.

Метод slice (String) повертає фрагмент рядка.

Методи Number

Для переведення числа в рядок використовують метод toString(система счисления)

let n = 255;
str = n.toString(16); // ff

Методи Array

Для додавання/видалення елементів масиву використовують наступні методи:

  • pop Видаляє останній елемент з масиву і повертає його.
  • push Додає елемент в кінець масиву.
  • shift Видаляє з масиву перший елемент і повертає його.
  • unshift Додає елемент в початок масиву.

Методи Function

У сучасному JavaScript у функційє вбудований метод bind, який ми можемо використовувати. За допомогою цього методу до функції можна прив'язати контекст

var user = {
  name: "Vasya",
  sayName: function() {
    alert( this.name );
  }
};
//Прив'яжемо контекст об'єкта до функції  
setTimeout(user.sayName.bind(user), 1000); //виведе 'Vasya' через 1 секунду

Див. також

Література

  • Abstract Methods and Classes. oracle.com. Oracle Java Documentation. Процитовано 11 грудня 2014.
  • Classes and methods 08/12/2022, microsoft

Посилання



Read other articles:

A branch of the Sunni Islamist Muslim Brotherhood Syrian Muslim Brotherhoodالإخوان المسلمون في سوريا LeaderMohammad Walid[1]Deputy leaderMohammad Farouk Tayfour[2]Head of the Shura CouncilMohammad Hatem al-Tabshi[2]FoundersMustafa al-Siba'iMuhammad al-Mubarak al-TayyibFounded1945Banned1963[3]HeadquartersDamascus (Historical)Idlib (After the Rebels victory in Idlib)[4]IdeologyPan-IslamismSyrian nationalismSunni IslamismSalafism[5&#…

Leif Johan SverdrupJulukanJackLahir(1898-01-11)11 Januari 1898Ytre Sula, NorwegiaMeninggal2 Januari 1976(1976-01-02) (umur 77)St Louis, MissouriDikebumikanValhalla Cemetery, St Louis, MissouriPengabdian Amerika SerikatDinas/cabang United States ArmyLama dinas1918–19191942–1958Pangkat Mayor JenderalNRPO-129029Komandan 102nd Infantry DivisionPerang/pertempuranPerang Dunia IPerang Dunia II Kampanye Trek Kokoda Pertempuran Buna-Gona Kampanye Nugini Kampanye Filipina (1944–45) Pe…

Animazione che spiega la prima legge di Gay-Lussac La prima legge di Gay-Lussac, all'estero meglio nota come legge di Charles o come legge di Charles-Volta-Gay-Lussac (legge di trasformazione isobarica), afferma che in una trasformazione isobarica, ovvero in condizioni di pressione e quantità di sostanza costanti, il volume di un gas ideale è direttamente proporzionale alla temperatura assoluta. La legge prende il nome dal chimico-fisico francese Joseph Louis Gay-Lussac, che la formulò nel 18…

Berg am Laim Landeshauptstadt München Koordinaten: 48° 7′ N, 11° 38′ O48.12222222222211.627777777778Koordinaten: 48° 7′ 20″ N, 11° 37′ 40″ O Fläche: 6,31 km² Einwohner: 47.037 (31. Dez. 2023)[1] Bevölkerungsdichte: 7.449 Einwohner/km² Eingemeindung: 1. Juli 1913 Postleitzahlen: 81671, 81673, 81735, 81825 Vorwahl: 089 Karte Lage von Berg am Laim in München Kreuzung Kreillerstraße bzw. Berg-am-Laim…

Cricket tournament Cricket at the 2019 Pacific GamesCricket pictogram for the GamesCricket formatTwenty20, Twenty20 InternationalHost(s) SamoaChampions Papua New Guinea (men's) Samoa (women's)Participants4 (both)Matches29 (14 men's, 15 women's)← 2015 Cricket at the 2019 Pacific Games was held between 8–13 July 2019 at the Faleata Oval Grounds in Apia, Samoa.[1] A men's and women's Twenty20 event took place, with matches eligible to carry Twenty20 International stat…

Перевозка советских военнопленных в открытых товарных вагонах. 1941 В первые годы войны немецкие листовки с Яковом Джугашвили, сыном Сталина, и «пропуском в плен» производили, по мнению немецких пропагандистов, должный эффект[1][2]. Сове́тские военнопле́нные во вре́…

Imperio ruso Entidad desaparecida BanderaEscudo noicon¿Problemas al reproducir este archivo?      Imperio ruso en 1914     Otros territorios que alguna vez fueron parte del Imperio ruso     Esferas de influenciaCoordenadas 58°39′00″N 70°07′00″E / 58.65, 70.1167Capital San Petersburgo (1721-1728; 1730-1918)[1]​Moscú (1728-1730)[2]​Entidad Imperio, Estado soberano, Estado desaparecido…

توليو لانيزي معلومات شخصية الميلاد 10 يناير 1947 (العمر 77 سنة)مسينة الجنسية إيطاليا  تعديل مصدري - تعديل   توليو لانيزي (Tullio Lanese) ؛ (مسينا، 10 يناير 1947)، حكم كرة قدم إيطالي دولي سابق.[1] حكم ثلاثة مباريات في كأس العالم لكرة القدم 1990، حكم في كأس الأمم الأوروبية لكرة القدم 1992، …

Academic journalThe Eighteenth Century: Theory and InterpretationDisciplineCultural studiesLanguageEnglishEdited byTita Chico, Robert Markley, Jennifer Frangos, Emily Hodgson AndersonPublication detailsFormer name(s)Studies in Burke and His TimeHistory1959-presentPublisherUniversity of Pennsylvania Press (United States)FrequencyQuarterlyStandard abbreviationsISO 4 (alt) · Bluebook (alt1 · alt2)NLM (alt) · MathSciNet (alt )ISO 4Eighteenth Centur…

Peringatan 100 tahun genosida Armenia (bahasa Armenia: Հայոց ցեղասպանության 100-րդ տարելից) diperingati pada 24 April 2015. 24 April 1915 dianggap sebagai awal dari genosida Armenia , dan umumnya dikenal sebagai Minggu Merah, yang menyaksikan deportasi dan eksekusi banyak intelektual Armenia. Hari Peringatan Genosida Armenia pertama kali diperingati pada tanggal 24 April 1919 di Konstantinopel, Kekaisaran Ottoman, (sekarang Istanbul, Turki), sebagai peringatan par…

Bagian dari seriPendidikan di Indonesia Kementerian Pendidikan, Kebudayaan, Riset, dan Teknologi Republik Indonesia Pendidikan anak usia dini TK RA KB Pendidikan dasar (kelas 1–6) SD MI Paket A Pendidikan dasar (kelas 7–9) SMP MTs Paket B Pendidikan menengah (kelas 10–12) SMA MA SMK MAK Paket C Pendidikan tinggi Perguruan tinggi Akademi Akademi komunitas Institut Politeknik Sekolah tinggi Universitas Lain-lain Madrasah Pesantren Sekolah alam Sekolah rumah Sekolah luar biasa lbs Taman Pendi…

Questa voce sull'argomento atleti brasiliani è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti del progetto di riferimento. André DomingosNazionalità Brasile Altezza187 cm Peso78 kg Atletica leggera SpecialitàVelocità CarrieraNazionale Brasile Palmarès Competizione Ori Argenti Bronzi Giochi olimpici 0 1 1 Mondiali 0 1 1 Giochi panamericani 1 0 2 Universiadi 1 0 0 Vedi maggiori dettagli  Modifica dati su Wikidata · M…

Ghanaian symbols that represent concepts or aphorisms This article is about the Bono visual symbols. For the term in physics, see Adinkra symbols (physics). Samples of recorded Adinkra symbols Adinkra are symbols from Ghana that represent concepts or aphorisms. Adinkra are used extensively in fabrics, logos and pottery. They are incorporated into walls and other architectural features. Adinkra symbols appear on some traditional Akan goldweights. The symbols are also carved on stools for domestic…

This article includes a list of references, related reading, or external links, but its sources remain unclear because it lacks inline citations. Please help improve this article by introducing more precise citations. (April 2009) (Learn how and when to remove this message) Mode choice analysis is the third step in the conventional four-step transportation forecasting model of transportation planning, following trip distribution and preceding route assignment. From origin-destination table input…

American technology company General MagicIndustryPersonal digital assistantsSoftwareFoundedMay 1990 (1990-05)[1]FoundersBill AtkinsonAndy HertzfeldMarc Porat[1]DefunctSeptember 17, 2002 (2002-09-17)[2]HeadquartersMountain View, California, United States[1]ProductsTelescriptMagic Cap General Magic was an American software and electronics company co-founded by Bill Atkinson, Andy Hertzfeld,[1] and Marc Porat. Based in Mountain View, …

This is a list of bridges on the National Register of Historic Places in Washington, D.C.[1] Name Image Built Listed Location Type Arlington Memorial Bridge 1926, 1932 April 4, 1980 38°53′12″N 77°3′39″W / 38.88667°N 77.06083°W / 38.88667; -77.06083 (Arlington Memorial Bridge) Central bascule Boulder Bridge and Ross Drive Bridge 1902, 1907 March 20, 1980 38°56′53″N 77°2′42″W / 38.94806°N 77.04500°W / 38.94806;…

羯羅拏蘇伐剌那國গৌড় রাজ্য590年—626年 王室标志 约625年的印度,高达王国位于印度东部首都金耳(今印度西孟加拉邦穆尔斯希达巴德附近)宗教印度教佛教政府君主制国王 • 590年至625年 設賞伽• 625年至626年 摩那伐(英语:Manava (king)) 历史 • 建立 590年• 终结 626年 前身 继承 后笈多王朝 伐弹那王朝 迦摩縷波 羯羅拏蘇伐剌那國(梵语:Ka…

Reagan erläutert in einer Fernsehansprache im Juli 1981 seine beabsichtigten Steueränderungen Der Begriff Reaganomics (Kofferwort, zusammengesetzt aus „Reagan“ und „economics“, engl. für Wirtschaft) bezeichnet die Wirtschaftspolitik der USA unter Präsident Ronald Reagan. Inhaltsverzeichnis 1 Theorie 2 Steuerpolitik und Staatseinnahmen 3 Auseinandersetzung 4 Siehe auch 5 Literatur 6 Weblinks 7 Einzelnachweise Theorie Entwicklung der Spitzensteuersätze in den Vereinigten Staaten von 1…

裕固族Yogïr裕固族家族、1944年攝於中國甘肃省兰州市總人口14706人分佈地區甘肃省肃南裕固族自治县,酒泉市黄泥堡裕固族乡語言西部裕固语、东部裕固语、汉语蘭銀官話宗教信仰藏傳佛教相关族群维吾尔族 裕固族(西部裕固语:Sarïg Yogïr),突厥語民族之一,信仰藏傳佛教。為今中華人民共和國的少数民族之一,先祖為回鶻人,分布于河西走廊的中部和祁连山北段,主要集…

Israel Academy of Sciences and Humanitiesהאקדמיה הלאומית הישראלית למדעיםSeal of the Israel Academy of Sciences and HumanitiesFormation1961HeadquartersTalbiya Jerusalem, IsraelMembership ~115PresidentDavid HarelWebsiteacademy.ac.ilNational academic institute in Jerusalem Israeli President Reuven Rivlin with the current and the former presidents of the Israel Academy of Sciences and Humanities Entrance to the Israel Academy of Sciences and Humanities and the Council for…