0

我已经从 Oracle 搜索/阅读文档大约 2 个小时了,我很困惑。我以为我了解抽象类是什么,以及它是如何使用的(至少在基本层面上)。我对这一切还很陌生,所以请多多包涵。

据我了解,抽象类不能被实例化,而是需要一个子类来实现它的任何部分。我正在查看并试图剖析和理解的类是 BufferStrategy 和 Canvas,以及它们如何协同工作。我没有在项目中使用这些类,或多或少只是想了解它们是如何工作的。

所以,假设我有我的 Canvas 并正在为它创建一个 BufferStrategy :

BufferStrategy bs;
Canvas c;
c = new Canvas();
c.createBufferStrategy(2);
bs = c.getBufferStrategy();

文档说“.getBufferStrategy()”返回当前在 Canvas 中使用的 BufferStrategy。它显然没有返回 BufferStrategy 的实例,那么它究竟返回了什么,它是如何存储在“bs”中的?另外,当“canvas”是:“Canvas 的一个实例”时,我什至会将“bs”称为什么?

我注意到 BufferStrategy 的唯一子类“Component.BltBufferStrategy & Component.FlipBufferStrategy”,据我所知,它们嵌套在 Component 中,因此与 Canvas 共享。但我看不到它在任何地方发挥作用。

我希望这一切都有意义。如果这是我现在应该知道的一个简单的基本问题,我深表歉意,但这是去年真正让我难过的第一件事;可能是因为我没有像我想象的那样理解某些概念。感谢您的阅读。

4

0 回答 0