1

それで、私は Udacity で Java に手を浸し始めました。最近、助けが必要なこの質問に出くわしました。リンク: https://www.udacity.com/course/viewer#!/c-cs046/l-183784769/e-186954461/m-188821863

質問

わかりました、私は混乱していて助けが必要です。

これまでのところ、Java プログラミングではクラスを作成し、それらのクラスでオブジェクト (?) を作成し、これらのオブジェクトを使用するメソッドを作成し、変数を使用してこれらのオブジェクトを格納することを学んできたと "思います"。これまで間違っていたら訂正してください...

インスタンス変数は、そのクラスのすべてのメソッドがアクセスできる変数であることを理解しています。この場合: private String name; private String friends;-- これらのインスタンス変数には何が格納されていますか?それはあなたの名前と友達の名前ですか??

パブリック インターフェイスは基本的にメソッド head/title(?) です - この場合は次のとおりです: public void addFriend(Person friend) a1)ここで「addFriend」という単語について、これをどこかで宣言しましたか。

b1) addFriend メソッドの引数で、(Person friend) は何を意味し、どのように宣言/取得しましたか? 引数の友人という単語 (Person friend) ですが、作成したインスタンス変数は "friend" ではなく "friends" だったので、友人という単語をインスタンス変数にすることはできませんよね?

A2) friend.name の場合、「友達」がオブジェクトですか? B2)で、".name" がインスタンス変数だと思いますか? C1)オブジェクトに変数を割り当てるには、常にオブジェクトを配置してから .variableName を配置しますか?

最後に別の質問として: フレンド追加メソッドのメソッドをどのように理解する必要がありますか? プロセス/概念について話しているのです。つまり、オブジェクトが何であるかを見て、メソッドの引数に何を入れるかを理解しますか? ???

事前にご協力いただきありがとうございます。初心者であることをお許しください:)

4

3 に答える 3

1

これらのインスタンス変数には何を保存しますか?それはあなたの名前と友達の名前ですか?

はい。それらのタイプはString、「Bob」、「Felicia」、または「Curtis」などの文字列を期待しているだけです。文字列であれば、「水筒」や「網戸」などに設定することもできます。

しかしfriends、複数の友人を示唆するため、文字列の奇妙な名前です。通常はList. しかし、あなたはまだそれを学んでいないかもしれません。

パブリック インターフェイスは基本的にメソッド head/title(?) です -

インターフェイスは、クラスのテンプレートです。「契約」という言葉が好きな人もいます。クラスに「これらのメソッドが必要です: blah()、blee()、および bloo()」と伝えるだけです。

あなたの例ではインターフェイスを使用していないため、具体的には言えません。

では、「addFriend」という言葉について、どこかで宣言したのでしょうか? コンピューターはそれが何を意味するのかをどのように認識しているのでしょうか?

これはメソッドなので、新しいクラスを作成するときにクラスにまとめられます。後で person をインスタンス化するとき (つまり、Person Joe = new Person()) を呼び出しaddFriend() て Joe に友達を与えることができます。

Personそれぞれ独自のメソッドを持つ一連のクラスをインスタンス化できますaddFriend

addFriend メソッドの引数で、(Person friend) とは何を意味し、どのように宣言/取得したのでしょうか?

最後の回答を参照してください。

引数の友人という単語 (Person friend) ですが、作成したインスタンス変数は "friend" ではなく "friends" だったので、友人という単語をインスタンス変数にすることはできませんよね?

引数friendはメソッドに対してローカルです。メソッドの外では見えません。そのため、好きなように呼び出すことができます。

次のように、引数パラメーターに a を追加するのが好きな0ので、それらが引数であることをすぐに知ることができます。

public void addFriend(Person friend0)
{
    ...do stuff with friend0...
}

friend.name の場合、「友達」がオブジェクトですか?

これは少し誤解を招くname可能性がありますこれは間違っていますPerson Joe = new Person(); System.out.println(Joe.name)

しかし、はい、彼らが意味するのは、それfriendが のインスタンスであるということですPerson

これを修正するには、name公開する (推奨されません) か、次のgetName()ようにメソッドを記述します。

public String getName()
{
    return name;
}

後で誰かの名前を誤って変更 (リセット) することがないため、この方法の方が優れています。

「.name」がインスタンス変数だと思いますか?

「インスタンス」は、新しいクラスを作成するときです。インスタンス変数は、クラス内にある変数です。インスタンス変数もそうnameですが唯一のものではありません。

変数をオブジェクトに割り当てるには、常にオブジェクトを配置してから .variableName を配置しますか?

int x = ...タイプを入力してから、またはのように名前を入力しString address = ...ます。たとえば、前に言ったように、Persons がたくさんある場合は、Java に次のように伝えます。

Person Joe = new Person();
Person Wilhelmina = new Person();
Person Winifred = new Person();

...そして、特定の各インスタンスに友達やものを追加します(新しいクラスを作成するたびに、それはインスタンスと呼ばれます)。

友達を追加する方法をどのように理解する必要がありますか

横の手書きの走り書きは、友達の名前をfriends文字列に追加するだけだと言っています. したがって、メソッドは の を受け取りfriendますPerson。その場合、おそらく を呼び出しgetName()てその名前を として取得し、Stringそれをそのインスタンスの に追加する必要がありますfriends

于 2013-09-27T07:58:17.820 に答える
0
  1. クラスはオブジェクトの設計図です。クラスを設計するときは、そのクラス タイプから作成されるオブジェクトについて考えてください。オブジェクトがそれ自体について知っていることはインスタンス変数と呼ばれ、オブジェクトが実行できることはメソッドと呼ばれます。

  2. クラスでインスタンスを宣言すると、さまざまな参照変数によって参照されるさまざまなオブジェクトの情報が格納されます。したがって、いくつかのオブジェクトの情報を保存します。

a1。クラスでパブリック メソッドを宣言する場合、コンパイラにメソッドを知らせるために別の場所で宣言する必要はありません。参照変数が作成されると、そのメソッドにアクセスできるようになります。したがって、メソッドはオブジェクトの一部です。

B1. パラメーターは「Person」のタイプであり、そのメソッドに対する「ローカル」です。したがって、クラス「friends」で宣言された変数とパラメーター「friend」はまったく関係がありません。パラメータとして「Person型オブジェクト」を取ります。

A2+B2+C1。「friend.name」は、参照変数「friend」でのみオブジェクトを参照できます。オブジェクトにはインスタンス変数とメソッドの 2 種類があります。

于 2013-09-27T08:11:24.367 に答える