-2

したがって、私はまだ駆け出しのプログラマーであり、誰かが以下のコードがどのように機能するかを正確に説明してくれれば、本当に感謝しています。

ここにリストしていないいくつかのメソッドがないとコードが機能しないことは承知していますが、11 行目から始まると困惑します: String street には、(私の知る限り) インデックスが作成されていない変数の値が与えられますが、それでも私は ' m は、値のない s ではなく、意図した値でそれを返すことができます。

String と同じ目的を果たす他の変数が、最終的に返される変数の値を変更しないのはどうしてですか?

繰り返しになりますが、私がこれに取り組む助けに感謝しています。

public class StreetAddress {
    String street, city, state, zip;

    StreetAddress(String s1, String c, String s2, String z) {
        street = s1;
        city = c;
        state = s2;
        zip = z;
    }

    void setStreet(String s) {
        street = s;
    }

    String getStreet() {
        return street;
    }

    void setCity(String c) {
        city = c;
    }

    String getCity() {
        return city;
    }

    void setState(String s) {
        state = s;
    }

    String getState() {
        return state;
    }

    void setZIP(String z) {
        zip = z;
    }

    String getZIP() {
        return zip;
    }

    String mailingLabel() {
        return street + "\n" + city + ", " + state + " " + zip;
    }
}

上記のクラスは、以下の情報を受け取り、フォーマットされたラベルを返します。

StreetAddress add = new StreetAddress("Cheese Island", "East Hemisphere", "The Moon", "99999999");
System.out.println(add.mailingLabel());
add.setStreet("Solar Flare");
add.setCity("Corona");
add.setState("The Sun");
add.setZIP("00000000");
System.out.println(add.mailingLabel());
4

5 に答える 5

1

これは、StreetAddress の概念を説明する Java クラスです。基本的に、クラスは、そのオブジェクトにとって意味のあるプロパティを持つ実際のオブジェクトを記述します。この場合、番地にはstreetcitystate、およびの情報が含まれていますzip

instantiate次のように、新しい StreetAddress オブジェクトを作成できます。

StreetAddress streetAddress = new StreetAddress("Lincoln street", "New York", "New York", "1234");

これは、アドレスを含むプログラムで渡すことができるオブジェクトがあることを意味します。

リンカーン通り、

ニューヨーク、

ニューヨーク 1234

オブジェクトから情報を取得したい場合は、そのgetterメソッドを使用できます。たとえば、オブジェクトから通りの情報のみを取得したい場合は、次のようにすることができます。

String street = streetAddress.getStreet();

同様に、streetStreetAddress オブジェクトのフィールドを更新する場合は、次のsetterようなメソッドを使用できます。

streetAddress.setStreet("Washington ave");

これで、オブジェクトに住所が含まれます。

ワシントン通り、

ニューヨーク、

ニューヨーク 1234

これらgettersetterメソッドは、オブジェクトの各フィールド ( streetcitystate、および) に対して同じように機能しますzip

最終的な方法:

String mailingLabel(){  return street + "\n" + city + 
      ", " + state + " " + zip; } }

上記の例のように、オブジェクトのフォーマットされたバージョンを返すことができます。これを行うことで、このフォーマットされたバージョンのオブジェクトをコンソールに出力できます。

System.out.print(streetAddress.mailLabel());

Java では、オブジェクトを使用して実世界の概念を記述します。プログラムでは、この StreetAddress のような多くのオブジェクトを作成して、情報を持ち運ぶことができます。オブジェクトとそのデータは、プログラムの実行中にデータベースではなくメモリに保存されます (EJB の場合を除きますが、今は忘れてください)。クラス間でオブジェクトを渡すと、gettersandで再度変更するまでデータが保持されますsetters

お役に立てれば :)

于 2013-01-09T19:59:50.847 に答える
0

別の場所では、次のように言うでしょう。

myAddr = new StreetAddress("My Street", "My City", "My State", "My Zip");

これらの値はこのオブジェクトに保存され、後で元に戻すことができます...

anotherZIP = myAddr.getZIP();
于 2013-01-09T19:42:48.397 に答える
0

あなたの質問の文言は少し不明確ですが、宣言とインスタンス化と初期化に関して混乱しているようです。

この時点で、それらがどのように機能するかについての簡単なチュートリアルを読むことをお勧めします: http://docs.oracle.com/javase/tutorial/java/javaOO/objectcreation.html

注意を集中させるのに役立ついくつかの簡単な部分を引き出します。

String street には (私の知る限り) インデックス付けされていない変数の値が与えられますが、値の
ない s ではなく意図した値でそれを返すことができます

ここに表示されているもの (「11 行目」):

void setStreet(String s) {
    street = s;
}

メソッドが受け取ることを期待するものの宣言です(a String)。sのその他の属性は次のStreetAddressように初期化されます。

StreetAddress add = new StreetAddress("Cheese Island", "East Hemisphere", "The Moon", "99999999");

...そして、ここで値がさらに変更されます。

add.setStreet("Solar Flare");

この最後の例では、"Solar Flare" はString s内の変数を初期化するために使用される値ですsetStreet()

于 2013-01-09T20:18:21.713 に答える
0

コンストラクターは 4 つの内部値を設定します。番地、都市、州、および郵便番号。

構築されると、getter メソッドを使用して 4 つの変数を取得できます。

4 つの変数は、setter メソッドで変更できます。

于 2013-01-09T19:38:48.477 に答える
0

3 つの引数を受け取り、プライベート フィールドを初期化するコンストラクターを持つ単純な Java クラスをお送りいただきました。したがって、このコンストラクターを次のように呼び出すと、

StreetAddress address = new StreetAddress("Brookin", "New York", "NY", "12345");

適切なフィールドが初期化されます。

クラスには、特定のフィールドの値を変更できるメソッドであるセッターもあります。たとえば、今あなたaddress.setZIP("54321")が郵便番号を呼び出すと、変更されます。

これが役立つことを願っています。

于 2013-01-09T19:42:01.917 に答える