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

0

Java-ն տրամադրում է non-access մոդիֆիկատորներ տարբեր գործառույթներ իրականացնելու համար:

  • Ստատիկ մոդիֆիկատորներ դասի փոփոխականներ և մեթոդներ ստեղծելու համար
  • final կամ ավարտուն մոդիֆիկատորներ դասերի, մեթոդների և փոփոխականների վերջնական ռեալիզացիան ավարտելու համար:
  • abstract մոդիֆիկատորներ abstract դասեր և մեթոդներ ստեղծելու համար
  • Սինխրոնիզացված և փոփոխական մոդիֆիկատորները, որոնք օգտագործվում են կապերի համար:

Static Modifier/Ստատիկ Մոդիֆիկատոր

Ստատիկ փոփոխականներ

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

Ստատիկ փոփոխականները հայտնի են նաև որպես class կամ դասի փոփոխականներ: Local փոփոխականները չեն կարող հայտարարվել ստատիկ:

Static Methods/Ստատիկ մեթոդներ

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

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

Class փոփոխականները և մեթոդները հասանելի են մուտքագրելով դասի անունը որին հաջորդում է կետ և  փոփոխականի կամ մեթոդի անունը:

Օրինակ

Ստատիկ մոդիֆիկատորը օգտագործվում է դասի մեթոդներ եւ փոփոխականներ ստեղծելու համար, ինչպես հետևյալ օրինակում.

public class InstanceCounter {

  private static int numInstances = 0;

  protected static int getCount() {

     return numInstances;

  }

  private static void addInstance() {

     numInstances++;

  }

  InstanceCounter() {

     InstanceCounter.addInstance();

  }

  public static void main(String[] arguments) {

     System.out.println(“Starting with “ + InstanceCounter.getCount() + ” instances”);

     for (int i = 0; i < 500; ++i) {

        new InstanceCounter();

     }

     System.out.println(“Created “ + InstanceCounter.getCount() + ” instances”);

  }

}

Արդյունքը

Started with 0 instances

Created 500 instances

 

Ավարտուն մոդիֆիկատոր/ Final Modifier

Ավարտուն փոփոխականներ/ Final Variables

Ավարտուն փոփոխականը կարող է ակնհայտորեն մեկնարկել միայն մեկ անգամ: Նշված ավարտուն փոփոխականը երբեք չի կարող վերագրվել, այլ առարկա օբյեկտն վերհղելու համար:

Այնուամենայնիվ, օբյեկտի ներսում գտնվող տվյալները կարող են փոխվել: Այսպիսով, օբյեկտի կարգավիճակը՝ state-ը, կարող է փոխվել, բայց ոչ թե հղումը:

փոփոխականներով, ավատրուն մոդիֆիկատորը հաճախ օգտագործվում է ստատիկի հետ

Օրինակ

public class Test {

  final int value = 10;

  // The following are examples of declaring constants:

  public static final int BOXWIDTH = 6;

  static final String TITLE = “Manager”;

  public void changeValue() {

     value = 12;   // will give an error

  }

}

Ավարտուն մեթոդներ/Final Methods

Ավարտուն մեթոդը չի կարող վերափոխվել ցանկացած subclasses-ի կողմից: Ինչպես նշվեց նախկինում, ավարտուն մոդիֆիկատորը թույլ չի տալիս մեթոդին փոփոխել ենթադասում:

Ավարտուն մեթոդի հիմնական նպատակն այն է, որ մեթոդի բովանդակությունը  անհնար լինի փոխել որևէ արտաքին աղբյուրի կողմից:

Օրինակ

Դուք հայտարարում եք մեթոդները, օգտագործելով final modifier, ինչպես հետևյալ օրինակում՝

public class Test {

  public final void changeName() {

     // body of method

  }

}

Ավարտուն դասեր/ Final Classes

Դրանց հիմնական նպատակն է, կանխել որ դասը պատկանա որևէ ենթադասի։ Եթե դասը սահմանված է որպես վերջնական՝ final, ապա ոչ մի դաս չի կարող ժառանգել ավարտուն դասի որևէ առանձնահատկություն:

Օրինակ`

public final class Test {

  // body of class

}

Share.