У меня проблема с двумя классами в одном файле.java. Это ситуация:
package pak1;
public class Example1 {
//some things'enter code here'
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
class Example2 {
//some things
}
Мой вопрос: как я могу создать экземпляр Example2 в пакете других (если это возможно)?
Существует два варианта:
static
и поместите второй класс в первый (вложенный класс)Illegal modifier for the class Example2; only public, abstract & final are permitted
Это зависит от того, где вы хотите создать объекты.
Поскольку класс Example1 является public
, вы можете создать экземпляр этого класса из любого места. Но Example2 имеет уровень доступа по default
. Таким образом, вы можете создавать экземпляр только из этого класса только в вашем пакете pak1
Я думаю, вы можете попробовать полное квалифицированное имя. Подобно:
Blah blah = new other.package.Blah();
Добавление public static - это ключ здесь, но вам нужно переместить класс Example2 в примере 1
public class Example1 {
// some things'enter code here'
public static void main(String[] args) {
}
public static class Example2 {
// some things
}
}
И где-то еще:
new Example1 .Example2();
Если в файле, который должен быть доступен из другого пакета, должно быть несколько class
, вы всегда можете его вложить.
public class Example1 {
public class Example2 {
}
}
Затем выполните следующие действия:
new Example1().new Example2()
Или переместите его в другой файл. Или сделайте его static