Java Metod (Sinf/Class)

O’tgan darslarimizdan birida Java dasturlash tilida funksiyalar (metodlar) ni o’rgangan edik. Quyidagi havola orqali darsni ko’rishingiz mumkin: https://uzbekdevs.uz/darsliklar/java/java-da-funksiya

Bu darsimizda metodlarni OOP nuqtai nazari bilan ko’rib chiqamiz. Quyidagi misolda metodga oddiy misol keltirilgan:

public class Main {
 static void metod() {
   System.out.println("Salom dunyo!");
 }
 public static void main(String[] args) {
   metod(); // Salom dunyo
 }
}

Java dasturlarda static va public kalit so’zlar bilan yozilgan o’zgaruvchi va metodlarga ko’p duch kelamiz. Static metodlar sinfning o’ziga tegishli hisoblanadi va obyekt yaratmasdan foydalanish mumkin bo’ladi, vaholanki public metodlarga faqatgina obyekt yaratish orqali murojaat qilinadi. Quyida buning isbotini ko’rishingiz mumkin:

public class Main {
 // Static metod
 static void staticMetod() {
   System.out.println("Bu static metod");
 }
 // Public metod
 public void publicMetod() {
   System.out.println("Bu public metod");
 }
 // Main metod
 public static void main(String[] args) {
   staticMetod(); // static metod chaqirildi
   Main object = new Main(); // Main sinfidan obyekt yaratildi
   object.publicMetod (); // obyekt orqali public metod chaqirildi
 }
}

Konsulga quyidagi xabarlar chiqariladi:

Bu static metod Bu public metod

Keyingi misolda obyektlar orqali metodlarni chaqirishni o’rganamiz:

// Main class yaratish
public class Main {
 // tormoz() metodini yaratish
 public void tormoz() {
   System.out.println("Mashina to’xtadi");
 }
 // tezlikniOshirish() metodini yaratish
 public void tezlikniOshirish(int tezlik) {
   System.out.println("Mashina tezligi " + tezlik);
 }
 // main() metodi
 public static void main(String[] args) {
   Main mashina = new Main();  // mashina nomli obyekt yaratish
   mashina.tormoz();     // tormoz() metodini chaqirish
   mashina.tezlikniOshirish(200); // tezlikniOshirish() metodini oshirish
 }
}
Mashina to’xtadi Mashina tezligi 200

OOP dasturlash tillarida odatda dastur funksiyalari ko’plab sinflarga taqsimlanib yoziladi. Biz ham 3 sinfdan va turli metodlardan iborat kichik bir dastur yozib ko’ramiz:

public class Main {
   public static void main(String[] args) {
       Talaba.salom();
       Ustoz.alik();
       Ustoz ustoz = new Ustoz();
       ustoz.vazifaniSorash();
       Talaba talaba = new Talaba();
       talaba.uygaVazifa(109);
   }
}

class Talaba{
   
   static void salom(){
       System.out.println("Assalomu alaykum ustoz");
   }
   
   public void uygaVazifa(int mashq){
       System.out.println("Uyga vazifa " + mashq + "-mashq edi.");
   }
}

class Ustoz{
   static void alik(){
       System.out.println("Va alaykum assalom");
   }
   
   public void vazifaniSorash(){
       System.out.println("Uyga vazifa nima edi?");
   }
}

Konsulga chiqqan xabarlarni ko’zdan kechiring va kodni tushunishga harakat qiling:

Assalomu alaykum ustoz Va alaykum assalom Uyga vazifa nima edi? Uyga vazifa 109-mashq edi.