BlueJ dan Greenfoot: IDE terbaik untuk belajar Java

Anda mengatakan anda mahu belajar Java. Ia boleh menjadi bahasa yang menakutkan. Ia mungkin kelihatan tidak dapat ditembusi jika anda seorang pengaturcara baru. Tetapi, anda menarik nafas panjang dan bertekad untuk mencubanya. Baiklah, mulakan perkara pertama: Anda memerlukan salah satu persekitaran pembangunan bersepadu (IDE) yang pernah anda baca. Aplikasi tunggal di mana anda dapat mengedit, membangun, menjalankan, men-debug, dan menggunakan aplikasi Java yang akan segera ditulis.

Terdapat beberapa IDE Java yang popular dan popular: Eclipse, NetBeans, dan edisi komuniti IntelliJ, misalnya. Anda memilih satu, memuat turun dan memasangnya, dan dalam masa yang sangat singkat anda menyedari bahawa anda kini mempunyai dua perkara yang perlu dipelajari: Java dan IDE. Alat pengembangan yang anda pilih tidak dapat ditembusi seperti bahasa yang sepatutnya anda bantu.

Masukkan BlueJ dan Greenfoot, dua IDE yang direka khas untuk pemula. Mereka adalah produk pasukan yang berpusat di King's College di London (walaupun ahli pasukan kadang-kadang berafiliasi dengan universiti di Australia dan Denmark). Pencipta BlueJ dan Greenfoot memilih set ciri dan reka bentuk antara muka untuk tidak mengatasi pemula.

Sebenarnya, seperti yang dijelaskan oleh Neil Brown, pembangun utama, ciri-ciri BlueJ dan Greenfoot "... terungkap ketika pengguna datang kepada mereka." Anda tidak dibuang ke hujung kolam yang dalam. Akibatnya, keduanya memberikan pengenalan yang mudah bukan hanya untuk bahasa Java, tetapi juga alat dan teknik yang diperlukan untuk membangun aplikasi dalam bahasa itu.

Belajar Java dengan BlueJ

BlueJ pertama kali muncul pada tahun 1999, dinamakan Blue. Pada masa itu, itu adalah persekitaran pembangunan dan bahasa. Ketika Java muncul, alat ini dibangun kembali menggunakan Java sebagai bahasa dan namanya diubah menjadi BlueJ.

Edisi BlueJ ada untuk Linux, MacOS, dan Windows. BlueJ juga hadir dalam bentuk generik: dikemas sebagai fail JAR sehingga BlueJ dapat dipasang pada sistem yang mendukung Java. Versi BlueJ terkini (4.2.2 pada masa penulisan ini) memerlukan JDK 11 atau lebih baru, dan dengan itu mesti dijalankan pada sistem operasi 64-bit. Sebelumnya, versi 32-bit ada, tetapi ia tidak lagi dikembangkan.

Saya mula-mula menyedari BlueJ (dan Greenfoot) ketika saya mendapati mereka sudah terpasang pada Raspberry Pi 4 yang saya perolehi tahun lalu. Saya kemudian mengetahui bahawa BlueJ telah dipasang pada Raspberry Pi sejak 2015.

Buka projek di BlueJ dan anda akan disajikan dengan tetingkap jarang: bar menu di bahagian atas, bar alat di sebelah kiri kawasan meja kerja yang besar, dan panel bangku objek yang lebih kecil di bawah. Butang pada bar alat membolehkan anda membuat kelas, menentukan hubungan warisan, atau menyusun kelas. Kelas projek muncul di meja kerja sebagai sejenis rajah UML yang dikurangkan, dan sementara BlueJ bukan persekitaran pengembangan visual yang lengkap, cukup satu sehingga anda dapat melihat hubungan antara entiti dalam program anda, tetapi tidak melupakan kod.

Klik dua kali pada ikon kelas di meja kerja, dan sumbernya terbuka di editor, di mana bantuan visual lain diturunkan: penekanan skop. Dengan penyorotan skop, blok kod bersarang secara harfiah disorot dalam latar belakang warna yang berbeza, jadi anda dapat dengan cepat melihat kawasan yang diliputi oleh kaedah dalam kelas, forgelung dalam kaedah, ifpernyataan dalam forgelung itu, dan sebagainya. Struktur kod dibuat dengan jelas.

Klik kanan pada kelas di meja kerja, dan menu baru muncul — bergantung pada sifat dan susunan kelas — membolehkan anda menyusun kelas, memeriksa kandungannya, membuat kelas ujian yang sesuai (lebih lanjut mengenai ini kemudian), melaksanakan kaedah kelas, atau mewujudkan objek kelas. Di sini, interaktiviti BlueJ menjadi tumpuan utama.

Kelas boleh disusun secara individu; anda tidak perlu membina semula keseluruhan projek sekiranya anda mengubahsuai satu kelas. Pilih untuk melaksanakan kaedah kelas dan dialog muncul, meminta anda memasukkan kaedah. Masukkan input, klik OK, dan dialog lain menjadi kenyataan, menunjukkan nilai kembali dan jenis datanya.

Sekiranya anda membuat kelas, ikon yang mewakili objek baru akan muncul di bangku objek. Seperti kelas, anda boleh mengklik kanan ikon objek dan memeriksa kandungan objek. Anda juga boleh melaksanakan kaedah contoh objek individu; dialog muncul (seperti di atas) untuk memasukkan argumen input dan menampilkan nilai kembali.

BlueJ tidak akan menjadi IDE lengkap tanpa penyahpepijat. Anda boleh menetapkan breakpoint debugger di BlueJ dengan cara yang sama seperti IDE lain. Di editor, klik di lajur di sebelah kiri baris kod sumber yang disasarkan. Apabila, semasa pelaksanaan, breakpoint dipicu, pop-up debugger BlueJ terbuka, menunjukkan utas, stack panggilan, kunci statik, dan pemboleh ubah instance, serta kawalan debugging yang sudah biasa (langkah, masuk, teruskan, dan berhenti). Sekali lagi, persembahan BlueJ yang tidak rapi tidak sesuai dengan anda dan tugas yang ada.

Seperti yang disebutkan di atas, BlueJ dapat membuat kelas ujian dari menu klik kanan ikon kelas. Kelas yang dibuat secara automatik adalah kelas ujian JUnit rangka (JUnit 4 disepadukan dengan BlueJ). Ia terdiri daripada konstruktor kosong setUp(), dan tearDown()kaedah. Anda boleh membina kaedah ujian dengan membuka sumber kelas di editor, atau menggunakan sejenis wizard bawaan yang — melalui rangkaian dialog — menuntun anda dalam membuat kaedah ujian.

Begitu juga, BlueJ memberikan bantuan untuk membuat aplikasi grafik JavaFX dan Swing. Tutorial disediakan, dan bekerja melalui tutorial JavaFX menunjukkan manfaat sebenar penggunaan kemampuan BlueJ untuk melaksanakan kaedah pada objek "hidup" (saat aplikasi sedang berjalan). Anda sebenarnya dapat melihat hasil panggilan kaedah pada komponen grafik.

Tutorial interaktif terbina dalam BlueJ membuat anda tidak tahu. Sekiranya anda memerlukan lebih banyak bahan pendidikan, buku Objects First with Java , yang ditulis bersama oleh pencipta BlueJ, Michael Kölling, menggunakan BlueJ sebagai persekitaran pengembangan untuk menampilkan pendekatan pemula untuk pengaturcaraan berorientasi objek di Jawa.

Belajar Java dengan Greenfoot

Dibangun di BlueJ oleh pencipta yang sama, Michael Kӧlling, Greenfoot adalah IDE yang lebih khusus daripada BlueJ. Walaupun BlueJ sering digunakan dalam pengaturan kursus pengaturcaraan peringkat universiti, Greenfoot disasarkan kepada pengguna yang lebih muda; semuda 14 tahun. Untuk menarik dan menarik perhatian penonton yang lebih muda, Greenfoot telah dibuat sebagai "kerangka Java IDE dan animasi sederhana." Yang bermaksud ia untuk membina permainan.

Untuk memahami Greenfoot, anda mesti terlebih dahulu mempelajari terminologinya. Projek Greenfoot adalah "senario." Setiap senario mempunyai "dunia", yang merupakan medan permainan permainan anda. Ia adalah wadah dua dimensi yang dihuni oleh "pelakon." Hati-hati di sini — pelakon Greenfoot bukanlah jenis entiti pengaturcaraan serentak berorientasi objek dengan nama yang sama (lihat //en.wikipedia.org/wiki/Actor_model). Pelakon Greenfoot adalah permainan permainan anda.

Seorang pelakon Greenfoot mempunyai sifat dan kaedah (ciri dan tingkah laku). Salah satu ciri pelakon adalah penampilannya - ikon yang dipaparkan di dunia untuk mewakili pelakon itu. Greenfoot hadir dengan pelbagai gambar pelakon untuk memulakan anda, atau anda boleh membuat dan mengimport gambar anda sendiri.

Susunan visual Greenfoot adalah gambar cermin BlueJ. Tetingkap utama Greenfoot adalah dunia. Di sebelah kanannya, bar alat menegak diisi dengan diagram warisan kelas projek. Biasanya, terdapat dua "pokok" warisan di bar alat, satu berakar pada Worldkelas asas , yang lain berakar pada Actorkelas asas . Kelas yang diturunkan berpunca daripada dua punca ini.

Seperti BlueJ, mengklik dua kali pada ikon kelas membuka sumber yang berkaitan di tetingkap editor. Editor Greenfoot serupa dengan BlueJ's, yang tidak menghairankan, kerana hampir semua BlueJ menjalankan di bawah Greenfoot. Oleh itu editor Greenfoot mempunyai penekanan skop BlueJ, dan debugger Greenfoot berfungsi sama seperti BlueJ.

Ubah suai kelas dalam editor, dan ikonnya dalam rajah warisan dicoretkan silang. Ini menunjukkan bahawa kelas mesti dikompilasi ulang sebelum dapat digunakan untuk membuat objek. Di samping itu, semua objek di dunia yang berasal dari kelas itu menjadi kabur (tidak lagi lega) untuk menunjukkan bahawa mereka sekarang sudah ketinggalan zaman. Nasib baik, seperti di BlueJ, anda boleh menyusun kelas secara individu.

Sebaik sahaja anda menunjukkan pelakon, anda boleh meletakkannya di dunia dengan menyeret dan menjatuhkan ikonnya ke panel tingkap dunia. Tegasnya anda tidak perlu meletakkan pelakon di dunia sebelum kaedah pelakon dapat dipanggil. Klik kanan pada pelakon untuk memilih kaedah untuk memanggil. Sekiranya kaedah tersebut memerlukan parameter input, dialog akan terbuka yang membolehkan anda memberikan parameter tersebut.

Masa mesti mengalir di dunia Greenfoot agar pelakon dapat bergerak. Tetapi ia adalah dunia digital, jadi masa terus bertambah dalam detik jam dalaman - gelung kemas kini. Dua butang — Bertindak dan Jalankan — mengawal pelaksanaan gelung itu. Klik butang Bertindak, dan gelung berjalan sekali. Klik Jalankan, butang menjadi Jeda, dan gelung berjalan sehingga anda mengklik butang sekali lagi untuk menghentikannya. Tombol ini tentu saja sangat berguna untuk menguji dan menyahpepijat permainan anda.

Sekiranya anda mesti menangguhkan sesi pengembangan senario anda dan anda ingin memilih dari mana anda berhenti, anda boleh menyelamatkan dunia (yang jauh lebih dramatik daripada kedengarannya). Greenfoot akan menangkap lokasi dan keadaan pelakon di dunia, dan menyandikan maklumat tersebut untuk kaedah yang dipanggil oleh pembangun pelakon. Hasilnya: Pentas anda dipasang kembali pada masa berikutnya anda memulakan Greenfoot IDE.

Semasa bermain permainan, apa yang berlaku apabila dua pelakon bertembung? Atau ada yang meletup? Permainan mesti mempunyai kesan bunyi. Greenfoot dapat mengimport fail .wav ke dalam senario, dan kaedah membolehkan anda memainkan suara ketika peristiwa tertentu dicetuskan. Tidak ada yang menghalang anda untuk meminjam suara yang disediakan dengan pelbagai tutorial di laman web Greenfoot. Tetapi sekiranya anda ingin membuat sendiri, Greenfoot menyediakan perakam suara terbina dalam. Keupayaan penyuntingan perakam mudah tetapi boleh digunakan. Ini pada dasarnya adalah sistem "tangkapan dan pemangkasan".

Akhirnya, jika anda memerlukan idea permainan di luar yang disediakan dalam tutorial Greenfoot, laman web Greenfoot penuh dengan senario yang dibuat dan dimuat naik oleh pengguna dari seluruh dunia. Ada juga yang boleh dimainkan dalam talian. Kualitinya sangat menarik, tetapi pelbagai permainan membuktikan keseragaman Greenfoot.

Batu loncatan untuk pengaturcaraan pro Java

Menurut pencipta Michael Kӧlling, sementara BlueJ biasanya digunakan dalam kursus pengaturcaraan pengantar universiti, Greenfoot sesuai digunakan di sekolah menengah. Walaupun begitu, tidak kira usia anda, anda dapat memperoleh banyak jarak tempuh dari IDE sama ada jika anda baru menjejakkan kaki ke jalan menuju pendidikan diri Java.

Di luar tutorial yang telah disebutkan, terdapat banyak bahan sokongan di laman web BlueJ dan Greenfoot. Kami telah menyebut buku teks BlueJ; buku teks juga ada untuk Greenfoot, Pengantar Pengaturcaraan dengan Greenfoot . (Lihat laman web untuk maklumat pembelian.)

IDE tidak sesuai untuk membangun aplikasi Java peringkat perusahaan yang siap untuk produk. Tetapi sebagai kenderaan pengantar bagi siapa saja yang baru menggunakan Java, mereka mencentang semua kotak, dan mereka tidak membebani anda dengan bar alat dan kerumitan menu. Mereka adalah batu loncatan yang kuat dan lancar untuk pengembangan Java kelas profesional.