Нет доступного экземпляра типа

Я написал эту программу интерфейса Java в Eclipse, но есть красная строка под MyTriangle tmp = new MyTriangle (); и когда я запускаю программу, я получаю эту ошибку:

Нет доступного экземпляра типа Question1. Должен квалифицировать выделение с помощью экземпляра типа Question1 (egxnew A (), где x является экземпляром Question1).

public static void main(String[] args) { MyTriangle tmp = new MyTriangle(); tmp.getSides(); System.out.println(); System.out.println("The area of the triangle is " + tmp.computeArea()); } interface Triangle { public void triangle(); public void iniTriangle(int side1, int side2, int side3); public void setSides(int side1, int side2, int side3); public void getSides(); public String typeOfTriangle(); public double computeArea(); } class MyTriangle implements Triangle { private int side1,side2,side3; public void triangle() { this.side1 = 3; this.side2 = 4; this.side3 = 5; } } 

Попробуй это. Удалены методы для простоты

 public class Test1 { public static void main( String [] args) { MyTriangle h1 = new MyTriangle(); } } class MyTriangle implements Triangle{ int side1; int side2; int side3; public MyTriangle(){ this.side1 = 1; this.side2 = 2; this.side3 = 3; } } interface Triangle{} 

Вы не ввели свой полный код, я предполагаю, что ваш код должен выглядеть примерно так.

Затем вы должны создать экземпляр для вашего основного classа, прежде чем создавать экземпляр для вашего треугольника, как показано ниже.

 public class Test{ class MyTriangle { int side1,side2,side3; public MyTriangle() { this.side1 = 3; this.side2 = 4; this.side3 = 5; } } public static void main(String[] args) { MyTriangle h1 = new Test(). new MyTriangle(); // Fix is here** } } interface Triangle{} 

MyTriangle – нестатический внутренний class. Это означает, что, как и все другие члены экземпляра, он (и его экземпляр) относится к экземпляру внешнего classа, а не к самому classу. Не забывайте принадлежать к classу, вещи должны быть определены как static .

Следовательно, вам необходимо предоставить экземпляр внешнего classа для создания внутреннего экземпляра как

 new OuterClass().new MyTriangle(); 

Если вы пометите внутренний static class, который делает его вложенным, он позволит вам ссылаться на него в статическом контексте, таком как public static main() .

  • Android SQLite и огромные наборы данных
  • Разрешение на запись на SD-карту
  • Хостинг исполняемого файла в приложении Android
  • Управление конструкторами со многими параметрами в Java
  • Как запустить программу Java из командной строки в Windows?
  • java рисует прямоугольник в одну сторону не одновременно
  • Могу ли я выполнять арифметические операции над базовым classом Number?
  • Я хотел бы установить мои переменные в верхней части моего classа, а не в методе
  • Как удалить простыню вокруг кнопок в Android?
  • Изменение цвета фона отдельных элементов меню навигации
  • Как проверить имя сертификата и псевдоним в файлах хранилища ключей?
  • Давайте будем гением компьютера.