Более чистый способ заключается в использовании лямбда-выражений следующим образом:
do(comboBox, () -> comboBox.setSelectedItem("Item Name"));
Для того, чтобы вышеприведенное работало, вам нужен следующий метод:
public static void do(final JComboBox<String> component, final Runnable f) {
final ActionListener[] actionListeners = component.getActionListeners();
for (final ActionListener listener : actionListeners)
component.removeActionListener(listener);
try {
f.run();
} finally {
for (final ActionListener listener : actionListeners)
component.addActionListener(listener);
}
}
общественность
к типу или участнику может получить доступ любой другой код в том же блоке или другом блоке, который ссылается на него.
частный
к типу или участнику может только получить доступ код в том же классе или структуре.
защитил
, к типу или участнику может только получить доступ код в том же классе или структуре, или в производном классе.
частный защищенный (добавленный в C# 7.2)
к типу или участнику может только получить доступ код в том же классе или структуре, или в производном классе от того же блока, но не от другого блока.
внутренний
к типу или участнику может получить доступ любой код в том же блоке, но не от другого блока.
защитил внутренний
к, типу или участнику может получить доступ любой код в том же блоке, или любым производным классом в другом блоке.
, Когда никакой модификатор доступа не установлен, модификатор доступа по умолчанию используется. Таким образом, всегда существует некоторая форма модификатора доступа, даже если это не установлено.
Статичный
статический модификатор на классе означает, что класс нельзя инстанцировать, и что все его участники статичны. У статического участника есть одна версия независимо от того, сколько экземпляров ее типа включения создается.
А статический класс является в основном тем же как нестатическим классом, но существует одно различие: статический класс нельзя внешне инстанцировать. Другими словами, Вы не можете использовать новое ключевое слово для создания переменной типа класса. Поскольку нет никакой переменной экземпляра, Вы получаете доступ к членам статического класса при помощи самого имени класса.
Однако существует такая вещь как статический конструктор . Любой класс может иметь один из них, включая статические классы. Их нельзя назвать непосредственно & не может иметь параметров (ни кроме каких параметров типа на самом классе). Статического конструктора вызывают автоматически для инициализации класса, прежде чем первая инстанция будет создана, или ссылаются на любых статических участников. Похож на это:
static class Foo()
{
static Foo()
{
Bar = "fubar";
}
public static string Bar { get; set; }
}
Статические классы часто используются в качестве сервисов, можно использовать их как так:
MyStaticClass.ServiceMethod(...);
Я думаю, что это связано с хорошим дизайном ООП. Если Вы - разработчик библиотеки, Вы хотите скрыть внутренние работы своей библиотеки. Тем путем можно изменить библиотеку внутренние работы позже. Таким образом, Вы помещаете своих участников и вспомогательные методы, поскольку частные, и только методы интерфейса общедоступны. Должны быть защищены методы, которые должны быть перезаписаны.
Осторожные часы Ваша доступность Ваших классов. Общедоступные и защищенные классы и методы по умолчанию доступны для всех.
Также Microsoft не очень explict в показе модификаторов доступа (общественность, защищенная, и т.д. ключевые слова), когда новые классы в Visual Studio создаются. Так, проявите хорошую заботу и думайте о своей доступности Вашего класса, потому что это - дверь в Ваши внутренности реализации.
Относительно вопроса Ничто
Хм.
Посмотрите здесь: Модификаторы Доступа .
Вкратце:
Общественность дает методу или типу полную видимость от других типов/классов.
Частный позволяет только тип, содержащий закрытый метод / переменный доступ к закрытому методу/, переменная (обратите внимание, что вложенные классы также имеют доступ к содержанию классов частные методы/переменные).
Защищенный подобно частному кроме производных классов, может также получить доступ к защищенным методам.
"Ничто" не эквивалент VB.NET пустому указателю. Хотя, если Вы не обращаетесь ни к "чему" означающему "модификатор доступа", тогда это зависит, хотя очень грубое эмпирическое правило (конечно, в C#) - то, что, если Вы явно не определяете модификатор доступа, метод/объявление переменной обычно как , ограничил , как это может быть. т.е.
public class MyClass
{
string s = "";
}
эффективно то же как:
public class MyClass
{
private string s = "";
}
связанная статья MSDN предложит полностью описание, когда не будет никакого модификатора доступа, явно определенного.
Общественность - Если Вы видите класс, тогда Вы видите метод
Частный - Если Вы часть класс, тогда Вы видите метод, иначе нет.
Защищенный - То же как Частные, плюс весь потомки могут также видеть метод.
Статичный (класс) - Помнят различие между "Классом" и "Объектом"? Забудьте все это. Они - то же со "статическим"... класс является one-only экземпляром себя.
Статичный (метод) - Каждый раз, когда Вы используете этот метод, он будет иметь систему отсчета независимой от фактического экземпляра класса, которого это является часть.
общественность - может быть доступом любым где угодно. [От 110]
частный - можно только получить доступ с в классе, которого это является часть.
защитил - от можно только получить доступ с в классе или любом объекте, который наследовался прочь класса.
Ничто не похоже на пустой указатель, но в VB.
Статичный означает, что у Вас есть один экземпляр того объекта, метода для каждого экземпляра того класса.
mmm...
Статичный означает, что можно получить доступ к той функции, не имея экземпляра класса.
можно получить доступ непосредственно от определения класса.
Те модификаторы доступа определяют, где Ваши участники видимы. Необходимо, вероятно, считать это. Возьмите ссылку, данную IainMH как начальная точка.
Статические участники один в классе и не один на экземпляр.
Статус Private указывает, что переменные могут быть доступны только объектам того же класса. Защищенный статус расширяет этот доступ, включая потомков класса.
«Из приведенной выше таблицы мы можем увидеть различие между частным и защищенным ... я думаю, что оба они одинаковы .... так зачем нужны эти две отдельные команды»
Проверьте MSDN ссылка для получения дополнительной информации