Разлика између Финал, Коначно и Финализе у Јави
Садржај
- Упоредни графикон
- Дефиниција Финал
- Коначна променљива
- Коначни методи
- Финал Цласс
- Дефиниција Финализе
- Закључак:
Речи „коначно, коначно и завршено“ налазе се у контра Јава. Сваки од њих има другачије функционисање. Основна разлика између коначног и коначног је у томе коначни је модификатор приступа, напокон је блок и финализирати је метода класе објеката. Постоје неке друге разлике између коначног и коначног који су размотрени у упоредној табели.
- Упоредни графикон
- Дефиниција
- Кључне разлике
- Закључак
Упоредни графикон
Основе за упоређивање | Коначни | Коначно | Доврши |
---|---|---|---|
Основни | Финално је "Јава" и кључна реч и модификатор приступа. | Коначно је "блок" у Јави. | Финализација је "метода" у Јави. |
Применљиво | Финал је кључна реч која се односи на класе, променљиве и методе. | Коначно је блок који је увек повезан са блоком покушај и улов. | финализе () је метода применљива на објекте. |
Рад | (1) Коначна варијабла постаје константна и не може се доделити поново. (2) Дечја класа не може заобићи коначну методу. (3) Финална класа се не може продужавати. | Блок "коначно", очистите ресурсе који се користе у "покушају" блоку. | Финализирајућа метода врши чишћење активности везаних за објекат пре његовог уништавања. |
Извршење | Завршни метод се извршава након његовог позива. | "Коначно" блок извршава се одмах након извршења блока "три-цатцх". | финализе () метода се изводи непосредно пре уништења објекта. |
Дефиниција Финал
„Финал“ је кључна реч на Јави. То је модификатор приступа. „Коначна“ кључна реч је применљива на класе, методе и променљиве. Да видимо како то функционише са сваким од њих.
Коначна променљива
- Када се задња кључна реч примјени на променљиву, она се не може даље модификовати.
- Коначна варијабла мора се иницијализирати када је декларирана.
- У уобичајеној конвенцији кодирања, коначне променљиве су декларисане у УППЕРЦАСЕ.
- Коначна варијабла не заузима меморију на инстанци.
Коначни методи
- Када је метода у класи проглашена коначном, не може је надјачати њезин подразред.
- Мале методе које су проглашене коначним могу да поставе „инлине“ од стране преводиоца, што ће умањити опште трошкове позива и повећати перформансе.
- Прекрштени позиви метода, решавају се динамички, али када се метода прогласи коначном, не може се прегласити. Стога се позивање функције може разријешити у вријеме компилације.
класа А {финал воид метх () {Систем.оут.лн ("Ово је коначна метода."); }} класа Б проширује А {воид метх () {// Класа Б не може наследити методу класе А. Систем.оут.лн ("Не превладава"); }}
Финал Цласс
- Када је класа декларирана као коначна, није је могуће подединити нити један подразред.
- Ако се класа прогласи коначном, аутоматски ће се прогласити коначним све његове методе.
- Не можете прогласити класу и „апстрактном“ и „коначном“.
финална класа А {// ...} класа Б се проширује А {// Класа Б не може наследити класу А // ...}
- У Јави је „коначно“ блок који је увек повезан са блоком пробај / ухватити.
- Блок „коначно“ се извршава након блока покушај / уломака и пре кода који следи блок покушаја / улова.
- Блок „коначно“ извршава се без обзира да ли је изузетак избачен или не.
- Када се изузме изузетак и ниједан блок хватања се не подудара са изузетком чак и тада, блок "коначно" се извршава.
- Када се метода врати позиваоцу из блока три / цатцх путем унцаугхт изузетка или изричите изјаве повратка, блок "напокон" се извршава непосредно пре него што се метода врати позиваоцу.
- Блок "коначно" користи се за чишћење ресурса или ослобађање меморије која се користи у блоку "пробај".
- Блок „коначно“ је опционалан, али је добра пракса да коначно напишете блок након блока покушај / ухватити.
цласс ФиналЕкампле {// Ова метода избацује изузетак из методе. статиц воид процА () {пробај {Систем.оут.лн ("унутар процА"); баците нову РунтимеЕкцептион ("демо"); } коначно {Систем.оут.лн ("Процитати коначно"); }} // Повратак из пробног блока. статиц воид процБ () {пробај {Систем.оут.лн ("унутар процБ"); повратак; } напокон {Систем.оут.лн ("ПроцБс коначно"); }} // Извршите покушајни блок нормално. статиц воид процЦ () {пробај {Систем.оут.лн ("унутар процЦ"); } коначно {Систем.оут.лн ("ПроЦЦ коначно"); }} јавни статички воид маин (Стринг аргс) {пробај {процА (); } цатцх (Изузетак е) {Систем.оут.лн ("Изузетак је ухваћен"); } процБ (); процЦ (); }} // излаз унутар про-ПроЦ-а, коначно Изузетак је ухваћен унутар процБ-а, ПроБ-а, коначно унутар ПРОЦ-а, ПроЦ-а, коначно
Дефиниција Финализе
- Финализе је метода у објектној класи.
- Објекат можда садржи неке неваванске ресурсе, као што је руковање датотекама; онда се мора ослободити пре него што се уништи.
- Ову методу прикупља сакупљач смећа пре него што објект потпуно уништи.
- Овом методом се обављају активности чишћења објекта пре него што се он уништи.
Општи облик методе финализе () је следећи.
протецтед воид финализе () {// код за финализацију овде}
Метода финализације је проглашена заштићеном тако да јој се не може приступити изван класе.
Ова метода се увек назива пре одвоза смећа.
- Коначна реч коначна је модификатор приступа, на крају је блок, а финализација је метода.
- Коначна реч кључна примењује се на класе, променљиве и методе класа, на крају је блок повезан са блоком покушај хватања који се користи за обраду изузетака, финализе је метода која делује само на објектима.
- Променљива једном проглашена коначном постаје константна и не може се поново доделити, метода која је декларирана као коначна не може се надјачати, а класа која је једном проглашена коначном никада не може бити наслеђена. Коначни блок користи се за чишћење ресурса који се користе у блоку покушај улова. Метода финализације користи се за чишћење ресурса које користи објект прије него што се објект уништи.
Закључак:
Коначно, коначно и финализирање има различит ефекат када се примени на методу.