Методы интерфейса
Что такое StringJoiner?
StringJoiner — это класс в Java, введенный в Java 8 в пакете
java.util, который используется для построения
последовательности символов в виде строки с разделителями. Он предназначен для
удобной конкатенации строк с заданным разделителем и опциональным префиксом и
суффиксом.
StringJoiner
:
-
Конструкторы:
-
StringJoiner(CharSequence delimiter): СоздаетStringJoinerс указанным разделителем. -
StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix): СоздаетStringJoinerс указанным разделителем, префиксом и суффиксом.
-
-
Методы:
-
add(CharSequence csq): Добавляет строку к последовательности. -
toString(): Возвращает текущее состояние последовательности в виде строки. -
length(): Возвращает длину строки, которую вернёт toString(), включая разделители, префикс и суффикс. Это не число добавленных элементов.
-
setEmptyValue(CharSequence emptyValue): Устанавливает значение по умолчанию, которое будет возвращено методомtoString(), если последовательность пуста.
-
-
Пример использования:
import java.util.StringJoiner; public class Main { public static void main(String[] args) { StringJoiner joiner = new StringJoiner(", ", "[", "]"); joiner.add("Apple"); joiner.add("Orange"); joiner.add("Banana"); String result = joiner.toString(); System.out.println(result); // Выведет: [Apple, Orange, Banana] } }В приведенном примере
StringJoinerсоздается с разделителем", ", префиксом[и суффиксом]. Затем к нему добавляются строки"Apple","Orange"и"Banana", и результат выводится как[Apple, Orange, Banana].
Ссылки для изучения
Что такое default-методы интерфейса?
Default методы интерфейса введены в Java 8 и представляют собой
методы, которые могут иметь реализацию по умолчанию в интерфейсе. Ранее
интерфейсы в Java могли содержать только абстрактные методы (методы без тела),
которые требовали реализации в классах, реализующих интерфейс.
Default методы изменяют эту концепцию, позволяя добавлять методы с
реализацией в интерфейсы.
default
методов:
-
Синтаксис:
Defaultметоды объявляются с ключевым словомdefaultперед сигнатурой метода. Они могут иметь тело метода (реализацию).Пример:
public interface MyInterface { // Абстрактный метод void abstractMethod(); // Default метод с реализацией по умолчанию default void defaultMethod() { System.out.println("Default implementation of defaultMethod"); } } -
Цель:
Defaultметоды позволяют добавлять новые методы в существующие интерфейсы без необходимости изменять код всех классов, которые реализуют интерфейс. Это особенно полезно для добавления новой функциональности в интерфейсы после их первоначального определения без нарушения обратной совместимости. -
Пример использования:
public interface Vehicle { void start(); default void stop() { System.out.println("Stopping the vehicle"); } } public class Car implements Vehicle { @Override public void start() { System.out.println("Starting the car"); } } public class Main { public static void main(String[] args) { Car car = new Car(); car.start(); // Выведет: Starting the car car.stop(); // Выведет: Stopping the vehicle } }В приведенном примере
Vehicle— это интерфейс с методамиstart()(абстрактный) иstop()(default метод с реализацией). КлассCarреализует интерфейсVehicle, переопределяя абстрактный методstart(). Методstop()вызывается на объекте типаCar, используя его реализацию default метода из интерфейсаVehicle.
Ссылки для изучения
Что такое static метод интерфейса?
Static метод интерфейса (static method in interfaces)
— это метод, который объявлен с модификатором static внутри
интерфейса в Java. Эта возможность была введена в Java 8 и является частью
расширения функциональности интерфейсов.
static
методов интерфейса:
-
Синтаксис: Static методы в интерфейсе объявляются как статические методы с реализацией по умолчанию. Они не требуют создания экземпляра интерфейса для их вызова.
Пример:
public interface MyInterface { // Static метод с реализацией static void staticMethod() { System.out.println("Static method in interface"); } } -
Цель: Static методы интерфейса предоставляют способ организации вспомогательной функциональности, которая связана с интерфейсом, но не зависит от конкретной реализации объектов интерфейса. Они могут быть использованы для утилитарных методов, фабричных методов или любых других операций, которые не требуют доступа к состоянию экземпляра.
-
Пример использования:
public interface Calculator { // Абстрактный метод int calculate(int a, int b); // Static метод в интерфейсе static Calculator getInstance() { return (a, b) -> a + b; } } public class Main { public static void main(String[] args) { // Вызов static метода интерфейса Calculator calculator = Calculator.getInstance(); int result = calculator.calculate(5, 3); System.out.println("Result: " + result); // Выведет: 8 } }В приведенном примере
Calculator— это интерфейс с абстрактным методомcalculate(int a, int b)и статическим методомgetInstance(), который возвращает экземпляр реализацииCalculator. МетодgetInstance()используется для создания объекта интерфейса без необходимости его конкретной реализации.
Ссылки для изучения
Как вызывать static метод интерфейса?
Вызов static метода интерфейса в Java осуществляется напрямую через имя интерфейса, используя точечную нотацию. Это возможно с момента появления static методов в интерфейсах, начиная с Java 8.
static
метод интерфейса:
-
Через имя интерфейса:
public interface MyInterface { static void staticMethod() { System.out.println("Static method in MyInterface"); } } public class Main { public static void main(String[] args) { // Вызов static метода через имя интерфейса MyInterface.staticMethod(); } } -
При вызове из другого класса также указывайте имя интерфейса: MyInterface.staticMethod(). Статические методы интерфейса не наследуются реализующими классами.
public interface MyInterface { static void staticMethod() { System.out.println("Static method in MyInterface"); } } public class AnotherClass { public static void main(String[] args) { // Вызов static метода интерфейса MyInterface MyInterface.staticMethod(); } }
Ссылки для изучения







