oop
Классы и объекты
Создание классов, конструкторы, поля и методы
Показать языки:
JSJavaScript
class Animal {
#name; // приватное поле
constructor(name, sound) {
this.#name = name;
this.sound = sound;
}
speak() {
return `${this.#name} говорит ${this.sound}`;
}
get name() { return this.#name; }
}
const dog = new Animal("Собака", "Гав");
console.log(dog.speak());PYPython
class Animal:
def __init__(self, name, sound):
self.__name = name # приватное
self.sound = sound
def speak(self):
return f"{self.__name} говорит {self.sound}"
@property
def name(self):
return self.__name
dog = Animal("Собака", "Гав")
print(dog.speak())C#C#
class Animal
{
private string _name;
public string Sound { get; set; }
public Animal(string name, string sound)
{
_name = name;
Sound = sound;
}
public string Speak()
{
return $"{_name} говорит {Sound}";
}
public string Name => _name;
}
var dog = new Animal("Собака", "Гав");
Console.WriteLine(dog.Speak());C++C++
#include <string>
using namespace std;
class Animal {
private:
string _name;
public:
string sound;
Animal(string name, string sound)
: _name(name), sound(sound) {}
string speak() {
return _name + " говорит " + sound;
}
string getName() { return _name; }
};
Animal dog("Собака", "Гав");
cout << dog.speak();Пояснение
Все четыре языка поддерживают ООП. Python использует self явно в каждом методе. C# и C++ разграничивают public/private явно. C# поддерживает свойства (get/set), остальные — геттеры/сеттеры.