Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
💸 Как сделать бизнес проще, а карман толще?
Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое раписание, но и напоминать клиентам о визитах тоже.
Проблема в том, что средняя цена по рынку за такой сервис — 800 руб/мес или почти 15 000 руб за год. И это минимальный функционал.
Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.⚡️ Для новых пользователей первый месяц бесплатно. А далее 290 руб/мес, это в 3 раза дешевле аналогов. За эту цену доступен весь функционал: напоминание о визитах, чаевые, предоплаты, общение с клиентами, переносы записей и так далее. ✅ Уйма гибких настроек, которые помогут вам зарабатывать больше и забыть про чувство «что-то мне нужно было сделать». Сомневаетесь? нажмите на текст, запустите чат-бота и убедитесь во всем сами! Ключевое слово this
Ключевое слово this является стандартной ссылкой на объект, из которого вызывается метод. При этом следует учесть, что в Java ссылка на объект фактически является именем этого объекта. Хотя наличие такой ссылки может на первый взгляд показаться излишним, она достаточно часто используется на практике. Условно можно выделить два типа ситуаций, когда может потребоваться ссылка this: если она реально необходима и если благодаря ей улучшается читабельность программного кода. Примеры первого типа приводятся в последующих главах книги — для их понимания необходимо сначала познакомиться с особенностями выполнения ссылок на объекты, способами передачи аргументов методам и механизмом возвращения методом объекта в качестве результата. Здесь же мы приведем примеры использования ключевого слова this в «косметических» целях. В рассматривавшихся ранее примерах ссылки на члены класса в теле методов этого же класса выполнялись простым указанием имени соответствующего члена. Если для класса создается объект и из этого объекта вызывается метод, то обращение к члену класса в программном коде метода означает обращение к соответствующему члену объекта. В то же время обращение к полям и методам объекта выполняется в «точечном» синтаксисе, то есть указывается имя объекта, точка и затем имя поля или метода. Для упомянутой ситуации это означает, что в методе объекта выполняется обращение к члену того же объекта. Этот замечательный факт можно отразить в программном коде метода в явном виде с помощью ссылки this. Пример приведен в листинге 4.5. Листинг 4.5. Использование ссылки this class MyClass{ // Поля класса: double Re, Im; void set(double Re, double Im){ // Использование ссылки this: this.Re=Re; this.Im=Im; } void get(){ // Инструкция перехода на новую строку \n: System.out.println(" Значения полей: \nRe=" +this.Re+" и Im=" +this.Im); } } class ThisDemo{ public static void main(String[] args){ MyClass obj=new MyClass(); obj.set(1, 5); obj.get(); } } В данном случае класс MyClass содержит всего два поля Re и Im типа double. Кстати, обращаем внимание, что оба поля объявлены одной инструкцией, в которой указан тип полей, а сами поля перечислены через запятую. Данный класс является очень слабой аналогией реализации комплексных чисел, у которых есть действительная (поле Re) и мнимая (поле Im) части. Кроме двух полей, у класса имеется два метода: метод set() для присваивания значений полям и метод get() для отображения значений полей. У метода set() два аргумента типа double, причем их названия совпадают с названиями полей класса. Разумеется, в таком экстремизме необходимости нет, вполне можно было предложить иные названия для аргументов, но мы не ищем простых путей, поэтому сложившаяся ситуация далеко не однозначна. Если в теле метода set() использовать обращение Re или Im, то это будет ссылка на аргумент метода, а не на поле класса, поскольку в случае совпадения имен переменных приоритет имеет локальная переменная (то есть объявленная в блоке, в котором находится инструкция вызова переменных с совпадающими именами). Из ситуации выходим, воспользовавшись ссылкой this. Так, инструкции this.Re и this.Im означают поле Re и поле Im соответственно объекта this, то есть того объекта, из которого вызывается метод set(). При этом инструкции Re и Im являются обращениями к аргументам метода. Поэтому, например, команду this. Re=Re следует понимать так: полю Re объекта this (объекта, из которого вызывается метод set()) присвоить значение аргумента Re, то есть первого аргумента, переданного методу set() при вызове. Хотя описанная ситуация вполне оправдывает использование ссылки this, все же такой прием считается несколько искусственным, поскольку в запасе всегда остается возможность просто поменять названия аргументов. Совсем неоправданным представляется использование ссылки this в программном коде метода get(), который выводит сообщение со значениями полей объекта. В данном случае инструкции вида this.Re и this.Im можно заменить простыми обращениями Re и Im соответственно — функциональность кода не изменится. У метода аргументов нет вообще, поэтому никаких неоднозначностей не возникает. По большому счету, обращение к полю класса (или методу) по имени является упрощенной формой ссылки this (без применения самого ключевого слова this). Этой особенностью синтаксиса языка Java мы пользовались ранее и будем пользоваться в дальнейшем. Тем не менее в некоторых случаях указание ссылки this даже в «косметических» целях представляется оправданным. Обращаем внимание на инструкцию перехода на новую строку \n в текстовом аргументе метода println() в теле метода get(). Эта инструкция включена непосредственно в текст и ее наличие приводит к тому, что в месте размещения инструкции при выводе текста выполняется переход на новую строку. Поэтому в результате выполнения программы получим сообщение из двух строк: Значения полей: Re=1.0 и Im=5.0 Как уже отмечалось, это далеко не единственный способ использования инструкции this. Далее в книге есть и другие примеры.
|