-1

アドレス帳とアドレス クラスを実装します。以前に追加した要素を「挿入」で検索するメソッド「searchForename」と「searchSurename」を実装したいと思います。オブジェクトまたは要素を検索する ArrayList を使用した他の実装を調べましたが、ほとんどの場合、説明のないコードが多すぎるため、本当に混乱しています。

新しい質問を含む 3 番目の編集!:

3 回目の試行:

import java.util.ArrayList;


public class Adressbook {

    private ArrayList<Adress> adresses = null;

    public Adressbook(){
        adresses = new ArrayList<Adress>();
    }

    public void insert(Adress adress){
        adresses.add(new Adress("Marvin","Wildman","Blastreet",9,12345,"Blatown"));
        adresses.add(new Adress("Anne","Wildman","Woodstreet",10,6789,"Exampletown"));
        adresses.add(new Adress("William","Wildman","Eaglestreet",11,73975,"Blubvalley"));
    }


    public void searchSurename(String surename){
        for(Adress s: adresses){
            if("Green".equals(surename)){
            System.out.println(s);
            }
        }

    }

    public void searchForename(String forename){
        for(Adress s: adresses){
            if("Anne".equals(forename)){
            System.out.println(s);
            }
        }
    }

    public String toString(){
        return null;

    }

}

いくつか質問があります:

1.Addressbook の toString メソッドはどのようなものですか?

2. Address クラスの toString はどのように見えますか?

3. コンストラクターは Address クラスで正しく見えますか?

4.これよりも簡単/効率的な検索方法を実装できますか? 正しくない場合、どうすれば変更できますか?

クラスの住所を忘れた:

public class Adress {
    public static String forename;
    public static String surename;
    public static String street;
    public static int houseno;
    public static int code;
    public static String state;



    public Adress(String forename, String surename, String street, int houseno, int code,String state){
        this.forename = forename;
        this.surename = surename;
        this.street = street;
        this.houseno = houseno;
        this.code = code;
        this.state = state;
    }



    public String toString(){
        return null;
    }

}
4

1 に答える 1

4

メソッドはメソッドであるため、静的メソッドの呼び出しにはオブジェクト インスタンスがないため、静的コンテキストでstaticは使用できません。this

public static String searchSurename // static method

staticメソッド宣言からを削除する必要があります。

上記の変更ができない場合は、ArrayList adressesasを作成する必要がありますstatic

また、補足として、equals()文字列値の比較には を使用してください。==オブジェクト参照比較用です。

if(this.adresses.get(i).getSurename().equals(surename)) {
于 2013-10-26T14:30:34.647 に答える