Класс в программировании на английском

класс (Справочник по C#)

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

Комментарии

В C# допускается только одиночное наследование. Другими словами, класс может наследовать реализацию только от одного базового класса. Однако класс может реализовывать несколько интерфейсов. В таблице ниже приведены примеры наследования класса и реализации интерфейса.

Наследование Пример
Нет class ClassA
Single class DerivedClass : BaseClass
Отсутствует, реализует два интерфейса class ImplClass : IFace1, IFace2
Одиночное, реализует один интерфейс class ImplDerivedClass : BaseClass, IFace1

Классы, объявленные непосредственно в пространстве имен и не вложенные в другие классы, могут быть открытыми или внутренними. По умолчанию классы являются internal .

Члены класса, включая вложенные классы, могут объявляться с типом доступа public, protected internal, protected, internal, private или private protected. По умолчанию члены имеют тип доступа private .

Дополнительные сведения см. в статье Модификаторы доступа.

Можно объявить универсальные классы, имеющие параметры типа. Дополнительные сведения см. в разделе Универсальные классы.

Класс может содержать объявления следующих членов:

Пример

В приведенном ниже примере показано объявление полей, конструкторов и методов класса. В нем также демонстрируется создание экземпляра объекта и печать данных экземпляра. В этом примере объявляются два класса. Первый класс, Child , содержит два частных поля ( name и age ), два общих конструктора и один общий метод. Второй класс, StringTest , используется для хранения Main .

class Child < private int age; private string name; // Default constructor: public Child() < name = "N/A"; >// Constructor: public Child(string name, int age) < this.name = name; this.age = age; >// Printing method: public void PrintChild() < Console.WriteLine(", years old.", name, age); > > class StringTest < static void Main() < // Create objects by using the new operator: Child child1 = new Child("Craig", 11); Child child2 = new Child("Sally", 10); // Create an object using the default constructor: Child child3 = new Child(); // Display results: Console.Write("Child #1: "); child1.PrintChild(); Console.Write("Child #2: "); child2.PrintChild(); Console.Write("Child #3: "); child3.PrintChild(); >> /* Output: Child #1: Craig, 11 years old. Child #2: Sally, 10 years old. Child #3: N/A, 0 years old. */ 

Комментарии

Обратите внимание, что в предыдущем примере доступ к частным полям ( name и age ) возможен только с помощью общих методов класса Child . Например, имя ребенка нельзя напечатать из метода Main с помощью следующего оператора:

Console.Write(child1.name); // Error 

Получить доступ к закрытым членам класса Child из метода Main можно было бы лишь в том случае, если бы Main был членом класса.

Типы, объявленные в классе без модификатора доступа, по умолчанию являются private , поэтому члены данных в этом примере останутся private , если ключевые слова будут удалены.

Наконец, обратите внимание, что для объекта, созданного с помощью конструктора без параметров ( child3 ), поле age по умолчанию инициализировано с нулевым значением.

Спецификация языка C#

Дополнительные сведения см. в спецификации языка C#. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#.

См. также

Источник

Читайте также:  Разработка приложений принципы нашей работы
Оцените статью