Դաս 7․4։ Java non-access մոդիֆիկատորներ

0

Abstract Modifier/Աբստրակտ մոդիֆիկատոր

Abstract Class/Աբստրակտ դաս

Աբստրակտ դասը երբեք չի կարող առաջադրվել որպես օրինակ: Եթե դասը հայտարարագրված է որպես աբստրակտ, ապա դրա միակ նպատակը դասի ընդլայնելումն է:

Դասը չի կարող միառժամանակ լինել և աբստրակտ և ավարտուն (քանի որ ավարտուն դասը անհնար է ընդլայնել): Եթե դասը պարունակում է աբստրակտ մեթոդներ, ապա դասը պետք է հայտարարագրվի որպես աբստրակտ: Հակառակ դեպքում, կհայտնվեն սխալներ:

Աբստրակտ դասը կարող է պարունակել ինչպես աբստրակտ մեթոդներ, այնպես էլ նորմալ մեթոդներ:

Օրինակ

abstract class Caravan {

  private double price;

  private String model;

  private String year;

  public abstract void goFast();   // an abstract method

  public abstract void changeColor();

}

Աբստրակտ մեթոդներ

Աբստրակտ մեթոդն այնպիսի եղանակ է, որը հայտարարված է առանց որևէ իրականացման: Մեթոդների մարմինը (իրականացումը) տրամադրվում է ենթադասի կողմից: Աբստրակտ մեթոդները երբեք չեն կարող ավարտուն/final կամ strict լինել:

Ցանկացած դաս, որն ընդգրկում է աբստրակտ դասը, պետք է իրականացնի սուպեր դասի՝ super class, բոլոր աբստրակտ մեթոդները, եթե, իհարկե, ենթադասը նույնպես աբստրակտ դաս չէ:

Եթե դասը պարունակում է մեկ կամ ավելի աբստրակտ մեթոդներ, ապա դասը պետք է հայտարարագրվի որպես աբստրակտ: Աբստրակտ դասը կարող է չներառել աբստրակտ մեթոդներ։

Աբստրակտ մեթոդը ավարտվում է կետ ստորակետով: Օրինակ public abstract sample();

Օրինակ

public abstract class SuperClass {

  abstract void m();   // abstract method

}

class SubClass extends SuperClass {

  // implements the abstract method

  void m() {

     ………

  }

}

Synchronized Modifier/ Սինխրոնացված մոդիֆիկատոր

Սինխրոնացված բանալի բառը, որն օգտագործվում է ցույց է տալու համար, որ մեթոդը հասանելի է միայն մեկ անգամով։ Սինխրոնացված մոդիֆիկատորը կարող է կիրառվել ցանկացած չորս մուտքի մակարդակի մոդիֆիկատորներից որևէ մեկի հետ:

Օրինակ

public synchronized void showDetails() {

  …….

}

Transient Modifier/Անցումային մոդիֆիկատոր

instance փոփոխականը նշվում է որպես անցումնային, JVM-ին նշում տալու համար, որպեսզի այն բաց թողնի տվյալ փոփոխականը օբյեկտի սերիալիզացիայի ժամանակ։

Այս մոդիֆիկատորը ընդգրկված է այն հայտարարության մեջ, որն ստեղծում է փոփոխական, որը նախորդում է փոփոխականի դասի կամ տվյալների տեսակին:

Օրինակ

public transient int limit = 55;   // will not persist

public int b;   // will persist

Volatile Modifier/ Անկայուն մոդիֆիկատոր

Այն օգտագործվում է JVM-ին իմաց տալու համար, որ փոփոխական մուտք գործող զանգվածը միշտ պետք է միավորի իր փոփոխականի անհատական պատճենը հիշողության մեջ։

Անկայուն փոփոխական մուտք գործելը սինխրոնիզացիա է անում փոփոխականների բոլոր քեշավորված պատճենները հիմնական հիշողության մեջ: Volatile  կարող է կիրառվել բացառապես instance փոփոխականների հետ, որոնք օբյեկտի տեսակ են կամ մասնավոր են: Անկայուն օբյեկտի հղումը կարող է լինել null:

Օրինակ`

public class MyRunnable implements Runnable {

  private volatile boolean active;

  public void run() {

     active = true;

     while (active) {   // line 1

        // some code here

     }

  }

  public void stop() {

     active = false;   // line 2

  }

}

 

Share.