私はJAVA初心者です。私は、Javaの電話帳を作成しようとしていますように3つの主要なクラス
Contacts.java
Phonebook.java
Showphonebook.java
Contacts
二つの非静的な変数、ありname
とphone
人の名前と電話番号を保持し、。
そして、Phonebook
保持しているクラスであるPhonebook
オブジェクトを、変数があるowner
文字列です。だから、基本的に、Phonebook
オブジェクトは、所有者を保持し、への参照になりContacts
、オブジェクトがそれに連絡先を追加します。
そして、最後のクラスは、Showphonebook
新しいクラスを作るあるPhonebook
所有者と、それに連絡先を追加します。
ここでは上記のための私のコードは次のとおりです。
Contact.java
public class Contact {
private String name;
private String phone;
public Contact(String name, String phone) {
this.name = name;
this.phone = phone;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String toString() {
return name + ": " + phone;
}
}
Phonebook.java
import java.util.*;
public class Phonebook
{
private String owner;
public ArrayList<Contact> contacts = new ArrayList<Contact>();
public Phonebook(String owner) {
this.owner = owner;
}
public void addContact(Contact name) {
contacts.add(name);
}
public void show() {
System.out.println(owner + "'s phonebook");
for (Contact name : contacts) {
System.out.println(name);
}
}
/*public String findContactByName(String contactToSearch) {
for (Contact name : contacts) {
if (this.getName().equals(contactToSearch)) {
}
}
}*/
}
ShowPhonebook.java
public class ShowPhonebook
{
public static void main(String[] args) {
Phonebook phonebook1 = new Phonebook("Sam Johnson");
phonebook1.addContact(new Contact("Kelly Wong", "(02) 12345678"));
phonebook1.addContact(new Contact("Richard Jackson", "(02) 87654321"));
phonebook1.show();
}
}
私は連絡先が存在するかどうかを確認するために電話帳を検索することができPhonebook.javaにおける方法であって、そうでない場合はnullを作りたかったです。
これどうやってするの?私が使用する場合、私は考えていたgetName()
方法をContact
連絡先の各連絡先の名前を引き抜くArrayList
とそれを比較するcontactToSearch
変数が、以来、getName()
非静的である、私はそれをどのように行うのですか?ので、私は混乱していますContact
成り立つgetName
が、それを参照するために、私はオブジェクトが必要ですが、私の唯一のオブジェクトがphonebook1
であるShowPhonebook
私はそこに着くために、2つのクラスを介して行かなければならないと感じている、クラス。それを行う方法がわかりません。
ここでの指導を探して!
まず第一に、スタックオーバーフローを歓迎!
今、私は、あなたがそれゆえにどのように言及し、約Javaへの新しい混乱していると仮定しているthis
Javaでの作業。あなたが求めているものを手に入れるために、私はコメントしMETHOD-で、次の修正を示唆しています
public String findContactByName(String contactToSearch) {
for (Contact contact : this.contacts) { // changed "name" to "contact"; variable name should be aptly chosen
if (contact.getName().equals(contactToSearch)) {
// TODO: do your thing with "contact" variable
}
}
}
this
クラスの現在のインスタンスを指します。あなたのケースでは、this
を参照するphonebook1
インスタンス。