Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
54 / 4 / 3
Регистрация: 15.06.2014
Сообщений: 36

Доступ к элементу объекта класса

28.04.2015, 15:12. Показов 2088. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую!

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

Теперь мы не можем обращаться к элементам объекта типа Matrix с помощью квадратных скобок.
Как же сделать возможным доступ к элементам?

Может, написать в классе методы get и set с двумя индексами?

Буду благодарна за примеры.
Заранее спасибо за участие!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.04.2015, 15:12
Ответы с готовыми решениями:

MFC, доступ к элементу класса (StatusBar) из другого класса
Здравствуйте. Я новичок и нигде не смог найти ответ на следующий видимо простой вопрос. Подскажите, пожалуйста. Проблема коротко: не...

Получить доступ с одного класса к элементу второго класса
Добрый вечер, я сейчас работаю с XNA Game Studio 4.0, каркас программы аналогичен .Net , пишу свою игру. Как мне получить доступ с одного...

Доступ к элементу объекта в векторе
Есть два класса. Второй класс содержит вектор объектов первого. Причем конструктор второго класса обращается к элементам первого. Если...

3
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7391 / 4818 / 1246
Регистрация: 30.03.2015
Сообщений: 13,688
Записей в блоге: 29
28.04.2015, 15:20
а есть хотя бы код класса, без сеттеров и геттеров?
0
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,766
28.04.2015, 15:35
Pumie
Да, можно get/set по индексу. В качестве примера можете посмотреть реализацию 'java.util.ArrayList', там тоже в основе массив и get/set для работы с элементами.
1
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
28.04.2015, 15:48
Лучший ответ Сообщение было отмечено Pumie как решение

Решение

Да. Геттеры, сеттеры. Как вам удобнее для вашей задачи, так и делайте.
Matrix.java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import java.util.Arrays;
 
public class Matrix {
 
    private final int height;
    private final int width;
    private final double[][] data;
 
    public Matrix(int height, int width) {
        this.height = height;
        this.width = width;
        this.data = new double[height][width];
    }
 
    public Matrix(double[][] matrix) {
        this.data = new double[matrix.length][];
        this.height = matrix.length;
        this.width = matrix[0].length;
        for (int i = 0; i < matrix.length; ++i) {
            data[i] = Arrays.copyOf(matrix[i], matrix[i].length);
        }
    }
 
    private Matrix(double[][] matrix, int unused) {
        this.data = matrix;
        this.height = matrix.length;
        this.width = matrix[0].length;
    }
 
    public void set(int i, int j, double value) {
        data[i][j] = value;
    }
 
    public double get(int i, int j) {
        return data[i][j];
    }
 
    public int getHeight() {
        return height;
    }
 
    public int getWidth() {
        return width;
    }
 
    public Matrix add(Matrix other) {
        if (getHeight() != other.getHeight() || getWidth() != other.getWidth()) {
            throw new IllegalArgumentException("matrices must have same sizes");
        }
        double[][] result = new double[getHeight()][getWidth()];
        for (int i = 0; i < getHeight(); ++i) {
            for (int j = 0; j < getWidth(); ++j) {
                result[i][j] = get(i, j) + other.get(i, j);
            }
        }
        return new Matrix(result, 0);
    }
 
    @Override
    public String toString() {
        return "Matrix{" +
                "height=" + height +
                ", width=" + width +
                ", data=" + Arrays.deepToString(data) +
                '}';
    }
}


Main
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Testy {
    public static void main(String[] args) {
        Matrix a = new Matrix(new double[][]{{0, 1, 2}, {3, 4, 5}, {6, 7, 8}});
        Matrix b = new Matrix(new double[][]{{8, 7, 6}, {5, 4, 3}, {2, 1, 0}});
        Matrix c = a.add(b);
 
        System.out.println("a[1][1] = " + a.get(1, 1));
        System.out.println("a[0][2] = " + a.get(0, 2));
 
        System.out.println("a = " + a);
        System.out.println("b = " + b);
        System.out.println("a + b = " + c);
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.04.2015, 15:48
Помогаю со студенческими работами здесь

Доступ к элементу формы из класса
класс написан в другом файле. class TBReader:IReader { string str; public override string GetStr() {...

Доступ к указателю - элементу класса
Есть класс. В нем есть элемент-указатель (на голову списка). Можно ли получить как то этот указатель через объект класса, кроме как через...

Массив объектов внутри объекта. Как получить доступ к элементу?
Привет. Есть класс для матриц template &lt;typename X&gt; class массив { protected: int числоСтрок; // m int числоСтолбцов; // n ...

Как получить доступ к TImage - элементу класса?
Добрый день. вот такой вот класс у меня есть: class wall { private: TImage *wall_image; int x, y; bool...

Доступ к элементу listBox на форме из класса в Program.cs
Подскажите пожалуйста, как работать с элементами формы из класса в отдельном .cs файле. Код самого класса, из которого нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru