ネストされたクラスからメソッドを参照

RANDO:

私はJAVA初心者です。私は、Javaの電話帳を作成しようとしていますように3つの主要なクラス

  • Contacts.java
  • Phonebook.java
  • Showphonebook.java

Contacts二つの非静的な変数、ありnamephone人の名前と電話番号を保持し、。

そして、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への新しい混乱していると仮定しているthisJavaでの作業。あなたが求めているものを手に入れるために、私はコメントし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インスタンス。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=318946&siteId=1