JavaRush /Blog Java /Random-MS /Coffee break #114. Pembina lalai dalam Java ialah contoh ...

Coffee break #114. Pembina lalai dalam Java ialah contoh pembina kelas. Maven vs Gradle: Cara Memilih Alat Binaan yang Betul

Diterbitkan dalam kumpulan

Pembina Lalai dalam Java - Contoh Pembina Kelas

Sumber: FreeCodeCamp Dalam artikel ini kita akan bercakap tentang pembina, cara menciptanya dan apakah pembina lalai dalam Java. Coffee break #114.  Pembina lalai dalam Java ialah contoh pembina kelas.  Maven vs Gradle: Cara Memilih Alat Binaan yang Betul - 1

Apakah pembina?

Sebagai istilah pengaturcaraan berorientasikan objek berasaskan kelas, pembina ialah kaedah unik yang digunakan untuk memulakan objek (kelas) yang baru dicipta. Terdapat beberapa peraturan yang perlu anda ikuti semasa membuat pembina. Peraturan ini termasuk:
  • Nama pembina mesti sepadan dengan nama kelas.
  • Pembina mestilah tidak mempunyai jenis pulangan.
Sebelum kita meneruskan, mari lihat rupa kelas di Java:
public class Student {
  String firstName;
  String lastName;
  int age;
}
Kod di atas menunjukkan kelas Pelajar dengan tiga atribut - firstName , lastName dan age . Kami akan menganggap bahawa kelas harus menjadi model untuk pendaftaran pelajar. Ingat bahawa ketiga-tiga atribut ini tidak mempunyai sebarang nilai, jadi maklumat di dalamnya tidak berkod keras. Sekarang kami akan menggunakan pembina untuk mencipta contoh baharu objek Pelajar kami :
public class Student {
  String firstName;
  String lastName;
  int age;

  //конструктор Student
  public Student(){
      firstName = "Ihechikara";
      lastName = "Abba";
      age = 100;
  }

  public static void main(String args[]) {
      Student myStudent = new Student();
      System.out.println(myStudent.age);
      // 100
  }
}
Kami mencipta pembina yang kami gunakan untuk memulakan atribut yang ditakrifkan dalam objek Pelajar . Kod di atas ialah contoh pembina tanpa hujah . Sekarang mari kita lihat jenis contoh yang berbeza:
public class Student {
  String firstName;
  String lastName;
  int age;

  //конструктор
  public Student(String firstName, String lastName, int age){
      this.firstName = firstName;
      this.lastName = lastName;
      this.age = age;
  }

  public static void main(String args[]) {
    Student myStudent = new Student("Ihechikara", "Abba", 100);
    System.out.println(myStudent.age);
  }

}
Sekarang kita telah mencipta pembina berparameter. Pembina berparameter ialah pembina yang dibuat dengan argumen/parameter. Sekarang mari kita ubahnya.
public Student(String firstName, String lastName, int age){

  }
Kami telah mencipta pembina baharu yang mengambil tiga hujah - dua rentetan dan integer.
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
Kami kemudiannya mengaitkan hujah ini dengan atribut yang kami takrifkan semasa membuat kelas kami. Sekarang kita telah memulakan objek Pelajar menggunakan pembina.
public static void main(String args[]) {
    Student myStudent = new Student("Ihechikara", "Abba", 100);
    System.out.println(myStudent.age);
  }
Akhirnya, kami mencipta contoh baharu objek Pelajar dan menyampaikan hujah kami kepadanya. Kami dapat melakukan ini kerana kami telah mentakrifkannya dalam pembina. Saya mencipta satu pembina dengan tiga hujah, tetapi anda juga boleh membuat pembina berasingan untuk memulakan setiap atribut. Sekarang setelah anda mengetahui apa itu pembina dalam Java dan cara menggunakannya, mari lihat pembina lalai.

Apakah pembina lalai?

Pembina lalai ialah pembina yang dihasilkan oleh pengkompil jika kita tidak menentukan sebarang pembina untuk kelas. Berikut ialah contoh:
public class Student {
  String firstName;
  String lastName;
  int age;

  public static void main(String args[]) {
      Student myStudent = new Student();

      myStudent.firstName = "Ihechikara";
      myStudent.lastName = "Abba";
      myStudent.age = 100;

      System.out.println(myStudent.age);
      //100

      System.out.println(myStudent.firstName);
      //Ihechikara
  }
}
Bolehkah anda mencari perbezaan antara ini dan dua contoh sebelumnya? Ambil perhatian bahawa sebelum penciptaan, kami tidak mentakrifkan pembina myStudent untuk memulakan atribut yang dicipta dalam kelas. Ini tidak akan menimbulkan kesilapan dalam laluan kita. Lebih tepat lagi, pengkompil akan mencipta pembina kosong, tetapi anda tidak akan melihat pembina ini di mana-mana dalam kod - ia berlaku "di bawah tudung". Inilah rupa kod di atas apabila pengkompil mula melakukan tugasnya:
public class Student {
  String firstName;
  String lastName;
  int age;


  /* пустой конструктор, созданный компилятором. Этот конструктор не будет отображаться в вашем codeе*/
  Student() {

  }

  public static void main(String args[]) {
      Student myStudent = new Student();

      myStudent.firstName = "Ihechikara";
      myStudent.lastName = "Abba";
      myStudent.age = 100;

      System.out.println(myStudent.age);
      //100

      System.out.println(myStudent.firstName);
      //Ihechikara
  }
}
Ramai orang mengelirukan pembina lalai dengan pembina tanpa hujah, tetapi di Jawa ia bukan perkara yang sama. Mana-mana pembina yang dicipta oleh pengaturcara tidak dianggap sebagai pembina lalai dalam Java.

Kesimpulan

Dalam artikel ini, kami mempelajari apa itu pembina dan cara kami boleh mencipta dan menggunakannya untuk memulakan objek kami. Kami juga bercakap tentang pembina lalai dan bagaimana ia berbeza daripada pembina tanpa hujah. Selamat mengekod!

Maven vs Gradle: Cara Memilih Alat Binaan yang Betul

Sumber: Automasi Hackernoon Build adalah aspek penting dalam pembangunan perisian. Dalam artikel ini, kami akan membandingkan dua alat binaan yang paling popular untuk pembangunan Java: Maven dan Gradle . Coffee break #114.  Pembina lalai dalam Java ialah contoh pembina kelas.  Maven vs Gradle: Bagaimana untuk memilih alat binaan yang betul - 2

Buat dan Apache Ant

Sebelum ini, pembangun menggunakan alat Make untuk mencipta projek Java, dan proses pembinaan tidak jauh berbeza daripada mencipta aplikasi dalam mana-mana bahasa lain. Tetapi pada tahun 2000, sistem binaan An t (Another Neat Tool) telah dikeluarkan. Ant, seperti Make, menggunakan gaya imperatif dan skrip binaannya mempunyai sintaks XML. Ant direka bentuk sebagai sistem automasi binaan untuk projek Java. Oleh itu, pembangun Java boleh melanjutkan fungsinya dengan mudah.

Maven

Pada tahun 2004, sistem binaan Maven baharu keluar dan mengubah proses membina aplikasi Java. Sebelum ini, pembangun sendiri mengatur struktur folder untuk menyimpan kod sumber, sumber, direktori classpath dan direktori output. Oleh sebab itu, skrip binaan Ant untuk dua aplikasi berbeza mungkin sangat berbeza: penyusunan, pemasangan, penyalinan fail ke direktori output, dsb. ditulis secara berasingan. Dalam Maven, projek Java sentiasa mempunyai struktur yang jelas. Sebagai contoh, sumber hendaklah dalam src/main/java, sumber untuk ujian hendaklah dalam src/test/resources. Maven membolehkan anda mencipta struktur fail projek biasa dengan satu arahan. Maven juga memperkenalkan konsep "kitaran hayat bina" dengan fasa berurutan: mengesahkan ➞ menyusun ➞ ujian ➞ pakej ➞ mengesahkan ➞ memasang ➞ menggunakan) Sekarang, terima kasih kepada folder struktur tetap dan satu set sasaran, tidak perlu menulis dan mengekalkan skrip binaan yang besar - ia telah menjadi deklaratif. Ia telah menjadi lebih mudah bagi pembangun untuk bekerja bukan sahaja dengan kod mereka sendiri, tetapi juga dengan projek pihak ketiga, kerana jelas bagaimana kod sumber berfungsi dan cara memasangnya. Terdapat beberapa perpustakaan di dunia Java, dan aplikasi besar menggunakan beratus-ratus perpustakaan. Jika anda menggunakan Ant, ingat bahawa anda perlu menambah fail jar yang diperlukan pada projek itu sendiri. Anda juga perlu menjaga kebergantungan transitif yang diperlukan. Maven menyediakan fungsi pengurus pergantungan melalui Repositori Pusat Maven. Kini, apabila menentukan kebergantungan baharu dalam skrip binaan, Maven akan mencari balang yang diperlukan bagi versi sepadan dan semua kebergantungan transitifnya secara automatik, muat turunnya dan pastikan ia berada dalam laluan kelas projek. Anda juga boleh mengekalkan repositori peribadi anda sendiri, di mana anda boleh menyimpan perpustakaan anda sendiri atau ditambal, atau perpustakaan standard yang dibuat dengan tangan. Perlu diingatkan bahawa Ant boleh digunakan bersama dengan Projek Apache Ivy , yang juga membolehkan anda mengurus kebergantungan dan bekerja dengan repositori Maven. Walaupun semua kelebihan Maven, pendekatan deklaratifnya boleh menjadi kelemahan dalam beberapa situasi. Contohnya, apabila anda perlu menukar kitaran hayat binaan dan menambah matlamat baharu pada proses binaan. Fungsi Maven boleh dilanjutkan menggunakan pemalam. Terdapat banyak pemalam Maven siap sedia yang menyelesaikan masalah yang berbeza, semuanya juga tersedia daripada Repositori Pusat Maven. Tetapi jika atas sebab tertentu anda perlu mengubah sedikit kitaran hayat standard, dan tidak ada pemalam yang sesuai, pembangun perlu menciptanya sendiri.

Gradle

Keluaran pertama sistem binaan Gradle telah dikeluarkan pada tahun 2008. 4 tahun kemudian versi 1.0 dikeluarkan. Matlamat projek Gradle adalah untuk mengekalkan semua faedah Maven, tetapi pada masa yang sama meningkatkan keupayaan untuk menyesuaikan proses binaan. Skrip binaan Gradle ditulis dalam Groovy DSL. Gradle membolehkan anda menulis skrip binaan perisytiharan dan lebih padat daripada Maven kerana XML agak besar. Anda boleh menambah logik tersuai dengan mudah pada proses binaan Gradle anda. Apa yang anda perlu lakukan ialah menulis skrip Groovy, dan anda tidak perlu membangunkan pemalam. Pembangun boleh menyahpepijat pelaksanaan skrip binaan dengan mudah kerana ia adalah fail Groovy biasa. Oleh itu, Gradle menggabungkan pendekatan deklaratif dan imperatif. Gradle juga menyokong pemalam, membenarkan pembangun menukar tetapan. Salah satu kelebihan penting Gradle ialah binaan tambahan. Apabila binaan dimulakan semula, Gradle menentukan sama ada fail input sasaran telah berubah dan jika tidak, pelaksanaan sasaran dilangkau kerana artifak outputnya telah dibina. Ini memberikan peningkatan ketara dalam kelajuan binaan berbanding Maven, terutamanya dalam projek berbilang modul yang besar. Gradle juga boleh menjalankan daemon Gradle, proses latar belakang yang mengelakkan pembaziran sumber dan masa permulaan setiap kali binaan dijalankan. Gradle mempunyai ciri pembungkus Gradle yang berguna - keupayaan untuk menjana skrip arahan shell dan Windows yang memuat turun pengedaran Gradle versi yang ditentukan secara automatik dan menggunakannya untuk membina projek. Ini bermakna untuk membina projek Gradle anda tidak perlu memasang Gradle secara berasingan, cuma pasang Java. Jika perlu, anda boleh menukar projek anda dengan mudah kepada versi Gradle yang berbeza.

Memilih antara Maven dan Gradle

Walaupun terdapat faedah Gradle, beberapa projek menggunakan sistem binaan Maven. Pilihan bergantung pada jenis projek dan pasukan. Maven telah digunakan sejak 2004, jadi lebih ramai pembangun mengetahuinya. Lebih-lebih lagi, Maven stabil. Versi major terbaru 3 telah dikeluarkan pada tahun 2010. Gradle telah berubah dengan ketara beberapa kali tanpa keserasian ke belakang, dan pembangun terpaksa mengalihkan skrip binaan mereka ke versi baharu. Memandangkan bukan semua orang biasa dengan Groovy atau Kotlin, bekerja dengan Gradle memerlukan pengetahuan tambahan, manakala Maven menggunakan XML yang jelas. Ini menimbulkan persoalan: jika projek itu memulakan pembangunan sebelum Gradle menjadi popular, adakah wajar untuk memindahkan skrip binaan ke Gradle? Di satu pihak, semakin ramai pembangun memilih Gradle. Contohnya, Spring, Hibernate dan LinkedIn menggunakan Gradle. Sistem binaan Android juga Gradle, dan ia biasanya popular di kalangan pembangun aplikasi Android. Sebaliknya, semua IDE yang terkenal mempunyai penyepaduan dengan kedua-dua sistem binaan dan sokongan autolengkap semasa mengedit skrip binaan. Seperti Maven, Gradle mempunyai sejumlah besar pemalam yang membolehkan anda menambah fungsi yang kerap digunakan pada proses pembinaan projek.

Kesimpulan

Daripada kebaikan dan keburukan setiap sistem pemasangan yang diterangkan di atas, kesimpulan berikut boleh dibuat. Maven lebih sesuai untuk projek kecil yang tidak memerlukan penyesuaian proses binaan, dan yang mana masa pembinaan projek tidak begitu kritikal. Gradle lebih sesuai untuk projek berskala besar dengan sejumlah besar modul, serta untuk aplikasi Android.
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION