четверг, 6 января 2022 г.

Классы

 Простейшее описание класса имеет следующий вид. 

class имя класса {< список членов класса>}

имя класса – это любой идентификатор, уникальный в пределах своей сферы действия;

список членов класса – список, объявляющий члены класса с указанием уровня доступа.

Члены класса – это поля (члены-данные), методы (функции-члены), свойства и события

В данной лабораторной работе будут создаваться классы, имеющие в качестве членов поля и методы.

Например:

class Myclass {

public int i;

public float x;

public float f()

{return i*y;}

}


В С# имеется пять спецификаторов доступа: publicprivate, protected, internal, protected internal 

Значения спецификаторов доступа следующие:

public - член класса может быть использован любым методом;

private - член класса может быть использован только методом того же класса,

protected - член класса может быть использован только либо методом того же класса, либо методом производного класса;

internal- член класса может быть использован только методом из той же сборки;

protected internal- член класса может быть использован только либо методом из той же сборки или методом производного класса из любой сборки.


В C# создание объектов класса происходит с помощью операции new.

Например:

Myclass a1=new Myclass();

или

Myclass a2;

a2=new Myclass();


Например:

c.x=7; //полю х объекта с присвоено значение 7.

d.i=6; //полю i объекта d присвоено значение 6.

a1.x=c.f();//полю х объекта a1 присвоено значение, которое возвращает метод f, вызванный для объекта с, поскольку ссылка d также указывает на этот же объект, то метод f вернет значение 42.



Конструктор класса C#

Конструктор класса – это метод класса, который предназначен для создания объектов класса и инициализации их.

Конструктор обладает следующими свойствами:

1. Имя конструктора совпадает с именем класса.

2. Конструктор не имеет возвращаемого значения, даже типа void

3. Класс может содержать несколько конструкторов, отличающихся либо количеством, либо типами параметров (отличие в этом случае должно быть существенным), либо и тем и другим.

4. Конструктор без параметров называется конструктором по умолчанию.

5. Если ни один конструктор не был написан программистом, то конструктор по умолчанию генерируется компилятором.

6. Если в классе объявлен хотя бы один конструктор, то компилятор не создает своего.

7. В C# , в отличие от многих других языков, любой конструктор, если не указано иное, обнуляет значения полей.

8. Конструктор не может быть вызван явно, он вызывается автоматически при создании экземпляров класса.

 

Рассмотрим пример.

Определим в классе А два конструктора.

class Person {

public int x,y;

public int f()

{return x+y;}

// создадим конструктор

public Person() { x=1; y=2; }

public A (int xx, int yy) { x=xx; y=yy;}

}

При выполнении команды Person a=new Person();

для создания объекта класса используется конструктор без параметров. 

Полям объекта а будут присвоены, соответственно, значения 1 и 2.

Если при создании объекта требуется использовать конструктор с параметрами, то в операторе newпосле имени класса в круглых скобках указываются значения параметров, например, Person b=new Person(6,13);

А команда Person c=new Person(3);вызовет ошибку, потому что класс Person не содержит конструктора с одним параметром, которому можно было бы присвоить значение 3.

В языке С# существует упрощенная форма написания конструктора: при описании полей класса можно написать инициализирующие выражения.

Пример.

class В {

public int i=10;

}

Все строки, содержащие инициализирующие выражения, включаются в начало всех конструкторов. 

В данном примере строка i=10; будет включена в конструктор, определяемый компилятором.






Комментариев нет:

Отправить комментарий

Паттерн 'Репозиторий' в ASP.NET

  Последнее обновление: 1.11.2015         Одним из наиболее часто используемых паттернов при работе с данными является паттерн 'Репозито...