Intern
Ce este programarea orientată pe obiecte?
sobes.tech AI
Răspuns de la AI
Programarea orientată pe obiecte (POO) este un paradigm de programare bazat pe conceptul de "obiecte", care pot conține date (atribute) și cod (metode).
Principiile de bază ale POO includ:
- Încapsulare: Ascunderea datelor și metodelor în interiorul unui obiect, la care se accesează printr-o interfață bine definită.
- Moștenire: Mecanismul care permite unei clase (clasă derivată) să moștenească proprietăți și comportamente de la o altă clasă (clasă de bază).
- Polimorfism: Capacitatea de a folosi aceeași interfață pentru obiecte din clase diferite, unde fiecare obiect se comportă în mod diferit.
// Exemplu de încapsulare în 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) // Eroare de compilare: 'x' nu este accesibil din cauza nivelului de protecție 'private'
print(p1.distance(to: p2)) // Ieșire: 5.0
// Exemplu de moștenire în Swift
class Animal {
func speak() {
print("Sunet generic")
}
}
class Dog: Animal {
override func speak() {
print("Wuff!")
}
}
let myDog = Dog()
myDog.speak() // Ieșire: Wuff!
// Exemplu de polimorfism în Swift
// Folosim clasele Animal și Dog din exemplul de moștenire
func makeAnimalSpeak(animal: Animal) {
animal.speak()
}
let someAnimal: Animal = Animal()
let aDog: Animal = Dog() // Obiect Dog, dar tratat ca Animal
makeAnimalSpeak(animal: someAnimal) // Ieșire: Sunet generic
makeAnimalSpeak(animal: aDog) // Ieșire: Wuff!
Avantajele POO:
- Reutilizarea codului: Prin moștenire și compoziție.
- Citibilitate și întreținere îmbunătățite: Codul este organizat în unități logice (obiecte).
- Flexibilitate: Polimorfismul permite adăugarea ușoară a noilor tipuri de obiecte fără a modifica codul existent.
- Debugging mai ușor: Permite izolarea problemelor în interiorul obiectelor specifice.