Java-初始化对象数组列表时出错

Java-初始化对象数组列表时出错,java,Java,当我试图在代码中使用periment函数时,我得到一个空指针异常。似乎点数组(点是一个具有x和y坐标的简单对象)没有正确初始化,我相信我可能错误地声明了数组,或者构造函数不正确 package shapes; import static java.lang.Math.*; public class Triangle { private int sides = 3; private Point[] Points = new Point[sides]; public Triangle(Poi

当我试图在代码中使用periment函数时,我得到一个空指针异常。似乎点数组(点是一个具有x和y坐标的简单对象)没有正确初始化,我相信我可能错误地声明了数组,或者构造函数不正确

package shapes;

import static java.lang.Math.*;

public class Triangle {

private int sides = 3;
private Point[] Points = new Point[sides];

public Triangle(Point[] vertices) {
    vertices = Points;
}

public double perimeter() {
    return Points[0].distance(Points[1]) + Points[1].distance(Points[2]) + Points[2].distance(Points[0]);
}

public double area() {
    double semiperimeter = perimeter() / 2;
    return sqrt(semiperimeter * (semiperimeter - Points[0].distance(Points[1])) * (semiperimeter - Points[1].distance(Points[2])) * (semiperimeter - Points[2].distance(Points[0])));
}

@Override
public String toString() {
    return "Triangle has perimeter of " + perimeter() + " and an area of " + area(); 
}

public void translate(int dx, int dy) {
    for(int i = 0; i < 3; i++) {
        Points[i].translate(dx, dy);
    }
}

public void scale(int factor) {
    for(int i = 0; i < 3; i++) {
        Points[i].scale(factor);
    }        
}

public Point getVertex(int i) {
    return Points[i];
}

}
包装形状;
导入静态java.lang.Math.*;
公共阶级三角{
私有内部侧=3;
专用点[]点=新点[边];
公共三角形(点[]顶点){
顶点=点;
}
公共双周界(){
返回点[0]。距离(点[1])+点[1]。距离(点[2])+点[2]。距离(点[0]);
}
公共双区(){
双半周长=周长()/2;
返回sqrt(半周长*(半周长-点[0]。距离(点[1])*(半周长-点[1]。距离(点[2]))*(半周长-点[2]。距离(点[0]);
}
@凌驾
公共字符串toString(){
return“三角形的周长为“+周长()+”,面积为“+面积()”;
}
公共无效转换(int-dx,int-dy){
对于(int i=0;i<3;i++){
点[i]。平移(dx,dy);
}
}
公共空间比例(整数因子){
对于(int i=0;i<3;i++){
点[i]。比例(因子);
}        
}
公共点获取顶点(int i){
返回点[i];
}
}

非常感谢您的帮助

您需要在构造函数中反向执行此操作:

vertices = Points;


您需要使用输入的
顶点来初始化
数组,而不是反过来初始化。

您需要在构造函数中反转此操作:

vertices = Points;


您需要使用输入的
顶点来初始化
数组
,而不是反过来。

您正在初始化数组。您正在初始化它的元素吗?您正在初始化数组。你在初始化它的元素吗?这么简单,你知道了!谢谢haha@h1h1如果答案有帮助,就接受它吧!这么简单,你明白了!谢谢haha@h1h1如果答案有帮助,就接受它吧!