Java-初始化对象数组列表时出错
当我试图在代码中使用periment函数时,我得到一个空指针异常。似乎点数组(点是一个具有x和y坐标的简单对象)没有正确初始化,我相信我可能错误地声明了数组,或者构造函数不正确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
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如果答案有帮助,就接受它吧!