JavaRush /Blog Jawa /Random-JV /Ngopi #107. Metode Konstruktor ing Java I Constructor Ove...

Ngopi #107. Metode Konstruktor ing Java I Constructor Overload. Kelas lan Antarmuka Jawa Abstrak

Diterbitake ing grup

Metode Konstruktor ing Java I Constructor Overload

Sumber: Objectorientedprogramming77 Apa itu Konstruktor ? Iki minangka jinis metode khusus sing jenenge padha karo jeneng kelas, sing nemtokake cara obyek kasebut diwiwiti nalika digawe. Ngopi #107.  Metode Konstruktor ing Java I Constructor Overload.  Kelas lan Antarmuka Jawa Abstrak - 1Kaya cara liyane, kita uga bisa nemtokake cara Constructor ing program Jawa kita, nanging ora kaya cara liyane, kita ora bisa nelpon Constructor langsung; Jawa nelpon konstruktor kanthi otomatis nalika obyek digawe. Nalika nggunakake tembung kunci anyar kanggo nggawe obyek saka kelas, Jawa nindakake telung perkara:
  • Alokasi memori kanggo obyek.
  • Miwiti variabel conto obyek iki kanthi nilai awal utawa standar.
  • Nelpon konstruktor Metode kelas.
Yen kelas ora nemtokake cara Constructor sembarang, kita isih bakal nggawe obyek saka kelas sing, nanging kita kudu nyetel variabel Kayata utawa nelpon cara liyane, kang kudu initialize obyek karo obyek. Kanthi netepake metode Konstruktor ing kelas kita dhewe, kita bisa nyetel nilai awal variabel conto, nelpon metode adhedhasar variabel kasebut, utawa nelpon metode ing obyek liyane, utawa ngetung sifat awal obyek kita. Kita uga bisa kakehan Constructor kaya cara normal kanggo nggawe obyek sing nduweni sifat tartamtu adhedhasar argumen kita pass menyang anyar .

Konstruktor dhasar

Miturut definisi, Konstruktor katon kaya cara biasa kanthi rong beda utama.
  • Konstruktor lan jeneng kelas tansah padha.
  • Ora ana jinis bali
Contone, tabel ing ngisor iki nuduhake kelas Person prasaja kanthi konstruktor sing miwiti variabel conto adhedhasar argumen anyar . Kelas uga kalebu cara kang obyek bisa introduce dhewe, lan utama () cara kanggo testing saben kelas iki.
class Person
{
    String name;
    int age;

    Person (String n, int a)
{
    name = n;
    age = a;
}

void printPerson ()
{
System.out.print("Hi, I am " +name);
System.out.println(" I am "+ age + " years old.");
}

public static void main(String args[])
{

    Person p;

    p = new Person ("Ajab", 20);
    p.printPerson();

    p = new Person ("Rizwan", 30);
    p.printPerson();
Kita entuk output:
Hai, aku Ajab. Aku 20 taun. Hai, aku Rizwan. Aku 30 taun

Konstruktor kakehan

Kaya cara liyane, Konstruktor uga bisa nampa macem-macem nomer lan jinis paramèter, ngidini obyek digawe kanthi sifat tartamtu, utawa ngidini Konstruktor ngetung properti adhedhasar macem-macem jinis input. Contone, kelas MyRectone ing tabel tartamtu nggawe konstruktor MyRectone lan ngliwati parameter sing beda tinimbang nggawe cara sing beda kanggo argumen sing diwenehake.
class MyRectone
 {

    int x1 = 0;
    int y1 = 0;
    int x2 = 0;
    int y2 = 0;

MyRectone ( int x1, int x2, int x2, int y2)
 {

    this.x1 = x1;
    this.y1 = y1;
    this.x2 = x2;
    this.y2 = y2;

}

MyRectone (Point topLeft, Point bottomRight)
 {

    x1 = topLeft.x;
    y1 = topLeft.y;
    x2 = bottomRight.x;
    y2 = bottomRight.y;

}

MyRectone ( Point topLeft, int w, int h)
{

    x1 = topLeft.x;
    y1 = top left.y;
    x2 = ( x1 + w);
    y2 = (y1 + h);

}

void printRect ()
{

    System.out.print ("MyRectone: <" + x1 + ", " + y1);
    system.out.println (", " + x2 + " ,"+ y2 + ">");

}

public static void main (String args [] )
{

    MyRectone rect;
    System.out.println ("Calling MyRectone with coordinates 35,35 70,70");

    rect = new MyRectone (35,35,70,70);
    rect.printRect();

    System.out.println ("Calling MyRectone with coordinates (15,15) (30,30)");
    rect = new MyRectone (15,15,30,30);
    rect.printRect();

    System.out.print (" Calling buildRect w/1 point (10,10),");
    System.out.println ("width (50) and height (50)");
    rect = new MyRectone ( new Point (10,10), 50, 50);
    rect.printRect();
Kesimpulan:
Nelpon MyRectone kanthi koordinat 35,35 70,70: MyRectone: <35,35,70,70> Nelpon buildRect w/1 poin (15,15), (30,30): MyRectone: <15,15,30,30 > Nelpon buildRect w/1 titik (10,10), jembaré (50) lan dhuwur (50): MyRectone:<10,10,50,50>

Nelpon Konstruktor liyane

Konstruktor bisa dadi superset saka konstruktor liyane sing ditetepake ing kelas sampeyan; sing, padha bisa nindakake padha plus sethitik liyane. Tinimbang duplikat prilaku sing padha ing pirang-pirang metode konstruktor ing kelas kita, mula bisa diarani mung konstruktor pisanan saka awak konstruktor kapindho. Jawa menehi sintaks khusus kanggo iki. Kanggo nelpon konstruktor sing ditetepake ing kelas saiki, gunakake formulir iki:
this (arg1, arg2, arg3… ..);
Argumentasi kanggo iki , mesthi, argumen kanggo konstruktor.

Kelas lan Antarmuka Jawa Abstrak

Sumber: Dev.to Kelas abstrak yaiku kelas sing duwe sawetara metode tanpa definisi lengkap lan duwe modifier abstrak . Ngopi #107.  Metode Konstruktor ing Java I Constructor Overload.  Kelas lan Antarmuka Jawa Abstrak - 2
  • Sampeyan ora bisa nggawe obyek nggunakake konstruktor kelas abstrak.
  • Sampeyan bisa nggunakake kelas abstrak minangka kelas dhasar kanggo nemtokake kelas asale.
  • Kelas abstrak nduweni paling ora siji metode abstrak.
  • Cara abstrak : nduweni header kaya cara biasa, nanging tanpa awak, lan mbutuhake modifier abstrak lan titik koma.
  • Cara abstrak ora bisa pribadi.
  • Kelas abstrak bisa dadi jinis.
Tuladha:
public abstract class Example{
  private String data1;
  private double data2;

public abstract double getPay();
}
Antarmuka : Nemtokake sakumpulan metode sing kudu diduweni kelas apa wae sing ngetrapake antarmuka iki.
  • Antarmuka minangka jinis.
  • Isine header metode tanpa definisi lan ora ana variabel conto:
public interface Interface1{
public void method1();
public int method2();
}
Kanggo ngleksanakake antarmuka, kelas kudu nindakake rong perkara:
  • Kalebu ngleksanakake InterfaceName .
  • Kelas kudu ngetrapake kabeh header metode sing kadhaptar ing antarmuka.
public class Implementer implements Interface1 {

    @Override
    public void method1() {
    //definition
    }

    @Override
    public int method2() {
    //definition
    }

}
  • Header metode diumumake umum .
  • Kelas abstrak uga bisa ngleksanakake antarmuka, kelas iki menehi definisi kanggo sawetara saka header cara ing antarmuka.
  • Antarmuka Jawa uga bisa ngemot konstanta , contone:
public interface Constant {

    public static final int JANUARY = 1, FEBRUARY = 2, MARCH = 3;
}
  • Sembarang kelas sing ngetrapake antarmuka Konstan bakal kanthi otomatis duwe konstanta iki, contone:
public class Constants implements Constant {

    public static void main(String[] args) {
        System.out.println(JANUARY);
    }

}
  • Sampeyan bisa nyampur panggunaan antarmuka kanthi nyakup konstanta lan header metode menyang antarmuka siji.
  • Jawa ora ndhukung sawetara warisan, dadi kelas mung bisa ngluwihi siji kelas dhasar. Nanging, nggunakake antarmuka, kelas bisa ngetrapake macem-macem antarmuka:
public class Implementer implements Interface1, Interface2, .. InterfaceN{

}
  • Alesan kenapa kelas Jawa mung bisa ngluwihi siji kelas dhasar amarga yen Jawa ngidini rong kelas dhasar, loro kelas kasebut bisa duwe header metode sing padha karo definisi sing beda, sing nyebabake inkonsistensi.
  • Loro antarmuka bisa ora kompatibel yen sampeyan nemtokake rong konstanta kanthi jeneng sing padha lan nilai sing beda:
public interface Interface1{
public static final int ANSWEAR = 0;
}
public interface Interface1{
public static final int ANSWEAR = 3;
}
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION