powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / задача о персонале с фикс и повременной з.п.
25 сообщений из 70, страница 2 из 3
задача о персонале с фикс и повременной з.п.
    #39338330
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81,

хотя возможно меня сейчас начнут жестко пинать , обвиняя в полном непонимании ООП , но я вот о чем :

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

Код: java
1.
pers[] employees = new pers[10];
...
Рейтинг: 0 / 0
задача о персонале с фикс и повременной з.п.
    #39338368
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81подскажите, а вот если мне нужно сортировать элементы я вынужден буду тупо общаться тогда с элементами своего массива посредством Get, Set-ов из метода Main ?
а есть ли другие способы ?
Можно при помощи Comparator и Arrays.sort(T[] a,Comparator<? super T> c)
...
Рейтинг: 0 / 0
задача о персонале с фикс и повременной з.п.
    #39338522
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АрсеньевМожно при помощи Comparator и Arrays.sort(T[] a,Comparator<? super T> c)


ну то есть я могу создать метод Sorting внутри класса Employee в предположении, что Employee не абстрактный? (исходный код смотреть выше )
я просто не понимаю, если JAVA позволяет экземпляры класса (в нашем случае это Employee) создавать в виде элементов массива,
но тогда не укладывается в голове как мы можем организовать метод Sorting внутри класса Employee , который будет работать не только с текущим экземпляром , но и вмешиваться в другие. наверно это фантастика но это было бы идеальное решение . Хотя возможно это совсем недопустимо ?
...
Рейтинг: 0 / 0
задача о персонале с фикс и повременной з.п.
    #39338525
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81,
По ООП уже придумали Списки
...
Рейтинг: 0 / 0
задача о персонале с фикс и повременной з.п.
    #39338561
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123andron81,
По ООП уже придумали Списки





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

p.s. и не хочу пользоваться стандартными возможностями Comparator и Arrays.sort . хочу для понимания изобрести свой велосипед.
...
Рейтинг: 0 / 0
задача о персонале с фикс и повременной з.п.
    #39338580
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81Всё было бы ясно, если бы экземпляр содержал массив в качестве поля
Если тупой массив, то - Да.
Т.к. вы добаляете функционал типа сортировки, то массив уже не годится.
Что тут непонятного?
andron81хочу для понимания изобрести свой велосипед.
Изобретайте - делайте наследник или помощник для массива. Но ОТДЕЛЬНЫЙ класс - список.
...
Рейтинг: 0 / 0
задача о персонале с фикс и повременной з.п.
    #39338609
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81,
по ООП, класс\бизнес-объект\бизнес-сущность внутри которого массив, сам не должен его сортировать.
Он только его может выдать. Например:
Код: java
1.
2.
Class_A.ДайЭлементМассива(номер)
Class_A.ДайМассив
...
Рейтинг: 0 / 0
задача о персонале с фикс и повременной з.п.
    #39338614
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
второй вариант вычисления задачи - шаблон Визитор\Посетитель.
Он проходит по всем объектам и вычисляет зарплату.
Но это IMHO сложновато для вас будет на данном этапе.
...
Рейтинг: 0 / 0
задача о персонале с фикс и повременной з.п.
    #39338629
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123andron81Всё было бы ясно, если бы экземпляр содержал массив в качестве поля
Если тупой массив, то - Да.
Т.к. вы добаляете функционал типа сортировки, то массив уже не годится.
Что тут непонятного?


функционал сортировки я бы мог добавить в виде говнкода в методе main. но поэтому случаю я и спришваю если мы делаем так:
Код: java
1.
pers[] employees = new pers[10];



то с ваших слов выходит не представляется возможным спрятать логику сортировки в класс employees в виде метода - если так то оно понятно. Однако это выйдет если мы организуем экземпляры не как элементы массива, а как список.
Верно ?

Petro123andron81хочу для понимания изобрести свой велосипед.
Изобретайте - делайте наследник или помощник для массива. Но ОТДЕЛЬНЫЙ класс - список.

последнее предложение ваше про отдельный класс-список поясните, пожалуйста .
...
Рейтинг: 0 / 0
задача о персонале с фикс и повременной з.п.
    #39338640
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81то с ваших слов выходит не представляется возможным спрятать логику сортировки в класс employees в виде метода - если так то оно понятно. Однако это выйдет если мы организуем экземпляры не как элементы массива, а как список.
Верно ?
можно и навесить на employees, если это конец задачи. Если не конец и employees - безнес сущность, то лучше в employees иметь помощника в виде умного класса-массива под именем "Список" (List)
...
Рейтинг: 0 / 0
задача о персонале с фикс и повременной з.п.
    #39338641
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда будет:
Код: java
1.
2.
3.
- Сотрудники - создать объект
- Сотрудники.ДобавитьПолиморфноСотрудника(абстрактныйКласс)
- Сотрудники.Сортировать // сортирует не сам
...
Рейтинг: 0 / 0
задача о персонале с фикс и повременной з.п.
    #39338649
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123тогда будет:
Код: java
1.
2.
3.
- Сотрудники - создать объект
- Сотрудники.ДобавитьПолиморфноСотрудника(абстрактныйКласс)
- Сотрудники.Сортировать // сортирует не сам



да, тяжко для меня : вот это "абстрактныйКласс" вынос мозга )))))
...
Рейтинг: 0 / 0
задача о персонале с фикс и повременной з.п.
    #39338651
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81,
авторУ некоторых читателей может возникнуть вопрос: зачем нам коллекции, если у нас есть массивы ? В самом деле, многие используют коллекции там где нужно и не нужно.
http://www.quizful.net/post/Java-Collections

andron81да, тяжко для меня : вот это "абстрактныйКласс" вынос мозга )))))
делай по шагам.
У тебя же в коде он есть - базовый.
...
Рейтинг: 0 / 0
задача о персонале с фикс и повременной з.п.
    #39339337
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
...
Рейтинг: 0 / 0
задача о персонале с фикс и повременной з.п.
    #39339522
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81Ведь последний является потомком первого, как раз-таки в экземпляре могут содержаться методы о которых не знает переменная e.
Всё верно. И это не страшно. Мы можем обращаться с FixedPriceEmployee, как с Employee. Просто часть методов нам может быть не видна. Но мы используем переменную типа Employee в том случае когда нам всё равно какой именно там Employee внутри. Это и есть полиморфизм.
...
Рейтинг: 0 / 0
задача о персонале с фикс и повременной з.п.
    #39339527
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы стало совсем понятно нужно ещё вспомнить про виртуальные методы. Когда мы вызываем Employee.getSalary() в коде, мы не знаем какой именно из двух методов FixedPriceEmployee.getSalary() или PartTimeEmployee.getSalary(). Конкретный метод будет определен в рантайме динамически в зависимости от типа объекта на который ссылается переменная.

Попробуйте понять вот эти утверждения:
1. Переменная это ссылка.
2. Объект имеет конкретный тип.
3. Все методы кроме private, static и final являются виртуальными. Их вызов определяется динамически во время выполнения кода через таблицу виртуальных методов. Вызовы не виртуальных методов "линкуются" во время компиляции на конкретные реализации этих методов.
...
Рейтинг: 0 / 0
задача о персонале с фикс и повременной з.п.
    #39339550
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczandron81Ведь последний является потомком первого, как раз-таки в экземпляре могут содержаться методы о которых не знает переменная e.
Всё верно. И это не страшно.


ну как это не страшно ?

вам же никто не позволит сделать например вот так :

int i = 5;
i="Hello, world";

BlazkowiczМы можем обращаться с FixedPriceEmployee, как с Employee.


да, можем так как FixedPriceEmployee наследник Employee.
Blazkowicz Просто часть методов нам может быть не видна. Но мы используем переменную типа Employee в том случае когда нам всё равно какой именно там Employee внутри.


где там внутри ??? как может быть внутри Employee быть FixedPriceEmployee ? это в FixedPriceEmployee может быть Employee.
...
Рейтинг: 0 / 0
задача о персонале с фикс и повременной з.п.
    #39339553
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81где там внутри ??? как может быть внутри Employee быть FixedPriceEmployee ? это в FixedPriceEmployee может быть Employee.
Вы путаете переменную и объект\тип. Я говори про "внутри" переменной. Переменная ссылается на любой тип. В Java строгая типизация, поэтому тип объекта должен совпадать или быть наследником типа переменной. Существуют языки без строгой типизации. Там переменная вообще может ссылаться на объект любого типа.
...
Рейтинг: 0 / 0
задача о персонале с фикс и повременной з.п.
    #39339569
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz...тип объекта должен быть наследником типа переменной.


вооот !
в этом то и фишка. в моём понимании наоборот )))
у меня именно это в голове и не укладывается
с точки зрения логики переменная e резервируется под предка (набор функций предка)
а объект наряду с функциями предка обладает ещё доп. функциями (набор функций предка + собственные функции)

и как можно первому дать значение в виде второго.
...
Рейтинг: 0 / 0
задача о персонале с фикс и повременной з.п.
    #39339572
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81вооот !
в этом то и фишка. в моём понимании наоборот )))
у меня именно это в голове и не укладывается
с точки зрения логики переменная e резервируется под предка (набор функций предка)
а объект наряду с функциями предка обладает ещё доп. функциями (набор функций предка + собственные функции)

и как можно первому дать значение в виде второго.
Нет. Ничего никуда не резервируется. Вы понимаете как работает память? Объект это данные, которые лежат по определенному адресу. Переменная, это ссылка. Она может содержать любой адрес. Вообще любой.

И есть такая штука, как компилятор. В нём реализована строгая типизация. Вот он и следит за тем чтобы определенные ссылки могли ссылаться только на определенные объекты. (есть конечно ещё и дополнительный контроль типа в рантайме, но это отдельная история)

Мне кажется, вам стоило бы отложить ООП в сторону и освоить азы С\С++ или другого низкоуровнего языка. Тогда бы было поверх чего строить понимание.
...
Рейтинг: 0 / 0
задача о персонале с фикс и повременной з.п.
    #39339580
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz
Мне кажется, вам стоило бы отложить ООП в сторону и освоить азы С\С++ или другого низкоуровнего языка. Тогда бы было поверх чего строить понимание.

ну да. я никогда не задумывался в такой конструкции как :

int i ;
i=10;

всегда расценивал с математической точки зрения. и мне этого хватало
...
Рейтинг: 0 / 0
задача о персонале с фикс и повременной з.п.
    #39339583
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81,
Наследники это матрешка.
Ссылку Обозначить можно на любой элемент матрешки. Но если мы обозначим на базовую, то туда просто больше штук из одной матрёшки влезет.
...
Рейтинг: 0 / 0
задача о персонале с фикс и повременной з.п.
    #39339662
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

вроде бы стал немного допекать :

Employee e = new FixedPriceEmployee();

мы в e присваиваем ссылку на экземпляр подкласса FixedPriceEmployee. А new FixedPriceEmployee() - это создание экземпляра. таким образом в "e" будут доступны только методы которые есть в "e" .
понятно , что если есть методы с такой же сигнатурой описанные в FixedPriceEmployee то будут они выполняться. но это другая история. Самое важно, что я для себя уяснил выделил выше.
...
Рейтинг: 0 / 0
задача о персонале с фикс и повременной з.п.
    #39339667
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81понятно , что если есть методы с такой же сигнатурой описанные в FixedPriceEmployee то будут они выполняться. но это другая история. Самое важно, что я для себя уяснил выделил выше.

Смотри.

Код: java
1.
2.
3.
4.
5.
Employee e;  //"Создали" ссылку (на самом деле "объявили")
e = new FixedPriceEmployee(); //создали объект и присвоили ссылке адрес объекта
e.getSalary(); //Вызывали виртуальный метод, реализация будет выбрана в зависимости от типа объекта. Это и есть "полиморфизм"
//А теперь финт ушами
((FixedPriceEmployee) e).runFixedPriceEmployeeSpecificMethod(); //Вызвали метод конкретного типа
...
Рейтинг: 0 / 0
задача о персонале с фикс и повременной з.п.
    #39339671
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczandron81понятно , что если есть методы с такой же сигнатурой описанные в FixedPriceEmployee то будут они выполняться. но это другая история. Самое важно, что я для себя уяснил выделил выше.

Смотри.

Код: java
1.
2.
3.
4.
5.
Employee e;  //"Создали" ссылку (на самом деле "объявили")
e = new FixedPriceEmployee(); //создали объект и присвоили ссылке адрес объекта
e.getSalary(); //Вызывали виртуальный метод, реализация будет выбрана в зависимости от типа объекта. Это и есть "полиморфизм"
//А теперь финт ушами
((FixedPriceEmployee) e).runFixedPriceEmployeeSpecificMethod(); //Вызвали метод конкретного типа



финт ушами мне пока рано .
спасибо участникам за помощь и терпение
...
Рейтинг: 0 / 0
25 сообщений из 70, страница 2 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / задача о персонале с фикс и повременной з.п.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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