Mis on OOP?
OOP ehk objektorienteeritud programmeerimine on programmeerimisparadigma, mis keskendub objektidele, mitte ainult funktsioonidele või loogikale. Objektid ühendavad andmed (muutujad) ja käitumise (meetodid) ühtseks tervikuks. OOP-i põhialused on inkapsulatsioon, pärilus, polümorfism ja abstraktsioon. Inkapsulatsioon kaitseb andmeid, pärilus võimaldab koodi taaskasutada, polümorfism muudab objektid paindlikuks ning abstraktsioon lihtsustab keerulisi süsteeme. OOP aitab kirjutada selgemat, hooldatavamat ja korduvkasutatavat koodi. Seda lähenemist kasutavad populaarsed keeled nagu Java, Python, C++ ja C#.
Klass
Klass on mall objekti loomiseks. See määrab ära omadused ja käitumise, mis objektil selles klassis on. Näiteks klass Koer võib määrata omadused, nagu tõug ja kasuka värv, samuti oskused nagu haukumine või istumine.
Objekt
Objekt on klassi konkreetne eksemplar. Kui klass on mall, siis objekt on tegelik ühik, mis on loodud selle malli põhjal. Näiteks objekt Pauka on konkreetne koer, mis on klassi Koer eksemplar.
Eksemplar
Eksemplar on tegelik objekt, mis luuakse klassist programmi käigus. Eksemplaridel võivad olla oma unikaalsed omadused, mis eristavad neid üksteisest.
Meetod
Meetod on objekti tegevusvõime. Need on funktsioonid, mis määravad, mida objekt saab teha. Näiteks meetod haugu() määrab, et koer saab haukuda.
Pärimine
Pärimine on mehhanism, kus üks klass saab pärida omadusi ja käitumist teisest klassist. Näiteks klass Terjer võib pärida omadused klassilt Koer ja lisada midagi oma. See võimaldab mitte kirjutada koodi uuesti.
Abstraktsioon
Abstraktsioon on keerukate detailide peitmine ja ainult olulise info jätmine. Me saame töötada objektiga kui Koer tüüpi objektiga, ilma et peaksime arvestama tema täpset tõugu.
Kapseldamine
Kapseldamine on objekti sisemise töö mehhanismide peitmine ja ainult vajalike välistasemete liideste pakkumine nende kasutamiseks. See võimaldab objekti töö mehhanismide muutmist ilma, et see mõjutaks objekti kasutamist.
Polümorfism
Polümorfism on võime objektidel erinevatel tüüpidel reageerida ühesugusele tegevusele erinevalt. Näiteks meetod ütleMidagi() võib objektil Koer teha haukumise ja objektil Siga röhitsemise, kuid mõlemad kasutavad seda meetodit.
Vene Keeles
Класс
Класс — это шаблон для создания объектов. Он описывает, какие свойства и поведение будут у объектов этого класса. Например, класс Собака может описывать такие характеристики, как порода и цвет шерсти, а также умения, как лаять или сидеть.
Объект
Объект — это конкретный экземпляр класса. Если класс — это шаблон, то объект — это реальная сущность, созданная по этому шаблону. Например, объект Паука — это конкретная собака, которая является экземпляром класса Собака.
Экземпляр
Экземпляр — это реальный объект, созданный на основе класса в процессе работы программы. Экземпляры могут иметь свои уникальные значения свойств, отличающие их друг от друга.
Метод
Метод — это действие или способность объекта. Это функции, которые описывают, что объект может делать. Например, метод лаять() описывает, что собака может лаять.
Наследование
Наследование — это механизм, при котором один класс может заимствовать свойства и поведение другого класса. Например, класс Терьер может наследовать характеристики от класса Собака, добавляя что-то своё. Это позволяет не писать код заново.
Абстракция
Абстракция — это способ скрыть сложные детали и оставить только важную информацию. Мы можем работать с объектом как с экземпляром более общего класса, не вникая в его подробности. Например, объект Паука может быть рассмотрен как объект Собака, не учитывая его породу.
Инкапсуляция
Инкапсуляция — это скрытие внутренней реализации объекта и предоставление только необходимых внешних интерфейсов для работы с ним. Это позволяет изменять детали работы объекта, не влияя на его использование.
Полиморфизм
Полиморфизм — это способность объектов разного типа реагировать на одно и то же действие по-разному. Например, метод сказатьЧто-то() может по-разному работать для объектов типа Собака (лаять) и Свинья (хрюкать), но они оба будут использовать этот метод.
Näide:
public class Inimene
{
public string Nimi;
public int Vanus;
public void Tervita()
{
Console.WriteLine("Tere! Mina olen " + Nimi);
}
}
Näide:
Inimene – calss (…)
namespace OOP_Jurgen
{
internal class Inimene
{
public string Nimi;
public int Vanus;
public Inimene()
{
}
public Inimene(string nimi, int vanus)
{
Nimi = nimi;
Vanus = vanus;
}
public void Tervita()
{
Console.WriteLine("Tere! Mina olen " + Nimi);
}
}
}
Starclass
namespace OOP_Jurgen
{
internal class Startclass
{
public static void Main(string[] args)
{
Inimene inimene1 = new Inimene();
inimene1.Nimi = "Juku";
inimene1.Vanus = 12;
inimene1.Tervita();
Inimene inimene2 = new Inimene("Kati", 25);
}
}
}
Class töötaja – и он наследует все данные из inimene
public class Tootaja : Inimene
{
public string Ametikoht = "Keevitaja";
public void Töötan()
{
Console.WriteLine($"{Nimi} töötab ametikohal {Ametikoht}.");
}
}
}