Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这段Java代码是什么意思?_Java_Abstract Class - Fatal编程技术网

这段Java代码是什么意思?

这段Java代码是什么意思?,java,abstract-class,Java,Abstract Class,首先,我没有要求任何人做我的家庭作业。我只是对这种Java语法感到困惑 下面是作业说明和我必须实现的两个类。第一个仅供参考。第二个是我遇到麻烦的那个 在计算机科学的许多应用中,能够用理论上没有最大值的数字进行编程是必要的。您将编写一系列类来开始这项任务。最后一个类将允许您表示并至少添加任意长度的二进制数 这些到底是什么? 为什么要添加BinaryBit类型的静态类变量?这在某种程度上不是递归的吗?请参见标有???的行 因为位只能有两个值,1和0,所以您正在创建对表示这些值的对象的静态引用。它比每

首先,我没有要求任何人做我的家庭作业。我只是对这种Java语法感到困惑

下面是作业说明和我必须实现的两个类。第一个仅供参考。第二个是我遇到麻烦的那个

在计算机科学的许多应用中,能够用理论上没有最大值的数字进行编程是必要的。您将编写一系列类来开始这项任务。最后一个类将允许您表示并至少添加任意长度的二进制数

这些到底是什么? 为什么要添加BinaryBit类型的静态类变量?这在某种程度上不是递归的吗?请参见标有???的行


因为位只能有两个值,1和0,所以您正在创建对表示这些值的对象的静态引用。它比每次需要表示1或0时都创建一个新对象更有意义。

这是一种在实例数量有限时使用的技术。它们都被声明,然后被称为常量。传统上称它们为零和一是为了更明显地表明它们是常数。它实际上不是递归的,因为静态变量只创建一次。

不,它不是递归的。这仅仅意味着类的静态初始化将创建自身的实例。在创建实例之前,字段为null,但除非在构造函数中使用零或一,否则这应该是一个无意义的点。

位只有两个可能的值-零和一。任何给定的零或一都和其他的一样好。因此,为什么不创建一个固定的、不可更改的零值和零值,并传递对这些值的引用呢?它节省了内存和处理器时间。您可能会看到这种方法称为


您可以在Java自己的类中看到一些这种模式,其中包含了常见数字的预定义值,如0、1和10

0和1是一种预定义可在代码中使用的模板的方法。另一个例子是String.empty,它是一个空字符串的实例化,因此您可以执行if==String.empty之类的操作。它只是让代码更具可读性。

类可以包含指向自身实例的类变量?@macek-Yes。这是用编译器的魔法完成的。事实上,它的工作原理很酷。好吧,乍一看,你是如何在定义本身的范围内定义事物的?这是一种常见的有用模式。请参见Boolean.TRUE和Boolean.FALSE。另请参见颜色常量颜色。[colorname]。这与Singleton模式有任何关系吗?它实际上是工作中的Flyweight模式,带有静态结构中Singleton的泛音。有点像道尔顿吗?
// You are to write (implement) this class exactly as dictated by the following list of class members.
public abstract AbstractBit: 

  private boolean bit;

  public abstract AbstractBit clone(); 
  public abstract AbstractBit addBits(AbstractBit guest);
  public abstract AbstractBit addBits(AbstractBit guest1, AbstractBit guest2);
  public abstract AbstractBit carryBit(AbstractBit guest);
  public abstract AbstractBit carryBit(AbstractBit guest1, AbstractBit guest2);

  protected void setBit(boolean value)

  public boolean getBit()

  public AbstractBit()

  public AbstractBit(boolean value)

  public AbstractBit(AbstractBit guest)

  public boolean equals(AbstractBit guest)

  public String toString()
// You are to write (implement) this class exactly as dictated by the following list of class members.
public BinaryBit extends AbstractBit: 

  public static final BinaryBit zero = new BinaryBit(false);  // ????
  public static final BinaryBit one = new BinaryBit(true);    // ????

  public BinaryBit()

  public BinaryBit(boolean bit)

  public BinaryBit(int bit)

  public BinaryBit(BinaryBit guest)

  public BinaryBit clone()

  public boolean equals(BinaryBit guest)

  public String toString()

  public AbstractBit addBits(AbstractBit guest)

  public AbstractBit addBits(AbstractBit guest1, AbstractBit guest2)

  public AbstractBit carryBit(AbstractBit guest)

  public AbstractBit carryBit(AbstractBit guest1, AbstractBit guest2)