Wpis z mikrobloga

Hejka
Mam trzy klasy:

Candle.java - glowna
ScentedCandle.java - podklasa Candle
DemoCandles.java - klasa z main()

Z góry mowie - WIEM, że nie moge zmienic private double price za pomocą prostego =, tylko za pomocą metody. Jak w takim razie mogę w podklasie stworzyc dzialajace metode setHeight, zeby miala dostep do private double price klasy nadrzednej i mogla ja zmodyfikowac?

W domysle chodzi o to, ze zwykle swieczki kosztuja 2$ za cal, a zapachowe 3$ za cal. Dlatego mnoze razy height i z tego mam price.

#java #programowanie #programista15k #naukaprogramowania #pytanie
  • 30
@Kresse:
Ad 1. skryptu - przez konstruktor? Wydaje sie najprosciej i najbardziej zrozumiale.
Ad 2. skryptu - Tutaj rozumiem, ze klasie rodzica dodales metoda do obliczenia ceny, ktora w klasie potomka podmieniles?
Dzieki za pokazanie dwoch mozliwosci ! :)
@Kresse:

Jak koniecznie potrzebujesz mutowalnosci, to albo wywal pole price i dynamicznie wyliczaj cene w metodzie,


Tak.

... albo zrob metode, ktora bedzie wyliczac cene i ktora bedziesz nadpisywac w podklasach:


Nie.
Po pierwsze za dużo protected:). Po drugie wprowadza konwencję w kodzie, której nie da się upilnować. Ty piszesz upierdliwość ja błędogenność. Koniec końców i tak ktoś nadpisze getPrice.
@farmaceut:

Finalnie nazwy zmiennych będziesz pisał po angielsku, w camelCase, kod sprawdzał testami/debuggerem a logował loggerem a nie na System.out.

Ja wiem, że dopiero się uczysz podstaw, ale weź pod uwagę, że przez cały ten czas możesz w sobie wyrabiać dobre lub złe nawyki. Im szybciej się dostosujesz do powyższego tym lepiej.
@63274682374: Ale...
- camelCase uzywam w metodach, w var mala litera, w klasach DUZAmalaDUZAmala...,
- nie debugguje teraz, bo pisze w Sublime, a nie IDE - zbyt male programiki, to tylko cwiczenia...
- tylko z tym loggerem nie wiem co masz na mysli, ale sobie znajde.