Yaseen M Ответов: 1

Как работает интерфейс?


Я новичок в концепции ООП и хочу получить некоторые разъяснения по этому вопросу. Взаимодействие объекта может быть задано в классе, и поэтому мой вопрос заключается в том, какова цель создания интерфейса, когда методы уже установлены в проекте?

Реализация:
package objectOrientedProgrammingConcepts;

public class Door {
	
	String state = "shut";
	
	void changeState(String newState) {
		state = newState;
	}
	
	void printState() {
		System.out.println("The door is " + state + ".");
	}
}


создание объекта:
package objectOrientedProgrammingConcepts;

public class DoorDemo {

	public static void main(String[] args) {
		
		Door door1 = new Door();
		Door door2 = new Door();
		
		door1.changeState("open");
		door2.changeState("shut");
		
		door1.printState();
		door2.printState();
	}
}


Что я уже пробовал:

- Документация Java
- Урок: концепции объектно-ориентированного программирования (учебники Java™ > изучение языка Java)[^]

[no name]

Может быть, вам стоит прочитать статьи, на которые вы ссылаетесь, https://docs.oracle.com/javase/tutorial/java/concepts/interface.html

1 Ответов

Рейтинг:
5

Afzaal Ahmad Zeeshan

Вот что вам нужно узнать здесь:

1. Наследство
2. Полиморфизм

А затем, позже, в расширенных концепциях, вам также нужно понять, как разрабатывается API. Вероятно, в большинстве случаев интерфейс используется там, где вам нужно определить структуру вашего контракта — в API, особенно там, где вы используете интерфейсы и т. д., Вы определяете контракты, а не простые объекты. Причина в том, что интерфейс должен быть реализован. Этот интерфейс может быть использован для того, чтобы клиентские приложения, использующие наш API, написали реализацию нашей стандартной структуры и т. д.

Интерфейсы используются не только в Java, они также используются в C# и C++ (хотя C++ не предоставляет никакого интерфейса ключевых слов). Логическое использование их применяется при разработке клиентского приложения, я бы не использовал (и не рекомендовал) рассматривать их в простом приложении.

Нужен пример? Конечно, прочтите учебник в документах Oracle, они дают очень хороший пример велосипедного API,

interface Bicycle {

    //  wheel revolutions per minute
    void changeCadence(int newValue);

    void changeGear(int newValue);

    void speedUp(int increment);

    void applyBrakes(int decrement);
}

Теперь, если вы хотите создать реализацию этого стандарта, то вы реализуете весь сам интерфейс,
class ACMEBicycle implements Bicycle {

    int cadence = 0;
    int speed = 0;
    int gear = 1;

   // The compiler will now require that methods
   // changeCadence, changeGear, speedUp, and applyBrakes
   // all be implemented. Compilation will fail if those
   // methods are missing from this class.

    void changeCadence(int newValue) {
         cadence = newValue;
    }

    void changeGear(int newValue) {
         gear = newValue;
    }

    void speedUp(int increment) {
         speed = speed + increment;   
    }

    void applyBrakes(int decrement) {
         speed = speed - decrement;
    }

    void printStates() {
         System.out.println("cadence:" +
             cadence + " speed:" + 
             speed + " gear:" + gear);
    }
}

Обратите внимание на пустые тела методов в интерфейсе и добавление тел к тем же функциям в классе. Есть еще одна дополнительная вещь в классе, можете ли вы догадаться, что?

Я бы оставил все остальное на ваше усмотрение, пожалуйста, также откройте NetBeans и попробуйте повозиться здесь и там с несколькими вещами, чтобы понять, как они работают.