Действительно ли я могу перегрузить переменные в Java?

Я пишу класс для представления матрицы. Я хочу, чтобы это выглядело примерно так:

public class matrix {
    private int[][] matrix;
    private double[][] matrix;
    //And so on and so forth so that the user can enter any primitive type and
    //get a matrix of it
}

Этот свод законов, или у меня должны были бы быть различные имена переменной на основе типов данных, которые содержит их матрица?

6
задан danben 24 July 2010 в 15:27
поделиться

3 ответа

Вы не можете перегружать переменные. При вашем подходе вы должны дать им разные имена, а затем перегрузить метод getMatrix для разных типов.

Лучший подход - использовать Java Generics:

public class Matrix<T> {
    private T[][] matrix;
    public T getMatrix() {return matrix;}
    ...
}

и затем создавать объекты любых типов, которые вы хотите: Matrix, Matrix, etc.

12
ответ дан 8 December 2019 в 17:18
поделиться

То, что вы показали, не является допустимым кодом Java. Подход, который вы предлагаете (разные имена), будет работать, или вы можете воспользоваться преимуществами объектной системы Java и использовать значения в штучной упаковке (например, член класса является просто объектом) или универсальные типы, чтобы тип был параметром.

1
ответ дан 8 December 2019 в 17:18
поделиться

Я думаю, вы ищете Java Generics, стандартную функцию Java, начиная с Java 5.

Идея состоит в том, чтобы у вас был общий класс Matrix, который можно было бы специализировать для любого типа, который вам нужен.

Есть множество руководств, например: здесь

1
ответ дан 8 December 2019 в 17:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: