Eynilə, proqram yazarkən bu prinsiplərə əməl edilməsi proqramın daha güvənli və dayanıqlı olmasını təmin edir. Bu məqsədlə dəyişənlər üçün
private
və protected
açar sözlərindən istifadə edilməsi geniş qəbul görmüş bir üsuldur. Dəyişənlərin dəyərlərində dəyişiklik lazım gələrsə, "setter" metodu yazılır. Bununla yanaşı dəyişənin dəyərini almaq üçün də "getter" metodu nəzərdə tutula bilər.Class.java faylı
public class Car
{
private String name;
private String model;
private int year;
private double engine;
public void setName(String name)
{
this.name=name;
}
public String getName()
{
return name;
}
public void setModel(String model)
{
this.model=model;
}
public String getModel()
{
return model;
}
public void setYear(int year)
{
this.year=year;
}
public int getYear()
{
return year;
}
public void setEngine(double engine)
{
this.engine=engine;
}
public double getEngine()
{
return engine;
}
}
Test.java faylı
public class Test
{
public static void main (String [] arg)
{
//Car sinfindən bir nümunə yaradılır
Car car=new Car();
//Uyğun dəyişənlərə dəyərlər verilir
car.setName("Mercedes Benz");
car.setModel("C class");
car.setYear(1995);
car.setEngine(2.3);
System.out.println("Maşının markası: "+car.getName());
System.out.println("Maşının modeli: "+car.getModel());
System.out.println("İstehsal ili: "+car.getYear());
System.out.println("Mühərrik həcmi: "+car.getEngine());
}
}
Mahiyyətini daha aydın başa düşmək üçün
Car
və Test
siniflərini ayrı ayrılıqda yazdım. Çünki Car
sinfi içərisindən onun private
olan sahələrinə müraciət etmək olur və belədə abstraksiya-kapsulasiya prinsipinin heç bir mənası qalmır. Daha yüksək səviyyəli proqramlarda da siniflər bu cür ayrı-ayrılıqda yazılır. Yuxarıdakı nümunədə Test
sinfi içərisində yaradılmış Car
tipindən obyekt onun private
sahələrinə birbaşa müraciət edə bilməz. Buna görə setName()
, setModel()
, setYear()
, setEngine()
metodları vasitəsilə uyğun dəyişənlərin dəyərini istədiyimiz kimi dəyişə bilərik. Eyni qaydada, getName()
, getModel()
, getYear()
, getEngine()
metodları ilə də bu dəyərləri çıxışa vermək imkanımız var.
No comments:
Post a Comment