나는이 전화 번호부 프로그램에 전화 번호와 전화 번호 유형 (집 전화, 휴대 전화 등일 수 있음)을 레이블로 사용합니다. 프로그램은 해당 값을 가져 와서 주소록에 저장하고 주소록을 추가하고, 연락처를 삭제하고, 연락처를 찾을 수 있습니다.Ruby의 다른 클래스에서 다른 변수를 사용하는 방법
두 개의 매개 변수 인 전화 번호와 레이블을 사용하는 PhoneContact라는 클래스가 있습니다. 이 수업의 목적은 레이블 (집 전화, 직장 전화, 휴대 전화 등)과 함께 전화 번호를 가져와 어떤 종류의 전화 번호인지, 그 번호의 지역 코드가 무엇인지 등
예는 다음과 같습니다
James_May = PhoneContact.new('(555) 555-5555', :mobile)
puts James_May.phone_number
>> (555) 555-555
puts James_May.label
>> mobile
내가 저장, 추가, 삭제 및 전화 연락처를 찾을 수있는 전화 번호부 클래스를 만들었습니다. 이것의
예는 다음과 같습니다
JG_contact = PhoneBook.new
JG_contact.add('Gary, James', '5555555555', :home)
puts "** JG's new entry:"
>> **James's new entry:
puts book.find('Gary, James')
>>(954) 111-2222 (work)
(444) 555-5555 (cell)
내 문제는 내가 전화 번호부 클래스에 PHONENUMBER 클래스 PHONE_NUMBER 및 레이블과 같은 변수를 구현하는 방법을 잘 모르겠어요입니다. 다른 클래스의 변수를 사용하려면 어떻게해야하며 이러한 변수를 해시로 구현하는 것이 맞습니까? 여기
는 PhoneClass에서 코드의 조각입니다 :
require_relative ./PhoneContact
class PhoneBook
def contactList
@contactList ||= {}
end
def add_contact (newContact = {})
flag = false
if newContact.length < 1
return flag
else
flag = true
newContact.collect do |name, number|
contactList[name] = number
end
return flag
end
end
def delete (targetName)
if !contactList.has_key?(targetName)
return false
else
contactList.delete(targetName)
return true
end
end
def display_contact (targetName)
number = -1
if contactList.has_key?(targetName)
number = contactList(targetName)
puts "Contact name : #{targetName}, Contact Number, #{number}"
else
puts "#{targetName} doesn't exist in the phonebook"
end
end
def display_all_contacts
if !contactList.empty?
contactList.each {|name, number| puts "Contact name: #{name}, contact number #{number}" }
else
puts "You don't have any contact details your phonebook"
end
end
end
것처럼 간단 할 수 있습니다 것이 좋습니다 네가 무엇을 요구하는지. A 클래스의 클래스가'b'와'c' (읽기 가능)라는 것을 가정 해 봅시다. 'a'가'A' 타입이라고합시다. 'b' 또는'c'에 액세스하고 싶다면'a.b'와'a.c'를 각각 실행할 수 있습니다. –
나는 두 가지를 알아 내려고하고있다. 먼저 PhoneContact 클래스에서 phone_number 및 label을 어떻게 사용할 수 있습니까? 당신이 말했듯이, 나는 전화 번호부 전화 번호와 PhoneBook.label을 사용하여 그 변수들을 호출 할 수 있습니까? 두 번째로, add 메소드를 어떻게 작동 시키나요? add 메소드가 name, phone_number 및 label과 같은 매개 변수를 사용하도록합니다. 그래서 find (name) 메소드를 사용하면 이름이 표시됩니다. – Codes316
'Phonebook'이 클래스이기 때문에'Phonebook.phone_number'를 호출 할 수 없습니다. '전화 번호부'유형의 인스턴스 변수에서 호출해야합니다. 이것을'pb = Phonebook.new','pb.phone_number' 또는'pb.label'로 할 수 있습니다. –