Rangkuman: Daftar Kontak
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Ruby di Coddy. Pelajaran 11 dari 57.
Tantangan
SedangLengkapi class Contact. name, email, dan phone dapat dibaca. Setter email= menyimpan alamat dalam huruf kecil dan memunculkan ArgumentError dengan invalid email: x jika alamat tidak memiliki @ atau tidak memiliki . setelah @. Setter phone= hanya menyimpan digit dan memunculkan ArgumentError dengan invalid phone: x jika digit yang tersisa kurang dari 7. initialize(name, email, phone) menggunakan kedua setter. Dua kontak dianggap sama dengan == jika email keduanya sama. to_s mengembalikan Ada (ada@mail.io, 5551234).
Kode yang disediakan membaca kontak dalam baris berformat name,email,phone. Kode ini mencetak added Ada (ada@mail.io, 5551234), duplicate ada@mail.io untuk kontak yang sama dengan kontak yang sudah ditambahkan, atau pesan error, lalu mencetak contacts: 2.
Tulis kodemu di contact.rb. main.rb berisi kode input/output yang disediakan dan tidak boleh diedit.
Coba sendiri
require_relative 'contact'
# Kode input/output yang disediakan: biarkan apa adanya
input = []
while (line = gets)
input << line.chomp
end
contacts = []
input.each do |line|
name, email, phone = line.split(",")
begin
contact = Contact.new(name, email, phone)
if contacts.include?(contact)
puts "duplicate #{contact.email}"
else
contacts << contact
puts "added #{contact}"
end
rescue ArgumentError => e
puts e.message
end
end
puts "contacts: #{contacts.size}"
Semua pelajaran di Pemrograman Berorientasi Objek
1class dan object
Bekerja dengan fileMendefinisikan classVariabel instansmethod dan selfto_s dan inspectRingkasan: Kartu Perpustakaan4Enkapsulasi
private methodprotected methodprivate setterMelindungi StatusUlasan, Mesin Penjual Otomatis7Polimorfisme dan Duck Typing
PolimorfismeDuck TypingMethod Abstrakcase dan classRingkasan: Method Pembayaran2Accessor dan self
Pembaca dan PenulisSetter Kustomself dalam methodIdentitas dan KesetaraanRangkuman: Daftar Kontak8Special method
Kesetaraan dan hashOperator methodPengindeksan dan penambahanKoleksi kustomRingkasan: Pecahan11Proyek: Manajemen Perpustakaan
Buku dan AnggotaMeminjam Buku3Method dan Variabel class
Method classVariabel instance classKonstantaMethod pabrikRangkuman: Kode KuponLatihan sendiri: Compiler Ruby online