С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
7 / 7 / 4
Регистрация: 21.10.2013
Сообщений: 41

Не до конца понимаю интерфейсы

27.11.2013, 19:47. Показов 808. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Народ, помогите, никак не могу раздуплить как использовать интерфейсы. Я читал, что это как бы абстрактный класс. И при этом все методы у него пустые, т.е у них вообще нет своего тела, по сути просто зарезервированы их названия. Но в API есть классы, у которых методы требуют в качестве аргумента интерфейс. Например метод listFiles(FileFilter filter) из класса File. Очевидно он хочет чтоб туда подставили какую то конкретную реализацию этого интерфейса. Но если интерфейс абстрактен, значит нельзя создать его экземпляр. Если же я создаю класс который наследуется от этого интерфейса и уже в нем пишу реализацию, то при попытке подставить экземпляр этого класса в метод пишет что несовместимые типы. Дескать надо FileFilter, а я сую ImageFilter. Как быть?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.11.2013, 19:47
Ответы с готовыми решениями:

Не понимаю до конца Хавтмана
Допустим есть символы z1-z8 у каждого своя вероятность Посчитав по Хавтману, получилосись данные, например z1=11, z=...(в двоичной),...

До конца не понимаю с запросами
Создать запросы на выборку в соответствии с заданием. Задания: Выбрать сведения о всех клиентах из заданного города. Подсчитать общую...

Не до конца понимаю запись
Если можно, то по подробнее, как это понимать? Я понимаю, что это «переход» из одномерного массива в двумерный, но КАК!? int arr; ...

6
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
28.11.2013, 08:55
Цитата Сообщение от Vilmar Посмотреть сообщение
Если же я создаю класс который наследуется от этого интерфейса и уже в нем пишу реализацию, то при попытке подставить экземпляр этого класса в метод пишет что несовместимые типы.
Вы что-то делаете не так - ошибки не должно быть. Покажите код.
0
Кандёхаем веселее!
 Аватар для MLPMan
296 / 330 / 76
Регистрация: 02.10.2012
Сообщений: 2,175
28.11.2013, 11:46
Это для разделения абстракции и реализации. Например, есть интерфейс List, и реализации ArrayList и LinkedList. Специфика реализации ArrayList позволяет более быстро получать элемент по индексу, а LinkedList - быстрее вставлять/удалять из середины списка. Если мы пишем метод, работающий с каким-то списком, то не надо задумыватся, какие приемущества нам будут нужнее при его вызове, просто используем List.
0
7 / 7 / 4
Регистрация: 21.10.2013
Сообщений: 41
28.11.2013, 13:46  [ТС]
Вот код реализации интерфейса:
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
import java.io.*;
import javax.swing.filechooser.*;
 
 
public class ImageFilter extends FileFilter {
 
    @Override
    public boolean accept(File f) {
        if (f.isDirectory()) {
            return true;
        }
        String extension = null;
        String s = f.getName();
        int i = s.lastIndexOf('.');
 
        if (i > 0 &&  i < s.length() - 1) {
            extension = s.substring(i+1).toLowerCase();
        }
 
        if (extension != null) {
            if (extension.equals("jpeg") ||
                extension.equals("gif") ||
                extension.equals("tiff") ||
                extension.equals("png") ||
                extension.equals("bmp")) {
                    return true;
            } else {
                return false;
            }
        }
        return false;
    }
 
    @Override
    public String getDescription() {
        return "Только изображения";
    }
}

Вот код вызова:
Java
1
2
3
4
5
6
7
8
9
10
11
12
import java.io.*;
 
public class Launcher {
 
    public static void main(String[] args) {
       
        File dir = new File("C:\\Documents and Settings\\admin\\Мои документы\\SAPN");
        ImageFilter type = new ImageFilter();
 
        File[] result = dir.listFiles(type);
    }
}
Вот здесь в 10-й строчке ошибка, не пойму из за чего.
0
 Аватар для exiqa
487 / 333 / 71
Регистрация: 24.12.2011
Сообщений: 591
28.11.2013, 14:17
Цитата Сообщение от Vilmar Посмотреть сообщение
Вот код реализации интерфейса:
Java
1
2
import javax.swing.filechooser.*;
public class ImageFilter extends FileFilter
Вы не реализуете интерфейс java.io.FileFilter, а создаете наследника javax.swing.filechooser.FileFilter
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
28.11.2013, 15:33
Цитата Сообщение от Vilmar Посмотреть сообщение
Вот код реализации интерфейса:
Java
1
2
3
4
import java.io.*;
import javax.swing.filechooser.*;
 
public class ImageFilter extends FileFilter {
Вопрос на засыпку. А какой ключевое слово используется при реализации интерфейса? Варианты:
  • extends
  • implements
  • хз
1
31 / 31 / 6
Регистрация: 11.07.2013
Сообщений: 241
29.11.2013, 02:11
Цитата Сообщение от Skipy Посмотреть сообщение
Вопрос на засыпку. А какой ключевое слово используется при реализации интерфейса? Варианты:
extends
implements
хз

Не по теме:

:rofl:



Добавлено через 46 секунд

Не по теме:

как всегда кратко и со вкусом

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.11.2013, 02:11
Помогаю со студенческими работами здесь

Не до конца понимаю механизм отсечений
Здравствуйте! Есть следующая задача: domains list=integer* predicates split(integer,list,list,list) clauses ...

Не до конца понимаю работу с итераторами
Реализовать вспомогательный класс, который мог бы работать как заместитель контейнера, обеспечивая для пользователей полный интерфейс...

Array_udif не до конца понимаю принцип работы
задача стоит сравнить значения двух многомерных массивов. примеры массивов array1 = =&gt; Array ( =&gt;...

Не понимаю до конца адресацию в двумерном массиве
Задача: задать двумерный массив 4*5 целых чисел. Сложить два числа: первое – из строки 2, столбца 3; второе - из строки 3, столбца 4. Вот...

Паттерны, не до конца понимаю итератор и одиночку
Пожалуйста, помогите, никак не могу осилить паттерны, немного задачи с горем пополам сделала, а дальше ступор. Спасибо за любую помощь! ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 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 считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru