Метод (програмування)
Ме́тод в об'єктно-орієнтованому програмуванні — підпрограма (процедура, функція), що використовується виключно разом із класом (методи класу) або з об'єктом (методи екземпляра).
Розрізняють прості методи і статичні методи (методи класу):
- прості методи мають доступ до даних об'єкта (конкретного екземпляра даного класу)
- статичні методи не мають доступу до даних об'єкта і для їх використання не потрібно створювати екземпляри (даного класу).
Приклад простого методу на 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, за винятком null і undefined, містять набір допоміжних функцій і значень, доступних «через крапку». Такі функції називають «методами», а значення - «властивостями». Тут ми розглянемо основи використання властивостей і методів.
Приведемо деякі стандартні методи різних типів даних:
В рядків є метод toUpperCase (), який повертає рядок у верхньому регістрі
let hello = "Hello world!";
hello = hello.toUpperCase(); // "HELLO WORLD!"
Також є метод toLowerCase (), який працює аналогічно попередньому але повертає рядок у нижньому регістрі.
Метод indexOf (Str) повертає позицію першого символу першого входження підрядка Str в рядку.
Метод lastIndexOf (Str) повертає позицію останнього входження Str в рядку.
Метод slice (String) повертає фрагмент рядка.
Для переведення числа в рядок використовують метод toString(система счисления)
let n = 255;
str = n.toString(16); // ff
Для додавання/видалення елементів масиву використовують наступні методи:
- pop Видаляє останній елемент з масиву і повертає його.
- push Додає елемент в кінець масиву.
- shift Видаляє з масиву перший елемент і повертає його.
- unshift Додає елемент в початок масиву.
У сучасному 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
- Абстрактні класи та методи
- Абстрактні класи. Абстрактні методи. Приклади. Ключове слово abstract
- Java Class Methods
- What is the Difference Between Class and Method 2019
Це незавершена стаття про мови програмування. Ви можете допомогти проєкту, виправивши або дописавши її. |