[Exam] OOP - Резултати от изпит, впечатления, решения - октомври 2014
Колеги, готови сме с резултатите от изпита по ООП и оценяването в ООП курса. Можете да си видите резултатите в профилите в учебната система.
До няколко дни ще можете да си видите и коментарите по всяка задача от ръчната проверка на изпратените решения. В момента системата не е предвидена да показва коментари и трябва да се допише тази функционалност.
Просто трябва да съобразиш решението си с дадения ти в скелета код и да не усложняваш проблема. Не е необходим конструктор с всички свойства след като не се ползва.
Повторението на кода е при сетването на пропъртитата Rooms, hasElevator. В твоя случай може би това е варианта, но пък ти имаш паралелно наследяване на два конструктура, което не е необходимо. Ако предположим, че конструктор с пълен комплект данни ще си ги наследиш стандартно, както си направил в конструктор 1 (най-горе). А ако са необходими дефолтни стойности предполагам че трябва да са указани в условието, иначе ще има несъответствия при проверката.
Идеята ми е, че ако правиш приложение, което трябва да е гъвкаво, ти ще знаеш кои стойности могат да имат дефолтни и кои не и ще решиш сам какви ще са стойностите ако не се въведе нищо, в случая или трябва да се сетне по условие или да хвърли грешка.
@Valleri Благодаря за уточнението. Логиката ми за задаване на Rooms и hasElevator във втория конструктор беше..., предвид че енджина на задачата първо създава обект, с едно поле от калс Естейт и останалите полета са празни и после му набутват стойностите на полетата. Моята идея е да има друг конструктор, който да поема тази му функционалност и да се вижда, че приема дефолтни стойности. Разбира се, че можеше да ползвам само един конструктор, като задам на всички полета, които не са подадени стойности null, но ми се стори, че това повторение на две променливи е допустимо, защото е друга логиката за използване на конструктура, а и се постига по - добра четимост на кода, но явно проверяващия не е бил на това мнение :).
А за дефолтните стойности на естейт те служат само за създаването на първоначалния полу празен обект и след като енджина набута истинските стойности те заменят и нямат никакво значение.
Да, както ти си го решил е приемливо, ако се бутаха всички стойности И има възможност за това само някои стойности да са инициализирани, в домашните имаше такива случаи.
Разбирам те за дефолтните стойности, но в случая води до допълнителен код и не помага с нищо. Само в случая... :)