powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Наследование
91 сообщений из 91, показаны все 4 страниц
Наследование
    #34824444
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ такой вопрос по джаве.
Долго копал может кто подскажет.

есть файл test.java:

class parent {
public String var="parent";

public void printvar() {
System.out.println(var);
}
}

class child extends parent {
public String var="child";

}

class test {
public static void main(String[] args) {
child c = new child();
c.printvar();
}

}

Печатает "parent".

Как сделать чтобы наследовалось значение поля ?
Заранее спасибо ...
...
Рейтинг: 0 / 0
Наследование
    #34824455
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добавить getVar() {return var;}
и дергать его
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Наследование
    #34824461
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо ..

А если таких полей очень много ?
Для каждого getfield добавлять ?
Может есть более простое решение ?
...
Рейтинг: 0 / 0
Наследование
    #34824469
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а поле наследуется, а то что ты подразумеваешь - никак!
делай типа в обоих классах
Код: plaintext
  public  String getVar(){  return  var; } 
а у парента типа
Код: plaintext
1.
2.
  public   void  printvar() {
System.out.println(getVar());
}
...
Рейтинг: 0 / 0
Наследование
    #34824479
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
am_sasaа поле наследуется, а то что ты подразумеваешь - никак!
делай типа в обоих классах
Код: plaintext
  public  String getVar(){  return  var; } 
а у парента типа
Код: plaintext
1.
2.
  public   void  printvar() {
System.out.println(getVar());
}


Так и сделал - заработало.

Может просто кто знает через Reflection можно сделать быстро для болшого количества таких варов в классе ?
...
Рейтинг: 0 / 0
Наследование
    #34824516
vas0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracleМожет просто кто знает через Reflection можно сделать быстро для болшого количества таких варов в классе ? Что пустом начинаешь разводить ненужную сложность. Для того примера что ты привел, зачем там вообще наследование? Может можно все проще сделать?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 public   class  Bean {

     private   final  String value;

     public  Bean(String value) {
         this .value = value;
    }

     public   void  printValue() {
        System.out.println(value);
    }
}
...
Рейтинг: 0 / 0
Наследование
    #34824574
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vas0 _fromoracleМожет просто кто знает через Reflection можно сделать быстро для болшого количества таких варов в классе ? Что пустом начинаешь разводить ненужную сложность. Для того примера что ты привел, зачем там вообще наследование? Может можно все проще сделать?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 public   class  Bean {

     private   final  String value;

     public  Bean(String value) {
         this .value = value;
    }

     public   void  printValue() {
        System.out.println(value);
    }
}


Типа самый умный ?

Я знаю что для моего примера можно без наследования. Тока мой пример сам по себе мне не нужен ...
Вопрос был именно в механизме передачи констант родителю ..
...
Рейтинг: 0 / 0
Наследование
    #34824608
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracle

Типа самый умный ?

Я знаю что для моего примера можно без наследования. Тока мой пример сам по себе мне не нужен ...
Вопрос был именно в механизме передачи констант родителю ..
Если бы вы всё делали по уму — такой проблемы не стояло бы.
...
Рейтинг: 0 / 0
Наследование
    #34824611
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Софтверный проктолог _fromoracle

Типа самый умный ?

Я знаю что для моего примера можно без наследования. Тока мой пример сам по себе мне не нужен ...
Вопрос был именно в механизме передачи констант родителю ..
Если бы вы всё делали по уму — такой проблемы не стояло бы.

По уму имеется ввиду с использованием getfield() для каждого поля ?
Или ещё что то другое ?
...
Рейтинг: 0 / 0
Наследование
    #34824665
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracle
По уму имеется ввиду с использованием getfield() для каждого поля ?
Или ещё что то другое ?
Да. Знакомо выражение Java Bean?
...
Рейтинг: 0 / 0
Наследование
    #34824687
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Софтверный проктолог _fromoracle
По уму имеется ввиду с использованием getfield() для каждого поля ?
Или ещё что то другое ?
Да. Знакомо выражение Java Bean?

Я вот не понимаю зачем флуд разводить ?

Да знакомо.
Уже попробывал через getfield() - заработало.

Тока представь что класс содержит 100 таких варов и таких 50 отнаследованных классов.
Все функциональность посути в parent а в каждом из детей она может быть опционально переопределена.
Можно тупо для каждого из полей писать в коде getfield().
Вопрос был в иллегантности решения.

Типа как PHP есть такая фича как auto_loaders.
Типа он автоматически понимает getfield и тупо ручками в код его писать не надо ...
...
Рейтинг: 0 / 0
Наследование
    #34825039
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracle

Тока представь что класс содержит 100 таких варов и таких 50 отнаследованных классов.
Все функциональность посути в parent а в каждом из детей она может быть опционально переопределена.
Можно тупо для каждого из полей писать в коде getfield().
Вопрос был в иллегантности решения.

Типа как PHP есть такая фича как auto_loaders.
Типа он автоматически понимает getfield и тупо ручками в код его писать не надо ...
Тут есть два варианта.
Можно своровать IDEA и с помощью его механизмов рефакторинга попыться быстро и элегантно перестроить прямые обращения на getter'ы как в основном классе, так и во всех наследуемых.
Или взять бесплатный Eclipse и посмотреть, что он предлагает в плане рефакторинга. Не исключено, что хватит и его возможностей.
...
Рейтинг: 0 / 0
Наследование
    #34825047
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracle
Типа он автоматически понимает getfield и тупо ручками в код его писать не надо ...
Дополнительно уточняю, что для этого есть такая вещь как автоматические средства рефакторинга кода, которые заменяют существующие вызовы. А когда пишешь новый класс — нет никакой разницы, использовать геттер или переменную.
...
Рейтинг: 0 / 0
Наследование
    #34825070
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ок ясно.
Буду копать.

Спасибо за советы ...
...
Рейтинг: 0 / 0
Наследование
    #34825156
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То что есть костыли для кривых решений отнюдь не значит, что надо этими кривыми решениями пользоваться. Сначала надо бы язык выучить, а потом уже претензии предъявлять. JavaBean тебе только знаком, не более того. Зачем это нужно и как это применять ты без понятия. Это раз.
Рефлексия нужна только в очень крайних случаях, как правило при создании библиотек типа Wicket и им подобных. Сейчас, насколько я понимаю, ее заменяют аннотациями (хотя может и не прав). Это два.
Учи ООП - это три.
Любая нормальная IDE умеет сама делать get/set-методы для указанных переменных (Eclipse точно умеет). Это четыре.
...
Рейтинг: 0 / 0
Наследование
    #34825243
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LeonidvТо что есть костыли для кривых решений отнюдь не значит, что надо этими кривыми решениями пользоваться. Сначала надо бы язык выучить, а потом уже претензии предъявлять. JavaBean тебе только знаком, не более того. Зачем это нужно и как это применять ты без понятия. Это раз.
Рефлексия нужна только в очень крайних случаях, как правило при создании библиотек типа Wicket и им подобных. Сейчас, насколько я понимаю, ее заменяют аннотациями (хотя может и не прав). Это два.
Учи ООП - это три.
Любая нормальная IDE умеет сама делать get/set-методы для указанных переменных (Eclipse точно умеет). Это четыре.

Претензий я ни к кому не предъявляю.

"JavaBean тебе только знаком, не более того. Зачем это нужно и как это применять ты без понятия"
Ну как вам сказать для моих задач хватает только того что называют сессионными объектами сервлетов. Может где то их и более активно применяют не знаю не сталкивался. Но что такое JavaBean

"Рефлексия нужна только в очень крайних случаях" - абсолютно не согласен...

"Учи ООП - это три" - Спасибо за совет, как нить сам разберусь ок ?

"Любая нормальная IDE умеет сама делать get/set-методы для указанных переменных" - я пишу в обычно текстовом редакторе без IDE.
...
Рейтинг: 0 / 0
Наследование
    #34825281
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracle
"Рефлексия нужна только в очень крайних случаях" - абсолютно не согласен...
Ты используешь в рабочем коде что-то кроме Class.forName? Приведи пример, пожалуйста. Ну, чтобы это было очень необходимо?

_fromoracle
"Любая нормальная IDE умеет сама делать get/set-методы для указанных переменных" - я пишу в обычно текстовом редакторе без IDE.
Зря.
...
Рейтинг: 0 / 0
Наследование
    #34825318
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Софтверный проктолог _fromoracle
"Рефлексия нужна только в очень крайних случаях" - абсолютно не согласен...
Ты используешь в рабочем коде что-то кроме Class.forName? Приведи пример, пожалуйста. Ну, чтобы это было очень необходимо?

_fromoracle
"Любая нормальная IDE умеет сама делать get/set-методы для указанных переменных" - я пишу в обычно текстовом редакторе без IDE.
Зря.
Плюстыща. А вообще именно в этом топике ник пришелся как нельзя в тему :)
...
Рейтинг: 0 / 0
Наследование
    #34825367
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Софтверный проктолог _fromoracle
"Рефлексия нужна только в очень крайних случаях" - абсолютно не согласен...
Ты используешь в рабочем коде что-то кроме Class.forName? Приведи пример, пожалуйста. Ну, чтобы это было очень необходимо?

_fromoracle
"Любая нормальная IDE умеет сама делать get/set-методы для указанных переменных" - я пишу в обычно текстовом редакторе без IDE.
Зря.

"Приведи пример, пожалуйста. Ну, чтобы это было очень необходимо"
Пожалуйста:
Есть класс внутри проперти инициализируюся функциями.
Типа
class test {
Object properties[] = {
"list1" , source.list1() ,
"list2" , source.list2() ,
......
"listn" , source.listn();
};
}

Есть объект test t = new test();
Необходимо рефрешнуть properties внутри объекта t, т.е. чтобы заново запустились list1 .. listn.
n может принимать значения больше 1000.
Я конечно понимаю что можно и ручками наваять че нить типа
public void setproperties() {
Object properties[] = {
"list1" , source.list1() ,
"list2" , source.list2() ,
......
"listn" , source.listn();
};
}

и в конструкторе дёргать this.setproperties();

И далее написать t.setproperties();

Но более красиво сделать так:
test newinstance = (test)t.getClass().newInstance();
t.setproperties(newinstance.getproperties());

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

по поводу IDE на вкус и цвет как известно ...
В том же NetBeans например нету автоматической закачки по FTP не сервер написанного кода.
...
Рейтинг: 0 / 0
Наследование
    #34825371
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зашедший Софтверный проктолог _fromoracle
"Рефлексия нужна только в очень крайних случаях" - абсолютно не согласен...
Ты используешь в рабочем коде что-то кроме Class.forName? Приведи пример, пожалуйста. Ну, чтобы это было очень необходимо?

_fromoracle
"Любая нормальная IDE умеет сама делать get/set-методы для указанных переменных" - я пишу в обычно текстовом редакторе без IDE.
Зря.
Плюстыща. А вообще именно в этом топике ник пришелся как нельзя в тему :)

Чей ник ?
...
Рейтинг: 0 / 0
Наследование
    #34825434
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracleПожалуйста:
Есть класс внутри проперти инициализируюся функциями.
Типа
class test {
Object properties[] = {
"list1" , source.list1() ,
"list2" , source.list2() ,
......
"listn" , source.listn();
};
}

Есть объект test t = new test();
Необходимо рефрешнуть properties внутри объекта t, т.е. чтобы заново запустились list1 .. listn.
n может принимать значения больше 1000.
Я конечно понимаю что можно и ручками наваять че нить типа
public void setproperties() {
Object properties[] = {
"list1" , source.list1() ,
"list2" , source.list2() ,
......
"listn" , source.listn();
};
}

и в конструкторе дёргать this.setproperties();

И далее написать t.setproperties();

Но более красиво сделать так:
test newinstance = (test)t.getClass().newInstance();
t.setproperties(newinstance.getproperties());

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

Э...А...ёпрст. Дальше забанено самоцензурой.
...
Рейтинг: 0 / 0
Наследование
    #34825438
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracleЧей ник ?
Софтверного Проктолога. Очень точно определяет описанное "арихитектурко типо Превед"
...
Рейтинг: 0 / 0
Наследование
    #34825445
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracle
Пожалуйста:
Есть класс внутри проперти инициализируюся функциями.
Типа
class test {
Object properties[] = {
"list1" , source.list1() ,
"list2" , source.list2() ,
......
"listn" , source.listn();
};
}

Есть объект test t = new test();
Необходимо рефрешнуть properties внутри объекта t, т.е. чтобы заново запустились list1 .. listn.
n может принимать значения больше 1000.
Я конечно понимаю что можно и ручками наваять че нить типа
public void setproperties() {
Object properties[] = {
"list1" , source.list1() ,
"list2" , source.list2() ,
......
"listn" , source.listn();
};
}

и в конструкторе дёргать this.setproperties();

И далее написать t.setproperties();

Но более красиво сделать так:
test newinstance = (test)t.getClass().newInstance();
t.setproperties(newinstance.getproperties());

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

Эээээээээээээээ...
Это каг таг?
...
Рейтинг: 0 / 0
Наследование
    #34825450
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да кстати для тех кто уже уже посмеялся и сказал

"test newinstance = (test)t.getClass().newInstance();
t.setproperties(newinstance.getproperties());

Заменить на

test newinstance = new test()
test.setproperties(newinstance.getproperties());
И никакой рефлексии

Усложним вернее приблизим схему к реальной когда

class test {
Object properties[] = {
"list1" , source.list1() ,
"list2" , source.list2() ,
......
"listn" , source.listn();
};
}

Помимо test есть отнаследованные childtest1 ... childtestn.
И В каждом из child-ов так инициализируется properties.
А далее внутри метода из test необходимо превести указанную процедуру для текущего объекта this.
Тут уж new test() не прокатит.
Остаётся только

test newinstance = (test)this.getClass().newInstance();
this.setproperties(newinstance.getproperties());
...
Рейтинг: 0 / 0
Наследование
    #34825459
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зашедший _fromoracleЧей ник ?
Софтверного Проктолога. Очень точно определяет описанное "арихитектурко типо Превед"

По-русски научись говорить ......
...
Рейтинг: 0 / 0
Наследование
    #34825463
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracle Зашедший _fromoracleЧей ник ?
Софтверного Проктолога. Очень точно определяет описанное "арихитектурко типо Превед"
По-русски научись говорить ......
Мну в основном платят за умение софт писать и на аглицком чутка ботать, такшта не парит К тому же, как показывает Ваш пример, умение писать на русском очевидно отняло способность писать вменяемый код.
...
Рейтинг: 0 / 0
Наследование
    #34825472
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracleДа кстати для тех кто уже уже посмеялся и сказал

"test newinstance = (test)t.getClass().newInstance();
t.setproperties(newinstance.getproperties());

Заменить на

test newinstance = new test()
test.setproperties(newinstance.getproperties());
И никакой рефлексии

Усложним вернее приблизим схему к реальной когда

class test {
Object properties[] = {
"list1" , source.list1() ,
"list2" , source.list2() ,
......
"listn" , source.listn();
};
}

Помимо test есть отнаследованные childtest1 ... childtestn.
И В каждом из child-ов так инициализируется properties.
А далее внутри метода из test необходимо превести указанную процедуру для текущего объекта this.
Тут уж new test() не прокатит.
Остаётся только

test newinstance = (test)this.getClass().newInstance();
this.setproperties(newinstance.getproperties());
Вот честно - я бы любого кандидата, пришедшего на собеседование, за такой код в тесте тут же, сразу и бесповоротно, выгонял бы. Потому что безнадежный случай. В случае, если у нас пропертя именованные (а тут так и есть) надо как минимум использовать типизированный Map.
...
Рейтинг: 0 / 0
Наследование
    #34825480
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зашедший _fromoracle Зашедший _fromoracleЧей ник ?
Софтверного Проктолога. Очень точно определяет описанное "арихитектурко типо Превед"
По-русски научись говорить ......
Мну в основном платят за умение софт писать и на аглицком чутка ботать, такшта не парит К тому же, как показывает Ваш пример, умение писать на русском очевидно отняло способность писать вменяемый код.

"отняло способность писать вменяемый код" - откуда Вввы это взяли ?
Вы видели мой реальный код ?
На это форуме лишь вопрос и пара сверстаных на коленях примеров.

"такшта не парит"

Ага а когда в магазин заходите на Jave с продавщицей общаетесь ?...
...
Рейтинг: 0 / 0
Наследование
    #34825497
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracle"отняло способность писать вменяемый код" - откуда Вввы это взяли ?
Вы видели мой реальный код ?
На это форуме лишь вопрос и пара сверстаных на коленях примеров.

Я вижу описанный пример - такого маразма не наблюдал уже очень давно. Можно много чего сверстать на коленке, но такой код - ч0ткий показатель, что у Вас крайне мало опыта в работе на Яве и - более обще - работы с ООП. Возможно, следствие перехода с pl/sql - слишком уж разные идеологии.
...
Рейтинг: 0 / 0
Наследование
    #34825499
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зашедший _fromoracleДа кстати для тех кто уже уже посмеялся и сказал

"test newinstance = (test)t.getClass().newInstance();
t.setproperties(newinstance.getproperties());

Заменить на

test newinstance = new test()
test.setproperties(newinstance.getproperties());
И никакой рефлексии

Усложним вернее приблизим схему к реальной когда

class test {
Object properties[] = {
"list1" , source.list1() ,
"list2" , source.list2() ,
......
"listn" , source.listn();
};
}


Помимо test есть отнаследованные childtest1 ... childtestn.
И В каждом из child-ов так инициализируется properties.
А далее внутри метода из test необходимо превести указанную процедуру для текущего объекта this.
Тут уж new test() не прокатит.
Остаётся только

test newinstance = (test)this.getClass().newInstance();
this.setproperties(newinstance.getproperties());
Вот честно - я бы любого кандидата, пришедшего на собеседование, за такой код в тесте тут же, сразу и бесповоротно, выгонял бы. Потому что безнадежный случай. В случае, если у нас пропертя именованные (а тут так и есть) надо как минимум использовать типизированный Map.

Напишите, пожалуйста, пример с мапом чтобы внутри объявления переменной проинициализировать можно было ....

Я может не такой гениальный чего не дочитал ...
...
Рейтинг: 0 / 0
Наследование
    #34825512
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зашедший _fromoracle"отняло способность писать вменяемый код" - откуда Вввы это взяли ?
Вы видели мой реальный код ?
На это форуме лишь вопрос и пара сверстаных на коленях примеров.

Я вижу описанный пример - такого маразма не наблюдал уже очень давно. Можно много чего сверстать на коленке, но такой код - ч0ткий показатель, что у Вас крайне мало опыта в работе на Яве и - более обще - работы с ООП. Возможно, следствие перехода с pl/sql - слишком уж разные идеологии.

Это лишь показатель малого опыта работы по вашими непосредственным руководством.
И не более того.
Где вы здесь видите проблемы с ООП ?
Обычно наследование пропертей и вообще больше ничего нет....
А если бы вы написали через Map, то как бы переинициализировали ?
Тоже не ясно.
...
Рейтинг: 0 / 0
Наследование
    #34825518
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracleЯ может не такой гениальный чего не дочитал ...
1. Зачем это инициализировать внутри объявления переменной? Добавить метод init() и вызывать внутри конструктора - не судьба?
2. Зачем хранить данные в массиве Object? Да еще "черезполосицу"?!
3. Что такое "source.list1()"? Вызов метода статического инстанса, вызов статического метода? Какой смысл вообще несет? Почем нельзя сделать метод с параметром ("list(int param)") вместо "тысячи методов", отличающихся только номером?
В общем, вопросов сей код вызывает столько, что непонятно, зачем вообще вся эта фигня написана.
...
Рейтинг: 0 / 0
Наследование
    #34825530
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати по поводу идеологий.

Вы мне обясните в чем маразм подобного хранения данных в Java ?
Он внутри Mapa их специально архивирует или что ?
Кстати массив я использую исключительно из за того что не нашёл как сделать ченить подобное

Map m = new HashMap(
list1 => source.newlist1 ,
list2 => source.newlist2 ,
...
listn => source.newlistn ,
);


Приходится для наглядности так выкручиваться а потом уже из такого проинициализированного массива стряпать Map и работать с ним ...
...
Рейтинг: 0 / 0
Наследование
    #34825539
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зашедший _fromoracleЯ может не такой гениальный чего не дочитал ...
1. Зачем это инициализировать внутри объявления переменной? Добавить метод init() и вызывать внутри конструктора - не судьба?
2. Зачем хранить данные в массиве Object? Да еще "черезполосицу"?!
3. Что такое "source.list1()"? Вызов метода статического инстанса, вызов статического метода? Какой смысл вообще несет? Почем нельзя сделать метод с параметром ("list(int param)") вместо "тысячи методов", отличающихся только номером?
В общем, вопросов сей код вызывает столько, что непонятно, зачем вообще вся эта фигня написана.

Эта фигня написана как пример использование рефакторинга.

В реальности это не list1 .. listn а реальные имена.
и методы тоже совсем совсем разные.

Это своего рода конфигурилка начальных значений класса.
Так написано для удобства работы и наглядностиююю
...
Рейтинг: 0 / 0
Наследование
    #34825565
kest_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracleПриходится для наглядности так выкручиваться а потом уже из такого проинициализированного массива стряпать Map и работать с ним ...
Можно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
     public   static   final  Map map =  new  HashMap() {
        {
            put("key1", "text1");
            put("key2", "text2");
            put("key3", "text3");
        }
    };

По поводу рефлексии. Общеизвестно, что основные ее недостатки - снижение читаемости кода, и более медленное выполнение.
Так что говорить что рефлексия помогает сделать код более читаемым в корне не верно, через неделю будешь смотреть на него и мучительно вспоминать что же за гениальную мысль ты реализовывал.
...
Рейтинг: 0 / 0
Наследование
    #34825577
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracle Зашедший _fromoracleЯ может не такой гениальный чего не дочитал ...
1. Зачем это инициализировать внутри объявления переменной? Добавить метод init() и вызывать внутри конструктора - не судьба?
2. Зачем хранить данные в массиве Object? Да еще "черезполосицу"?!
3. Что такое "source.list1()"? Вызов метода статического инстанса, вызов статического метода? Какой смысл вообще несет? Почем нельзя сделать метод с параметром ("list(int param)") вместо "тысячи методов", отличающихся только номером?
В общем, вопросов сей код вызывает столько, что непонятно, зачем вообще вся эта фигня написана.

Эта фигня написана как пример использование рефакторинга.

В реальности это не list1 .. listn а реальные имена.
и методы тоже совсем совсем разные.

Это своего рода конфигурилка начальных значений класса.
Так написано для удобства работы и наглядностиююю
То есть ЭТО - рефакторинг? А написать:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
 abstract   class  Base {
     private   final  Map<String, SomeClass> properties =  new  HashMap<String, SomeClass>();
     protected  Map getProperties() {
         return  properties;
    }
     public   void  init();
     public  Base() {
        init();
    }
}
 class  First  extends  Base {
     public   void  init() {
        getProperties().put("list1", source.list1());
        getProperties().put("list2", source.list2());
    }
}
 class  Second  extends  First {
     public   void  init() {
         super .init();
        getProperties().put("list3", source.list3());
    }
}
не судьба? Фишка же хранения в типизированном мапе, а не в массиве, в том, что оно не даст пропустить вариант типа "..., "list199", "list200", sources.list200()...". В таком случае ошибка вылезет сразу, во время компиляции.
...
Рейтинг: 0 / 0
Наследование
    #34825656
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracle
Но более красиво сделать так:
test newinstance = (test)t.getClass().newInstance();
t.setproperties(newinstance.getproperties());

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

Учи ООП
...
Рейтинг: 0 / 0
Наследование
    #34825785
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kest_ru _fromoracleПриходится для наглядности так выкручиваться а потом уже из такого проинициализированного массива стряпать Map и работать с ним ...
Можно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
     public   static   final  Map map =  new  HashMap() {
        {
            put("key1", "text1");
            put("key2", "text2");
            put("key3", "text3");
        }
    };

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

Спасибо ...
...
Рейтинг: 0 / 0
Наследование
    #34825792
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зашедший _fromoracle Зашедший _fromoracleЯ может не такой гениальный чего не дочитал ...
1. Зачем это инициализировать внутри объявления переменной? Добавить метод init() и вызывать внутри конструктора - не судьба?
2. Зачем хранить данные в массиве Object? Да еще "черезполосицу"?!
3. Что такое "source.list1()"? Вызов метода статического инстанса, вызов статического метода? Какой смысл вообще несет? Почем нельзя сделать метод с параметром ("list(int param)") вместо "тысячи методов", отличающихся только номером?
В общем, вопросов сей код вызывает столько, что непонятно, зачем вообще вся эта фигня написана.

Эта фигня написана как пример использование рефакторинга.

В реальности это не list1 .. listn а реальные имена.
и методы тоже совсем совсем разные.

Это своего рода конфигурилка начальных значений класса.
Так написано для удобства работы и наглядностиююю
То есть ЭТО - рефакторинг? А написать:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
 abstract   class  Base {
     private   final  Map<String, SomeClass> properties =  new  HashMap<String, SomeClass>();
     protected  Map getProperties() {
         return  properties;
    }
     public   void  init();
     public  Base() {
        init();
    }
}
 class  First  extends  Base {
     public   void  init() {
        getProperties().put("list1", source.list1());
        getProperties().put("list2", source.list2());
    }
}
 class  Second  extends  First {
     public   void  init() {
         super .init();
        getProperties().put("list3", source.list3());
    }
}
не судьба? Фишка же хранения в типизированном мапе, а не в массиве, в том, что оно не даст пропустить вариант типа "..., "list199", "list200", sources.list200()...". В таком случае ошибка вылезет сразу, во время компиляции.
Я как вы правильно заметили новичок в Java но не в ООП и не в программировании.
Так писать бы ни стал по скока конфигурить


getProperties().put("list1", source.list1());
getProperties().put("list2", source.list2());
...

getProperties().put("listn", source.listn());

Неудобно ...

Короче помоему криво это.
Посмотрите скрипты на Perl сразу всё поймете ...
...
Рейтинг: 0 / 0
Наследование
    #34825793
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonidv _fromoracle
Но более красиво сделать так:
test newinstance = (test)t.getClass().newInstance();
t.setproperties(newinstance.getproperties());

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

Учи ООП

Я бы поправил не ООП а Java.
С ООП вроде порядок ...
...
Рейтинг: 0 / 0
Наследование
    #34825874
krjhocrkjh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_fromoracleНарод такой вопрос по джаве.
Долго копал может кто подскажет.

есть файл test.java:

class parent {
public String var="parent";

public void printvar() {
System.out.println(var);
}
}

class child extends parent {
public String var="child";

}

class test {
public static void main(String[] args) {
child c = new child();
c.printvar();
}

}

Печатает "parent".

Как сделать чтобы наследовалось значение поля ?
Заранее спасибо ...Смотрел, смотрел, потом понял. У тебя ж метод printvar() выводит значение parent.var, о child.var он даже представления не имеет. Оверрайдить можно методы, а вот можно ли оверрайдить переменные? Походу в child есть 2 var: super.var и просто var.
...
Рейтинг: 0 / 0
Наследование
    #34825881
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krjhocrkjh _fromoracleНарод такой вопрос по джаве.
Долго копал может кто подскажет.

есть файл test.java:

class parent {
public String var="parent";

public void printvar() {
System.out.println(var);
}
}

class child extends parent {
public String var="child";

}

class test {
public static void main(String[] args) {
child c = new child();
c.printvar();
}

}

Печатает "parent".

Как сделать чтобы наследовалось значение поля ?
Заранее спасибо ...Смотрел, смотрел, потом понял. У тебя ж метод printvar() выводит значение parent.var, о child.var он даже представления не имеет. Оверрайдить можно методы, а вот можно ли оверрайдить переменные? Походу в child есть 2 var: super.var и просто var.

оверрайдить переменные в джаве походу нельзя.
хотя this.var поидее должен выводить var объекта this.
Да поначалу приходилось внутри child делать super.var = this.var;
...
Рейтинг: 0 / 0
Наследование
    #34825887
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracle
Я как вы правильно заметили новичок в Java но не в ООП и не в программировании.
Так писать бы ни стал по скока конфигурить


getProperties().put("list1", source.list1());
getProperties().put("list2", source.list2());
...

getProperties().put("listn", source.listn());

Неудобно ...

Короче помоему криво это.
Посмотрите скрипты на Perl сразу всё поймете ...
Вопрос не в том "скока конфигурить", вопрос в том, насколько легко поддерживать и сможет ли человек через год зайти в код и при необходимости легко поменять данные/процессы, обнаружить максимум ошибок на этапе компиляции (а не вчитываться потом до посинения в портянки стэктрейсов с NPE/ClassCastException). Когда проект делается не для "впарить клиенту и свалить побыстрее", а для того, чтобы как минимум несколько лет его можно было поддерживать и развивать - экономить на булавках смысла не имеет. Не говоря уже о том, что сама идея делать класс, зависящий от сотен и тем более тысяч настроек - крайне кривая арихитектура. В случае, когда много разных настроек и они на всякое влияют - имхо надо смотреть в сторону Command/State/Strategy и разбивать весь этот монолитный функционал с тысячей переменных на стройный и понятный набор небольших, задокументированных, легко тестируемых и поддерживаемых классов.
...
Рейтинг: 0 / 0
Наследование
    #34825905
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зашедший _fromoracle
Я как вы правильно заметили новичок в Java но не в ООП и не в программировании.
Так писать бы ни стал по скока конфигурить


getProperties().put("list1", source.list1());
getProperties().put("list2", source.list2());
...

getProperties().put("listn", source.listn());

Неудобно ...

Короче помоему криво это.
Посмотрите скрипты на Perl сразу всё поймете ...
Вопрос не в том "скока конфигурить", вопрос в том, насколько легко поддерживать и сможет ли человек через год зайти в код и при необходимости легко поменять данные/процессы, обнаружить максимум ошибок на этапе компиляции (а не вчитываться потом до посинения в портянки стэктрейсов с NPE/ClassCastException). Когда проект делается не для "впарить клиенту и свалить побыстрее", а для того, чтобы как минимум несколько лет его можно было поддерживать и развивать - экономить на булавках смысла не имеет. Не говоря уже о том, что сама идея делать класс, зависящий от сотен и тем более тысяч настроек - крайне кривая арихитектура. В случае, когда много разных настроек и они на всякое влияют - имхо надо смотреть в сторону Command/State/Strategy и разбивать весь этот монолитный функционал с тысячей переменных на стройный и понятный набор небольших, задокументированных, легко тестируемых и поддерживаемых классов.

А чем проблема поддерживать мою структуру ?
Кстати при Object[] нивжизнь не наткнётесь на ClassCastException :)

По поводу Command/State/Strategy - не знаю что это такое, так что ответить нечего.
Не совсем понимаю т.е. для каждого из пропертей свой класс ?
Может в этом и есть глубокий смысл, но мне видно не понять зачем ...

"впарить клиенту" - да всё уже впарено, вот сижу догоняю как улучшит код.

Наверное надо в команду идти уму разуму набираться, сразу стока много нового узнаешь, чего по книжкам никогда не догонишь, а потом через годик когда всё поймешь и станешь гуру задаешь себе вопрос а не**ра это было делать и лезешь в ветку форма "Java мне 35" ....

Вот такие дела ...
...
Рейтинг: 0 / 0
Наследование
    #34825911
krjhocrkjh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_fromoracleМожно тупо для каждого из полей писать в коде getfield().
Вопрос был в иллегантности решения.А можно хотя бы в школе доучиться, прежде чем на форум с вопросами лезть. Вы ведь наверняка даже в ПТУ не отучились, сразу после 8-го класса армия, механик-водитель танка, да? Потом пару раз упал без парашюта, да? Головой.

Я бы поправил не ООП а Java.
С ООП вроде порядок ...Ты не то, что ООП, ты грамматику с орфографией не знаешь. Иллегантный. Чтоб тебе только иллегантные после литра виски давали.

Тока представь что класс содержит 100 таких варов и таких 50 отнаследованных классов.Фамилии, явки, пароли. Это где так пишут, чтобы от них держаться подальше?
Можно тупо для каждого из полей писать в коде getfield().
Вопрос был в иллегантности решения.В любой IDE сейчас есть пункт меню "Generate getters & setters" Тебе даже писать ничего не придется.Типа как PHP есть такая фича как auto_loaders.
Типа он автоматически понимает getfield и тупо ручками в код его писать не надо ...Стоп. Зачем тогда тебе жаба? PHP в зубы и педаль до посинения. Стране нужны герои.
...
Рейтинг: 0 / 0
Наследование
    #34825915
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krjhocrkjh _fromoracleМожно тупо для каждого из полей писать в коде getfield().
Вопрос был в иллегантности решения.А можно хотя бы в школе доучиться, прежде чем на форум с вопросами лезть. Вы ведь наверняка даже в ПТУ не отучились, сразу после 8-го класса армия, механик-водитель танка, да? Потом пару раз упал без парашюта, да? Головой.

Я бы поправил не ООП а Java.
С ООП вроде порядок ...Ты не то, что ООП, ты грамматику с орфографией не знаешь. Иллегантный. Чтоб тебе только иллегантные после литра виски давали.

Тока представь что класс содержит 100 таких варов и таких 50 отнаследованных классов.Фамилии, явки, пароли. Это где так пишут, чтобы от них держаться подальше?
Можно тупо для каждого из полей писать в коде getfield().
Вопрос был в иллегантности решения.В любой IDE сейчас есть пункт меню "Generate getters & setters" Тебе даже писать ничего не придется. Типа как PHP есть такая фича как auto_loaders.
Типа он автоматически понимает getfield и тупо ручками в код его писать не надо ...Стоп. Зачем тогда тебе жаба? PHP в зубы и педаль до посинения. Стране нужны герои.

Ну что тут скажешь.
На этот бред ответить даже нечего просто посылаю на и всё.
...
Рейтинг: 0 / 0
Наследование
    #34825919
_fromoracle
Кстати при Object[] нивжизнь не наткнётесь на ClassCastException :)

наивный чукоцкий мальчег
...
Рейтинг: 0 / 0
Наследование
    #34825924
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это клиника. _fromoracle
Кстати при Object[] нивжизнь не наткнётесь на ClassCastException :)

наивный чукоцкий мальчег

все флудеры и бердогенераторы в сад топик можно закрывать...
...
Рейтинг: 0 / 0
Наследование
    #34825928
krjhocrkjh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_fromoracleВ том же NetBeans например нету автоматической закачки по FTP не сервер написанного кода.PHP в зубы, там есть скрипты для такой сложной задачи. NetBeans деплоит war-ы на сервер сам. Не знаешь, что такое war-ы? А .ул. ты на форуме вопросы задаешь, не прочитав http://www.sql.ru/forum/actualthread.aspx?tid=227954?

и в конструкторе дёргать this.setproperties();

И далее написать t.setproperties();Ничего не понял, кто на ком стоял? Когда сначала дергать t.setproperties, вначале или вконструкторе?


Заменить на

test newinstance = new test()
test.setproperties(newinstance.getproperties());
И никакой рефлексииА зачем вообще там рефлексия? Типа модно? "Эй, чувак, посмотри на меня, делай как я, делай как я!" ? Ы?

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

Кстати массив я использую исключительно из за того что не нашёл как сделать ченить подобноеЯ с жабой уже 4 года разбираюсь. Это к тому, что если не нашёл, значит быстро искал. Годика через 3-4 приходи.
...
Рейтинг: 0 / 0
Наследование
    #34825929
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracle
А чем проблема поддерживать мою структуру ?
Кстати при Object[] нивжизнь не наткнётесь на ClassCastException :)

По поводу Command/State/Strategy - не знаю что это такое, так что ответить нечего.
Не совсем понимаю т.е. для каждого из пропертей свой класс ?
Может в этом и есть глубокий смысл, но мне видно не понять зачем ...

"впарить клиенту" - да всё уже впарено, вот сижу догоняю как улучшит код.

Наверное надо в команду идти уму разуму набираться, сразу стока много нового узнаешь, чего по книжкам никогда не догонишь, а потом через годик когда всё поймешь и станешь гуру задаешь себе вопрос а не**ра это было делать и лезешь в ветку форма "Java мне 35" ....

Вот такие дела ...
При Object? Запросто, как только вместо String потребуется класть свойство посложнее - тогда, чтобы его в нормальном виде получить, надо будет этот самый Object из массива приводить к энтому классу, а оператор-забивальщик всего этого пис оф крапа случайно забыл добавить наименование три тыщи четыреста десятого пропертя, в итоге индекс съехал на единицу и вместо MyPropertyClass под индексом 3411 в массиве лежит банальный стринг. В итоге - здравствуйте, уважаемые пользователи. Далее, что такое State/Command/Strategy - можно прочитать в любой книжке типа "Объектно-ориентированный дизайн для подготовительной группы детского сада". То, что Вы не знаете таких страшных словей - серьезный показатель. Оно, конечно, шаблоны GoF - не догма, но мозги на место ставят хорошо. Еще очень советую популярное книшко Фаулера "Рефакторинг". Там можно посмотреть описание того, что есть рефакторинг на самом деле, а не выдумывать собственное представление об этом понятии.
...
Рейтинг: 0 / 0
Наследование
    #34825945
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krjhocrkjh _fromoracleВ том же NetBeans например нету автоматической закачки по FTP не сервер написанного кода.PHP в зубы, там есть скрипты для такой сложной задачи. NetBeans деплоит war-ы на сервер сам. Не знаешь, что такое war-ы? А .ул. ты на форуме вопросы задаешь, не прочитав http://www.sql.ru/forum/actualthread.aspx?tid=227954?

и в конструкторе дёргать this.setproperties();

И далее написать t.setproperties();Ничего не понял, кто на ком стоял? Когда сначала дергать t.setproperties, вначале или вконструкторе?


Заменить на

test newinstance = new test()
test.setproperties(newinstance.getproperties());
И никакой рефлексииА зачем вообще там рефлексия? Типа модно? "Эй, чувак, посмотри на меня, делай как я, делай как я!" ? Ы?

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

Кстати массив я использую исключительно из за того что не нашёл как сделать ченить подобноеЯ с жабой уже 4 года разбираюсь. Это к тому, что если не нашёл, значит быстро искал. Годика через 3-4 приходи.

Куда приходить ?
Это ваш личный форум ?
Залез задал начинающий вопрос, кто смог - тот ответил.
То что вы такой умный сидите тут и хамите ничинающим - вот это действительно серьёзный показатель ...
...
Рейтинг: 0 / 0
Наследование
    #34825948
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зашедший _fromoracle
А чем проблема поддерживать мою структуру ?
Кстати при Object[] нивжизнь не наткнётесь на ClassCastException :)

По поводу Command/State/Strategy - не знаю что это такое, так что ответить нечего.
Не совсем понимаю т.е. для каждого из пропертей свой класс ?
Может в этом и есть глубокий смысл, но мне видно не понять зачем ...

"впарить клиенту" - да всё уже впарено, вот сижу догоняю как улучшит код.

Наверное надо в команду идти уму разуму набираться, сразу стока много нового узнаешь, чего по книжкам никогда не догонишь, а потом через годик когда всё поймешь и станешь гуру задаешь себе вопрос а не**ра это было делать и лезешь в ветку форма "Java мне 35" ....

Вот такие дела ...
При Object? Запросто, как только вместо String потребуется класть свойство посложнее - тогда, чтобы его в нормальном виде получить, надо будет этот самый Object из массива приводить к энтому классу, а оператор-забивальщик всего этого пис оф крапа случайно забыл добавить наименование три тыщи четыреста десятого пропертя, в итоге индекс съехал на единицу и вместо MyPropertyClass под индексом 3411 в массиве лежит банальный стринг. В итоге - здравствуйте, уважаемые пользователи. Далее, что такое State/Command/Strategy - можно прочитать в любой книжке типа "Объектно-ориентированный дизайн для подготовительной группы детского сада". То, что Вы не знаете таких страшных словей - серьезный показатель. Оно, конечно, шаблоны GoF - не догма, но мозги на место ставят хорошо. Еще очень советую популярное книшко Фаулера "Рефакторинг". Там можно посмотреть описание того, что есть рефакторинг на самом деле, а не выдумывать собственное представление об этом понятии.

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

По поводу всего остального ну не нужно мне это, так понятнее выражаюсь ???
Мне нужно было просто увидеть в родителе переменную ребёнка.
Как нужно будет обязательно открою отдельный топик и спрошу вас об этом ...
...
Рейтинг: 0 / 0
Наследование
    #34825949
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracleЗалез задал начинающий вопрос, кто смог - тот ответил.
Вопрос был неправильный. Надо спрашивать не "с какой стороны за микроскоп браться удобнее, чтобы гвоздь забиь", а "как им (микроскопом) правильно пользоваться" или, в крайнем случае, "где можно взять молоток".
...
Рейтинг: 0 / 0
Наследование
    #34825954
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracleПо поводу всего остального ну не нужно мне это, так понятнее выражаюсь ???
A!(c) Вопросов и комментариев больше не имею.
...
Рейтинг: 0 / 0
Наследование
    #34825955
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зашедший _fromoracleЗалез задал начинающий вопрос, кто смог - тот ответил.
Вопрос был неправильный. Надо спрашивать не "с какой стороны за микроскоп браться удобнее, чтобы гвоздь забиь", а "как им (микроскопом) правильно пользоваться" или, в крайнем случае, "где можно взять молоток".

Я так подозреваю что зашедший и krjhocrkjh это одно лицо.
Причем лицо тяжело больное и травмированное.
Господа модераторы забаньте этого Java-робота пожалуйста.
Нормальным людям жить не дают ...
...
Рейтинг: 0 / 0
Наследование
    #34825958
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracle Зашедший _fromoracleЗалез задал начинающий вопрос, кто смог - тот ответил.
Вопрос был неправильный. Надо спрашивать не "с какой стороны за микроскоп браться удобнее, чтобы гвоздь забиь", а "как им (микроскопом) правильно пользоваться" или, в крайнем случае, "где можно взять молоток".

Я так подозреваю что зашедший и krjhocrkjh это одно лицо.
Причем лицо тяжело больное и травмированное.
Господа модераторы забаньте этого Java-робота пожалуйста.
Нормальным людям жить не дают ...
Смеялсо. Немножко позитива не бывает лишним, спасибо
...
Рейтинг: 0 / 0
Наследование
    #34825961
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зашедший _fromoracle Зашедший _fromoracleЗалез задал начинающий вопрос, кто смог - тот ответил.
Вопрос был неправильный. Надо спрашивать не "с какой стороны за микроскоп браться удобнее, чтобы гвоздь забиь", а "как им (микроскопом) правильно пользоваться" или, в крайнем случае, "где можно взять молоток".

Я так подозреваю что зашедший и krjhocrkjh это одно лицо.
Причем лицо тяжело больное и травмированное.
Господа модераторы забаньте этого Java-робота пожалуйста.
Нормальным людям жить не дают ...
Смеялсо. Немножко позитива не бывает лишним, спасибо

Я бы после такого плакал ...
Честно .......
...
Рейтинг: 0 / 0
Наследование
    #34825970
гыгыгы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_fromoracle Зашедший _fromoracle Зашедший _fromoracleЗалез задал начинающий вопрос, кто смог - тот ответил.
Вопрос был неправильный. Надо спрашивать не "с какой стороны за микроскоп браться удобнее, чтобы гвоздь забиь", а "как им (микроскопом) правильно пользоваться" или, в крайнем случае, "где можно взять молоток".

Я так подозреваю что зашедший и krjhocrkjh это одно лицо.
Причем лицо тяжело больное и травмированное.
Господа модераторы забаньте этого Java-робота пожалуйста.
Нормальным людям жить не дают ...
Смеялсо. Немножко позитива не бывает лишним, спасибо

Я бы после такого плакал ...
Честно .......
эмо?
...
Рейтинг: 0 / 0
Наследование
    #34825974
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracleЯ бы после такого плакал ... Честно .......
Ну, тогда человеку, называющему себя "программистом", после По поводу Command/State/Strategy - не знаю что это такое, так что ответить нечего вообще вешаться надо.
ЗЫ Ладно, все это флуд и оффтоп, завязываю. А почитать GoF & Фаулера таки рекомендую. Полезно,
притом для любого языка.
...
Рейтинг: 0 / 0
Наследование
    #34825978
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зашедший _fromoracleЯ бы после такого плакал ... Честно .......
Ну, тогда человеку, называющему себя "программистом", после По поводу Command/State/Strategy - не знаю что это такое, так что ответить нечего вообще вешаться надо.
ЗЫ Ладно, все это флуд и оффтоп, завязываю. А почитать GoF & Фаулера таки рекомендую. Полезно,
притом для любого языка.

Блин чего тока про программистов не говорят.
Очередной бред...

Вы случайно не в Люксе работаете ?
Или в DeutchBank ?
Наверное Java Team Leader 3500$ ?


Не нужно мне всё это поскоку не пишу промышленный большой софт.
Всё тупо и банально......

Бай ...
...
Рейтинг: 0 / 0
Наследование
    #34825984
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracle Зашедший _fromoracleЯ бы после такого плакал ... Честно .......
Ну, тогда человеку, называющему себя "программистом", после По поводу Command/State/Strategy - не знаю что это такое, так что ответить нечего вообще вешаться надо.
ЗЫ Ладно, все это флуд и оффтоп, завязываю. А почитать GoF & Фаулера таки рекомендую. Полезно,
притом для любого языка.

Блин чего тока про программистов не говорят.
Очередной бред...

Вы случайно не в Люксе работаете ?
Или в DeutchBank ?
Наверное Java Team Leader 3500$ ?


Не нужно мне всё это поскоку не пишу промышленный большой софт.
Всё тупо и банально......

Бай ...
Не, сейчас не в люксе и не дойче, а нащ0д позиции и компенсации - в общем как-то так, да.
Щаслива...
...
Рейтинг: 0 / 0
Наследование
    #34826016
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to: Зашедший

Да последний вопрос.
Сколько если не секрет у вас в конторе Junior-ы получают и сколько длится период их сидения в джуниорстве ?
...
Рейтинг: 0 / 0
Наследование
    #34826132
scof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Случайно зашел в топик и офигел, ну и понаписали !
Внимание, правильный ответ:

class parent {
public String var="parent";

public void printvar() {
System.out.println(var);
}
}

class child extends parent {
{
var="child";
}

}

class test {
public static void main(String[] args) {
child c = new child();
c.printvar();
}

}
...
Рейтинг: 0 / 0
Наследование
    #34826425
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
scofСлучайно зашел в топик и офигел, ну и понаписали !
Внимание, правильный ответ:

class parent {
public String var="parent";

public void printvar() {
System.out.println(var);
}
}

class child extends parent {
{
var="child";
}

}

class test {
public static void main(String[] args) {
child c = new child();
c.printvar();
}

}

Я понял тут каждый решает какую то свою задачу.
С вложенными подклассами не канает.

Правильный адекватный ответ дали два человека в этом топике, всё остальное гон, обсералово, и дешёвая попытка то ли навязать своё видение или идеололию то ли посмеятся и застебяать.

Тревожный показатель товарищи.
Задумайтесь ...
...
Рейтинг: 0 / 0
Наследование
    #34826436
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_fromoracle scofСлучайно зашел в топик и офигел, ну и понаписали !
Внимание, правильный ответ:

class parent {
public String var="parent";

public void printvar() {
System.out.println(var);
}
}

class child extends parent {
{
var="child";
}

}

class test {
public static void main(String[] args) {
child c = new child();
c.printvar();
}

}



Про вложенные подклассы я конечно загнул.
Тут просто чтоли мой код переписали ?
Хорош флудить....
...
Рейтинг: 0 / 0
Наследование
    #34826438
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_fromoracle _fromoracle scofСлучайно зашел в топик и офигел, ну и понаписали !
Внимание, правильный ответ:

class parent {
public String var="parent";

public void printvar() {
System.out.println(var);
}
}

class child extends parent {
{
var="child";
}

}

class test {
public static void main(String[] args) {
child c = new child();
c.printvar();
}

}



Про вложенные подклассы я конечно загнул.
Тут просто чтоли мой код переписали ?
Хорош флудить....

А не всё сорри гоню.
Нашёл разницу......
Спасибо, попробую запустить...
...
Рейтинг: 0 / 0
Наследование
    #34826457
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracleЯ так подозреваю что зашедший и krjhocrkjh это одно лицо.
Причем лицо тяжело больное и травмированное.
Господа модераторы забаньте этого Java-робота пожалуйста.
Нормальным людям жить не дают ...
Да, я то же их alter ego.
Вчитайся в свои топики. В них одно хамство и маразм. Надо проще на жизнь смотреть, бери пример: http://www.sql.ru/forum/actualpost.aspx?bid=38&tid=477272&mid=4714422&p=3&act=quot#4714427
ПМСМ, на юниора тебе рано еще идти, тебе бы пока на Pascal писать научится. С указателями поработать, алгоритмики написать А так, PHP - первый язык? SQL на уровне SELECT/UPDAT? Я отгадал?
...
Рейтинг: 0 / 0
Наследование
    #34826485
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonidv _fromoracleЯ так подозреваю что зашедший и krjhocrkjh это одно лицо.
Причем лицо тяжело больное и травмированное.
Господа модераторы забаньте этого Java-робота пожалуйста.
Нормальным людям жить не дают ...
Да, я то же их alter ego.
Вчитайся в свои топики. В них одно хамство и маразм. Надо проще на жизнь смотреть, бери пример: http://www.sql.ru/forum/actualpost.aspx?bid=38&tid=477272&mid=4714422&p=3&act=quot#4714427
ПМСМ, на юниора тебе рано еще идти, тебе бы пока на Pascal писать научится. С указателями поработать, алгоритмики написать А так, PHP - первый язык? SQL на уровне SELECT/UPDAT? Я отгадал?

Не угадал...

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

"на юниора тебе рано еще идти" - тебя спросить забыл ...
Сам то ты на чем пишешь неужто на джава.
А нафига тогда здесь сидишь ?
Некого больше уму разуму учить...

Ну не спрашивал я никого здесь кем мне работать, рано или нет, и пр.
Вопрос был банальный, а ваше желание отыграться на новичках за тяжёлые армейские довольно очевидно...
...
Рейтинг: 0 / 0
Наследование
    #34826685
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracleНу не спрашивал я никого здесь кем мне работать, рано или нет, и пр.
Вопрос был банальный, а ваше желание отыграться на новичках за тяжёлые армейские довольно очевидно...

Ты напрасно обижаешься. Встретив альтернативную точку зрения, нужно радоваться. Радоваться возможности либо опровергнуть её (путём логических доводов, конечно же), либо изменить свою, тем самым лишившись части заблуждений (наличие которых свойственно любому человеку) или хотя бы возможности узнать что-то новое. Обижаясь, ты лишаешь себя этой радости и выставляешь на посмешище.
...
Рейтинг: 0 / 0
Наследование
    #34826906
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NotGonnaGetUs _fromoracleНу не спрашивал я никого здесь кем мне работать, рано или нет, и пр.
Вопрос был банальный, а ваше желание отыграться на новичках за тяжёлые армейские довольно очевидно...

Ты напрасно обижаешься. Встретив альтернативную точку зрения, нужно радоваться. Радоваться возможности либо опровергнуть её (путём логических доводов, конечно же), либо изменить свою, тем самым лишившись части заблуждений (наличие которых свойственно любому человеку) или хотя бы возможности узнать что-то новое. Обижаясь, ты лишаешь себя этой радости и выставляешь на посмешище.

Это не обида.
Это скорее гнев и возмущение ...

Точка зрения "Учи ООП, ИДИНА PHP и прочее далёкое от реальности" конечно сильно альтернативная.

Логически я пытался общаться до наступления момента откоровенного стеба надо мной моими мыслями, кодом и фразочками типа "Ошибка в ДНК, Безнадёжный случай и клиника".

А по поводу на Посмешище - как то не особо парит, был бы перед кем стыдится ...
...
Рейтинг: 0 / 0
Наследование
    #34827233
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracleВопрос был банальный, а ваше желание отыграться на новичках за тяжёлые армейские довольно очевидно...
Проблема в том, что вместо вопроса - "А как вы считаете правильно" ты начинаешь отстаивать свою точку зрения. Плюс, вопрос действительно банальный и может быть решен с помощью Java Language Specification. Правильный вопрос должен был быть - "А почему так нельзя?". Идеальный вопрос - "А почему так нельзя, ведь этого полезно тогда-то и тогда-то". Вот эти вопрос, ПМСМ, являются хорошими и правильными.

Насчет хамства (http://www.sql.ru/forum/actualthread.aspx?tid=477272&pg=1#4711925):
_fromoracle
Типа самый умный ?

PS Почему-то grexhide вспомнился... Точнее, что он писал о JEE. Если человек не знает базовые понятия (типа правил наследования) и уже пишет корпоративные приложения (а где еще EJB нужен?), становится понятно - откуда может появляться негатив в отношение java-программистов.
...
Рейтинг: 0 / 0
Наследование
    #34827334
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracleЛогически я пытался общаться до наступления момента откоровенного стеба надо мной моими мыслями, кодом и фразочками типа "Ошибка в ДНК, Безнадёжный случай и клиника".

А по поводу на Посмешище - как то не особо парит, был бы перед кем стыдится ...

Главное не форма, а содержание. Разве нет? :)
Товарищи ведь верно подметили, что тебе надо учить ооп или идти писать на php и perl, если ты в них находишь прелесть.

Про наследование правильно ответили: не нужен здесь рефшлекшин.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
 class  test
{
     private  Object[] properties = createProperties();

     protected  Object[] createProperties() //перекрывается в наследниках, если это необходимо
    {
         return   new  Object[]{
                "list1", source.list1(),
                "list2", source.list2(),
                //...
                "listn", source.listn()
        };
    }

     public  Object[] getProperties()
    {
         return  properties;
    }

     public   void  resetProperties() //"рефрешит" properties 
    {
        properties = createProperties();
    }
}

Так же разумно было замечено, что массив из Object не лучший способ хранить пары "ключ-значение", т.к. поиск по ключу значения требует линейного времени, т.к. нужно явно приводить object к требуемому типу, что не даёт возможности компилятору помочь отлавливать глупые ошибки в коде, т.к. почти наверняка код для поиска и перебора значений в properties при такой реализации будет дублироваться, а это ограничивает возможности безолезненного изменения представления properties в коде (что вполне вероятно в силу медленности доступа к нужному значению при текущей реализации), т.к. достаточно лёгко ошибиться в названии свойства и проблематично понять, какие свойства вообще есть у данного объекта.

Если прочитаешь "рефакторинг" фаулера, то сразу поймёшь сколько "душка" содержится в твоём коде и почему он вызывает такую реакцию у эмоционально не сдержанной публики на этом форуме, ну и поймёшь как этот код переделать.

В частности, если значения в свойствах могут быть только строками, можно поступить так:

Код: plaintext
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.
 class  test
{
     public   static   final  String LIST1 = "list1";
     public   static   final  String LIST2 = "list2";
    //...
     public   static   final  String LISTN = "listn";

     private  Map<String, String> properties = createProperties();

     protected  Map<String, String> createProperties() //перекрывается в наследниках, если необходимо
    {
        //переделать объявление массива в инициализацию мапы, 
        //можно воспользовавшись find & replace функциональностью IDE или ultraedit'a

        //Константы вводятся при помощи средств автоматического рефакторинга в IDE

        HashMap<String, String> map =  new  HashMap<String, String>();

        map.put(LIST1, source.list1()); 
        map.put(LIST2, source.list2());
        //...
        map.put(LISTN, source.listn());

         return  map;
    }

     public  Map<String,String> getProperties()
    {
         return  properties;
    }

     public   void  resetProperties()
    {
        properties = createProperties();
    }
}

Этот код уже лучше, т.к. структура данных выбранная для хранения свойств в большей степени отражает их "сущность".

Если значения могут быть разных типов, то универсального решения уже не будет, т.к. многое зависит от _задачи_ (ты же привёл только _решение_).

Одним из "почти" универсальных решений, будет, не паря мозг, написать:
Код: plaintext
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.
 class  test
{
     private  String list1;
     private  String list2;
    //...
     private   int  listn;

     public  test()
    {
        resetProperties();
    }

     public   void  resetProperties()  //перекрывается в наследниках
    {
        list1 = source.list1();
        list2 = source.list2();
        //...
        listn = source.listn();
    }

     public  String getList1()
    {
         return  list1;
    }

     public  String getList2()
    {
         return  list2;
    }

    //...

     public   int  getListn()
    {
         return  listn;
    }
}


------

Отвергать предложенные тебе решения, основываясь на утверждении "нужно писать много строчек", можно только если программа сама по себе очень маленькая и пишется в одно рыло.
Не стыковка в том, что большинство участников форума работает не в одиночку и над достаточно крупными проектами, поэтому серьёзно принимать такой аргумент они не могут.
К тому же современные IDE делают львиную долю такой работы за тебя.
...
Рейтинг: 0 / 0
Наследование
    #34827464
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TO NotGonnaGetUs:
NotGonnaGetUs _fromoracleЛогически я пытался общаться до наступления момента откоровенного стеба надо мной моими мыслями, кодом и фразочками типа "Ошибка в ДНК, Безнадёжный случай и клиника".

А по поводу на Посмешище - как то не особо парит, был бы перед кем стыдится ...

Главное не форма, а содержание. Разве нет? :)
Товарищи ведь верно подметили, что тебе надо учить ооп или идти писать на php и perl, если ты в них находишь прелесть.

Про наследование правильно ответили: не нужен здесь рефшлекшин.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
 class  test
{
     private  Object[] properties = createProperties();

     protected  Object[] createProperties() //перекрывается в наследниках, если это необходимо
    {
         return   new  Object[]{
                "list1", source.list1(),
                "list2", source.list2(),
                //...
                "listn", source.listn()
        };
    }

     public  Object[] getProperties()
    {
         return  properties;
    }

     public   void  resetProperties() //"рефрешит" properties 
    {
        properties = createProperties();
    }
}

Так же разумно было замечено, что массив из Object не лучший способ хранить пары "ключ-значение", т.к. поиск по ключу значения требует линейного времени, т.к. нужно явно приводить object к требуемому типу, что не даёт возможности компилятору помочь отлавливать глупые ошибки в коде, т.к. почти наверняка код для поиска и перебора значений в properties при такой реализации будет дублироваться, а это ограничивает возможности безолезненного изменения представления properties в коде (что вполне вероятно в силу медленности доступа к нужному значению при текущей реализации), т.к. достаточно лёгко ошибиться в названии свойства и проблематично понять, какие свойства вообще есть у данного объекта.

Если прочитаешь "рефакторинг" фаулера, то сразу поймёшь сколько "душка" содержится в твоём коде и почему он вызывает такую реакцию у эмоционально не сдержанной публики на этом форуме, ну и поймёшь как этот код переделать.

В частности, если значения в свойствах могут быть только строками, можно поступить так:

Код: plaintext
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.
 class  test
{
     public   static   final  String LIST1 = "list1";
     public   static   final  String LIST2 = "list2";
    //...
     public   static   final  String LISTN = "listn";

     private  Map<String, String> properties = createProperties();

     protected  Map<String, String> createProperties() //перекрывается в наследниках, если необходимо
    {
        //переделать объявление массива в инициализацию мапы, 
        //можно воспользовавшись find & replace функциональностью IDE или ultraedit'a

        //Константы вводятся при помощи средств автоматического рефакторинга в IDE

        HashMap<String, String> map =  new  HashMap<String, String>();

        map.put(LIST1, source.list1()); 
        map.put(LIST2, source.list2());
        //...
        map.put(LISTN, source.listn());

         return  map;
    }

     public  Map<String,String> getProperties()
    {
         return  properties;
    }

     public   void  resetProperties()
    {
        properties = createProperties();
    }
}

Этот код уже лучше, т.к. структура данных выбранная для хранения свойств в большей степени отражает их "сущность".

Если значения могут быть разных типов, то универсального решения уже не будет, т.к. многое зависит от _задачи_ (ты же привёл только _решение_).

Одним из "почти" универсальных решений, будет, не паря мозг, написать:
Код: plaintext
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.
 class  test
{
     private  String list1;
     private  String list2;
    //...
     private   int  listn;

     public  test()
    {
        resetProperties();
    }

     public   void  resetProperties()  //перекрывается в наследниках
    {
        list1 = source.list1();
        list2 = source.list2();
        //...
        listn = source.listn();
    }

     public  String getList1()
    {
         return  list1;
    }

     public  String getList2()
    {
         return  list2;
    }

    //...

     public   int  getListn()
    {
         return  listn;
    }
}


------

Отвергать предложенные тебе решения, основываясь на утверждении "нужно писать много строчек", можно только если программа сама по себе очень маленькая и пишется в одно рыло.
Не стыковка в том, что большинство участников форума работает не в одиночку и над достаточно крупными проектами, поэтому серьёзно принимать такой аргумент они не могут.
К тому же современные IDE делают львиную долю такой работы за тебя.

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


TO: Leonidv

А вопроса "как ты считаешь правильно" я не задавал.
"ты начинаешь отстаивать свою точку зрения" - а кто её не отстаивает ?

По поводу моего "самый умный" - это был ответ товарищу за "Что пустом начинаешь разводить ненужную сложность. Для того примера что ты привел, зачем там вообще наследование? Может можно все проще сделать?"

Товарищ вообще не разбираясь в сути вопроса начинает чего то там опровергать...

А вот ваше "во первых" , "во вторых" итп реально не в тему.

Если вы и большой начальник то тока над своими подчинёнными, но не над всем миром ...

Вот был бы я у вас в команде и начал бы гнать, то тогда я понимаю,
да и то скорее всего до конфликта и моего увольнения дошло бы....
...
Рейтинг: 0 / 0
Наследование
    #34827518
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracle
Программа маленькая и пишется в одно рыло.
Пишу как уже успел заметить не в IDE а в обычном текстовом редакторе...

Дело в том, что тот стиль, который Вы используете, ничего общего с правильным ОО-дизайном не имеет. Просто народ тут по умолчанию считает, что программист в общем должен профессионально расти, а не отбрыкиваться от советов по улучшению качества своего кода - в конце концов, это будет полезно пусть не для этого мелкого проекта, но для следующего, побольше - точно. И, кроме прочего, умение правильно проектировать и грамотно писать поднимает стоимость человека, выразимую в банальном бабле.
ЗЫ Про JavaJunior-вакансии - вилка обычная, 1000-1500, время хождения в юниорах обычно в районе года.
...
Рейтинг: 0 / 0
Наследование
    #34827571
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracle
Так оно и есть.
Программа маленькая и пишется в одно рыло.
Пишу как уже успел заметить не в IDE а в обычном текстовом редакторе...

1). ПМСМ, не важно как пишешь. Писать всегда надо правильно. Иначе сам же потом не вспомнишь, что делал.
2). Что мешает поставить бесплатные и мощные Eclipse или NetBeans?

_fromoracle
А вопроса "как ты считаешь правильно" я не задавал.

Вот и я о том же. А надо бы.
_fromoracle
"ты начинаешь отстаивать свою точку зрения" - а кто её не отстаивает ?

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

_fromoracle
По поводу моего "самый умный" - это был ответ товарищу за "Что пустом начинаешь разводить ненужную сложность. Для того примера что ты привел, зачем там вообще наследование? Может можно все проще сделать?"

Ты привел пример, тебе дали ответ. Зачем тогда было упрощать? Или почему нельзя было сразу всю картину описать?
_fromoracle
Товарищ вообще не разбираясь в сути вопроса начинает чего то там опровергать...

Товарищ разобрался в вопросе ровно настолько, насколько ты дал ему разобраться.

_fromoracle
Если вы и большой начальник то тока над своими подчинёнными, но не над всем миром ...

Я не начальник, хотя помощник у меня есть :)
_fromoracle
Вот был бы я у вас в команде и начал бы гнать, то тогда я понимаю,
да и то скорее всего до конфликта и моего увольнения дошло бы....
Вряд ли. Если бы ты уже был в моей команде, до тебя бы попытались донести как делать правильно. Одно дело лично общение и необходимость объяснять, а другое - общение на форуме. Тут и поругаться можно ;) Твоя проблема, скорее всего, в том, что ты пишешь в одиночку. В коллективе многие вопросы решаются проще, плюс опытом люди делятся.
Другой вопрос в том, что чтобы попасть в команду не плохо бы знать что такое GoF и рефакторинг. Ты там про junior позицию спрашивал, так вот, я думаю такие вещи на собеседование спрашивают.
...
Рейтинг: 0 / 0
Наследование
    #34827636
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зашедший _fromoracle
Программа маленькая и пишется в одно рыло.
Пишу как уже успел заметить не в IDE а в обычном текстовом редакторе...

Дело в том, что тот стиль, который Вы используете, ничего общего с правильным ОО-дизайном не имеет. Просто народ тут по умолчанию считает, что программист в общем должен профессионально расти, а не отбрыкиваться от советов по улучшению качества своего кода - в конце концов, это будет полезно пусть не для этого мелкого проекта, но для следующего, побольше - точно. И, кроме прочего, умение правильно проектировать и грамотно писать поднимает стоимость человека, выразимую в банальном бабле.
ЗЫ Про JavaJunior-вакансии - вилка обычная, 1000-1500, время хождения в юниорах обычно в районе года.


Да лучше в джуниоры не ходить...
Зубы на полку положишь ....
...
Рейтинг: 0 / 0
Наследование
    #34827659
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonidv _fromoracle
Так оно и есть.
Программа маленькая и пишется в одно рыло.
Пишу как уже успел заметить не в IDE а в обычном текстовом редакторе...

1). ПМСМ, не важно как пишешь. Писать всегда надо правильно. Иначе сам же потом не вспомнишь, что делал.
2). Что мешает поставить бесплатные и мощные Eclipse или NetBeans?

_fromoracle
А вопроса "как ты считаешь правильно" я не задавал.

Вот и я о том же. А надо бы.
_fromoracle
"ты начинаешь отстаивать свою точку зрения" - а кто её не отстаивает ?

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

_fromoracle
По поводу моего "самый умный" - это был ответ товарищу за "Что пустом начинаешь разводить ненужную сложность. Для того примера что ты привел, зачем там вообще наследование? Может можно все проще сделать?"

Ты привел пример, тебе дали ответ. Зачем тогда было упрощать? Или почему нельзя было сразу всю картину описать?
_fromoracle
Товарищ вообще не разбираясь в сути вопроса начинает чего то там опровергать...

Товарищ разобрался в вопросе ровно настолько, насколько ты дал ему разобраться.

_fromoracle
Если вы и большой начальник то тока над своими подчинёнными, но не над всем миром ...

Я не начальник, хотя помощник у меня есть :)
_fromoracle
Вот был бы я у вас в команде и начал бы гнать, то тогда я понимаю,
да и то скорее всего до конфликта и моего увольнения дошло бы....
Вряд ли. Если бы ты уже был в моей команде, до тебя бы попытались донести как делать правильно. Одно дело лично общение и необходимость объяснять, а другое - общение на форуме. Тут и поругаться можно ;) Твоя проблема, скорее всего, в том, что ты пишешь в одиночку. В коллективе многие вопросы решаются проще, плюс опытом люди делятся.
Другой вопрос в том, что чтобы попасть в команду не плохо бы знать что такое GoF и рефакторинг. Ты там про junior позицию спрашивал, так вот, я думаю такие вещи на собеседование спрашивают.

Ну вот опять надо нужно.
Кому надо, кому нужно ?
О чем вы ?

"Ты привел пример, тебе дали ответ. Зачем тогда было упрощать? Или почему нельзя было сразу всю картину описать?"

На вопрос "как отнаследовать поле" - ответ откажись от наследования - Конгениально .....
...
Рейтинг: 0 / 0
Наследование
    #34827691
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracleДа лучше в джуниоры не ходить... Зубы на полку положишь ....
Ну сразу ничего не бывает. Через год - две штуки, еще через год-полтора уже и 2.5-3 можно заиметь.
...
Рейтинг: 0 / 0
Наследование
    #34827701
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зашедший _fromoracleДа лучше в джуниоры не ходить... Зубы на полку положишь ....
Ну сразу ничего не бывает. Через год - две штуки, еще через год-полтора уже и 2.5-3 можно заиметь.

Да просто уходить с хороших позиций на перле на
джуниорские на джаву проигрывая конкретно в деньгах сильно ломает ...

Тем более что при нынешнем кадровом голоде на программистов порой такой народ берут на неджуниорские позиции аж диву даёшься ....
...
Рейтинг: 0 / 0
Наследование
    #34827715
Фотография Софтверный проктолог
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracle[...]такой народ берут на неджуниорские позиции аж диву даёшься ....
Возьмите меня. Я хороший.
...
Рейтинг: 0 / 0
Наследование
    #34827759
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracle
Да просто уходить с хороших позиций на перле на
джуниорские на джаву проигрывая конкретно в деньгах сильно ломает ...

Тем более что при нынешнем кадровом голоде на программистов порой такой народ берут на неджуниорские позиции аж диву даёшься ....
Можно сделать финт ушами - найти работу, где используются и перл, и ява. Тогда получится не потерять в бабле и притом нормально изучить яву, чтобы потом "соскочить" уже на чистую яву на нормальную позицию, имея приличный опыт работы. Собственно, я с дельфы так же переходил.
...
Рейтинг: 0 / 0
Наследование
    #34827766
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Софтверный проктолог _fromoracle[...]такой народ берут на неджуниорские позиции аж диву даёшься ....
Возьмите меня. Я хороший.

Открытых вакансий на проктолога пока нету
...
Рейтинг: 0 / 0
Наследование
    #34827789
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Зашедший _fromoracle
Да просто уходить с хороших позиций на перле на
джуниорские на джаву проигрывая конкретно в деньгах сильно ломает ...

Тем более что при нынешнем кадровом голоде на программистов порой такой народ берут на неджуниорские позиции аж диву даёшься ....
Можно сделать финт ушами - найти работу, где используются и перл, и ява. Тогда получится не потерять в бабле и притом нормально изучить яву, чтобы потом "соскочить" уже на чистую яву на нормальную позицию, имея приличный опыт работы. Собственно, я с дельфы так же переходил.

Да я собственно так и планирую.

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

А по поводу проектирования и Gof - почитал интересно, но наверное есть смысл читать это в применении к конкретным большим задачам, а так абстрактно чтобы было не получается ...

Как говорится тяжело вариться в собственном соку ...
...
Рейтинг: 0 / 0
Наследование
    #34827887
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracleА по поводу проектирования и Gof - почитал интересно, но наверное есть смысл читать это в применении к конкретным большим задачам, а так абстрактно чтобы было не получается
Почитал или прочитал? У меня GoF полностью мозги перестроил. Пользоваться можно в любых задачах, в том числе и не больших. Тут главное идеи ухватить.
...
Рейтинг: 0 / 0
Наследование
    #34828219
kest_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зашедший _fromoracleДа лучше в джуниоры не ходить... Зубы на полку положишь ....Ну сразу ничего не бывает. Через год - две штуки, еще через год-полтора уже и 2.5-3 можно заиметь.
По моему опыту через 3 месяца джуниорства 1500, через год с небольшим 2300, далее поглядим :)
Слышал недавно в отдел хотели взять джуниоров, за 1500 не нашли.
...
Рейтинг: 0 / 0
Наследование
    #34828230
Зашедший
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kest_ru Зашедший _fromoracleДа лучше в джуниоры не ходить... Зубы на полку положишь ....Ну сразу ничего не бывает. Через год - две штуки, еще через год-полтора уже и 2.5-3 можно заиметь.
По моему опыту через 3 месяца джуниорства 1500, через год с небольшим 2300, далее поглядим :)
Слышал недавно в отдел хотели взять джуниоров, за 1500 не нашли.
По-разному бывает, от опыта-скорости освоения зависит, к тому же я джуниоров уже год не собеседовал, может - цифры тоже уже поменялись.
...
Рейтинг: 0 / 0
Наследование
    #34828237
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kest_ru Зашедший _fromoracleДа лучше в джуниоры не ходить... Зубы на полку положишь ....Ну сразу ничего не бывает. Через год - две штуки, еще через год-полтора уже и 2.5-3 можно заиметь.
По моему опыту через 3 месяца джуниорства 1500, через год с небольшим 2300, далее поглядим :)
Слышал недавно в отдел хотели взять джуниоров, за 1500 не нашли.

Ясно дело не нашли ..
Джуниор ещё не означает "Питающийся маной небесной " ...
...
Рейтинг: 0 / 0
Наследование
    #34831267
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_fromoracle _fromoracle _fromoracle scofСлучайно зашел в топик и офигел, ну и понаписали !
Внимание, правильный ответ:

class parent {
public String var="parent";

public void printvar() {
System.out.println(var);
}
}

class child extends parent {
{
var="child";
}

}

class test {
public static void main(String[] args) {
child c = new child();
c.printvar();
}

}



Про вложенные подклассы я конечно загнул.
Тут просто чтоли мой код переписали ?
Хорош флудить....

А не всё сорри гоню.
Нашёл разницу......
Спасибо, попробую запустить...

TO: scof.

Огромное спасибо то что было нужно.
Всё заработало ....
...
Рейтинг: 0 / 0
Наследование
    #34831739
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Раз уж начали учить меня как правильно писать на джаве с приминением HashMap.
Ответте есть ли в джаве механизм поддержки порядка ключе в Map.
Т.е. чтобы можно было вытащий ключи в том порядке в котором был произведён put.
SortedMap не подходит.
Я написал собственный класс, но по всей видимости есть встроенные нормальные механизмы ...

Код: plaintext
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.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
 import  java.util.*;

 public   class  Hash  extends  HashMap 	{	
	 private  Object[] Keys	= {};
	 private  Object[] Values = {};
	
	 public  Object[]	getKeys()				{
		 return   this .Keys;
	}
	
	 public  Object[]	getValues()				{
		 return   this .Values;
	}
	
	 public  Object	getKeys( int  vIndex)		{
		 return   this .Keys[vIndex];
	}
	
	 public  Object	getValues( int  vIndex)	{
		 return   this .Values[vIndex];
	}
	
	 public   Hash()	{
		 return ;
	}
	
	 public  Hash(Object[] Params)	{
		 if  (Params== null )  return ;
		 if  (Params.length== 0 )  return ;				
		 int  count = Params.length/ 2 ;
		 this .Keys	=	 new  Object[count];
		 this .Values	=	 new  Object[count];
		 int  k= 0 ;
		 for  ( int  i= 0 ; i<Params.length; i+= 2 )	{
			 super .put(Params[i] , i<Params.length- 1  ? Params[i+ 1 ] :  null );
			 this .Keys[k]   = Params[i];
			 this .Values[k] =i<Params.length- 1  ? Params[i+ 1 ] :  null ;
			k++;
		}
	}
	
	 public  Object put(Object key , Object value)	{
		 if  (! super .containsKey(key))
		{
			Keys   = util.push(Keys   , key);
			Values = util.push(Values , value);
		}	 else 	{
			 int  i;
			 for  (i= 0 ; i<Keys.length; i++)
				 if  (Keys[i]  instanceof  String)	{
					 if  (Keys[i].equals(key))  break ;
				}	 else   {
					 if  (Keys[i] == key)  break ;
				}
			Values[i] = value;
		}
		 super .put(key , value);
		 return  value;
	}
	
	 public  Object remove(Object key)		{
		Object value =  super .get(key);
		 if  (value ==  null )	{
			 return   null ;
		}
		ArrayList newValues =  new  ArrayList();
		ArrayList newKeys   =  new  ArrayList();
		 for  ( int  i= 0 ; i<Keys.length; i++)	{
			 if  (!Keys[i].equals(key)) {
				newValues.add(Values[i]);
				newKeys.add(Keys[i]);
			}
		}
		Keys	= newKeys.toArray();
		Values	= newValues.toArray();
		 super .remove(key);
		 return  value;
	}
};


Прошу заранее мой код не охаявать, а по возможности помочь ...
...
Рейтинг: 0 / 0
Наследование
    #34831771
kest_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_fromoracleРаз уж начали учить меня как правильно писать на джаве с приминением HashMap.
Ответте есть ли в джаве механизм поддержки порядка ключе в Map.

LinkedHashMap?
...
Рейтинг: 0 / 0
Наследование
    #34831799
_fromoracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kest_ru _fromoracleРаз уж начали учить меня как правильно писать на джаве с приминением HashMap.
Ответте есть ли в джаве механизм поддержки порядка ключе в Map.

LinkedHashMap?

Да оно
Спасибо.

"This linked list defines the iteration ordering, which is normally the order in which keys were inserted into the map (insertion-order)."
...
Рейтинг: 0 / 0
91 сообщений из 91, показаны все 4 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Наследование
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]