В данной статье мы рассмотрим приватные методы в интерфейсах.
Вспомним, что начиная с Java 8 мы имеем возможность объявлять в интерфейсах:
- абстрактные методы
- методы по умолчанию
- статические методы
- константные переменные
Рассмотрим небольшой пример:
Интерфейс Codealbe:
package net.proselyte.java9.interfaces.java8;
public interface Codeable {
String JAVA = "Java Language";
String CPP = "C++ Language";
default void doJob() {
System.out.println("Developer writing code...");
}
default void drinkCoffee() {
System.out.println("Developer drinks coffee...");
thinkAboutCode();
}
static void thinkAboutCode() {
System.out.println("Developer is thinking about code... ");
}
}
Класс Developer:
package net.proselyte.java9.interfaces.java8;
public class Developer implements Codeable {
}
Класс DeveloperRunner:
package net.proselyte.java9.interfaces.java8;
public class DeveloperRunner {
public static void main(String[] args) {
Developer developer = new Developer();
developer.doJob();
developer.drinkCoffee();
System.out.println(Developer.JAVA);
System.out.println(Developer.CPP);
}
}
В результате запуска класса DeveloperRunner мы получим следующий результат:
Developer writing code...
Developer drinks coffee...
Developer is thinking about code...
Java Language
C++ Language
Process finished with exit code 0
Теперь рассмотрим, что мы имеем касательно интерфейсов, в Java 9.
Начиная с Java 9 мы имеем возможность объявлять в интерфейсах:
- абстрактные методы
- методы по умолчанию
- статические методы
- константные переменные
- приватные методы
- приватные статические методы
Рассмотрим пример:
Интерфейс Codealbe:
package net.proselyte.java9.interfaces.java9;
public interface Codeable {
String JAVA = "Java Language";
String CPP = "C++ Language";
default void doJob() {
System.out.println("Developer writing code...");
}
default void drinkCoffee() {
System.out.println("Developer drinks coffee...");
thinkAboutCode();
thinkAboutVacation();
goToTheCinema();
}
static void thinkAboutCode() {
System.out.println("Developer is thinking about code... ");
}
private void goToTheCinema() {
System.out.println("Developer goes to the cinema...");
}
private static void thinkAboutVacation() {
System.out.println("Developer thinks about vacation...");
}
}
Класс Developer:
package net.proselyte.java9.interfaces.java9;
public class Developer implements Codeable {
}
Класс DeveloperRunner:
package net.proselyte.java9.interfaces.java9;
public class DeveloperRunner {
public static void main(String[] args) {
Developer developer = new Developer();
developer.doJob();
developer.drinkCoffee();
System.out.println(developer.JAVA);
System.out.println(developer.CPP);
}
}
На этом мы заканчиваем обзор приватных методов в интерфейсах.
В следующей статье мы рассмотрим фабричные методы в Collections API.