类型的封闭实例不可访问。
类型的封闭实例不可访问。
这个问题已经有答案了:
我在Eclipse中编写了这个Java接口程序,但在MyTriangle tmp = new MyTriangle();下方有一条红线,并且当我运行程序时,我得到以下错误:
类型Question1的未封闭实例无法访问。必须使用类型Question1的封闭实例(例如x.new 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; } }
admin 更改状态以发布 2023年5月23日
试试这个。为简单起见已删除方法。
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{}
您没有粘贴完整的代码,我假设您的代码应该像下面这样。
然后,您应该在创建三角形实例之前创建您的主类的实例,如下所示。
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{}