<MyRusakov.ru />

Создание крупного проекта на Java с нуля

Создание крупного проекта на Java с нуля

Данный курс научит Вас создавать крупные проекты на Java грамотно и быстро. В курсе Вы увидите создание большой и сложной программы на Java абсолютно с нуля.

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

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

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Классы JavaScript в ES6. Часть 2

Классы JavaScript в ES6. Часть 2

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

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

 let app = new class
   constructor(name)
    this.name = name;
   }

   start() {
    console.log(`Запуск приложения ${this.name}...`);
   }

  }('TodoList');

  app.start(); // Запуск приложения TodoList…

В этом примере мы создаем анонимный класс и выполняем его немедленно.

Геттеры и сеттеры

Чтобы создать getter и setter методы , нужно использовать ключевые слова get и set, за которыми следуют пробел и идентификатор.

 class Person {

   constructor(firstName, lastName) {
    this.firstName = firstName;
    this.lastName = lastName;
   }

   get fullName() {
    return this.firstName + ' ' + this.lastName;
   }

   set fullName(str) {
    let names = str.split(' ');
    if (names.length === 2) {
     this.firstName = names[0];
     this.lastName = names[1];
    } else {
     throw 'Неправильный формат имени';
    }

   }
  }

  let mary = new Person('Мария', 'Дорош');
  console.log(mary.fullName); // Мария Дорош

  // устанавливаем новое имя
  mary.fullName = 'Мэри Уильям';
  console.log(mary.fullName); // Мэри Уильям

Вызов метода fullName возвращает полное имя объекта person, объединяя имя и фамилию через пробел.
Метод setName принимает строку в качестве аргумента. Он разбивает строку на части и присваивает свойства firstName и lastName соответствующим свойствам класса. Если входной аргумент в неправильном формате, то есть имя, пробел и фамилия не присутствуют во входной строке, данный метод вызывает ошибку.

Вычисляемые имена свойств

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

 let name = 'fullName';

  class Person {
   constructor(firstName, lastName) {
    this.firstName = firstName;
    this.lastName = lastName;
   }
   get[name] {
    return this.firstName + ' ' + this.lastName;
   }
   set[name](str) {
    //...
   }
  }

  var john = new Person('John', 'Doe');
  console.log(john.fullName); // John Doe

Статические методы

До ES6, чтобы создать статический метод, необходимо было добавить метод непосредственно к функции-конструктору. Например, в примере далее добавляется статический метод к типу Animal, определенному в предыдущем примере.

 Animal.make = function(type) {
   return new Animal(type);
  }

  var dog = Animal.make('Собака');
  dog.identify(); // Собака

Метод make() считается статическим методом, поскольку он не зависит от какого-либо экземпляра класса Animal. ES6 упростил задачу создания статических, используя ключевое слово static для метода , как показано в следующем примере.

 class Animal {
   constructor(type) {
    this.type = type;
   }
   identify() {
    console.log(this.type);
   }
   static create(type) {
    return new Animal(type);
   }
  }

  var mouse = Animal.create('Мышь');
  mouse.identify(); // Мышь

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

  mouse.create('Обезьянка'); // Ошибка TypeError: mouse.create не является функцией

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

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (1):

sndbox@yandex.ru sndbox@yandex.ru 11.06.2018 02:10:25

всем привет

Ответить

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