Приложение Beauty Master

Я просто screenshot_1480603606хотел написать что нибудь полезное для помощи в работе любимой супруге… и тут понеслось. А может цвета к дням? А может смс рассылку? А может поиск по базе данных? В общем прошу строго не ругать, знакомьтесь — Beauty Master.

Приложение, которое поможет beauty-мастерам вести учет своих записей. Приложение работает с базой данных, которую можно своевременно очищать, умеет отправлять смски за день до записи. В календаре дни, на которые назначены записи меняют цвет пропорционально количеству клиентов. Таким образом мастеру сразу понятно на какой день можно записать нового клиента без заглядывания в каждый день для поиска свободных мест. Читать далее Приложение Beauty Master

Какие есть модификаторы доступа у методов в Java?

Для использования с методами мы можем пользоваться все модификаторы доступа, access_3которыми располагает Java: public, protected, default, private.

public: когда метод объявлен как публичный, он доступен в:
1) В том же классе, в котором описан;
2) В том же пакете, дочерний класс;
3) В том же пакете, но для другого класса;
4) Из других пакетов и подклассы и прочие классы;
Публичные методы доступны для всего окружающего мира.
default. Или по умолчанию. Или доступ в пределах пакета(package-private). Если у метода не указать никакого модификатора, то он получает именно этот.  В таком случае к методу могут иметь доступ:
1) В том же классе, в котором описан;
2) В том же пакете, дочерние классы;
3) В том же пакете, из другого класса.
К методу с модификатор доступа по умолчанию нельзя обращаться из:
1) Другого пакета, дочерних классов
2) Другого пакета, любых классов
protected: если метод имеет модификатор protected, к нему имеют доступ:
1) В том же классе;
2) В том же пакете дочерние классы;
3) В том же пакете прочие классы;
4) Из другого пакета дочерние классы
protected методы недоступны из других пакетов, если нет вызываются не из классов-наследников.
private: самый закрытый модификатор доступа. Его обладатель доступен только image002внутри класса, в котором объявлен.
Метод недоступен в :
1) В том же пакете дочерним классам;
2) В том же пакете прочим классам;
3) В других пакетах подклассам;
4) В любых других классах

Надеюсь что вы нашли для себя ответ на вопрос «Какие есть модификаторы доступа у методов в Java?»

Что такое переопределение (overriding) метода в Java?

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

Допустим у нас есть три класса: Dog,fox_size_comp Cat, Fox. Они наследуются от одного родителя с
названием Animal. В классе Animal есть метод say(), а классы-потомки переопределяют его. Затем мы садим животных в клетки и накрываем чёрной тканью. После этого мы можем подойти к любой клетке, качнуть её(не сильно) и попросить say(), зная лишь то, что внутри какое-то животное, но не зная какое точно. Мы получим именно тот звук, который переопределили в классе-потомке. Читать далее Что такое переопределение (overriding) метода в Java?

Как вызвать один конструктор из другого?

При необходимости вызова одного конструктора из другого мы можем сделать это используя this() и передав те параметры, которые нужны вызываемому конструктору. Есть условия, которые необходимо соблюдать в таком случае, а именно:

  1. вызов this() должен быть первой операцией;
  2. второй раз вызывать в конструкторе this() запрещено.

Читать далее Как вызвать один конструктор из другого?

Что такое статический блок и статическая инициализация в Java?

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

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

Статический блок выполняется до вызова конструктора.

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

Пример синтаксиса ниже: Читать далее Что такое статический блок и статическая инициализация в Java?

Отправка email из программы java по протоколу SMTP

SMTP (Simple Mail Transfer Protocol) является протоколом передачи электронной почты по сетям tcp/ip. Он включает в себя набор несложных правил, с помощью которых происходит процесс общения почтовых клиента и сервера. Клиент подключается к почтовому серверу по 25 порту, далее происходит примерно такой диалог:

Server: (ожидает соединения)
Client: (Подключается к порту 25 сервера)
Server:220 mail.company.tld ESMTP CommuniGate Pro 5.1.4i is glad to see you! Читать далее Отправка email из программы java по протоколу SMTP

Можно ли наследовать внутренние классы?

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

 

Можно ли наследовать анонимные внутренние классы?

Описывая анонимный класс мы уже наследуемся от какого-то класса или реализуем какой-либо интерфейс. К анонимным классам напрямую нельзя применить слова extends или implements, но ведь никто не мешает заранее подготовиться и расширить нужный интерфейс, который будем реализовывать с помощью анонимного класса. Пример в коде ниже.

 

Можно ли переопределять внутренние классы?

В начале нужно четко понять что же мы хотим сделать. Логика следующая:[
1)Есть некий класс A;
2)Есть некий класс B, внутренний для класса A;
3)Мы хотим создать класс C, наследующийся от класса А и ещё раз описать в классе С класс В.

 

Из примера видно что повторное описание внутреннего класса — это не более чем работа с пространством имён. Итог — внутренний класс, подобно методам, переопределить нельзя.

Какие ограничения есть у локальных классов?

Вначале вспомним что такое локальный класс. Это класс, описанный в блоке кода, то есть, по-простому — между кавычек {}. Наиболее часто эти кавычки являются телом метода. Но могут они быть и просто блоком, статическим блоком, телом if-ов, циклов и т.д.
Локальный класс наделён особенностями внутренних классов, но имеет отличительные черты, а именно:
1)он имеет доступ только к финальным полям и аргументам обрамляющего метода, а также ко всем полям обрамляющего класса, в том числе приватным и статическим;
2)локальный класс виден и может создаваться только в блоке, в котором описан;

3)у локального класса не ставиться модификатор доступа;
4)не может иметь статических полей, методов, классов (за исключением финальных);
5)локальный класс, объявленный в статическом блоке может обращаться только к статическим полям внешнего класса.

 

Но! Начиная с Java8 мы можем обращаться в локальных классах к не финальным локальным переменным, если они не были изменены до момента инициализации класса. Также теперь стало возможным обращение к не финальным параметрам метода.