Как создать класс в c visual studio

от admin

Классы, структуры и пространства имен

C# является полноценным объектно-ориентированным языком. Это значит, что программу на C# можно представить в виде взаимосвязанных взаимодействующих между собой объектов.

Описанием объекта является класс , а объект представляет экземпляр этого класса. Можно еще провести следующую аналогию. У нас у всех есть некоторое представление о человеке, у которого есть имя, возраст, какие-то другие характеристики. То есть некоторый шаблон — этот шаблон можно назвать классом. Конкретное воплощение этого шаблона может отличаться, например, одни люди имеют одно имя, другие — другое имя. И реально существующий человек (фактически экземпляр данного класса) будет представлять объект этого класса.

В принципе ранее уже использовались классы. Например, тип string , который представляет строку, фактически является классом. Или, например, класс Console , у которого метод WriteLine() выводит на консоль некоторую информацию. Теперь же посмотрим, как мы можем определять свои собственные классы.

По сути класс представляет новый тип, который определяется пользователем. Класс определяется с помощью ключевого слова сlass :

После слова class идет имя класса и далее в фигурных скобках идет собственно содержимое класса. Например, определим в файле Program.cs класс Person, который будет представлять человека:

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

Поля и методы класса

Класс может хранить некоторые данные. Для хранения данных в классе применяются поля . По сути поля класса — это переменные, определенные на уровне класса.

Кроме того, класс может определять некоторое поведение или выполняемые действия. Для определения поведения в классе применяются методы.

Итак, добавим в класс Person поля и методы:

В данном случае в классе Person определено поле name , которое хранит имя, и поле age , которое хранит возраст человека. В отличие от переменных, определенных в методах, поля класса могут иметь модификаторы, которые указываются перед полем. Так, в данном случае, чтобы все поля были доступны вне класса Person поля определены с модификатором public .

При определении полей мы можем присвоить им некоторые значения, как в примере выше в случае переменной name . Если поля класса не инициализированы, то они получают значения по умолчанию. Для переменных числовых типов это число 0.

Также в классе Person определен метод Print() . Методы класса имеют доступ к его поля, и в данном случае обращаемся к полям класса name и age для вывода их значения на консоль. И чтобы этот метод был виден вне класса, он также определен с модификатором public .

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

После определения класса мы можем создавать его объекты. Для создания объекта применяются конструкторы . По сути конструкторы представляют специальные методы, которые называются так же как и класс, и которые вызываются при создании нового объекта класса и выполняют инициализацию объекта. Общий синтаксис вызова конструктора:

Сначала идет оператор new , который выделяет память для объекта, а после него идет вызов конструктора .

Конструктор по умолчанию

Если в классе не определено ни одного конструктора (как в случае с нашим классом Person), то для этого класса автоматически создается пустой конструктор по умолчанию, который не принимает никаких параметров.

Теперь создадим объект класса Person:

создание классов в языке программирования C# и .NET

Для создания объекта Person используется выражение new Person() . В итоге после выполнения данного выражения в памяти будет выделен участок, где будут храниться все данные объекта Person. А переменная tom получит ссылку на созданный объект, и через эту переменную мы можем использовать данный объект и обращаться к его функциональности.

Обращение к функциональности класса

Для обращения к функциональности класса — полям, методам (а также другим элементам класса) применяется точечная нотация точки — после объекта класса ставится точка, а затем элемент класса:

Например, обратимся к полям и методам объекта Person:

Консольный вывод данной программы:

Добавление класса

Обычно классы помещаются в отдельные файлы. Нередко для одного класса предназначен один файл. Если мы работаем над проектом вне среды Visual Studio, используя .NET CLI, то нам достаточно добавить новый файл класса в папку проекта. Например, добавим новый файл, который назовем Person.cs и в котором определим следующий код:

Здесь определен класс Person с одним полем name и методом Print.

В файле Program.cs , который представляет основной файл программы используем класс Person:

Использование классов в проекте в Visual Studio в языке программирования C#

Visual Studio предоставляет по умолчанию встроенные шаблоны для добвления класса. Для добавления класса нажмем в Visual Studio правой кнопкой мыши на название проекта:

Добавление класса в Visual Studio в C#

В появившемся контекстном меню выберем пункт Add -> New Item. (или Add -> Class. )

В открывшемся окне добавления нового элемента убедимся, что в центральной части с шаблонами элементов у нас выбран пункт Class . А внизу окна в поле Name введем название добавляемого класса — пусть он будет назваться Person :

Добавление нового класса в Visual Studio в C#

В качестве названия класса можно вводить как Person, так и Person.cs. И после нажатия на кнопку добавления в проект будет добавлен новый класс, в котором можно определить тот же код и также использовать в файле Program.cs.

Таким образом, мы можем определять классы в отдельных файлах и использовать их в программе.

С#: Создание простых классов

Создавая класс, разработчик должен понимать, что он не создает код программы, а разрабатывает структуру и модель поведения какого-либо объекта, который ему будет необходим при дальнейшей разработки программы.
Создавая класс, мы оперируем абстрактными значениями (если мы создаем класс «человек», мы не создаем конкретную личность, а создаем шаблон который будет применим к любой личности.).

Для того, чтобы создать класс Visual Studio:
1. Нажимаем правой кнопкой мыши по проекту.
2. В появившемся меню выбираем пункт Добавить – Класс
3. В появившемся окне указываем имя класса, например, Point.cs.

Так как мы создаем класс Point (точку), то нам необходимо задать те свойства, которые присуще точке, это: координата по X и координата по Y (если говорить про двухмерное пространство).

public— означает, что свойство или метод общедоступно (также возможно значение private и protected, если данное слово опустить, то считается, что указан тип private)
int – говорит о том, что свойство является целым числом

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

Данный код создает точку с именем р и координатой 10;5

Первая строчка данного примера (1) отвечает за создание переменной типа Point, путем вызова конструктора класса Point. В нашем классе на данный момент конструктор не создан, поэтому в строке (1) вызывается конструктор по умолчанию.

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

Добавим свой конструктор в данный класс.

Читать:
Как в ворде сделать буквы маленькими

Создание конструктора ничем не отличается от создания функций, кроме 2-х исключений:
1. Конструктор- это функция, которая называется точно так же как и класс
2. У конструктора не указывается тип возвращаемого значения.

Так как мы работаем с классом точка, то для ее создания нам необходимо знать 2 координаты, значит наш конструктор, должен принимать 2 аргумента.

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

В нашем конструкторе «a» и «b» это аргументы и они доступны только в рамках той функции, аргументами, которой они являются. X и Y это свойства класса, поэтому мы можем использовать их в любой функции данного класса

Что произойдет, если аргументы нашего конструктора будут не «a» и «b», а «X» и «Y»?

Visual Studio напишет нам ошибку в строчках (1) и (2), связана она с тем, что внутри функции X и Y – это и аргументы функции и свойства класса. Мы должны явно показать, какие из этих переменных являются свойствами класса. Делается это путем приписывания к данной переменной ключевого слова this

Теперь Visual studio понимает какая переменная за что отвечает.

Стоит так же отметить, что в рамках класса, значения свойств хранятся в памяти на протяжении всего времени жизни экземпляра класса. Значения же аргументов функций и переменных функций удаляются из памяти после завершения данной функции.

Создадим еще один класс Line (Линия)

Для этого повторим шаги 1-3, описанные выше при создании класса Point.
Что такое Линия? Линия- это набор из 2-х точек. Точка же–это 2-е координаты. Таким образом по сути линия-это 4 координаты.

Подумайте, чем неудобна данная реализация?

В предыдущей части, мы реализовали класс Точка, тем самым мы создали новый тип данных, который можем использовать при необходимости. Тем самым нашу Линию можно реализовать следующим образом:

Для тренировки:
1.Напишите конструктор класса Line
2.Реализуйте класс прямоугольник и эллипс.

Урок C# №14: «Пишем свой класс»

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

свойства;

методы; [деструктор] //такая же ситуация, как и с конструктором >

Класс относится к типам данных, разрабатываемом самим программистом. Чтобы сообщить компилятору, что это класс, мы объявляем его ключевым словом class, после которого уже даем имя класса. Затем в фигурных скобках мы описываем поля, свойства, методы, конструкторы (если они нужны) и деструкторы. Кроме того, в C#, равно как и в его предшественнике C++, нужно задавать модификаторы доступа. Подробнее о них поговорим в других уроках.

В C# их несколько разновидностей, каждая из которых заслуживает отдельного внимания, но в рамках этих нескольких вводных уроков по ООП мы ограничимся всего двумя модификаторами – это private и public. Помните об инкапсуляции? Ничего лишнего не должно вылазить из класса. Так вот, это как раз достигается с помощью модификаторов доступа. Модификатор private сообщает C# тот факт, что члены класса будут видны только другим членам и методам этого класса.

Вы не сможете взять и вызвать метод или обратиться к переменной из другого класса. Обратите внимание, что все что помечено как private, в C# при наследовании будет недоступно потомку. Вместо этого используется модификатор protected, о котором мы поговорим в других уроках. Вообще, все что создается в C# по умолчанию является private. Такое уж наследие от C++. На самом деле, это весьма удобно. Ведь переменные класса не должны быть доступны кому-либо, кроме самого класса. В C++ обращение к таким переменным осуществлялось с помощью специальных методов-аксессоров (так называемые геттеры и сеттеры). В C# были введены свойства, которые как раз и заменяют вышеупомянутые кострукции.

В общем, пока вам нужно знать, что если вы явно не задали модификатор, то он будет private (классы тоже имеют модификатор, так что учтите это). С модификатором public все значительно проще – все, что помечено этим модификатором доступно из любого места вашей программы. Часто им помечают методы и свойства, а также классы. Думаю, что с принципом модификаторов вы немного разобрались, чтобы мы могли рассмотреть дальнейший код.

Давайте создадим наш первый класс. Пусть это будет класс Human. Именно на базе этого класса мы и будем разбирать все ООП моего курса по C#. В этом уроке мы создадим каркас класса. Итак, запустите вашу Visual Studio и создайте новый проект, назовите его к примеру OOP. Теперь нам нужно создать новый класс Human. Для этого зайдите в Обозреватель решений вашего проекта, нажмите правую кнопку мышки и выберите Добавить ->Класс. После этого выберите шаблон класса, дайте ему имя Human и нажмите Ок. Среда создаст нам готовый скелет будущего класса. Физически у вас в папке проекта создастся файл Human.cs. Его потом можно будет подключать к нашей программе (по факту, классу) или к другому. Фактически, сейчас я несколько вас ввел в заблуждение тем фактом, что не создал новое пространство имен. Часто нужно это делать, потому что потом проще делать сборки и группировать классы. Но об этом поговорим в других уроках. Как видите, студия любезно предоставила нам шаблон класса, где уже объявлен Human. Мы можем в нашем проекте теперь его использовать в даже таком примитивном виде. Делается достаточно просто:

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

Как создать класс в c visual studio

Обычно в программу вводят новый класс, когда нужно добавить некоторую функцию, которую можно выделить в отдельный модуль кода. Отдельный модуль и отдельный класс используют для того, чтобы не загромождать кодом основной модуль программы (так проще разбираться в коде и поддерживать его). Рассмотрим добавление в программу класса на примере записи сообщений в текстовый лог программы (появится класс log и соответствующий ему модуль log.cs).

1. Меню Проект -> Добавить класс. -> укажите имя нового модуля (файла с расширением *.cs). Для нашего примера log.cs.

2. В модуле log.cs имеется заготовка нового класса log. Добавьте в файл код:

Так как в конструкторе нет никаких действий, то его можно вообще исключить из программы (будет использоваться конструктор по умолчанию). В нашем примере код конструктора добавлен только для наглядности — в нем можно реализовать предварительную инициализацию.

Похожие статьи