Loading...
aanguelov avatar aanguelov 219 Точки

[Homework] Java Basics - OOP in Java

Колеги може ли някакво разписано решение на първа задача от домашното, че нещо не мога да вникна в кохезията на проблема. Хич не мога да се сетя за какво са ни тези списъци от върхове в парентите.

Иначе ето втората задача -> Problem 2 1lvShop

Тагове:
1
Java Advanced
DiyanTonchev92 avatar DiyanTonchev92 231 Точки

Eто го моето решение  Geometry 
Eто и цялото домашно JavaOOP

Искам да обърна внимание, че е възможно да има някакви бъгове и неточности, тъй като това не е окончателният вариант, а просто първият работещ. smiley
Поздрави!

5
18/09/2015 23:39:13
aanguelov avatar aanguelov 219 Точки

Мерси колега, че единствен се престраши smiley

Аз в крайна сметка елиминирах тия листове дето не знаех какво да ги правя и се получи това:

1. Geometry

2
DiyanTonchev92 avatar DiyanTonchev92 231 Точки

Aз ги задържах, само защото в условието се искаха  laugh

0
Innos avatar Innos 419 Точки

Здравей колега,

причината поради която не тръгва е че на 2 места се опитваш да принтираш интеджър на място където си посочил че ще стой floating point число, понеже форматите не са съвместими ти дава грешка. Смени този ред от toString методът в PlaneShape и в SpaceShape

String.format("Coordinates: [x = %.2f, y = %.2f, z = %.2f]"

в този

String.format("Coordinates: [x = %d, y = %d, z = %d]"

това настрани има и други неща които трябва да смениш според мене, първо в toString методът на Shape печаташ името на класа Vertex вместо на самия shape, който ще повика метода.
Методът за пресмятане на разстоянието между 2 вертекса също така трябва да е в класа вертекс, за да може да се преизползва, в момента ако ти дам нова фигура която трябва да си намери страните по вертексите ще трябва да хардкоудваш наново методът.

В условието се иска вертексите да се пазят в лист с идеята че е без значение колко вертекса ти подават фигурата да може да ги побере, така ще избегнеш и нуждата да правиш нови полета в класове на които ти подават повече от 1 вертекси и ще можеш да работиш със тях на по високо ниво на абстракция (ще можеш да ги изпечаташ в абстрактният клас над тях, защото понеже всяка фигура има лист от вертекси той ще дефиниран в абстрактният клас и ще можеш да му кажеш принт, в момента обаче понеже триъгълника е единствената фигура с 3 точки другите 2точки може да ги достъпиш само от класът Триъгълник и за да ги покажеш ще трябва да овъррайдваш toString методът на всяка такава фигура).

На въпроса за триъгълника, тук бих ти препоръчал да направиш 3 полета за страните, понеже ти трябва да знаеш страните за намирането и на лицето и на периметърът може да намериш страните веднъж (още в конструктора) и да преизползваш тези параметри, в момента ги преизчисляваш при всяко повикване на getPerimeter или getArea (в някой случаи даже 2 пъти, getArea методът извиква getPerimeter методът, getPerimeter методът ще ги пресметни 1 път и след това getArea ще ги пресметне пак)

Формулата ти за лице на квадратна пирамида е грешно, много хора видях с тази грешка, тази формула която гледаш използва височината на една от стените на пирамидата, докато в условието ти казват че ти дават височината на самата пирамида, различни работи са. Удари 1 търсене в гугъл, даже в сайт не трябва да влизаш гугъл ти показва отгоре формулата.

Това е от мене че трябва да излизам.

1
01/10/2015 12:39:58
Viktor_Boyanov avatar Viktor_Boyanov 21 Точки

Мерси за градивния feedback.

Ще я пооправя след изпита по джава :)

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