Դաս 6․2։ Java – Փոփոխականների տեսակները

0

Instance փոփոխականներ

Instance variable-ները կամ փոփոխականները հայտարարված են class-երում, բայց գտնվում են մեթոդից, կոնստրուկտորից կամ որևէ բլոկից դուրս:

Երբ օբյեկտի համար տեղ հատկացվում, յուրաքանչյուր միջանկյալ փոփոխական արժեքի համար ստեղծվում է մի տեղ:

Instance փոփոխականները ստեղծվում են, երբ ստեղծվում է օբյեկտը «new» բառի օգտագործմամբ և ոչնչացվում է, երբ օբյեկտը ոչնչացվում է:

Instance փոփոխականները պարունակում են արժեքներ, դեպի ուր պետք է հղվեն ավելի քան մեկ մեթոդով, կոնստրուկտոր կամ բլոկ կամ օբյեկտի կարևոր մասերը, որոնք պետք է ներկա լինեն ամբողջ class-ում:

Instance փոփոխականները կարող են հայտարարվել class մակարդակում, օգտագործվելուց առաջ կամ հետո:

Այս փոփոխականներին կարող են տրամադրվել նաև մուտքի մոդիֆիկատորները։

instance փոփոխականները տեսանելի են class-ի բոլոր մեթոդների, կոնստրուկտորների և բլոկերի համար: Սակայն այս փոփոխականներին subclass-ում տեսանելիություն տալու համար կարելի է օգտվել access modifier-ներից։

Instance փոփոխականներն ունեն նախնական արժեքներ: Թվերի համար, նախնական արժեքը 0-ն է, Booleans-ի համար false, և օբյեկտի հղումների՝ object references-ի, համար null: Արժեքները կարող են նշանակվել հայտարարության ընթացքում կամ կոնստրուկտորում:

Instance փոփոխականները հասանելի են class-ի ներսում ուղակի փոփոխական անունը կոչելով: Այնուամենայնիվ, ստատիկ մեթոդների դեպքում, դրանք անհրաժեշտ է կոչել օգտագործելով լիարժեք անուն: ObjectReference.VariableName:

Օրինակ

import java.io.*;

public class Employee {

  // this instance variable is visible for any child class.

  public String name;

  // salary  variable is visible in Employee class only.

  private double salary;

  // The name variable is assigned in the constructor.

  public Employee (String empName) {

     name = empName;

  }

  // The salary variable is assigned a value.

  public void setSalary(double empSal) {

     salary = empSal;

  }

  // This method prints the employee details.

  public void printEmp() {

     System.out.println(“name  : “ + name );

     System.out.println(“salary :” + salary);

  }

  public static void main(String args[]) {

     Employee empOne = new Employee(“Ransika”);

     empOne.setSalary(1000);

     empOne.printEmp();

  }

Կարտատպի հետևյալ արդյունքը

name  : Ransika

salary :1000.0

Class/Static փոփոխականներ

Class փոփոխականները, որոնք հայտնի են նաև որպես ստատիկ փոփոխականներ, հայտարարվում են static բանալի բառով class-ում, բայց գտնվում են մեթոդից, կոնստրուկտորից կամ որևէ բլոկից դուրս:

Յուրաքանչյուր դաս կունենա միայն մեկ class փոփոխականի օրինակ, անկախ նրանից, թե քանի օբյեկտներ են ստեղծվում:

Ստատիկ փոփոխականները հազվադեպ են օգտագործվում։ Դրանք հայտարարվում են որպես հաստատուն: Կոնստանտները փոփոխականներ են, որոնք հայտարարված են որպես հանրային / մասնավոր, վերջնական և ստատիկ (public/private, final, և static) Կոնստանտ փոփոխականները երբեք չեն փոխվում իրենց սկզբնական արժեքները։

Ստատիկ փոփոխականները պահվում են ստատիկ հիշողության մեջ: Վերջիններս հազվադեպ են օգտագործվում, բացառությամբ հայտարարվում են վերջնական և օգտագործվում որպես հանրային կամ մասնավոր հաստատուն: (public կամ private constants)։

Ստատիկ փոփոխականները ստեղծվում են, երբ ծրագիրը սկսվում և ոչնչացվում է, երբ ծրագիրը դադարում է:

Այս փոփոխականների տեսանելիությունը նման է instance փոփոխականներին։ Այնուամենայնիվ, ստատիկ փոփոխականների մեծ մասը հայտարարվում է որպես հանրային՝ public, քանի որ նրանք պետք է հասանելի լինեն class-ի օգտատերերի համար։

Նախնական արժեքները նույնն են, ինչ instance փոփոխականներինը: Թվերի նախնական արժեքը 0 է, Booleans-ի համար false, և օբյեկտի հղումների՝ object references-ի, համար null: Արժեքները կարող են նշանակվել հայտարարության ընթացքում կամ կոնստրուկտորում: Բացի այդ, արժեքները կարող են նշանակվել հատուկ ստատիկ բլոկերում:

Ստատիկ փոփոխականները կարող են հասանելի լինել կոչ անելով ClassName.VariableName դասի անվանումը:

Երբ class փոփոխականները հայտարարվում են որպես public static final, ապա փոփոխականի բոլոր տառերը գրվում են մեծատառով: Եթե ստատիկ փոփոխականները public and final չեն, ապա անվանումների syntax-ը  նույնն է, instance և local փոփոխականների դեպքում։

Օրինակ

import java.io.*;

public class Employee {

  // salary  variable is a private static variable

  private static double salary;

  // DEPARTMENT is a constant

  public static final String DEPARTMENT = “Development “;

  public static void main(String args[]) {

     salary = 1000;

     System.out.println(DEPARTMENT + “average salary:” + salary);

  }

}

Կարտատպի հետևյալ արդյունքը

Development average salary:1000

Հաջորդիվ

Դուք արդեն կիրառել եք մուտքի մոդիֆիկատորները այս դասում: Հաջորդիվ կներկայացնենք Access Modifier-ները և Non-Access Modifier-ները ավելի մանրամասնորեն:

Share.