Kelas dan objek ruby
Ruby ialah bahasa pengaturcaraan berorientasikan objek yang sempurna. Ciri-ciri bahasa pengaturcaraan berorientasikan objek termasuk:
Pengenkapsulan Data
Abstraksi Data
Sifat Polimorfisme
Warisan
Ciri-ciri ini akan dibincangkan dalam Ruby Berorientasikan Objek.
Program berorientasikan objek yang melibatkan kelas dan objek. Kelas ialah cetak biru untuk penciptaan objek individu. Dalam istilah berorientasikan objek, basikal anda ialah contoh kelas Basikal.
Ambil kenderaan sebagai contoh, ia termasuk kapasiti roda, kuasa kuda, bahan api atau tangki gas. Sifat ini membentuk ahli data kelas Kenderaan. Dengan bantuan atribut ini anda boleh membezakan satu kenderaan daripada kenderaan lain.
Kenderaan juga boleh mengandungi fungsi tertentu, seperti berhenti, memandu dan memandu laju. Fungsi ini membentuk ahli data kelas Kenderaan. Oleh itu, anda boleh menentukan kelas sebagai gabungan sifat dan fungsi.
Kenderaan kelas ditakrifkan seperti berikut:
Class Vehicle { Number no_of_wheels Number horsepower Characters type_of_tank Number Capacity Function speeding { } Function driving { } Function halting { } }
Anda boleh mencipta kejadian berbeza bagi Kenderaan kelas dengan memberikan nilai berbeza kepada ahli data ini. Sebagai contoh, kapal terbang mempunyai tiga roda, 1,000 kuasa kuda, dan kapasiti tangki bahan api 100 liter. Dengan cara yang sama, sebuah kereta mempunyai empat roda, 200 kuasa kuda dan kapasiti tangki gas sebanyak 25 liter.
Mentakrifkan kelas dalam Ruby
Untuk melaksanakan pengaturcaraan berorientasikan objek dengan Ruby, anda perlu terlebih dahulu belajar cara mencipta objek dan kelas dalam Ruby.
Dalam Ruby, kelas sentiasa bermula dengan kata kunci kelas diikuti dengan nama kelas. Huruf pertama nama kelas hendaklah menggunakan huruf besar. Kelas Pelanggan kelihatan seperti ini:
class Customer end
Anda boleh menamatkan kelas menggunakan kata kunci tamat. Semua ahli data dalam kelas berada di antara definisi kelas dan kata kunci akhir.
Pembolehubah dalam kelas Ruby
Ruby menyediakan empat jenis pembolehubah:
Pembolehubah setempat: Pembolehubah setempat ialah Pembolehubah yang ditakrifkan dalam kaedah. Pembolehubah tempatan tidak tersedia di luar kaedah. Dalam bab seterusnya anda akan melihat lebih banyak butiran tentang kaedah tersebut. Pembolehubah setempat bermula dengan huruf kecil atau _.
Pembolehubah Contoh: Pembolehubah tika boleh digunakan merentas mana-mana tika atau kaedah tertentu dalam objek. Ini bermakna pembolehubah contoh boleh berubah dari objek ke objek. Pembolehubah contoh meletakkan simbol (@) sebelum nama pembolehubah.
Pembolehubah kelas: Pembolehubah kelas boleh digunakan merentas objek yang berbeza. Pembolehubah kelas tergolong dalam kelas dan merupakan atribut kelas. Pembolehubah kelas meletakkan simbol (@@) sebelum nama pembolehubah.
Pembolehubah global: Pembolehubah kelas tidak boleh digunakan merentas kelas. Jika anda ingin mempunyai pembolehubah yang boleh digunakan merentas kelas, anda perlu menentukan pembolehubah global. Pembolehubah global sentiasa bermula dengan tanda dolar ($).
Instance
Menggunakan pembolehubah kelas @@no_of_customers, anda boleh menentukan bilangan objek yang dicipta dan dengan itu menentukan bilangan pelanggan.
class Customer @@no_of_customers=0 end
Buat objek dalam Ruby menggunakan kaedah baharu
Objek ialah contoh kelas. Sekarang anda akan belajar cara membuat objek kelas dalam Ruby. Dalam Ruby, anda mencipta objek menggunakan kaedah kelas baharu.
Kaedah baharu ialah kaedah unik, yang dipratakrifkan dalam pustaka Ruby. Kaedah baharu tergolong dalam kaedah kelas .
Contoh berikut mencipta dua objek, cust1 dan cust2, pelanggan kelas:
cust1 = Customer. new cust2 = Customer. new
Di sini, cust1 dan cust2 ialah nama kedua-dua objek. Nama objek diikuti dengan tanda sama (=), yang diikuti dengan nama kelas, kemudian pengendali titik dan kata kunci baharu.
Kaedah tersuai untuk mencipta objek Ruby
Anda boleh menghantar parameter kepada kaedah baharu yang boleh digunakan untuk memulakan pembolehubah kelas.
Apabila anda ingin mengisytiharkan kaedah baharu dengan parameter, anda perlu mengisytiharkan kaedah memulakan semasa mencipta kelas. Kaedah
inisialisasi ialah jenis kaedah khas yang akan dilaksanakan apabila kaedah baharu kelas dengan parameter dipanggil.
Contoh berikut mencipta kaedah permulaan:
class Customer @@no_of_customers=0 def initialize(id, name, addr) @cust_id=id @cust_name=name @cust_addr=addr end end
Dalam contoh ini, anda boleh mengisytiharkan memulakan dengan id, nama, addr sebagai pembolehubah setempat Kaedah. Di sini, def dan end digunakan untuk mentakrifkan kaedah Ruby memulakan. Dalam bab-bab berikutnya anda akan mempelajari lebih lanjut mengenai kaedah tersebut.
Dalam kaedah mulakan, hantarkan nilai pembolehubah setempat ini kepada pembolehubah tika @cust_id, @cust_name dan @cust_addr. Di sini, nilai pembolehubah tempatan diluluskan dengan kaedah baharu.
Kini anda boleh mencipta objek seperti ini:
cust1=Customer.new("1", "John", "Wisdom Apartments, Ludhiya") cust2=Customer.new("2", "Poul", "New Empire road, Khandala")
Fungsi Ahli dalam Kelas Ruby
Dalam Ruby, fungsi dipanggil kaedah. Setiap kaedah dalam kelas bermula dengan kata kunci def, diikuti dengan nama kaedah.
Nama kaedah sentiasa bermula dengan huruf kecil. Dalam Ruby, anda boleh menamatkan kaedah menggunakan kata kunci tamat.
Contoh berikut mentakrifkan kaedah Ruby:
class Sample def function statement 1 statement 2 end end
Di sini, penyataan 1 dan penyataan 2 ialah kaedah dalam kelas Contohfungsi ialah komponen badan. Pernyataan ini boleh menjadi sebarang pernyataan Ruby yang sah. Sebagai contoh, kita boleh menggunakan kaedah puts untuk mengeluarkan Hello Ruby seperti berikut:
class Sample def hello puts "Hello Ruby!" end end
Contoh berikut akan mencipta objek Sampel kelas dan memanggil hello Kaedah:
#!/usr/bin/ruby class Sample def hello puts "Hello Ruby!" end end # 使用上面的类来创建对象 object = Sample. new object.hello
Ini akan menghasilkan keputusan berikut:
Hello Ruby!
Kajian kes mudah
Jika anda ingin melakukan lebih lanjut tentang kelas dan objek Untuk latihan, di sini ialah kajian kes:
Kes Kelas Ruby