有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在Java中调用构造函数中的数组

我试图调用构造函数中的数组,并将其分配给如下变量:

private int x1;
private int y1; 
private int x2;
private int y2; 
private int x3;
private int y3;
private int x4;
private int y4; 

int[] array1 = new int[7];

public ChangePlane(String name, int[] array1){ 
this.name = name; 
this.array1 = array1;
array1[0]=x1;
array1[1]=y1;
array1[2]=x2;
array1[3]=y2;
array1[4]=x3;
array1[5]=y3;
array1[6]=x4;
array1[7]=y4;
}

我使用这个构造器能够调用一组四个坐标来画一个围绕图像的正方形。但代码不起作用。任何帮助都将不胜感激。先谢谢你


共 (6) 个答案

  1. # 1 楼答案

    当您这样做时:

    array1[0]=x1;
    array1[1]=y1;
    array1[2]=x2;
    array1[3]=y2;
    array1[4]=x3;
    array1[5]=y3;
    array1[6]=x4;
    array1[7]=y4;
    

    您正在用零填充数组,因为x1、y1等。。。未初始化

    此代码:

    int[] array1 = new int[7];
    

    是无用的,因为您正在将作为参数传递给构造函数的数组分配给array1。顺便说一句,当你分配x1,y1,等等。。。到数组[0]、数组[1]等。。。您还将更改作为参数传递的数组

  2. # 2 楼答案

    public class Square {
      private String name;
      private int[] points;
    
      public Square(String name, int[] points){ 
        this.name = name; 
        this.points= points;
      }
    
      public String getName() {
        return name;
      }
    
      public int[] getPoints() {
        return points;
      }
    }
    

    创建具有名称和点的方形对象

    Square square = new Square("first", new int[]{1, 2, 3, 4, 5, 1, 2, 3, 4})
    

    只要您想访问点,就可以使用该对象

    square.getPoints()
    
  3. # 3 楼答案

    你的任务好像颠倒了

    public ChangePlane(String name, int[] array1){ 
      this.name = name; 
      this.array1 = array1;
      x1 = array1[0];
      y1 = array1[1];
      x2 = array1[2];
      y2 = array1[3];
      x3 = array1[4];
      y3 = array1[5];
      x4 = array1[6];
      y4 = array1[7];
    }
    

    假设您正在向构造函数传递一个int[] array1 = new int[8];(因为否则array1[7]将失败)

  4. # 4 楼答案

    您应该定义一个名为name的类变量。你在哪里分配的。名字

  5. # 5 楼答案

    你需要考虑很多事情:

    private int x1; // Why would you set those integers as private 
    private int y1; // if they are just used to initiate your array's values 
    private int x2;
    private int y2; 
    private int x3;
    private int y3;
    private int x4;
    private int y4; 
    
    int[] array1 = new int[7]; // your array might as well be private if you intent
    // to use it through the whole class
    
    public ChangePlane(String name, int[] array1){ 
    this.name = name; // this.name isn't define in the class' private parameters, it doesn't exists
    this.array1 = array1; // this array should be private
    array1[0]=x1; // how are the x values inputed in your program?
    array1[1]=y1;
    array1[2]=x2;
    array1[3]=y2;
    array1[4]=x3;
    array1[5]=y3;
    array1[6]=x4;
    array1[7]=y4;
    }
    
  6. # 6 楼答案

    考虑传递一个对象而不是数组。对象可以包含属性