Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 构造函数多边形(int[],int[],int)未定义_Java_Constructor_Polygon - Fatal编程技术网

Java 构造函数多边形(int[],int[],int)未定义

Java 构造函数多边形(int[],int[],int)未定义,java,constructor,polygon,Java,Constructor,Polygon,我试图弄明白为什么这个程序告诉我多边形的构造函数是未定义的 这是我得到的一个例外: Exception in thread "main" java.lang.Error: Unresolved compilation problem: The constructor Polygon(int[], int[], int) is undefined at test.main(test.java:9) 阶级 请定义一个构造函数 Polygon(int[] xp,int[]

我试图弄明白为什么这个程序告诉我多边形的构造函数是未定义的

这是我得到的一个例外:

     Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    The constructor Polygon(int[], int[], int) is undefined   
at test.main(test.java:9) 
阶级


请定义一个构造函数

Polygon(int[] xp,int[] yp,int xLength){
     xpoints=xp;
     ypoints=yp;
}
代码中很少有错误-

  • 您已经在初始化成员元素,但仍在尝试使用构造函数再次设置它们

  • 要调用init,您必须创建一个对象,然后使用init创建另一个对象

  • 这样编码

    import java.awt.*;
    import java.applet.*;
    import java.util.*;
    import java.awt.geom.*;
    public class Polygon extends Applet {
        private int[] xpoints;
        private int[] ypoints;
    
        private Polygon poly;
    
        Polygon(int[] xp,int[] yp){
            xpoints=xp;
            ypoints=yp; 
        }
    
        static public void init(int[] xpoints,int[] ypoints){
           poly = new Polygon(xpoints, ypoints);
       }
    }
    

    它说您的多边形类必须有一个适合于

    new Polygon(xpoints, ypoints, xpoints.length);
    

    请参见

    您需要创建这样的构造函数:

    public Polygon(int[] a, int[] b, int c){
        //construct a new Polygon object with the parameters
    }
    

    现在的方法是,您只有
    Object
    中的默认构造函数,即
    Polygon()

    我认为问题在于您的applet类已经隐藏了您想要使用的
    java.awt.Polygon

    一种可能的解决方法是更改小程序类的名称:

    import java.awt.*;
    import java.applet.*;
    import java.util.*;
    import java.awt.geom.*;
    
    public class PolygonApplet extends Applet {
        private int[] xpoints = { 0,-10, -7, 7, 10 };
        private int[] ypoints = {-10, -2, 10, 10, -2 };
    
        private Polygon poly;
    
        public void init(){
            poly = new Polygon(xpoints, ypoints, xpoints.length);
        }
    }
    

    你认为新多边形(xpoints,ypoints,xpoints.length)怎么样新建java.awt.polygon,这是您试图构建的类。问题是编译器正在多边形类中寻找构造函数
    (int[],int[],int)
    ,而不是核心Java API中的构造函数。我的印象是多边形已经有了这些参数的构造函数?嗯,似乎还没有;-)@Leo S/he希望构造
    java.awt.Polygon
    的一个实例,它确实有这样一个构造函数。我最初有一个名为RandomShapes的类。我并不是想把这门课贴成多边形。那是我的错误。但是,即使更改了类名,也会引发相同的异常。也许您的输出目录中有一些旧的
    .class
    文件?也许如果你删除你所有的
    .class
    文件,重新编译你的
    .java
    文件,事情会好起来的。我想出来了。。。必须直接导入Java.awt.Polygon。。谢谢你的帮助!
    import java.awt.*;
    import java.applet.*;
    import java.util.*;
    import java.awt.geom.*;
    
    public class PolygonApplet extends Applet {
        private int[] xpoints = { 0,-10, -7, 7, 10 };
        private int[] ypoints = {-10, -2, 10, 10, -2 };
    
        private Polygon poly;
    
        public void init(){
            poly = new Polygon(xpoints, ypoints, xpoints.length);
        }
    }