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

Поясните пожалуйста строки

30.04.2013, 15:00. Показов 806. Ответов 2
Метки нет (Все метки)

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


интерфейс генератора
Java
1
2
3
public interface Generator { 
  Object next(); 
}
класс c методом для наполнения массива
Java
1
2
3
4
5
6
7
8
import java.util.*;
 
public class Arrays2 {
  public static void 
  fill(Object[] a, Generator gen) {
      fill(a, 0, a.length, gen);}
  }
    }
Ну и головной класс
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.util.*;
 
public class CompType implements Comparable {
  int i;
  int j;
   public static Generator generator() {
    return new Generator() {
      public Object next() {
        return new CompType(randInt(),randInt());
      }
public static void main(String[] args) {
    CompType[] a = new CompType[10];
    Arrays2.fill(a, generator());
 }
}
Теперь вопросы
1. в строке 12 мы создаем массив типа CompType и далее передаем его в метод fill для наполнения. В методе fill на входе стоит объект типа Object, не ясно почему не CompType(для универсальности что ли?). В моём понимании т.к. Object является суперклассом для всех классов , произойдет неявное приведение к нему, но ведь потеряются поля класса CompType ?

2. В метод fill вторым параметром мы передаём метод generator(), а д.б. объект типа Generator, правда метод generator() возвращает ссылку типа Generator на данные, но разве метод сработает и вернет Generator, до передачи его fill'у?

3. В массиве у меня в итоге сидят ссылки Generator(типа генератор хз как их правильно обзывать) на парные константы(данные), а где же находятся сами константы. И немогу понять, что нам дает создание массива одного типа и наполнение его объектами другого типа, разве что они все д.б. взаимосвязаны ч.з. интерфейс общими методами и сами иметь схожие данные, чтоб можно было дергать общую инфу ?

4. Второе это работа генератора. В головном классе строки с 7 по 9 понимаются мной обрывисто, каким образом метод fill под каждую ячейку выдает новое значение, а не заполняет первым что сгенерится?
Зачем создается new Generator(ссылка на тип интерфейса), public Object next это что ли переопределение метода и как в итоге new CompType() приводится к new Generator(), неужели опять всё благодаря универсальности Object ?


5.Поясните , для чего в первой строке указывается тип интерфейса в <...> ?
Java
1
2
3
4
5
Class ImCompare implements Comparator<IMassable> 
{
public int compare (IMassable im0, IMassable im1)
{return im0.getid()-im1.getid();}
}
Часто где встречаю эти кавычки (< >), но синтаксис их непонятет, или он меняется от случая к случаю ?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.04.2013, 15:00
Ответы с готовыми решениями:

Поясните пожалуйста код
Надо вывести числа в заданном диапазоне с шагом в 0.01. for (float x = 0; x &gt; -0.15 ; x -= 0.01) { ...

Не срабатывает сеттер, поясните, пожалуйста
import javafx.application.Application; import javafx.geometry.*; import javafx.geometry.Insets; import javafx.scene.Scene; import...

Поясните, пожалуйста.
Что означает &quot;%d&quot; Arr и sizeof в си?

2
 Аватар для AckiyBolt
653 / 402 / 35
Регистрация: 19.02.2013
Сообщений: 1,072
Записей в блоге: 2
30.04.2013, 17:13
Цитата Сообщение от Anc_d Посмотреть сообщение
1. в строке 12 мы создаем массив типа CompType и далее передаем его в метод fill для наполнения. В методе fill на входе стоит объект типа Object, не ясно почему не CompType(для универсальности что ли?). В моём понимании т.к. Object является суперклассом для всех классов , произойдет неявное приведение к нему, но ведь потеряются поля класса CompType ?
наверно для универсальности. хотя толку от нее нет. про универсальность будет ниже
там ничо не потеряется. просто видно не будет т.к. объект будет иметь интерфейс обджекта


Цитата Сообщение от Anc_d Посмотреть сообщение
2. В метод fill вторым параметром мы передаём метод generator(), а д.б. объект типа Generator, правда метод generator() возвращает ссылку типа Generator на данные, но разве метод сработает и вернет Generator, до передачи его fill'у?
ну да. при вызове фила жаба увидит вызов генератора и сначала вызовет его. он вернет новый инстанс генератора который и будет отправлен в фил




Цитата Сообщение от Anc_d Посмотреть сообщение
4. Второе это работа генератора. В головном классе строки с 7 по 9 понимаются мной обрывисто, каким образом метод fill под каждую ячейку выдает новое значение, а не заполняет первым что сгенерится?
Зачем создается new Generator(ссылка на тип интерфейса), public Object next это что ли переопределение метода и как в итоге new CompType() приводится к new Generator(), неужели опять всё благодаря универсальности Object ?
мне что-то кажется, что кода не хватает. потому ничего говорить не буду
по поводу "ссылка на тип интерфейса" почитайте про анонимные классы



Цитата Сообщение от Anc_d Посмотреть сообщение
5.Поясните , для чего в первой строке указывается тип интерфейса в <...> ?
Код Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
Class ImCompare implements Comparator<IMassable>
{
public int compare (IMassable im0, IMassable im1)
{return im0.getid()-im1.getid();}
}
Часто где встречаю эти кавычки (< >), но синтаксис их непонятет, или он меняется от случая к случаю ?
почитайте про Generics. узнаете об универсальности
1
5 / 5 / 3
Регистрация: 28.03.2013
Сообщений: 61
30.04.2013, 17:26  [ТС]
спс
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.04.2013, 17:26
Помогаю со студенческими работами здесь

поясните пожалуйста
что обозначает эта строка в проге: val(s,c,code); if code=0 then?

поясните пожалуйста
имеется задание .ка я понимаю. у меня есть 5 операторов, которые выполняют действия записи и вывода и мне надо изменять время такта и...

Поясните пожалуйста код . . .
я делаю базу данных о загрязнении воздушной среды. . . Всю основу я сделала. . .но не понимаю . . у меня есть задание вывести учет...

Поясните строку пожалуйста
Предположим все переменныe равны 5. вот есть такие строки product += x++; qu += ++x; я понимаю это так product = product + x++;...

Поясните пожалуйста код
Код принимает число и возвращает его английское название. поясните пожалуйста выделенное красным. def englishNumber number if...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Изучаю 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