С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Doctor_
236 / 235 / 142
Регистрация: 03.02.2011
Сообщений: 1,436
1

Ошибка в конструкторах

19.08.2013, 18:24. Просмотров 353. Ответов 8
Метки нет (Все метки)

Почему нельзя создать два конструктора?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Test {
 private List<First> first;
 private List<Second> second;
 private int type;
 
 Test(int type, List<First> first) {
  this.type = type;
  this.first = first;
 }
 Test(int type, List<Second> second) {
  this.type = type;
  this.second = second
 }
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.08.2013, 18:24
Ответы с готовыми решениями:

Исключения в конструкторах
Для начала приведу код, а затем соответствующие вопросы. #include...

Вопрос об особенности char и конструкторах
1. Хочу вывести на экран таблицу символов ascii: #include &lt;iostream&gt; ...

Исключения в конструкторах стандартных контейнеров
Очень тупой вопрос: могут ли перемещающие конструкторы std::map и std::vector...

Немного жестокости, о классах и конструкторах
Доброго времени суток. Суть проблемы, у нас есть задача: добавить в класс...

О классах и конструкторах в Microsoft Visual С++.
Всем добрый день народ, есть задачи, которые надо решить Microsoft Visual С++....

8
verylazy
Заблокирован
19.08.2013, 18:45 2
потому что количество и тип параметров одинаковые
даже я знаю ответ

бедняга, такие сложности с морским боем
два обычных двухмерных массива на сервере нельзя просто завести? с полями Xcord Ycord ship
ship сделать хоть int хоть enum и писать туда состояние - есть корабль, нет, подбит, убит
0
Doctor_
236 / 235 / 142
Регистрация: 03.02.2011
Сообщений: 1,436
19.08.2013, 18:52  [ТС] 3
я это уже понял в чем ошибка, пытаюсь исправить
два обычных двухмерных массива на сервере нельзя просто завести? с полями Xcord Ycord ship
ship сделать хоть int хоть enum и писать туда состояние - есть корабль, нет, подбит, убит
нет, так как уже начал с списками и с ними закончу, слишком много кода просто выкинуть придется и создавать по новой.
0
Skipy
1996 / 1419 / 91
Регистрация: 25.11.2010
Сообщений: 3,611
20.08.2013, 10:25 4
Цитата Сообщение от Doctor_ Посмотреть сообщение
слишком много кода просто выкинуть придется и создавать по новой.
Иногда это самое оптимальное решение, особенно если сначала была допущена ошибка.
0
mutagen
2565 / 2238 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
20.08.2013, 10:58 5
Цитата Сообщение от Doctor_ Посмотреть сообщение
слишком много кода просто выкинуть придется и создавать по новой.
пусть вас это не смущает, линейная разработка в жизни программиста занимает времени всего 15%, всё остальное время вы что либо исправляете (хорошо ещё если свой код, так как чужой иногда вызывает выпучивание глаз )))
0
Doctor_
236 / 235 / 142
Регистрация: 03.02.2011
Сообщений: 1,436
20.08.2013, 12:56  [ТС] 6
Я вообще не понимаю как можно хранить координаты в массиве. В списке проще, есть указатели на i и j, что где заполнено, я через массив вообще не понимаю как это сделать.
0
mutagen
2565 / 2238 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
20.08.2013, 13:06 7
зачем вам сложные массивы, создайте класс с координатами и храните их в обычном массиве с индексом поля
0
Doctor_
236 / 235 / 142
Регистрация: 03.02.2011
Сообщений: 1,436
20.08.2013, 13:15  [ТС] 8
в конец запутан
0
Nsbaq
23 / 23 / 7
Регистрация: 21.04.2013
Сообщений: 52
20.08.2013, 21:46 9
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
enum Type {
    Empty, Filled, etc;
}
 
public class Pole {
private final static int SIZE = 5;
private Type[][] field;
 
public Pole() {
    field = new Type[SIZE][SIZE];
    //поле 5х5 например
}
public void setCell(Type type, int i, int j) {
    field[i][j] = type;
}
 
public static void main(String[] args) {
    Pole first = new Pole();
    for (int i = 0; i < SIZE; ++i)
        for (int j = 0; j < SIZE; ++j)
            first.setCell(Type.Filled, i, j);
    Pole second = new Pole();
    for (int i = 0; i < SIZE; ++i)
        for (int j = 0; j < SIZE; ++j)
            second.setCell(Type.Filled, i, j);
}
}
внимание надо обратить на класс Поле. сделай аналогичный - дополни его методами с аргументами-индексами. И после - имей дело только с Полями и индексами без относительно их внутреннего устройства.
вместо массива Type[][], если очень нужно, можно героически юзать коллекции типа такого
Java
1
2
3
4
public void setCell(Type type, int i, int j) {
    List<ArrayList<Type>> field = new ArrayList<ArrayList<Type>>();
    field.get(i).set(j, type );
}
создание класса Поле потребует некоторого времени, но в будущем это упростит вставку/изменение отдельных полей, и потраченное время окупится.
1
20.08.2013, 21:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.08.2013, 21:46

Есть ли смысл в privet конструкторах и деструкторах?
Ну собственно вопрос в шапке...:)

О классах и конструкторах и об операторах case c {} и без. Нюансы
Зачем в С++ имеется возможность определять методы вне тела класса через...

Запретить пользователю менять параметры в конструкторах форм, таблиц
Подскажите,пож-ста,как можно сделать так,чтобы пользователь не мог менять...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru