Intern
Šta je objektno-orijentisano programiranje?
sobes.tech АИ
Одговор од АИ
Објектно-оријентирано програмирање (ООП) је парадигма програмирања која се заснива на концепту "објеката", који могу садржати податке (атрибуте) и код (методе).
Основни принципи ООП укључују:
- Инкапсулација: Скривање података и метода унутар објекта, којем се приступа кроз добро дефинисан интерфејс.
- Наслеђивање: Механизам који омогућава једној класи (подкласи) да наследи својства и понашање друге класе (родитељске класе).
- Полиформизам: Могућност коришћења истог интерфејса за објекте различитих класа, при чему сваки објекат понаша се својим начином.
// Пример инкапсулације у Swift-у
struct Point {
private var x: Double
private var y: Double
init(x: Double, y: Double) {
self.x = x
self.y = y
}
func distance(to otherPoint: Point) -> Double {
let deltaX = self.x - otherPoint.x
let deltaY = self.y - otherPoint.y
return sqrt(deltaX * deltaX + deltaY * deltaY)
}
}
let p1 = Point(x: 0, y: 0)
let p2 = Point(x: 3, y: 4)
// print(p1.x) // Грешка при компилацији: 'x' није приступачан због 'private' нивоа заштите
print(p1.distance(to: p2)) // Излаз: 5.0
// Пример наслеђивања у Swift-у
class Animal {
func speak() {
print("Некој општи звук")
}
}
class Dog: Animal {
override func speak() {
print("Вуф!")
}
}
let myDog = Dog()
myDog.speak() // Излаз: Вуф!
// Пример полиморфизма у Swift-у
// Користимо класе Animal и Dog из примера наслеђивања
func makeAnimalSpeak(animal: Animal) {
animal.speak()
}
let someAnimal: Animal = Animal()
let aDog: Animal = Dog() // Објекат Dog, али третира се као Animal
makeAnimalSpeak(animal: someAnimal) // Излаз: Некој општи звук
makeAnimalSpeak(animal: aDog) // Излаз: Вуф!
Предности ООП:
- Поновна употреба кода: Преко наслеђивања и композиције.
- Боља читљивост и одржавање: Код је организован у логичке јединице (објекте).
- Флексибилност: Полиморфизам омогућава лако додавање нових типова објеката без измене постојећег кода.
- Лакше дебаговање: Омогућава изолацију проблема унутар конкретних објеката.