0

util というパッケージに 3 つのクラスがあり、すべてパブリック クラスです。しかし、これらのクラスを使用するコードをコンパイルしようとすると、クラスが公開されていないというエラーが表示されます。何が悪いのかわからない。3 つのクラスは次のとおりです。

package util;

class Address {

    private String address;

    public Address(){
        address = "Default";
    }

    public Address(String newAddress){
        address = newAddress;
    }

    public void setAddress(String newAddress){
        address = newAddress;
    }

    public String getAddress(){
        return address;
    }

}

デートクラス

package util;

class Date {

    private String Date;

    public Date(){
        Date = "Default";
    }

    public Date(String newDate){
        Date = newDate;
    }

    public void setDate(String newDate){
        Date = newDate;
    }

    public String getDate(){
        return Date;
    }

}

名前クラス

package util;

class Name {

    private String name;

    public Name(){
        name = "Default";
    }

    public Name(String newName){
        name = newName;
    }

    public void setName(String newName){
        name = newName;
    }   

    public String getName(){
        return name;
    }

}
4

2 に答える 2

6

すべてのクラス宣言の前に「public」を追加します。それらをすべてパッケージ非公開にしました。

これが単純化された例かどうかはわかりませんが、あなたのデザインには多くの要望が残されています。Date (必須ではない)、Name、および Address の 3 つのクラスはすべて、String クラスの最も薄いラッパーです。最後の 2 つを強化し、最初の 2 つを削除します。あなたのコードを使用する人は誰でも、あなたの Date と java.util.Date のどちらを意味するのかを判断する必要があります。悪いアイデア。代わりに JDK java.util.Date を使用してください。

于 2012-09-30T19:32:47.977 に答える
2

アクセスレベル修飾子を指定しなかったためpublic、これらのクラスはpackage-privateではありません。それらにアクセス修飾子をpublic追加するには、次のようにします。public

public class Address {
于 2012-09-30T19:34:13.273 に答える