Главная > Powershell > Классы в Powershell. Методы

Классы в Powershell. Методы

Продолжаем изучать классы в Powershell. В прошлой статье мы рассмотрели создание простого класса, имеющего несколько свойств, а также научились создавать объекты определённого нами типа. Сегодня добавим к нашему объекту несколько методов.

Для начала коротко о том, что это вообще такое.

Свойства – это описание объекта, его характеристики.

Методы – это действия, выполняемые объектом (экземпляром класса).

Рассмотренный в прошлой статье класс, описывающий робота, имел три свойства: имя, идентификатор и дату создания:

Class Robot
{
    [string]$Name
    [int]$Id
    [DateTime]$Birthday
}

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

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

Для отличия методов от свойств, имена методов всегда заканчиваются парой скобок (), в которых могут быть, а могут и не быть параметры для метода. И так как метод подразумевает действия, то в описании класса, вслед за именем метода в фигурных скобках описываются действия, выполняемые при вызове этого метода:

Smile()
{
    Write-Host ':)'
}

На данном этапе наш класс будет выглядеть так:

Class Robot
{
    # Свойства
    [string]$Name
    [int]$Id
    [DateTime]$Birthday
    
    # Метод, вызывающий улыбку
    Smile()
    {
        Write-Host ':)'
    }
}

Теперь, созданный нами робот (экземпляр класса Robot) при вызове метода Smile() будет улыбаться:

PS C:\> $Verter = New-Object Robot
PS C:\> $Verter.Smile()
:)

Вот так просто и незаметно мы освоили простейший метод – без входных параметров.

Идём дальше. При чём идём вместе с нашим развивающимся роботом – научим его ходить.

Добавим метод, вызов которого позволит сделать роботу шаг, но так как шагать по одному шагу малоэффективно, научим робота делать несколько шагов сразу, при чём, количество шагов будем задавать мы. И чтобы знать куда он ушёл он будет оставлять после себя следы Smile:

Go([int]$Step)
{
    Write-Host ('-'*$Step)
}

Здесь переменная $Step – параметр для метода Go(), задающий количество шагов, которое должен сделать робот (т.е. сколько раз вывести символ ‘-‘):

PS C:\> $Verter.Go(2)
--
PS C:\> $Verter.Go(15)
---------------

На сегодня всё. Хотел добавить сюда ещё про перегрузки, но для полного понимания перегрузок для начала нужно разобраться со статическими методами. Обо всём этом поговорим в следующих статьях.

Напоследок ещё раз, как выглядит наш класс на данном этапе:

Class Robot
{
    # Свойства
    [string]$Name
    [int]$Id
    [DateTime]$Birthday
    
    # Метод, вызывающий улыбку
    Smile()
    {
        Write-Host ':)'
    }

    # Метод - шаг
    Go([int]$Step)
    {
        Write-Host ('-'*$Step)
    }
}
Реклама
Рубрики:Powershell Метки: ,
  1. Комментариев нет.
  1. No trackbacks yet.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: