Yuklanma funksiya parametiri va argumentlari bilan farq qilishga misol
Funksiya nomlari o'xshash lekin argumetlari bilan farq qiladi
classDisplayOverloading {
publicvoiddisp(char c)
{
System.out.println(c);
}
publicvoiddisp(char c, int num)
{
System.out.println(c + " "+num);
}
} classSample
{
publicstaticvoidmain(String args[])
{
DisplayOverloading obj = new DisplayOverloading();
obj.disp('a');
obj.disp('a',10);
}
}
Ekrada :
a
a 10
Yuqoridagi misolda disp() funksiyasi yuklanma funksiya shaklida yaratilyapti. Bunda funksiyalar bir biridan argumetlar soni bilan farqlanyapti.
Yuklanma funksiya – ma'lumot turlari bilan farq qilishi
classDisplayOverloading2
{
publicvoiddisp(char c)
{
System.out.println(c);
}
publicvoiddisp(int c)
{
System.out.println(c );
}
}
classSample2
{
publicstaticvoidmain(String args[])
{
DisplayOverloading2 obj = new DisplayOverloading2();
obj.disp('a');
obj.disp(5);
}
}
Ekranda:
a
5
Yuklanma – ma'lumot turlarining ketma-ketligi bilan farq qilishi.
classDisplayOverloading3
{
publicvoiddisp(char c, int num)
{
System.out.println("Bu birinchi disp() methodi ");
}
publicvoiddisp(int num, char c)
{
System.out.println("Bu ikkinchi disp() methodi " );
}
}
classSample3
{
publicstaticvoidmain(String args[])
{
DisplayOverloading3 obj = new DisplayOverloading3();
obj.disp('x', 51 );
obj.disp(52, 'y');
}
}
Ekranda:
Bu birinchi disp() methodi
Bu ikkinchi disp() methodi
Bu misolda yuklanma funksiyasi shaklida yaratilgan disp() funksiyalari bor ular bir-biridan ma'lumot turlarining ketma-ketligi bilan farq qilyapti. Ya'ni ma'lumot turlarini joylashuvi.
Ishlatish mumkin bo'lgan va mumkin bo'lmagan yuklanma funksiyalarni qisqacha ta'riflari
1 – holat:
int mymethod(int a, int b, float c)
int mymethod(int var1, int var2, float var3)
Natija: Compile time error. Chunki bu funksiyalarni argumentlari, ma'lumot turlarini ketma-ketligi va ma'lumot turlari bir xil. Dastur ishga tushgan paytida qaysi bir funksiyaga murojaat qilishni tanlay olmaydi ya'ni bu funksiyalarni farqlay olmaydi.
2 – holat:
int mymethod(int a, int b)
int mymethod(float var1, float var2)
bu funksiyalar ishalatishga yaroqli chunki, funksiyalar bir-biridan ma'lumot turlari bilan farq qilyapti.
3 – holat:
int mymethod(int a, int b)
int mymethod(int num)
bu funksiyalar ishalatishga yaroqli chunki, funksiyalar bir-biridan raqamlar argumenti bilan farq qilyapti.
4 -holat:
float mymethod(int a, float b)
float mymethod(float var1, int var2)
bu funksiyalar ishalatishga yaroqli chunki, funksiyalar ma'lumotlar ketma-ketligi bilan farq qilyapti(joylashuvi)
5 – holat:
int mymethod(int a, int b)
float mymethod(int var1, int var2)
Natija: Compile time error. Chunki bu funksiyalar turli xil turdagi ma'lumotlarni qaytaryapti birinchi funksiya ikkinchisi float.
void sum(int a,long b)
void sum(long a,int b)
Natija: Compile time error. Bu holatda ma'lumot turlari har xil bo'lgani bilan ikkala funksiya ham butun sonlarni saqlovchi tur shuning uchun dastur xato beradi. 15-dars - Javada konstruktor. Konstruktor klass nomidagi funskiyadir. Javada konstruktorlar ob’yektni ishga tushurish uchun maxsus usuldir. Java konstruktor ob’yekt yaratish vaqtida chaqiriladi
Javada konstruktor yaratish qoidalari:
Konstruktor klass nomi bilan o'xshash bo'lishi kerak
Konstruktor noaniq ma'lumot turiga ega bo'lishi kerak
Konstruktorni ikkita turi mavjud:
Argumentsiz konstruktorlar
Parametrlik konstruktorlar
Konstruktorga oddiy misol:
Bu misolda argumentsiz Bike1 konstruktor yaratildi. Ob’yekt yaratilishi vaqtida konstruktorni ishlatadi.
Source code
class Bike1 {
Bike1(){
System.out.println("Bike is created");
}
publicstaticvoid main(String args[]){
Bike1 b =new Bike1();
}
}
Majburiy konstruktorga misol
Majburiy konstruktorga misol
Source code
class Student3 {
int id;
String name;
void display(){
System.out.println(id+" "+name);
}
publicstaticvoid main(String args[]){
Student3 s1=new Student3();
Student3 s2=new Student3();
s1.display();
s2.display();
}
}
ekranda:
0 null
0 null
Parametrga ega bo’lgan konstruktor
Source code
class Student4 {
int id;
String name;
Student4(int i,String n){
id = i;
name = n;
}
void display(){
System.out.println(id+" "+name);
}
publicstaticvoid main(String args[]){
Student4 s1 =new Student4(111,"Akmal");
Student4 s2 =new Student4(222,"Zafar");
s1.display();
s2.display();
}
}
Ekrada:
111 Akmal
222 Zafar Konstruktor va funksiya orasidagi farqlar
Konstruktor
Funksiya
Konstruktordan ob’yektni dastlabki holatini bilish uchun foydalaniladi