ООП
Поняття ООП• Програма – це сукупність об’єктів• Все є об’єктом
Об’єкт• Об’єкт чітко характеризує себе• Любий елемент програми можна  представити як об’єкт
Клас• Об’єкт – це екземпляр класа• Клас – описує структуру і поведінкуclass MyClass    {        // Methods        // Prope...
Основи ООП•   Абстрагування•   Інкапсуляція•   Наслідування•   Поліморфізм
Абстрагування • Підкреслення суттєвих деталей • Упущення несуттєвихСуттєво                              Не суттєво• Максим...
Інкапсуляція• Обєднання полів і методів• Приховування реалізації• Захист даних
Інкапсуляціяclass Car    {        public float consumptionPerKm = 0.9f;       public float AcessibleDistance(int fuelAmoun...
ІнкапсуляціяМодифікатори доступу:• public• protected• private• internal• protected internal
Інкапсуляціяclass Car    {        private float consumptionPerKm = 0.9f;        private const float minConsumptionPerKm = ...
Наслідування
Наслідуванняclass AutomaticCar: Car    {        public void EnableAutomatic(bool enable)        {            // additional...
Інтерфейсinterface ICar    {        float AccessibleDistance(int fuelAmount);        void Accelerate(int value);        vo...
Інтерфейсclass SimpleCar : ICar    {        public float AccessibleDistance(int fuelAmount)        {            return 0.0...
Віртуальні функціїclass VirtualCar    {        protected const float consumptionPerKm = 0.6f;       public virtual float A...
Абстрактні класи і методиabstract class NewPrototypeCar: Car    {        public abstract void HideLicensePlate();    }clas...
Поліморфізм• Один інтерфейс – багато реалізацій ICar car1 = new SimpleCar(); ICar car2 = new SuperCar(); car1.Accelerate(1...
Поліморфізмclass A{    public virtual void DoWork() { }}class B : A{    public override void DoWork() { }}class C : B{    ...
#2 Об'єктно орієнтоване програмування (ч. 1)
#2 Об'єктно орієнтоване програмування (ч. 1)
Upcoming SlideShare
Loading in …5
×

#2 Об'єктно орієнтоване програмування (ч. 1)

2,244 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,244
On SlideShare
0
From Embeds
0
Number of Embeds
1,476
Actions
Shares
0
Downloads
12
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

#2 Об'єктно орієнтоване програмування (ч. 1)

  1. 1. ООП
  2. 2. Поняття ООП• Програма – це сукупність об’єктів• Все є об’єктом
  3. 3. Об’єкт• Об’єкт чітко характеризує себе• Любий елемент програми можна представити як об’єкт
  4. 4. Клас• Об’єкт – це екземпляр класа• Клас – описує структуру і поведінкуclass MyClass { // Methods // Properties // Fields // Delegates, … }
  5. 5. Основи ООП• Абстрагування• Інкапсуляція• Наслідування• Поліморфізм
  6. 6. Абстрагування • Підкреслення суттєвих деталей • Упущення несуттєвихСуттєво Не суттєво• Максимальна швидкість • Оббивка салону• Розхід палива • Панель приборів• Ціна
  7. 7. Інкапсуляція• Обєднання полів і методів• Приховування реалізації• Захист даних
  8. 8. Інкапсуляціяclass Car { public float consumptionPerKm = 0.9f; public float AcessibleDistance(int fuelAmount) { return fuelAmount / consumptionPerKm; } }
  9. 9. ІнкапсуляціяМодифікатори доступу:• public• protected• private• internal• protected internal
  10. 10. Інкапсуляціяclass Car { private float consumptionPerKm = 0.9f; private const float minConsumptionPerKm = 0.2f; public float AccessibleDistance(int fuelAmount) { return fuelAmount / consumptionPerKm; } public void SetConsumptionPerKm(float consumption) { consumptionPerKm = consumption > minConsumptionPerKm ?consumption : minConsumptionPerKm; } }
  11. 11. Наслідування
  12. 12. Наслідуванняclass AutomaticCar: Car { public void EnableAutomatic(bool enable) { // additional changes SetConsumptionPerKm(enable ? 1.1f : 0.9f); } }
  13. 13. Інтерфейсinterface ICar { float AccessibleDistance(int fuelAmount); void Accelerate(int value); void Break(int value); }
  14. 14. Інтерфейсclass SimpleCar : ICar { public float AccessibleDistance(int fuelAmount) { return 0.0f; } public void Accelerate(int value) { // } public void Break(int value) { // } }
  15. 15. Віртуальні функціїclass VirtualCar { protected const float consumptionPerKm = 0.6f; public virtual float AccessibleDistance(int fuelAmount) { return fuelAmount / consumptionPerKm; } }class Tractor : VirtualCar { public override float AccessibleDistance(int fuelAmount) { fuelAmount = fuelAmount / 2; // broken-down tractor return fuelAmount / consumptionPerKm; } }
  16. 16. Абстрактні класи і методиabstract class NewPrototypeCar: Car { public abstract void HideLicensePlate(); }class BondCar : NewPrototypeCar { public override void HideLicensePlate() { // } }
  17. 17. Поліморфізм• Один інтерфейс – багато реалізацій ICar car1 = new SimpleCar(); ICar car2 = new SuperCar(); car1.Accelerate(1); car2.Accelerate(1);
  18. 18. Поліморфізмclass A{ public virtual void DoWork() { }}class B : A{ public override void DoWork() { }}class C : B{ public sealed override void DoWork() { }}class D : C{ public new void DoWork() { }}

×