Algoritmlash asoslari


Download 1.32 Mb.
bet9/16
Sana12.06.2020
Hajmi1.32 Mb.
#117719
1   ...   5   6   7   8   9   10   11   12   ...   16
Bog'liq
Algoritmlash asoslari

class Student4 {

  •  

  • int id;

  •  

  • String name;

  •  

  • Student4(int i,String n) {

  •  

  • id = i;

  •  

  • name = n;

  •  

  • }

  •  

  • void display() {

  • System.out.println(id+" "+name);

  • }

  •  

  • public static void 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

    Funksiya ob’yektni harakterini ifodalashda foydalaniladi

    Konstruktor ma'lumot qaytarmaydi

    Funksiya ma'lumot qaytaradi

    Konstruktor bilvosita chaqiriladi

    Funksiya oshkora chaqiriladi

    Konstruktor bilvosita chaqiriladi

    Kompilyatsiyada funksiya yaratilmaydi

    Agar konstruktor bo'lmasa, java kompilyator majburiy konstruktor yaratadi

    Kompilyatsiyada funksiya yaratilmaydi

    Konstruktor nomi klass nomi bilan bir xil bo'ladi

    Funksiya nomi o'xshashi yokiy o'xshamasligi mumkin


    Konstruktordan nusxa(copy) olish

    Source code

       

    • class Student6{

    •  

    • int id;

    •  

    • String name;

    •  

    • Student6(int i,String n){

    •  

    • id = i;

    •  

    • name = n;

    •  

    • }

    •  

    • Student6(Student6 s){

    •  

    • id = s.id;

    •  

    • name =s.name;

    •  

    • }

    •  

    • void display(){System.out.println(id+" "+name);}

    •  

    • public static void main(String args[]){

    •  

    • Student6 s1 = new Student6(111,"Akmal");

    •  

    • Student6 s2 = new Student6(s1);

    •  

    • s1.display();

    •  

    • s2.display();

    •  

    • }

    •  

    • }

    ekranda :

    111 Akmal

    111 Akmal

    @tuit_online kanali sizlar uchun maxsus...
    16-dars - Javada static kalit so’zi (keyword).
    Static kalit so'zidan asosan xotirani boshqarishda foydalaniladi. Biz static kalit so'zidan foydalanib o'zgaruvchilar, funskiyalar, blok(block)lar va nested klasslar yarata olamiz.

    Javada static o'zgaruvchilar

    Agar siz o'zgaruvchini static deb e'lon qilgan bo'lsangiz unda bu o'zgaruvchisatatic o'zgaruvchi bo'ladi.

    Static o'zgaruvchilar hamma ob’yektlar uchun umumiy bo'ladi. Misol uchun firma nomi barcha hodimlar uchun umumiy, universitet nomi barcha talabalar uchun umumiy bo'ladi.

    Static o'zgaruvchilar xotiradan bir marta joy oladi.

    Misol uchun:

    class Student{



    int id;

    String name;

    String college="TIU";

    }

    Student nomli klass yaratdik va unda id, name, va collage o'zgaruvchilari bor. Tasavur qiling universitetda 500 ta talaba o'qiydi har bir talaba uchun dastur xotiradan joy ajratadi, id va name takronlammas bo'ladi va bu yaxshi holat lekin 500 talaba uchun universitet nomi bir xil va har safar universitet nomi uchun xotiradan joy ajratish yaxshi emas. Bu holatda universitet nomi uchun bir marotaba xotiradan foydalanish uchun satatic kalit so'zidan foydalanamiz.

    Misol:

    Source code

       

    • class Student8{

    •  

    • int id;

    •  

    • String name;

    •  

    • static String college ="TIU";

    •  

    •  

    • Student8(int r,String n){

    •  

    • id = r;

    •  

    • name = n;

    •  

    • }

    •  

    • void display (){System.out.println(id+" "+name+" "+college);}

    •  

    •  

    • public static void main(String args[]){

    •  

    • Student8 s1 = new Student8(111,"Zafar");

    •  

    • Student8 s2 = new Student8(222,"Jalol");

    •  

    •  

    • s1.display();

    •  

    • s2.display();

    •  

    • }

    •  

    • }

    Ekranda :

    111 Zafar TIU

    222 Jalol TIU
    Yana bitta misol ko'rsak.

    Bu misolda (instance) o'zgaruvchisi bor uni counter deb nomlaymiz konstruktor yaratib o'zgaruvchini qiymatini oshirib natijani ko'ramiz.

    class Counter{

    int count=0;

    Counter(){

    count++;

    System.out.println(count);

    }

    public static void main(String args[]){

    Counter c1=new Counter();

    Counter c2=new Counter();

    Counter c3=new Counter();

    }

    }

    Ekranda:

    1 1 1
    Natija chiqadi, ko'rib turganimizdek, har safar yangi ob’yekt olganimizda counter o'zgaruvchisiga xotiradan yangidan joy ajratyapti. End shu o'zgaruvchini static deb e'lon qilib natijani ko'ramiz:

    class Counter2{
    static int count=0;

    Counter2(){

    count++;

    System.out.println(count);

    }




    public static void main(String args[]){

    Counter2 c1=new Counter2();

    Counter2 c2=new Counter2();

    Counter2 c3=new Counter2();

    }

    }

    Ekranda:

    1 2 3

    ko'rib turganingizdek har safar yangi ob’yekt olganimizda counter xotiradan yangidan joy olmayapti.
    static funksiyalar

    Agar funksiya static kalit so'zi bilan bo'lsa, bu funksiya static funksiya deyiladi. Static funksiyalar static bo'lgan va static bo'lmagan funksiyalarda chaqirilishi mumkin. Lekin static funksiyada faqat statik funksiya chaqiriladi, static bo'lmagan funksiyalar ob’yekt olish yo'li bilan chaqiriladi.

    Static bo'lgan funksiyani static funksiyada chaqirishga misol

    class StaticDemo

    {

    public static void copyArg(String str1, String str2)

    {

    //copies argument 2 to arg1

    str2 = str1;

    System.out.println("First String arg is: "+str1);

    System.out.println("Second String arg is: "+str2);

    }

    public static void main(String agrs[])

    {

    copyArg("XYZ", "ABC");

    }

    }

    Ekranda:

    First String arg is: XYZ

    Second String arg is: XYZ

    Static bo'lmagan funksiyalarni static funksiyada chaqirishga misol

    class Test{

    public void display()

    {

    System.out.println("I'm non-static method");

    }

    public static void main(String agrs[])

    {

    Test obj=new Test();

    obj.display();

    }

    }

    Ekranda:
    I'm non-static method




    17-dars - Javada Inheritance (merosxo’rlik)
    Ma'lum ob’yekt asosida boshqa ob’yektni yaratish jarayoniga aytiladi. Bir klassning boshqa klassdan meros olishi yordamida amalga oshiriladi. Meros olingan ob’yekt ota ob’yektdagi xususiyatlarni tanlovga ko'ra meros oladi. Masalan, avtoulov bu ota ob’yekt. Bu ob’yekt yordamida yengil mashina, yuk mashinasi, poyga mashinasi kabi boshqa ob’yektlarni yaratib olishimiz mumkin. Ota klassda bo'lgan 4 g'ildirak farzand klasslarda ham mavjud bo'ladi. Ya'ni poyga mashinasi, avtoulovdan g'ildiraklarni meros oladi. Ota klassdan meros olayotgan bola klassimiz ota klassning shaxsiy bo'lmagan ( private) barcha o'zgaruvchilari, funksiyalari va h.k larni meros qilib oladi.
    Javada meros olinishi

    • Funksiyani qayta yuklash uchun (runtime(dastur ishlab turgan vaqt) da ko'pformalikdan foydalanishda )

    • Kodni qayta ishlatish uchun foydalaniladi.

    class Subclass-name extends Superclass-name

    {

    //funskiyalar va o'zgaruvchilar

    }

    extends kalit so'zi yangi klass yaratayotganimizda Super klass (Ota klass) dan meros olish uchun ishlatiladi.

    Java texnologoyasida quyi klass super klassdan meros oladi. Yani yangi klass quyi klassni chaqiradi.



    Yuqorida shaklda Programmer subclassi va Employee super klassi ko'rsatilgan. Bunda shu ikkita klassni orasidagi bog'lanish tasvirlangan.

    class Employee{

    float salary=40000;

    }

    class Programmer extends Employee{

    int bonus=10000;

    public static void main(String args[]){

    Programmer p=new Programmer();

    System.out.println("Programmer salary is:"+p.salary);

    System.out.println("Bonus of Programmer is:"+p.bonus);

    }

    }

    Natija :

    Programmer salary is:40000.0

    Bonus of programmer is:10000
    Yuqoridagi misolda Programmer klassi Employee klassidan meros olyapti va undagi float salary o'zgaruvchisini o'ziga o'zlashtirib olyapti.
    Javada meros olinish turlari

    Javada asosiy klassdan 3 xil usulda meros olish mumkin ular single (bir tomonlama), multilevel (bir necha class orqali) va hierarchical (iyerarxiya).



    Javada bir vaqtning o'zida bir necha klass dan meros olib bo'lmaydi.

    class A{

    void msg(){System.out.println("Hello");}

    }

    class B{

    void msg(){System.out.println("Welcome");}

    }

    class C extends A,B{

    public static void main(String args[]){

    C obj=new C();

    obj.msg();//

    }

    }
    Bu yerda Compile Time Error (Kompilyatsiya Vaqtida Xatolik) bo'ladi, chunki bir vaqtning o'zida klassi A, B klasslaridan meros olyapti. Yuqorida aytganimizdek javada bir vaqtning o'zida bir necha klassdan meros olib bo'lmaydi.


    18-dars - Overriding (qayta yuklash) Funksiyalari
    Agar subclassimizdagi (bola klass) funksiya super(ota klass) klassimizdagi funksiya bilan bir xil bo'lsa, bu funksiyalar qayta yuklanuvchi funksiyalar deyiladi.

    Javada qayta yuklanuvchi funksiyadan foydalanish:

    • Qayta yuklanuvchi funksiyadan avvaldan Ota klassda yaratib qo'yilgan funksiyaning o'ziga xos amalga oshirilishini ta'minlashda;

    • Qayta yuklanuvchi funksiyaning ishchi vaqt (runtime)da (ko'p formalik) polymorphismda

    foydalaniladi.

    Javada Qayta yuklanuvchi funksiya uchun qoidalar:

    • Funksiya super klass(ota) dagi funksiya nomi bilan bir xil bo'lishi kerak

    • Funksiya super klass(ota )dagi funksiya parametrlari bilan bir xil bo'lishi lozim

    • Klass meros olgan bo'lishi kerak

    class Vehicle

    {

    void run()

    {

    System.out.println("Vehicle is running");

    }

    }

    class Bike2 extends Vehicle

    {

    void run()

    {

    System.out.println("Bike is running safely");

    }

    public static void main(String args[]){

    Bike2 obj = new Bike2();

    obj.run(); }

    ekranda : Bike is running safely
    Bu misolda run() funksiyasi sub klass va super klasslarda yaratilgan. Bu funksiyalarni nomi va parametrlari o'xshash va klasslar bir-biri bilan bog'langan, shuning uchun qayta yuklanuvchi funksiyalar hosil bo'lyapti.

    Static funksiyalar hech qachon 
    Download 1.32 Mb.

    Do'stlaringiz bilan baham:
  • 1   ...   5   6   7   8   9   10   11   12   ...   16




    Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
    ma'muriyatiga murojaat qiling