私は Head First Java を読んでいて、演習で少し混乱しています。演習の元の指示は関係ありませんが、ポイントは、コードをコンパイルして実行するだけで、答えを吐き出すだけで解決できることです。私はかなり混乱しており、デバッガーを再生して、コードの各行を段階的に進めて、何が起こっているかを確認しようとしています。コードを理解していることを確認するために、コードにコメントを追加しました。たとえば、特定の時点でのカウントなどを理解するのに役立つ必要があります。これが元のコードで、自分で1行追加したものです。私が最もよく理解していないいくつかの行に注意します。
**更新: だから私は自分のコードを最もよく理解していました。特定の行についての質問はコメントにあります。誰かが何が起こるかについて段階的なアプローチを行うことができれば、それはより理解しやすくなるでしょう. 事前にご協力いただきありがとうございます。私は StackOverFlow を初めて使用するので、これが正しい質問方法であったことを願っています。
public class Mix4
{
int counter = 0; //This is setting the variable counter to 0.
public static void main (String[] args)
{
int count = 0; //This is setting the variable count to 0.
Mix4[] m4a = new Mix4[20];//This is initializing an array of 20 m4a objects to null.
int x = 0; //This is setting the variable x to 0;
while ( x < 9 )
{
m4a[x] = new Mix4(); //This actually creates the m4a object at array index 0.
m4a[x].counter = m4a[x].counter + 1;
//This line is very confusing. How can you use a dot operator on a variable?
//I am saying variable because as stated above there is a int counter = 0;
count = count + 1; //This increments the variable count. Why do this though?
count = count + m4a[x].maybeNew(x);
//The count variable again is being implemented but this time it calls the
// maybeNew method and it is passing a 0 as as the argument? Why do this?
x = x + 1; // x is being incremented.
System.out.println(count + " " + m4a[1].counter);
//What is this printing and when does this print?
}
public int maybeNew(int index)
{
if (index < 5)
{
Mix4 m4 = new Mix4(); //Creating a new object called m4.
m4.counter = m4.counter + 1;
//Same question about this from the code of line stated above using dot
//operators on variables.
return 1; //Where does 1 be returned to? I thought you can only have one
//return statement per method?
}
return 0; // I thought only 1 return statement? I have no idea what these return
// statements are doing
}
}
}