Лекция 2. С# и объектно-ориентированное программирование

Сравнительный анализ 3 и 4 концепций

  Исходный момент Средства достижения Условия достижения цели компании Цель фирмы
Философия сбыта Товар Производство, сбыт Объем реализации Прибыль
Философия маркетинга Потребность (нужда) Ресурсы НИОКР, структура Эффективное удовлетворение потребностей клиента Прибыль
Комплексные усилия маркетинга

 

V Концепция социально-этичного маркетинга – требует, чтобы маркетинг учитывал рост благополучия общества в целом и каждого отдельного потребителя. Является самой прогрессивной и долговременной концепцией маркетинга.

VI Концепция персонифицированного маркетинга

 

Условия применения:

1. развитие потребностей;

2. ограниченность ресурсов и необходимость поисков других источников;

3. ухудшение состояния окружающей среды;

4. неудовлетворительное состояние сферы социальных услуг.

Формальное определение класса в С#

Класс в С#, как и в других языках программирования, — это пользовательский тип данных (user defined type, UDT), который состоит из данных (часто называемых атрибутами или свойствами) и функциями для выполнения с этими данными различных действий (эти функции обычно называются методами). Классы позволяют группировать в единое целое данные и функциональность, моделируя объекты реального мира. Именно это свойство классов и обеспечивает одно из наиболее важных преимуществ объектно-ориентированных языков программирования

К примеру, предположим, что нам потребовалось создать модель сотрудника нашей организации. Конечно же, для этой цели удобнее всего создать специальный класс. Этот класс, как минимум, должен хранить данные об имени работника, его идентификационном номере и текущей заработной плате. Помимо этого, пусть в нашем классе будут определены два метода — GiveBonus( ) для увеличения заработной платы сотрудника и DisplayStats ( ) для вывода всех имеющихся данных of этом сотруднике (рис. 3.1).

Рис. 3.1. Определение простого класса

Как уже говорилось в главе 2, для классов СП можно определить любое количество конструкторов. Эта, специальные методы классов позволяют создавать объекты данного класса, настраивая при этом их исходное состояние нужным вам образом. Любой класс С# автоматически снабжается конструктором по умолчанию (не принимающим никаких параметров). Этот конструктор в С# (в отличие от C++) при создании объекта автоматически присвоит всем переменным-членам класса безопасные значения по умолчанию. Кроме того, вы можете как переопределить конструктор по умолчанию, так и создать такое количество пользовательских конструкторов (принимающих параметры), сколько вам необходимо. Давайте определим наш класс для сотрудника на С#:

 

// Исходное определение класса

class Employee

{

// Внутренние закрытые данные класса

private string fullNameж

private int empID;

private float currPay;

 

// Конструкторы

public Employee( ) { }

public Employee(string fullName, int empID, float currPay)

{

this.fullName = fullName;

this.empID = empID;

this.currPay = currPay;

}

 

// Метод для увеличения зарплаты сотрудника

public void CiveBonus(float amount)

{ currPay += amount; }

 

// Метод для вывода сведений о текущем состоянии объекта

public virtual void DisplayStats( )

{

Console.WriteLine(“Name:{0}, fullName);

Console.WriteLine("Pay: {0}", currPay);

Console.WriteLine(“ID: {0}", empID);

Console.WriteLine(“SSN:{0}", ssn);

}

}

 

Обратите внимание на то, что определение для конструктора по умолчанию не содержит каких-либо действий, которые должен выполнять конструктор:

class Employee

{

// Всем переменным-членам значения по умолчанию

// будут присвоены автоматически

public Employee( ) {}

. . . .

} '

 

Необходимо обязательно помнить о следующем обстоятельстве: в С# (как и в C++), если вы определили хотя бы один пользовательский конструктор (примающий параметры), конструктор по умолчанию автоматически создаваться уже будет и его придется определять явно. В противном случае при попытке выполнения такого, к примеру, кода:

 

// Вызываем конструктор по умолчанию

Employee е = new Employee( );

Вы получите сообщение об ошибке компилятора.

Использование пользовательского конструктора очевидно:

 

// Вызываем пользовательский конструктор (двумя способами)

public static void Main( )

{

Employee e = new Employee("Joe", 80, 30000);

e.GiveBonus(200);

 

Employee e2;

e2 = new Employee("Beth”, 81, 50000);

e2.GiveBonus(1000);

e2.DisplayStats( );

}