Разлика между статичен и финал в Java

Автор: Laura McKinney
Дата На Създаване: 2 Април 2021
Дата На Актуализиране: 7 Може 2024
Anonim
Java для начинающих. Урок 22: Ключевое слово final.
Видео: Java для начинающих. Урок 22: Ключевое слово final.

Съдържание


Статичните и окончателните и двете са ключовите думи, използвани в Java. Статичният член може да бъде достъпен преди създаването на обекта от клас. Final има различен ефект, когато се прилага към клас, методи и променливи. Основната разлика между статичната и крайната ключова дума е това статичен Ключовата дума е използвана за определяне на члена на класа, който може да се използва независимо от всеки обект от този клас. Финал ключова дума се използва за деклариране, постоянна променлива, метод, който не може да бъде отменен и клас, който не може да бъде наследен.

  1. Сравнителна диаграма
  2. дефиниция
  3. Ключови разлики
  4. заключение

Сравнителна диаграма

Основа за сравнениестатиченФинал
приложимСтатичната ключова дума е приложима за вложен статичен клас, променливи, методи и блок.Крайната ключова дума е приложима за клас, методи и променливи.
ИнициализацияНе е задължително да се инициализира статичната променлива към момента на нейното деклариране.Задължително е да се инициализира крайната променлива в момента на нейното деклариране.
модификацияСтатичната променлива може да се реинициализира.Крайната променлива не може да се реинициализира.
методиСтатичните методи имат достъп само до статичните членове на класа и могат да бъдат извиквани само чрез други статични методи.Окончателните методи не могат да бъдат унаследени.
класОбектът за статични класове не може да бъде създаден и той съдържа само статични членове.Окончателният клас не може да бъде наследен от никой клас.
блокСтатичният блок се използва за инициализиране на статичните променливи.Крайната ключова дума не поддържа такъв блок.


Определение за статично

Static е ключова дума, приложима за класове, променливи, методи и блокове. Членовете на класа, класът и блоковете могат да бъдат направени статични с помощта на „статична“ ключова дума пред името на съответно членовете на класа, клас и блокове. Когато член на класа е деклариран като статичен, той става глобален за всички останали членове на класа. Статичният член на класа не заема памет на база пример, т.е. всички обекти споделят едно и също копие на статичен член. Статичният член може да се използва независимо от всеки обект от този клас. Можете да получите достъп до статичния член на класа, преди обектът му да бъде създаден. Най-добрият пример за статичния член е методът main (), той се декларира статичен, така че да може да бъде извикан преди всеки обект да съществува. Общата форма за достъп до статичния член на класа:

class_name.static_member // достъп до статичен член на класа

По-горе код class_name е името на класа, в който е дефиниран static_member. Статичният член може да бъде статична променлива или статичен метод


Статични променливи:

  • Статичната променлива действа като глобална променлива за всички останали членове на данните от класа.
  • До статична променлива може да се получи достъп до който и да е обект от класа.
  • До статична променлива може да се направи достъп с името на класа, в който е дефинирано, последвано от оператора dot (.).

Статични методи:

  • Статичният метод може да извиква само други статични методи.
  • Статичният метод има достъп само до статични данни.
  • Един статичен метод не може да бъде отнесен до „това“ или „супер“ при никакви условия.
  • До статичен метод може да се направи достъп с името на класа, в който е дефинирано, последвано от оператора dot (.).

Статичен клас:

  • Java има концепцията за вложен статичен клас. Най-външният клас не може да бъде статичен, докато най-вътрешният клас може да бъде направен статичен.
  • Статичен вложен клас не може да получи достъп до нестатичния член на външния клас.
  • Той има достъп само до статичните членове на външния клас.

Статичен блок:

Статичният блок се изпълнява само веднъж, когато класът е зареден. Използва се за инициализиране на статичните променливи на класа.

C ++:

В C ++ имаме концепцията за статични променливи, както и статични функции, докато C ++ не поддържат статичен клас.

° С#:

C # поддържа статичен клас, статични променливи и статичен клас също.

Java:

Java поддържа статичен вложен клас, статични променливи, статични методи.

Определение на финал

Final е ключова дума, приложима към класа, променливата и методите. Класът, променливата и методът се декларират като окончателни с помощта на ключовата дума „окончателен“, предшествана от тяхното име. След като променлива е декларирана като крайна; той не може да бъде променян допълнително в програмата. Крайната променлива трябва да се инициализира в декларацията за време. Крайните променливи не заемат памет на база инстанция. Всички обекти на класовете споделят едно и също копие на крайната променлива.

Методът, деклариран като окончателен, не може да бъде отменен от подклас от този клас, в който е деклариран окончателният метод. Когато клас е деклариран като окончателен, друг клас не може да наследи този окончателен клас. C ++, C # не поддържат концепцията, ако крайната ключова дума. Java поддържа концепцията за крайната ключова дума и в Java; клас, променлива и метод могат да бъдат декларирани като окончателни.

  1. Статичната ключова дума е приложима за вложен статичен клас, променливи, методи и блокове. От друга страна, крайната ключова дума е приложима за методите и променливите на класа.
  2. Статичната променлива може да се инициализира по всяко време, докато в момента на деклариране трябва да се инициализира окончателна променлива.
  3. Статичната променлива може да се реинициализира, докато веднъж инициализирана окончателна променлива никога не може да се реинициализира.
  4. Статичният метод може да получи достъп до статичния член на класа и може да бъде извикан само от други статични методи. От друга страна, крайният метод никога не може да бъде наследен от нито един клас.
  5. Статичният блок се използва за инициализиране на статичните променливи, докато крайната ключова дума не поддържа нито един блок.

Заключение:

Както статичната, така и крайната ключова дума решават различно предназначение, когато се прилагат към клас, променлива и метод.