Как стать программистом?

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

    Как стать программистом? Этот вопрос возник у меня внутри около 5 лет назад и, мне кажется, что некоторые ответы я всё-таки получил. Давайте я попробую собрать в кучу все грабли и камни, по которым прошёлся и попытаюсь создать единую картину.

Читать далее Как стать программистом?

Приложение 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, наследующийся от класса А и ещё раз описать в классе С класс В.

 

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