Я знаю разницу между всеми модификаторами доступа в Java. Тем не менее, кто-то задал мне очень интересный вопрос, на который я изо всех сил пытался найти ответ: в чем разница между интерфейсом private
и интерфейсом public
на Java, в частности, , как он используется как член класса? Любая помощь будет принята с благодарностью.В чем разница между открытым и частным интерфейсом в Java
ответ
Я считаю, что мы все знаем об использовании public interface
, поэтому я бы упомянул здесь пункт private/protected interface
.
Interfaces
могут быть членами определений классов и могут быть объявлены private
или protected
.
public class Test {
private interface Sortable {
}
protected interface Searchable {
}
}
public class PrivateInterface {
private interface InnerInterface {
void f();
}
private class InnerClass1 implements InnerInterface {
public void f() {
System.out.println("From InnerClass1");
}
}
private class InnerClass2 implements InnerInterface {
public void f() {
System.out.println("From InnerClass2");
}
}
public static void main(String[] args) {
PrivateInterface pi = new PrivateInterface();
pi.new InnerClass1().f();
pi.new InnerClass2().f();
}
}
/* Output:
From InnerClass1
From InnerClass2
*/
Это сам интерфейс, который может быть пакет-частное, а не методы в нем. Вы можете определить интерфейс, который может использоваться только (по имени) в пределах пакета, в котором он определен, но его методы общедоступны, как все методы интерфейса. Если класс реализует этот интерфейс, то методы , которые он определяет, должны быть общедоступными. Главное здесь, что это тип интерфейса , который не отображается вне пакета, а не методы .
+1 Я узнаю что-то новое каждый день. Не могу сказать, что я когда-либо думал о том, чтобы ввести «интерфейс» в качестве члена класса. –
Пожалуйста, не злоупотребляйте встроенным «кодом» с обратными тиками. – arshajii
Встроенный код через обратные ссылки должен * только * использоваться для кода. – arshajii
В public
, private
и protected
модификаторы доступа на интерфейсе означает то же самое, что они означают на классе. Обычно я вижу эти модификаторы, используемые на интерфейсе, который вложен в класс. Что-то вроде this:
//: interfaces/RandomWords.java
// Implementing an interface to conform to a method.
package interfaces;
public class PrivateInterface {
private interface InnerInterface {
void f();
}
private class InnerClass1 implements InnerInterface {
public void f() {
System.out.println("From InnerClass1");
}
}
private class InnerClass2 implements InnerInterface {
public void f() {
System.out.println("From InnerClass2");
}
}
public static void main(String[] args) {
PrivateInterface pi = new PrivateInterface();
pi.new InnerClass1().f();
pi.new InnerClass2().f();
}
}
Объявления интерфейса может включать в себя следующие модификаторы доступа:
public protected private abstract static strictfp
общественность: Если тип интерфейса объявляется публично, то он может получить доступ к любому коду.
защищенный/закрытый: Модификаторы доступа, защищенные и закрытые, относятся только к интерфейсам-участницам в пределах непосредственно объявляемого объявления класса. A member interface
- это интерфейс, декларация которого непосредственно заключена в другое объявление класса или интерфейса.
статический: Модификатор доступа static
относится только к интерфейсам участников, а не к интерфейсам верхнего уровня.
аннотация: Каждый интерфейс неявно abstract
. Этот модификатор устарел и не должен использоваться в новых программах.
strictfp: Эффект модификатора strictfp
, чтобы сделать все терки или двойные выражения внутри описания интерфейса будет явно FP-strict.
- 1. В чем разница между частным IPv4 и открытым IPv4?
- 2. Разница между открытым интерфейсом и абстрактным интерфейсом?
- 3. В чем разница между интерфейсом и интерфейсом @interface в java?
- 4. В чем разница между интерфейсом и классом?
- 5. В чем разница между абстракцией и интерфейсом?
- 6. В чем разница между абстрактным классом и интерфейсом в java?
- 7. В чем разница между интерфейсом и абстрактным классом в Java?
- 8. В чем разница между графическим интерфейсом и пользовательским интерфейсом?
- 9. В чем разница между «не виртуальным интерфейсом» и «абстрактным интерфейсом»?
- 10. В чем разница между пользовательским интерфейсом и пользовательским интерфейсом?
- 11. Разница между интерфейсом и абстрактным интерфейсом в java
- 12. В чем разница между абстрактным и интерфейсом в контексте C++?
- 13. HDF5 в Java: В чем разница между API-интерфейсом availabe?
- 14. В чем разница между частным сеттером и собственностью readonly?
- 15. В чем разница между «частным» и «защищенным внутренним»?
- 16. В чем разница между «частным», «общественным» и «защищенными методами»?
- 17. В чем разница между концепцией C++ и интерфейсом?
- 18. Разница между объектом и интерфейсом в JavaScript
- 19. В чем разница между **/*. Java и * .java?
- 20. В чем разница между протоколом и интерфейсом в Objective-c?
- 21. В чем разница между абстрактным и интерфейсом в php?
- 22. В чем разница между абстрактным классом и интерфейсом в .NET?
- 23. В Typcript, в чем разница между типом и интерфейсом?
- 24. Разница между нормальным интерфейсом и интерфейсом MBean
- 25. В чем разница между = и == в java?
- 26. В чем разница между `| `и` || `в java?
- 27. В чем разница между: = и =! в Java?
- 28. В чем разница между внутренним и открытым классом в C#?
- 29. В чем разница между jquery и пользовательским интерфейсом jquery?
- 30. В чем разница между веб-API и API-интерфейсом Azure?
Это аналогично разнице между '' private' и public' класса. – arshajii
Что такое среднее? – blackpanther
[Эта ссылка] (http://www.objectmentor.com/resources/articles/privateInterface.pdf) может быть очень полезна. – Maroun