Funksiya – bu biror vazifani bajarish usuli. Java dasturlash tilida, funksiya biror maxsus vazifa yoki operatsiyani bajarishga mo’ljallangan kod va ifodalar jamlanmasi. Funksiya koddan qayta foydalanish imkoniyatini beradi. Funksiya bir marta yoziladi va ko’p marotaba ishlatiladi. Shuningdek, bu kodni oson o’zgartirish va oson o’qishga yordam beradi.
Java dasturlash tilida funksiyalar 2 turga bo’linadi:
- Oldindan yaratilgan funksiyalar (Sistema funksiyalari).
- Foydalanuvchi tomonidan yaratilgan funksiyalar.
Sistema funksiyalari Java kutubxonalarida allaqachon yozilgan va foydalanishga tayyor funksiyalar hisoblanadi. Masalan, String sinfida tayyor funksiyalarga length(), equals(), compareTo() larni yoki Math sinfidagi sqrt(), abs(), pow() funksiyalarini misol qilishimiz mumkin. Quyidagi kodga e’tibor bering va unda nechta funksiya qatnashganini topishga harakat qiling:
public static void main(String[] args) {
// using the max() method of Math class
System.out.print("The maximum number is: " + Math.max(9,7));
}
Demak yuqoridagi kodda 3 ta oldindan yaratilgan funksiyalar qatnashgan:
- main() funksiyasi barcha Java dasturlarining kirish funksiyasi hisoblanadi. JVM kodni ushbu funksiyani o’qishdan boshlaydi.
- print() funksiyasi PrintStream sinfining xabarlarni konsulga chop etish uchun foydalaniladigan funksiyasi.
- max() funksiyasi Math sinfining ikkita sondan kattasini aniqlab beruvchi funksiyasi.
Java dasturlash tilida ko’plab sistema funksiyalari mavjud bo’lsa ham, foydalanuvchi o’zga xos biror vazifani bajaruvchi funksiyaga ehtiyoj sezadi. Demak, biz o’zimiz uchun maxsus funksiyalar yaratishimiz ham mumkin. Metod yaratish uchun quyidagiga o’xshash sintaksis yoziladi:
public class MeningSinfim {
static void meningFunksiyam() {
// funksiya tanasi
}
}
Bu yerda meningFunksiyam bu metod nomi, static kalit so’zi funksiyaning MeningSinfim nomli sinfga tegishli ekanini, void esa funksiya hech qanday qiymat qaytarmasligini anglatadi. Demak ushbu funksiyaga murojaat qilish uchun funksiya nomini () bilan yozish kerak bo’ladi. Masalan quyidagicha:
public class MeningSinfim {
static void meningFunksiyam() {
System.out.println("Funksiya chaqirildi!");
}
public static void main(String[] args) {
myMethod();
}
}
Konsulga “Funksiya chaqirildi!” xabari chop etiladi.
Shuningdek funksiyalarni yana 2 turga bo’lishimiz mumkin: static va namuna funksiyalar.
Statik funksiyalar
Statik funksiyalar static kalit so’zi bilan yaratiladi va u shuni anglatadiki, ushbu funksiya sinfning obyektlariga emas, aynan sinfning o’ziga tegishli. Statik funksiyaning afzalligi shundaki, biz ushbu funksiyadan sinfdan obyekt olmasdan foydalanishimiz mumkin. Shuningdek, static funksiyalar static o’zgaruvchilarga murojaat qila oladi va hattoki ularning qiymati o’zgartirishi mumkin. Static funksiyaga eng zo’r misol bu main() funksiyasi:
public class Sinf {
public static void main(String[] args) {
show();
}
static void show() {
System.out.println("Statik funksiyalar uchun namuna.");
}
}
Namuna funksiyalar
Statik sifatida yaratilmagan har qanday funksiya namuna funksiya hisoblanadi va bunday funksiyalarga murojaat qilish uchun sinfdan obyekt olish shart. Quyidagi misolga e’tibor bering.
public class NamunaSinf {
public static void main(String[] args) {
NamunaSinf namunaSinf = new NamunaSinf();
System.out.println("3 sinf yig'indisi: " + namunaSinf.yigindi(4, 5, 6));
}
private int yigindi(int a, int b, int c){
int sum = a + b + c;
return sum;
}
}
Funksiyalar haqida o’rganishni keyingi darsimizda davom ettiramiz