Концепции объектно-ориентированного программирования

В этой статье мы собираемся изучить язык ООП c #, чтобы продемонстрировать и понять концепции ООП.

Что такое C #?

C # - это простой современный универсальный объектно-ориентированный язык программирования, разработанный Microsoft в рамках инициативы .NET, возглавляемой Андерсом Хейлсбергом. C # - современный универсальный объектно-ориентированный язык программирования, разработанный Microsoft и одобренный Европейской ассоциацией производителей компьютеров (ECMA) и Международной организацией по стандартизации (ISO). C # основан на концепциях объектно-ориентированного программирования.

Следующие причины делают C # широко используемым профессиональным языком:

  • Это современный язык программирования общего назначения.
  • Это объектно-ориентированный.
  • Это компонентно-ориентированный.
  • Это легко учиться.
  • Это структурированный язык.
  • Он производит эффективные программы.
  • Он может быть скомпилирован на различных компьютерных платформах.
  • Это часть .Net Framework.

Что такое .Net Framework?

.Net Framework - это революционная платформа, которая помогает вам писать приложения следующих типов:

  • Приложения для Windows
  • Веб-приложения
  • Веб-сервисы

Приложения .Net Framework являются мультиплатформенными приложениями. Фреймворк спроектирован таким образом, что его можно использовать на любом из следующих языков: C #, C ++, Visual Basic, JScript, COBOL и т. Д. Все эти языки могут обращаться к фреймворку, а также общаться друг с другом.

.Net Framework состоит из огромной библиотеки кодов, используемых клиентскими языками, такими как C #. Ниже приведены некоторые компоненты .Net Framework:

  • Common Language Runtime (CLR)
  • Библиотека классов .Net Framework
  • Спецификация общего языка
  • Система общего типа
  • Метаданные и сборки
  • Windows Forms
  • ASP.Net и ASP.Net AJAX
  • ADO.Net
  • Windows Workflow Foundation (WF)
  • Windows Presentation Foundation
  • Windows Communication Foundation (WCF)
  • LINQ

Программа AC # состоит из следующих частей:

  • Объявление пространства имен
  • Класс
  • Методы класса
  • Атрибуты класса
  • Основной метод
  • Заявления и выражения
  • Комментарии

Вот небольшая программа на C #:

 

using System; 

namespace HelloWorld 
{ 
  class helloWorld 
  { 
    static void Main(string[] args) 
    { 
      Console.WriteLine("Hello World, This is my first C# program"); 
      Console.ReadKey(); 
    }   
   } 
}

Давайте посмотрим на различные части данной программы:

  • Первая строка программы с использованием System; - ключевое слово using используется для включения в программу пространства имен System. Программа обычно имеет несколько операторов использования.
  • Следующая строка имеет объявление пространства имен. Пространство имен - это коллекция классов. Пространство имен «HelloWorldApplication» содержит класс HelloWorld.
  • Следующая строка имеет объявление класса, класс «HelloWorld» содержит определения данных и методов, которые использует ваша программа. Классы обычно содержат несколько методов. Методы определяют поведение класса. Однако класс HelloWorld имеет только один метод Main.
  • Следующая строка определяет метод Main, который является точкой входа для всех программ на C #. Метод Main сообщает, что делает класс при выполнении.
  • Следующая строка / *… * / игнорируется компилятором и ставится для добавления комментариев в программу.
  • Метод Main определяет свое поведение с помощью оператора Console.WriteLine («Hello World»);
«WriteLine» - это метод класса Console, определенный в пространстве имен System. Это утверждение приводит к тому, что на экране появляется сообщение «Hello, World!».

Стоит отметить следующие моменты:

  • C # чувствителен к регистру.
  • Все выражения и выражения должны заканчиваться точкой с запятой (;).
  • Выполнение программы начинается с метода Main.

 

ООП Концепции

В парадигме объектно-ориентированного программирования на основе классов « объект » относится к конкретному экземпляру класса, где объект может быть комбинацией переменных, функций и структур данных. Хорошее понимание концепций ООП может помочь в принятии решений при разработке приложения. Как вы должны разработать приложение и какой язык использовать.

Объектно-ориентированное программирование - это стиль программирования, связанный с такими понятиями, как класс , объект, наследование , инкапсуляция , абстракция , полиморфизм .

 

1. Класс

Класс - это коллекция методов и переменных. Это план, который определяет данные и поведение типа.

Давайте возьмем Человека как класс. Класс - это план любого функционального объекта, который определяет его свойства и функции. Как человек, имеющий части тела, выполняющий различные действия.

Мы можем определить класс, используя ключевое слово class и тело класса, заключенное в пару фигурных скобок, как показано в следующем примере:

 

public class humanBeing
{
  // declare field properties, event, delegate, and method
}

2. Наследование

Наследование - это особенность объектно-ориентированного программирования, которая позволяет многократно использовать код, когда класс включает свойство другого класса. Рассматривая HumanBeing класс, который имеет свойства, такие как руки, ноги, глаза, рот и т. Д., И функции, такие как ходить, говорить, есть, видеть и т. Д.

Мужчина и Женщина также являются классами, но большинство свойств и функций включены в HumanBeing. Следовательно, они могут наследовать все от класса HumanBeing, используя концепцию наследования. Вот пример кода:

using System; 

namespace InheritanceExample 
{ 
  public class humanBeing 
  {
    public humanBeing()
    {
      Console.WriteLine("Calling the human being class constructor");
    }
    public void Display()
    {
      Console.WriteLine("I'm a human being");
    }  
  } 
  
  public class Man:humanBeing
  {
    public Man()
    {
      Console.WriteLine("I'm a man, a male human being");
    }
  }
  
  public class Program
  {
    static void Main(string[] args) 
    { 
      Man yann = new Man();
      yann.Display();
      Console.ReadKey(); 
    } 
  }
}

 Вывод на экран:

Calling the human being constructor
I'm a man, a male human being
I'm a human being

3. Объекты

Меня зовут Yann, и я являюсь экземпляром / объектом класса Man. Когда мы говорим: человек, мужчина или женщина, мы просто подразумеваем вид, вы, ваш друг и я. Мы являемся формами этих классов. У нас есть физическое существование, а класс - это просто логическое определение. Мы объекты.

Синтаксис для создания объекта класса Man:

Man Yann = new Man();

4. Абстракция

Абстракция означает, демонстрируя только необходимые вещи для внешнего мира, скрывая детали. Продолжая наш пример, люди могут говорить, ходить, слышать, есть, но детали механизма мышц и их связи с мозгом скрыты от внешнего мира.

Концепция абстракции фокусируется на том, что делает объект, в зависимости от того, как объект представлен или « как он работает» . Таким образом, абстракция данных часто используется для управления большими и сложными программами.

Абстракция на другой стороне может быть объяснена как возможность использовать один и тот же интерфейс для разных объектов. Могут существовать разные реализации одного и того же интерфейса. Детали скрыты инкапсуляцией .

Процесс выбора сущности объекта, который вам действительно нужен

Другими словами, выберите нужные свойства из объекта. Пример: 
a. ТВ - Звук, Визуальные эффекты, Ввод мощности, Ввод каналов. 
б. Мобильный - кнопка / сенсорный экран, кнопка питания, кнопка громкости, сим-порт. 
с. Автомобиль - руль, сцепление, педаль газа, тормоз. 
д. Человек - голос, тело, зрение, слух, эмоции.

Проще говоря, ОБРАЩАЙТЕ все , что вам нужно, и ПРИНИМАЙТЕ все, что не нужно.

5. Инкапсуляция

Инкапсуляция означает, что мы хотим скрыть ненужные детали от пользователя. Например, когда мы звоним с нашего мобильного телефона, мы выбираем номер и нажимаем кнопку вызова. Но весь процесс вызова или то, что происходит с момента, когда мы нажимаем или касаемся кнопки вызова, до момента, когда мы начинаем разговор по телефону, скрыт от нас.

Инкапсуляция - это способ добиться «сокрытия информации»,поэтому вам «не нужно знать внутреннюю работу мобильного телефона, чтобы работать с ним». У вас есть интерфейс для использования поведения устройства, не зная деталей реализации.

  • Вы садитесь в машину, нажимаете кнопку или поворачиваете ключ, чтобы завести автомобиль и уехать, вам не нужно знать, что именно происходит с двигателем и всей механикой, чтобы управлять вашим автомобилем. Я nternal детали стартовых операций скрыты от вас
  • Ваш ноутбук подключен к Интернету, вам не нужно понимать, как работает интернет, чтобы использовать его.
  • В коде или во время написания кода Encapsulation скрывает переменные или что-то внутри класса, предотвращая использование неавторизованными сторонами. Таким образом, общедоступные методы, такие как getter и setter, обращаются к нему, а другие классы вызывают эти методы для доступа

6. Полиморфизм

Полиморфизм - это концепция, которая позволяет нам переопределить способ работы чего-либо, либо изменив способ его выполнения, либо изменив детали, используемые для его выполнения.Это можно сделать двумя способами: перегрузкой и переопределением.

Если мы идем, используя руки, а не ноги, здесь мы изменим части, используемые для выполнения чего-либо. Следовательно это называется перегрузкой (Overloading).

 

using System; 

namespace polymorphismExample 
{ 
  public class Numbers 
  {
    public void addition(int a, int b)
    {
      Console.WriteLine(a + b);
    }
    public void addition(int a, int b, int c)
    {
      Console.WriteLine(a + b + c );
    } 
  } 
  
  public class Display
  {
    static void Main(string[] args) 
    { 
      Numbers obj = new Numbers();
      obj.addition(3, 7);
      obj.addition(9, 4, 2);
      Console.ReadKey(); 
    } 
  }
}
Полиморфизм: пример раннего связывания или перегрузки

Выход:

10
15

И если есть определенный способ ходьбы, но я хочу ходить по-другому, но используя свои ноги, как и все остальные. Тогда я могу ходить, как я хочу, это будет называться Overriding .

 
using System; 

namespace polymorphismExample 
{ 
  public class parentClass 
  {
    public virtual void Display()
    {
      Console.WriteLine("Hello! My name is Yann!");
    }
  } 
  
  public class childClass:parentClass 
  {
    public override void Display()
    {
      Console.WriteLine("Hello! Nice to meet you!");
    }
  } 
  
  public class Program
  {
    static void Main(string[] args) 
    { 
      parentClass obj = new childClass();
      obj.Display()
      Console.ReadKey(); 
    } 
  }
}​

 

Полиморфизм: пример позднего связывания или переопределения кода

Выход:

Hello! Nice to meet you!