Nazewnictwo zmiennych w Javie - kilka wątpliwości

0

Mam kilka wątpliwości odnośnie nazewnictwa w javie, mianowicie:

  1. Jak mam finalne NAME, DESCRIPTION i VALUE to przy robieniu metod (a w tym przypadku raczej konstruktora) zmienne (czy stałe?) też zgodnie z koncepcją Javy muszą być one oznaczone jako final i pisane z wielkich liter? Czy jednak tak jest dobrze:
public Weapon(String name, String description, int value)
	{
		this.NAME = name;
		this.DESCRIPTION = description;
		this.VALUE = value;
	}

??

Eclipse zaproponował coś takiego: //przykład z innej klasy jak coś

public Skill(int vALUE)
	{
		super();
		VALUE = vALUE;
	}
  1. Getter wtedy też będzie getNAME() czy normalnie getName()?

W tym przypadku mając private final String NAME eclipse proponuje to pierwsze. O ile tutaj to w miarę wygląda, to to już jakoś tak mniej przyjemnie dla oka: getFRACTION_UNITS_NAMES(). Tak ma być?

  1. Jeżeli w jakiejś klasie mam sporo etykiet (JLabel) i wiem, że żadnej nie będę modyfikował, to znaczy że mam wszędzie dawać final? Czy to będzie trochę bez sensu i po prostu powinienem dawać final tylko tam, gdzie po prostu chcę mieć pewność, że mi się nie zmieni referencja do czegoś?
1

Ad 1,2.
Z dużych liter piszesz tylko stałe, czyli zmienne finalne i statyczne. One nie zmieniają się w ciągu całego działania programu. Nie musisz tworzyć do nich getterów. Wystarczy oznaczyć je jako public. Istotne - stałe muszą być immutable. Jeżeli jest to stała instancyjna nazywasz ją tak samo jak zwykłą zmienną i wtedy problem nazewnictwa getterów odpada.

Ad 3.
JLabel możesz oznaczyć jako final jeżeli wiesz że referencja się nigdy nie zmieni. Nie będzie ona jednak niezmmiena i np. text można zmienić. Tak naprawdę nie ma tu większego zysku.

0

Właśnie nie miałem pewności, czy stała może być po prostu finalna, czy musi być zarówno finalna i statyczna. Dziękuję za odpowiedź.

1 użytkowników online, w tym zalogowanych: 0, gości: 1