Nguzo nne ni Encapsulation, Abstraction, Inheritance, na Polymorphism. Pamoja, zinabainisha jinsi OOP inavyoandaa na kurudia kutumia nambari.
| Nguzo | Wazo la msingi |
|---|
| Encapsulation | Funika data + tabia; ficha hali ya ndani nyuma ya kiolesura kilichodhibitiwa |
| Abstraction | Ghairi nini kitu kinachofanya, ficha jinsi kinavyofanya |
| Inheritance | Darasa ndogo linatumia tena na kueneza darasa la mzazi |
| Polymorphism | Kiolesura kimoja, utekelezaji wengi uliochaguliwa wakati wa kukimbia |
abstract class Shape { // ABSTRACTION: "what", not "how"
abstract double area(); // each shape decides its own formula
}
class Circle extends Shape { // INHERITANCE: Circle is a Shape
private double r; // ENCAPSULATION: r is private
Circle(double r) { this.r = r; }
double area() { return Math.PI * r * r; } // POLYMORPHISM: own area()
}
class Square extends Shape {
private double s;
Square(double s) { this.s = s; }
double area() { return s * s; }
}
Shape shape = new Circle(2); // POLYMORPHISM in action:
System.out.println(shape.area()); // calls Circle.area() at runtime
##함정
Hizi ni zana, si malengo. Kulazimisha urithi au kubstrakt ambapo haviasiki kuhusu magumu. Kamata nguzo inayolingana na tatizo.
Maneno haya manne ni kamusi iliyoshirikiwa ya muundo wa OOP — mahojiano na maoni ya nambari yanataka kujua.
Kila nguzo inaonekana kwa faida halisi: encapsulation inatetea uvumbuzi, kubstrakt hupunguza kile lazima kufaham, urithi na polymorphism huhusu kurudia kutumia na upanuzi.