java,матрицы,помогите

272
29 марта 2017, 15:13

Уже который час пытаюсь понять,не могу найти подвох

class Matrix{
    private static int size;
    private static long[][] mat;
    Matrix(int n)//создается единичная матрица
    {
    size = n;
    mat = new long[size][size];
    for(int i=0;i<size;i++)
    {
        for(int j=0;j<size;j++)
        {
            if(i == j)
                mat[i][j] = 1;
        }
    }
    }
   public static void setElement(int row, int column, int element)//вставляем элемент
   {
    mat[row][column] = element;
   }
}
    class Main{
    public static void main(String args[])
    {
        Matrix m = new Matrix(5);
        Matrix n = new Matrix(5);
        System.out.println("\nMatrix M:\n" + m);//до
        System.out.println("\nMatrix N:\n" + n);
        m.setElement(0, 2, 7);
        System.out.println("\nMatrix:\n" + m);//после 
        System.out.println("\nMatrix:\n" + n);
}

почему размещая элемент в матрицу m(в данном случчае 7),она автоматом меняется и в матрице n?

Answer 1

Потому что mat у вас общая переменная для обеих матриц. Как я понимаю статическая.

READ ALSO
Как настроить фильтры в emmet-atom?

Как настроить фильтры в emmet-atom?

Код который работает в sublime text 3

586
слайдер бутстрап

слайдер бутстрап

Добрый деньПодскажите пожалуйста, какие компоненты выбрать в customize на getbootstrap

338
Как изменить цвет вкладки в Яндекс.Браузере?

Как изменить цвет вкладки в Яндекс.Браузере?

Как изменить цвет вкладки в ЯндексБраузере с того, который формируется по иконке сайта на произвольный?

1079