Сегодня мы обсудим основные термины программирования, о которых должен знать каждый при разработке программного обеспечения. Я буду использовать JavaScript для примеров, но эти термины касаются любого языка.
Классы и Объекты
Описанием объекта является класс, а объект представляет экземпляр этого класса. Можно еще провести следующую аналогию. У нас у всех есть некоторое представление о человеке, у которого есть имя, возраст, какие-то другие характеристики. То есть некоторый шаблон - этот шаблон можно назвать классом. Конкретное воплощение этого шаблона может отличаться, например, одни люди имеют одно имя, другие - другое имя. И реально существующий человек (фактически экземпляр данного класса) будет представлять объект этого класса.
Конструктор
Конструктор в объектно-ориентированном программировании - это специальный метод, позволяющий инициализировать начальное состояние класса при создании его экземпляра.
class Person{
constructor(name){
console.log('Hello from' + ' ' + name);
}
}
const p = new Person('karan'); // Output Hello from karan
Статические методыи
Статические методы не имеют доступа к данным объекта, и для их использования не нужно создавать экземпляры (данного класса). Они не изменяют поведение нашего класса, но очень эффективны, когда вы хотите просмотреть определенные данные и т.д.
Рекурсия
Рекурсия - это метод, при котором функция вызывает себя. Это условие завершения, называемое базовым условием, которое останавливает рекурсивное действие.
class MathematicalOperation{
constructor(){
console.log('Mathmatetical operation class');
}
square(x){
return x*x;
}
factorial(x){
if(x==0 || x==1){
return 1;
}
return x*this.factorial(x-1);
}
static available_methods(){
console.log('This class has two methods. Square and factorial.');
}
}
const m = new MathematicalOperation; // output Mathmatetical operation class
console.log(m.square(5)); // output 25
console.log(m.factorial(5)); // output 120
MathematicalOperation.available_methods(); // his class has two methods. Square and factorial.
Циклы
Циклы в языках программирования - это функция, которая облегчает многократное выполнение набора инструкций.
a = [1,2,3,4,5,6,7,8,9,10];
// For of Loop
for (let i of a){
console.log(i);
}
// While loop
let j = 0;
while(j < 10){
console.log(a[j]);
j++;
}
OOPS (объектно-ориентированная система программирования)
Это методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определённого класса, а классы образуют иерархию наследования. Основными компонентами OOPS являются инкапсуляция, абстракция, наследование и полиморфизм.
- Инкапсуляция: упаковка данных и функций в единый компонент (внутри класса).
- Абстракция: абстракция является очень важной концепцией в ООП. Это значает, что вы скрываете важные вещи внутри класса и предоставляете только необходимую или релевантную информацию, которую вы хотите показать через объект. (Скрывает детали реализации)
- Наследование: это концепция, при которой класс приобретает свойства дочернего класса. Мы можем расширить этот дочерний класс и использовать уже определенные методы, которые находятся в базовом классе/родительском классе. Основная цель наследования - предоставить повторно используемый код
class Person{
constructor(name,gender){
this.name = name;
this.gender = gender;
}
getPersonName(){
return this.name;
}
getPersonGender(){
return this.gender;
}
}
class Male extends Person{
constructor(name){
super(name,"male");
}
}
class Female extends Person{
constructor(name){
super(name,"female");
}
}
// creating objects ...
const m = new Male("karan");
const f = new Female("Anna");
// checking results ...
console.log(m.getPersonGender()); // male
console.log(m.getPersonName()); // karan
console.log(f.getPersonGender()); // female
console.log(f.getPersonName()); // Anna
- Полиморфизм: означает способность принимать различные формы. Обычно существует 2 типа полиморфизма - время компиляции и время выполнения.
- Время компиляции. Перегрузка функций является примером полиморфизма времени компиляции. Одно и то же имя функции, разные типы данных параметров.
- Время выполнения. Переопределение функции является примером полиморфизма времени выполнения. Давайте посмотрим на пример.
class Overriding{
print(){
console.log('this is print function');
}
print(){
console.log('this will override the above print function');
}
}
const override = new Overriding();
override.print(); // output : this will override the above print function
Пакет/Модуль
Модули и пакеты значительно упрощают работу программиста. Классы, объекты, функции и константы, которыми приходится часто пользоваться можно упаковать в модуль, и, в дальнейшем, загружать его в свои программы при необходимости. Пакеты позволяют формировать пространства имен для работы с модулями.
0 комментариев
Добавить комментарий