|
|
|
задача о персонале с фикс и повременной з.п.
|
|||
|---|---|---|---|
|
#18+
andron81, хотя возможно меня сейчас начнут жестко пинать , обвиняя в полном непонимании ООП , но я вот о чем : если предположить , что метод employees не абстрактный, можно было бы организовать в нем такой метод который эту сортировку бы осуществлял, хотя возможно это полный бред , хотя вот в это я тоже с трудом поверил , что так можно , когда увидел : Код: java 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2016, 22:33 |
|
||
|
задача о персонале с фикс и повременной з.п.
|
|||
|---|---|---|---|
|
#18+
andron81подскажите, а вот если мне нужно сортировать элементы я вынужден буду тупо общаться тогда с элементами своего массива посредством Get, Set-ов из метода Main ? а есть ли другие способы ? Можно при помощи Comparator и Arrays.sort(T[] a,Comparator<? super T> c) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2016, 00:12 |
|
||
|
задача о персонале с фикс и повременной з.п.
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевМожно при помощи Comparator и Arrays.sort(T[] a,Comparator<? super T> c) ну то есть я могу создать метод Sorting внутри класса Employee в предположении, что Employee не абстрактный? (исходный код смотреть выше ) я просто не понимаю, если JAVA позволяет экземпляры класса (в нашем случае это Employee) создавать в виде элементов массива, но тогда не укладывается в голове как мы можем организовать метод Sorting внутри класса Employee , который будет работать не только с текущим экземпляром , но и вмешиваться в другие. наверно это фантастика но это было бы идеальное решение . Хотя возможно это совсем недопустимо ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2016, 10:01 |
|
||
|
задача о персонале с фикс и повременной з.п.
|
|||
|---|---|---|---|
|
#18+
andron81, По ООП уже придумали Списки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2016, 10:03 |
|
||
|
задача о персонале с фикс и повременной з.п.
|
|||
|---|---|---|---|
|
#18+
Petro123andron81, По ООП уже придумали Списки совсем не пойму причем тут списки. я упростил задачу : свёл количество элементов к константе. мне непонятна технология сортировки массива . Всё было бы ясно, если бы экземпляр содержал массив в качестве поля. но у нас элементы разбросаны по разным экземплярам каждый из которых будет содержать свой метод Sorting, тем не менее метод должен работать с группой экземпляров, но внутри одного метода, как так получается ))))))))))))))))) p.s. и не хочу пользоваться стандартными возможностями Comparator и Arrays.sort . хочу для понимания изобрести свой велосипед. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2016, 10:35 |
|
||
|
задача о персонале с фикс и повременной з.п.
|
|||
|---|---|---|---|
|
#18+
andron81Всё было бы ясно, если бы экземпляр содержал массив в качестве поля Если тупой массив, то - Да. Т.к. вы добаляете функционал типа сортировки, то массив уже не годится. Что тут непонятного? andron81хочу для понимания изобрести свой велосипед. Изобретайте - делайте наследник или помощник для массива. Но ОТДЕЛЬНЫЙ класс - список. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2016, 10:51 |
|
||
|
задача о персонале с фикс и повременной з.п.
|
|||
|---|---|---|---|
|
#18+
andron81, по ООП, класс\бизнес-объект\бизнес-сущность внутри которого массив, сам не должен его сортировать. Он только его может выдать. Например: Код: java 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2016, 11:10 |
|
||
|
задача о персонале с фикс и повременной з.п.
|
|||
|---|---|---|---|
|
#18+
второй вариант вычисления задачи - шаблон Визитор\Посетитель. Он проходит по всем объектам и вычисляет зарплату. Но это IMHO сложновато для вас будет на данном этапе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2016, 11:13 |
|
||
|
задача о персонале с фикс и повременной з.п.
|
|||
|---|---|---|---|
|
#18+
Petro123andron81Всё было бы ясно, если бы экземпляр содержал массив в качестве поля Если тупой массив, то - Да. Т.к. вы добаляете функционал типа сортировки, то массив уже не годится. Что тут непонятного? функционал сортировки я бы мог добавить в виде говнкода в методе main. но поэтому случаю я и спришваю если мы делаем так: Код: java 1. то с ваших слов выходит не представляется возможным спрятать логику сортировки в класс employees в виде метода - если так то оно понятно. Однако это выйдет если мы организуем экземпляры не как элементы массива, а как список. Верно ? Petro123andron81хочу для понимания изобрести свой велосипед. Изобретайте - делайте наследник или помощник для массива. Но ОТДЕЛЬНЫЙ класс - список. последнее предложение ваше про отдельный класс-список поясните, пожалуйста . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2016, 11:23 |
|
||
|
задача о персонале с фикс и повременной з.п.
|
|||
|---|---|---|---|
|
#18+
andron81то с ваших слов выходит не представляется возможным спрятать логику сортировки в класс employees в виде метода - если так то оно понятно. Однако это выйдет если мы организуем экземпляры не как элементы массива, а как список. Верно ? можно и навесить на employees, если это конец задачи. Если не конец и employees - безнес сущность, то лучше в employees иметь помощника в виде умного класса-массива под именем "Список" (List) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2016, 11:31 |
|
||
|
задача о персонале с фикс и повременной з.п.
|
|||
|---|---|---|---|
|
#18+
тогда будет: Код: java 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2016, 11:34 |
|
||
|
задача о персонале с фикс и повременной з.п.
|
|||
|---|---|---|---|
|
#18+
Petro123тогда будет: Код: java 1. 2. 3. да, тяжко для меня : вот это "абстрактныйКласс" вынос мозга ))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2016, 11:39 |
|
||
|
задача о персонале с фикс и повременной з.п.
|
|||
|---|---|---|---|
|
#18+
andron81, авторУ некоторых читателей может возникнуть вопрос: зачем нам коллекции, если у нас есть массивы ? В самом деле, многие используют коллекции там где нужно и не нужно. http://www.quizful.net/post/Java-Collections andron81да, тяжко для меня : вот это "абстрактныйКласс" вынос мозга ))))) делай по шагам. У тебя же в коде он есть - базовый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2016, 11:40 |
|
||
|
задача о персонале с фикс и повременной з.п.
|
|||
|---|---|---|---|
|
#18+
Blazkowiczandron81Вы наверно вот так хотели написать ? Ну, да. Многопоточность дала сбой. andron81я наверно крайне невежественный в ООП. Но не понимаю как скажем в экземпляре "employees[0]" класса "pers" есть конструктор от класса fix, тогда как класс fix это наследник от pers , а не наоборот. Класс FixedPriceEmployee расширяет класс Employee. да. не спорю andron81Экземпляр FixedPriceEmployee является так же экземпляром Employee. Поэтому всё что может Employee может и FixedPriceEmployee. да. может я не так вопрос ставил ? смотрите Employee e = new FixedPriceEmployee(); выражение слева от "=" означает , что резервируется переменная e с типом Employee, то есть под экземпляр класса Employee . а справа создаётся новый экземпляр с типом класса FixedPriceEmployee. Но как это реально ??? присвоить переменной зарезервированной под класс Employee экземпляр FixedPriceEmployee? Ведь последний является потомком первого, как раз-таки в экземпляре могут содержаться методы о которых не знает переменная e. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2016, 19:56 |
|
||
|
задача о персонале с фикс и повременной з.п.
|
|||
|---|---|---|---|
|
#18+
andron81Ведь последний является потомком первого, как раз-таки в экземпляре могут содержаться методы о которых не знает переменная e. Всё верно. И это не страшно. Мы можем обращаться с FixedPriceEmployee, как с Employee. Просто часть методов нам может быть не видна. Но мы используем переменную типа Employee в том случае когда нам всё равно какой именно там Employee внутри. Это и есть полиморфизм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 07:50 |
|
||
|
задача о персонале с фикс и повременной з.п.
|
|||
|---|---|---|---|
|
#18+
Чтобы стало совсем понятно нужно ещё вспомнить про виртуальные методы. Когда мы вызываем Employee.getSalary() в коде, мы не знаем какой именно из двух методов FixedPriceEmployee.getSalary() или PartTimeEmployee.getSalary(). Конкретный метод будет определен в рантайме динамически в зависимости от типа объекта на который ссылается переменная. Попробуйте понять вот эти утверждения: 1. Переменная это ссылка. 2. Объект имеет конкретный тип. 3. Все методы кроме private, static и final являются виртуальными. Их вызов определяется динамически во время выполнения кода через таблицу виртуальных методов. Вызовы не виртуальных методов "линкуются" во время компиляции на конкретные реализации этих методов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 07:58 |
|
||
|
задача о персонале с фикс и повременной з.п.
|
|||
|---|---|---|---|
|
#18+
Blazkowiczandron81Ведь последний является потомком первого, как раз-таки в экземпляре могут содержаться методы о которых не знает переменная e. Всё верно. И это не страшно. ну как это не страшно ? вам же никто не позволит сделать например вот так : int i = 5; i="Hello, world"; BlazkowiczМы можем обращаться с FixedPriceEmployee, как с Employee. да, можем так как FixedPriceEmployee наследник Employee. Blazkowicz Просто часть методов нам может быть не видна. Но мы используем переменную типа Employee в том случае когда нам всё равно какой именно там Employee внутри. где там внутри ??? как может быть внутри Employee быть FixedPriceEmployee ? это в FixedPriceEmployee может быть Employee. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 08:38 |
|
||
|
задача о персонале с фикс и повременной з.п.
|
|||
|---|---|---|---|
|
#18+
andron81где там внутри ??? как может быть внутри Employee быть FixedPriceEmployee ? это в FixedPriceEmployee может быть Employee. Вы путаете переменную и объект\тип. Я говори про "внутри" переменной. Переменная ссылается на любой тип. В Java строгая типизация, поэтому тип объекта должен совпадать или быть наследником типа переменной. Существуют языки без строгой типизации. Там переменная вообще может ссылаться на объект любого типа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 08:44 |
|
||
|
задача о персонале с фикс и повременной з.п.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz...тип объекта должен быть наследником типа переменной. вооот ! в этом то и фишка. в моём понимании наоборот ))) у меня именно это в голове и не укладывается с точки зрения логики переменная e резервируется под предка (набор функций предка) а объект наряду с функциями предка обладает ещё доп. функциями (набор функций предка + собственные функции) и как можно первому дать значение в виде второго. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 09:11 |
|
||
|
задача о персонале с фикс и повременной з.п.
|
|||
|---|---|---|---|
|
#18+
andron81вооот ! в этом то и фишка. в моём понимании наоборот ))) у меня именно это в голове и не укладывается с точки зрения логики переменная e резервируется под предка (набор функций предка) а объект наряду с функциями предка обладает ещё доп. функциями (набор функций предка + собственные функции) и как можно первому дать значение в виде второго. Нет. Ничего никуда не резервируется. Вы понимаете как работает память? Объект это данные, которые лежат по определенному адресу. Переменная, это ссылка. Она может содержать любой адрес. Вообще любой. И есть такая штука, как компилятор. В нём реализована строгая типизация. Вот он и следит за тем чтобы определенные ссылки могли ссылаться только на определенные объекты. (есть конечно ещё и дополнительный контроль типа в рантайме, но это отдельная история) Мне кажется, вам стоило бы отложить ООП в сторону и освоить азы С\С++ или другого низкоуровнего языка. Тогда бы было поверх чего строить понимание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 09:18 |
|
||
|
задача о персонале с фикс и повременной з.п.
|
|||
|---|---|---|---|
|
#18+
Blazkowicz Мне кажется, вам стоило бы отложить ООП в сторону и освоить азы С\С++ или другого низкоуровнего языка. Тогда бы было поверх чего строить понимание. ну да. я никогда не задумывался в такой конструкции как : int i ; i=10; всегда расценивал с математической точки зрения. и мне этого хватало ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 09:29 |
|
||
|
задача о персонале с фикс и повременной з.п.
|
|||
|---|---|---|---|
|
#18+
andron81, Наследники это матрешка. Ссылку Обозначить можно на любой элемент матрешки. Но если мы обозначим на базовую, то туда просто больше штук из одной матрёшки влезет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 09:30 |
|
||
|
задача о персонале с фикс и повременной з.п.
|
|||
|---|---|---|---|
|
#18+
Petro123, вроде бы стал немного допекать : Employee e = new FixedPriceEmployee(); мы в e присваиваем ссылку на экземпляр подкласса FixedPriceEmployee. А new FixedPriceEmployee() - это создание экземпляра. таким образом в "e" будут доступны только методы которые есть в "e" . понятно , что если есть методы с такой же сигнатурой описанные в FixedPriceEmployee то будут они выполняться. но это другая история. Самое важно, что я для себя уяснил выделил выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 10:58 |
|
||
|
задача о персонале с фикс и повременной з.п.
|
|||
|---|---|---|---|
|
#18+
andron81понятно , что если есть методы с такой же сигнатурой описанные в FixedPriceEmployee то будут они выполняться. но это другая история. Самое важно, что я для себя уяснил выделил выше. Смотри. Код: java 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 11:05 |
|
||
|
задача о персонале с фикс и повременной з.п.
|
|||
|---|---|---|---|
|
#18+
Blazkowiczandron81понятно , что если есть методы с такой же сигнатурой описанные в FixedPriceEmployee то будут они выполняться. но это другая история. Самое важно, что я для себя уяснил выделил выше. Смотри. Код: java 1. 2. 3. 4. 5. финт ушами мне пока рано . спасибо участникам за помощь и терпение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2016, 11:08 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39339569&tid=2123539]: |
0ms |
get settings: |
11ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
71ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 391ms |

| 0 / 0 |
