Вот код Java из книги Льюиса / Лофтуса. Мне трудно понять функцию двух методов и как они вызываются. Надеюсь, вы сможете уточнить это для меня. Я новичок в программировании и все еще в стадии обучения. Ниже приведен код из книги.
Мое изучение состоит в том, что объект myCoin создается при создании новой операции вызова Coin (). Вызов конструктора Coin () вызывает метод flip (). Который затем рассчитать лицо. Я думаю, код myCoin.flip также делает то же самое, что описано выше. Является ли myCoin.flip избыточным кодом здесь.
System.out.println (myCoin) печатающая головка или хвост. Как это возможно? Потому что myCoin - это переменная объекта, которая содержит информацию о голове / хвосте. Это также связано с другим методом. Как печатается только лицо.
Как работает код isHead и toString. В основной программе метод toString не вызывается и выдается Tail. Какова функция логического метода isHead (). Что он делает.
import java.util.Random;
class Coin
{
private final int HEADS = 0;
private final int TAILS = 1;
private int face;
public Coin ()
{
flip();
}
//-----------------------------------------------------------------
// Flips the coin by randomly choosing a face value.
//-----------------------------------------------------------------
public void flip ()
{
face = (int) (Math.random() * 2);
}
//-----------------------------------------------------------------
// Returns true if the current face of the coin is heads.
//-----------------------------------------------------------------
public boolean isHeads ()
{
return (face == HEADS);
}
//-----------------------------------------------------------------
// Returns the current face of the coin as a string.
//-----------------------------------------------------------------
public String toString()
{
String faceName;
if (face == HEADS)
faceName = "Heads";
else
faceName = "Tails";
return faceName;
}
}
public class CoinFlip
{
//-----------------------------------------------------------------
// Creates a Coin object, flips it, and prints the results.
//-----------------------------------------------------------------
public static void main(String[] args)
{
Coin myCoin = new Coin();
myCoin.flip();
System.out.println(myCoin);
if (myCoin.isHeads())
System.out.println("You win.");
else
System.out.println("Better luck next time.");
}
}