关于#java#的问题,请各位专家解答!




public class rect {

private int row;

private int col;
int a[][]=new int [row][col];
public rect(int row,int col) {
    this.row=row;
    this.col=col;
}
void show()
{   int i,j;
    for(i=0;i<row;i++) {
        for(j=0;jSystem.out.print(a[i][j]);    
            System.out.println(" ");  }
}```
void construct()
{   int i,j;
    for(i=0;i<row;i++)
        for(j=0;jint)Math.random();
    }
void addtogether()
{   int i,j;
    int sum=0;
    for(i=0;i<row;i++) 
        for(j=0;jSystem.out.println("所有元素和为:"+sum);
    
}

public class square extends rect{
    public  square (int row,int col)
    { 
        super(row,col);
    }
    
    public void addline()
    {int i;
     int sum=0;
        for(i=0;i<row;i++)
            sum=a[i][i]+sum;
        System.out.println("主对角线的元素和为:"+sum);
    }
    
    public static void main(String args[])
    {
        square s=new square(6,6);
    
    }
}
    

}

最后一行怎么修改

img


public class rect {

    protected int row;

    protected int col;
    int a[][] = new int[row][col];// 这里不应该这样写,因为初始状态下, row 和 col 都为0.

    public rect(int row, int col) {
        this.row = row;
        this.col = col;
    }

    void show() {
        int i, j;
        for (i = 0; i < row; i++) {
            for (j = 0; j < col; j++)
                System.out.print(a[i][j]);
            System.out.println(" ");
        }
    }

    void construct() {
        int i, j;
        for (i = 0; i < row; i++)
            for (j = 0; j < col; j++)
                a[i][j] = (int) Math.random();
    }

    void addtogether() {
        int i, j;
        int sum = 0;
        for (i = 0; i < row; i++)
            for (j = 0; j < col; j++)
                sum = sum + a[i][j];
        System.out.println("所有元素和为:" + sum);

    }
}
 
class square extends rect{
    public  square (int row,int col)
    { 
        super(row,col);
    }
    
    public void addline()
    {int i;
     int sum=0;
        for(i=0;i<row;i++)
            sum=a[i][i]+sum;
        System.out.println("主对角线的元素和为:"+sum);
    }
    
    public static void main(String args[])
    {
        square s=new square(6,6);
        s.addline();
    }
}
    

你的代码编译不过,我修改了一些地方。另外有一个问题我在代码中注释了。你可以运行起来慢慢调试了。

square s=new square(6,6);
下面加上
s.addline();