Javada Sinif və Obyektlər (Class and Objects in Java)

Nariman Karimov
2 min readMar 29, 2020

--

Bu mövzu ilə biz, OOP (Object Oriented Principles)-yə giriş edəcəyik.Yəni, Obyektyönümlü proqamlaşdırmaya giriş edirik. Bəs OOP nədir? Adından da məlum olduğu kimi, burda obketlərdən istifadə olunur. Bəs Obyekt nədir?

Ətrafımızda gördüyümüz hər şəyi obyekt kimi fikirləşə bilərik. Onlar hamısı özlüyündə bir obkyetdir. İstər canlı istərsə də cansız olsun. Hər bir obyektin adı,parametrləri,davranışları olur. Siz gələckdə Object İdentity(Ad),Object Attribute(parametr),Object behavior(davranış) kimi sözlər eşidəcəsiniz. Dog obyeti üzərindən bunları izah edək.

Dog obyektinin indenty-si dedikə adı, yəni Dog nəzərdə tutulur.

Dog obyektinin parametrləri dedikə adı, yəni yaş,rəng və s nəzərdə tutulur.

Dog obyektinin davranışı dedikdə yemeək yeməsi, qaçması və s nəzərdə tutulur.

Bəs Sinif nədir? Əvvəlcə sinfin tərifinə baxaq.

Sinif-Konstruktordan,Parmetrlərdən və metodlardann ibarət obyektir. Tərifə baxsaq görərik ki sinif elə yuxarıda bəhs etiyimiz obyektin özüdür. Metodun nə olduğunu bir öncəki mövzuda danışmışdım. Eyni zamanda paremtrində nə olduğunu həm metodlar dərsində həm də Obyektdi başa salarkən danışdım.

Bəs konstruktor nədi? Konstruktor bir sinfin ilk işə düşən yeridir. Konstruktora bir metod kimi də baxmaq olar amma metod deyildir. Konstruktorun adı sinfin adı ilə eyni olmalıdır və geriyə dəyər qaytarmır. Bu danışdıqlarımı bir sinif yaradaq və onun üzərindən izah edək.

// sinif
public class Dog {
//parametrlər
public String name;
public String breed;
public int age;
public String color;

//konstruktor
public Dog() {
}

// metod
public void run() {
System.out.println("Dog running");
}
}

Bir sinifdə istənilən qədər paremtr, konstruktor və metod yaramaq olur. Yaradılan konstruktorların adları həmişə eyni olur amma qəbul etiyi parametrlər fərqli olmalıdır.

//konstruktor
public Dog() {
}

public Dog(int age) {
this.age = age;
}

public Dog(String breed) {
this.breed = breed;
}

public Dog(String name, String breed, int age, String color) {
this.name = name;
this.breed = breed;
this.age = age;
this.color = color;
}

Sinfin parametrləri qlobal dəyişənlərdir. Ancaq method və konstruktorlarda təyin olunan dəyişənlər lokal dəyiçənlərdir. Yuxarıdakı nümunədəki this sözü- qlobal dəyişənə konstruktordan daxil edilən dəyişənin dəyərini vermək üçün istifadə olunur. Yəni this.age deməklə biz age dəyişəninin sinfin qlobal dəyişəni olduğunu deyirik. this sözü haqqında sonrakı məqalələrdə ətraflı danışacam.

Bəs siz yaratdığımız sinfi necə istifadə edə bilərik? Sinif bir objet olduğu üçün onu istifadə etmək üçün biz obyektini yaratmalıyıq. Hər bir dəyişənin obyektini yaratmaq üçün new sözündən istifadə etmık lazımdır. İndi isə yaratdığımız Dog sinfini özümüzün Main sinfində çağıraq və run metodunu işə salaq.

public class Main {
public static void main(String[] args) {
Dog dog=new Dog();
dog.run();
}
}

Biz burda new Dog() deməklə dog obyektini yartmış olduq. dog.run() deməklə isə dog obyektinin run metodunu işlətdik. new Dog() deməklə Dog sinfinin parametrsiz konstruktorunu çağırmış oluruq. Əgər biz digər konstruktorları çağırmaq istəsək o zaman

Dog dog=new Dog(23);
Dog dog1=new Dog(“dog 2”);

kimi yaza bilərik. Qeyd edim ki, biz sinif yaradan zaman default boş konstruktor yaratmaya da bilərik, java özü bunu əvəzimizə edir. Qeyd edim ki, bir sinif public və ya default ola bilər. Access modifier-lər haqqında sonrakı mövularda danışacam. Javanın standartlarına uyğun olaraq sinif adı böyük hərflə başlamalıdır.

Əvvəlki Mövzu: Javada Metodlar(Methods in Java)

Növbəti Mövzu: Access Modifiers in Java

--

--