Loading...
denitsadudinska avatar denitsadudinska 0 Точки

Java Basics

Зд,авейте,

Може .и някой да ми помогне с тази задача?

1. Да се състави масив от 10 елемента от тип Person.
2. Да се създадът по два обекта от тип Person, Student и Employee и да се вкарат в масива от хора.
3. Да се обходим масива и в зависимост от това дали обекта е от
тип Person, Student или Employee да се извика съответно метода
showPersonInfo, showStudentInfo или showEmployeeInfo.
4. Да се обходи още веднъж масива с хора и за всеки човек, който е работник, да се изведе на екрана сумата, която му се дължи при 2 часа работа извън работно време.

 

 

 

Тагове:
-1
Programming Basics with Java
denitsadudinska avatar denitsadudinska 0 Точки

Благодаря виж до къде съм я докарала.

Методите са създадени, класовете също, но не знам как да обходя масива поради това, че това са извикани конструктори от класове. Стигнала съм до тук.

https://pastebin.com/6uR23NNe

Благодаря предварително.

0
Ivelin_Dimitrov avatar Ivelin_Dimitrov 148 Точки

можеш ли да ми пратиш линк за условието да го погледна? Ако разбирам добре условието, както колегата ти е казал, Person трябва да ти е базов клас - 

public abstract class Person { TODO... }

другите класове Student и Employee ще са негови наследници - public class Student extends Person { TODO.. } и същото за Employee class. Методите за инфо трябва да са във съответните класове, аз бих ги направил със 

@Override
public String toString() {
    TODO...
}

но можеш да си ги направиш както ти е по условие защото понякога ти проверяват методите.

Понеже Person е abstract class, не можеш да създадеш инстанция на този class, но можеш да имаш инстанций на неговите наследници. (във твоят код пълниш масив от Person със инстанции на class Person -> new Person("Peter", 0, false) това ме навежда на мисълта че Person не ти е абстрактен клас)

примерна инстанция на наследник - Person person = new Student() 

Така можеш да създадеш масив от Person и да го пълниш със всичките негови наследници. И да си го обхождаш лесно със един foreach (за InteliJ напиши "iter" и натисни enter)

for (Person person : yourArr) {
    person. TODO...
}

Но след това т3 от условието което си написъла малко ме обърква. Предполагам, че трябва да изкараш инфо за наследниците Student и Employee... Ако можеш да изпратиш един линк към условието ще е супер.

 

0
11/02/2018 00:00:44
denitsadudinska avatar denitsadudinska 0 Точки

Тава е условието, което имама в pdf. Останалите нища от условието съм ги направила без последната част.

Наследяване на класове. Идентификатори за достъп.
Използване на ключова дума super.
Задача за домашно:
Да се направи иерархия от класовете Person, Student и Employee
Класът Person репрезентиращ човек да има следните
Полета:
– name - име
– age - години
– isMan - поле, показващо пола
Коструктори:
– Единствен конструктор, с параметри за всичките полета на класа
Метод:
– Метод showPersonInfo, който показва информация за човека
(изписва на конзолата стойността на всичките му полета по
подходящ начин)
Класът Student наследяващ Person, репрезентиращ ученик да има
Полета:
– score - показва оценката на ученика (число между 2 и 6, не е
задължително да е цяло)
Единствен конструктор:
– Student(String name, int age, boolean isMan, double score)
задаващ стойности и на наследените полета
www.pragmatic.bg
Метод showStudentInfo() който показва информация за човека и
информация за оценката му (чрез надписи на екрана)
Класът Employee да наследява Person и да дефинира:
Полета:
– daySalary показва дневната заплата на работника
Конструктор които инициализира всичките му полета (собствени и
наследени)
Методи:
В случай че на работник се наложи да работи извън работно време,
на него му се дължи допълнителна сума пари (overtime) за часовете които
е работил. Сумата се пресмята по следния начин: ако работника, няма
навършени 18 години, дължимата сума е 0. В противен случай, за всеки
отработен час, на работника се заплаща сумата която получава на час
(зависи от дневната заплата) умножена по 1,5.
– метод calculateOvertime(double hours) който пресмята и връща
стойността на сумата която му се дължи при работа извън работно
време
– метод showEmployeeInfo(), който показва информация за човека,
както и информация за дневната му заплата
Да се напише и демонстративен клас с main метод в който:
1. Да се състави масив от 10 елемента от тип Person.
2. Да се създадът по два обекта от тип Person, Student и Employee и да се вкарат в масива от хора.
3. Да се обходим масива и в зависимост от това дали обекта е от
тип Person, Student или Employee да се извика съответно метода
showPersonInfo, showStudentInfo или showEmployeeInfo.
4. Да се обходи още веднъж масива с хора и за всеки човек, който е работник, да се изведе на екрана сумата, която му се дължи при 2 часа работа извън работно време.

0
tdk928 avatar tdk928 108 Точки

Така вкарани данните,"Ivan" очевидно ще е име но другите 0,false,0 какво са?

0
denitsadudinska avatar denitsadudinska 0 Точки

На другите не съм задала стойности. Просто искам да обходя масива и да проверя дали обентите са от съответния тип както се пита в условието.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.