С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
2 / 1 / 0
Регистрация: 04.11.2021
Сообщений: 63

Класс из одного метода без указания названия класса

19.03.2023, 14:47. Показов 497. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Изучаю работу с JTable использую страничку с офиц. сайта см. ниже ссылку.

Все в процессе, создаю class MyTableModel extends AbstractTableModel для моей табличной модели, переопределяю некоторые методы : getColumnCount, getRowCount() и т.д.

на пути встречается строчка кода

Java
1
2
3
public Class getColumnClass(int c) {
        return getValueAt(0, c).getClass();
    }
вроде как встречаем слово Class - значит класс, а тут же идет название и реализация метода getColumnClass.

Почему так, что тут объявляют?


полный текст класса ниже:

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
class MyTableModel extends AbstractTableModel {
    private String[] columnNames = ...//same as before...
    private Object[][] data = ...//same as before...
 
    public int getColumnCount() {
        return columnNames.length;
    }
 
    public int getRowCount() {
        return data.length;
    }
 
    public String getColumnName(int col) {
        return columnNames[col];
    }
 
    public Object getValueAt(int row, int col) {
        return data[row][col];
    }
 
    public Class getColumnClass(int c) {
        return getValueAt(0, c).getClass();
    }
 
    /*
     * Don't need to implement this method unless your table's
     * editable.
     */
    public boolean isCellEditable(int row, int col) {
        //Note that the data/cell address is constant,
        //no matter where the cell appears onscreen.
        if (col < 2) {
            return false;
        } else {
            return true;
        }
    }
 
    /*
     * Don't need to implement this method unless your table's
     * data can change.
     */
    public void setValueAt(Object value, int row, int col) {
        data[row][col] = value;
        fireTableCellUpdated(row, col);
    }
    ...
}
https://docs.oracle.com/javase... table.html
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.03.2023, 14:47
Ответы с готовыми решениями:

Вызов метода у одного класса через другой класс
Мне нужно вызвать метод display у класса View через класс Controller для вывода информации в консоли. При этом Controller передает в View...

Создать экземпляр класса без явного указания членов класса
Если у меня есть два конструктора, один из которых по умолчанию, а второй явный. Я почему-то не могу создать экземпляр класса без явного...

Обратиться к переменной класса без указания самого класса
Вот код: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; ...

5
Модератор
Эксперт Java
 Аватар для alecss131
2848 / 1356 / 404
Регистрация: 11.08.2017
Сообщений: 4,330
Записей в блоге: 2
19.03.2023, 15:05
Не надо путать Class и class, это 2 разных понятия. Первое это из рефлексии грубо говоря, позволяет получить информацию про класс, а второе это ключевое слово для создания собственных классов
Вот документация на Class
1
2 / 1 / 0
Регистрация: 04.11.2021
Сообщений: 63
19.03.2023, 16:23  [ТС]
хм, не заметил что там "Class " , а все таки что в этом коде происходит?

Java
1
public Class getColumnClass(int c) {         return getValueAt(0, c).getClass();     }
Добавлено через 14 минут
Цитата Сообщение от SergeyAK Посмотреть сообщение
хм, не заметил что там "Class " , а все таки что в этом коде происходит?
JavaВыделить код
1
public Class getColumnClass(int c) {         return getValueAt(0, c).getClass();     }
что означает здесь слово Class перед названием и реализацией метода getColumnClass?
0
 Аватар для Coffeini
753 / 370 / 133
Регистрация: 01.02.2020
Сообщений: 1,096
Записей в блоге: 1
19.03.2023, 16:26
SergeyAK, там же написано, для чего этот метод:
TableDemo's custom table model, even though it is simple, can easily determine the data's type, helping the JTable display the data in the best format. SimpleTableDemo's automatically created table model, on the other hand, does not know that the # of Years column contains numbers (which should generally be right aligned and have a particular format). It also does not know that the Vegetarian column contains boolean values, which can be represented by check boxes.
Насколько лично я понял, из этого класса берется конструктор, а потом создается новый экземпляр, впихивая содержимое клетки. Вот выше в описании даже пример есть: содержатся в табличке булевы переменные, а отображаются они как CheckBox.
0
2 / 1 / 0
Регистрация: 04.11.2021
Сообщений: 63
19.03.2023, 16:27  [ТС]
Цитата Сообщение от SergeyAK Посмотреть сообщение
что означает здесь слово Class перед названием и реализацией метода getColumnClass?
да понял, это как тип возвращаемого значения.
0
2 / 1 / 0
Регистрация: 04.11.2021
Сообщений: 63
20.03.2023, 16:03  [ТС]
"...если великий ученый не может объяснить пятилетнему мальчику чем он занимается, значит этот ученый - шарлатан..."
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.03.2023, 16:03
Помогаю со студенческими работами здесь

Вызов метода без указания пространства имен
Добавил в свой код такую строку: using System.Diagnostics.Tracing; Вызываю его метод так: ...

Вызов метода split без явного указания имени параметров
data class NameComponents(val name: String, val extension: String) fun splitFilename(fullName: String):...

enum class без указания класса
Всех приветствую. Как известно, в двух перечисляемых типах нельзя использовать одинаковое название. Вот такой код не скомпилируется: ...

Можно ли передать переменную в класс без указания ее типа
Есть универсальный класс. С дофига и более функциями. И при работе с классом приходится постоянно писать типы переменных в &lt;&gt; ...

Как обратиться к значениям переменной одного класса из метода другого класса
Есть переменная - Холодильник1 класса Freezer Холодильник1 = Freezer() Холодильник2 = Freezer() class Freezer: food...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru