我今天开始学习Java,接着是Head First Java,第2版,我有一些代码,这对我来说很困惑。我有Python的经验,但这是新的。更具体地说,我不明白布尔值canRecord = false; 实际上。
class DVDPlayer {
boolean canRecord = false;
void recordDVD() {
System.out.println("DVD recording");
}
void playDVD() {
System.out.println("DVD playing");
}
}
class DVDPlayerTestDrive {
public static void main(String [] args) {
DVDPlayer d = new DVDPlayer();
d.canRecord = true;
d.playDVD();
if (d.canRecord == true) {
d.recordDVD();
}
}
}
答案 0 :(得分:0)
在您的课程DVDPlayer上,您选择说普通DVDPlayer无法录制。所以你把它设置为假。
如果您希望它记录,您可以直接更改变量,就像您在DVDPlayerTestDrive类上所做的那样。
布尔值canRecord = false 仅用于向您显示可以重现对象的行为。在这种情况下,你有一个应该代表DVDPlayer的类,我们知道大多数DVD播放器都没有记录。
在面向对象编程的第一种方法中,不要过多关注代码(我假设它也是你的第一个OOP语言)。
尝试理解背后的概念和想法=)
答案 1 :(得分:0)
如果这个例子来自一本书,那么我甚至无法想象作者的意思。 我对这个例子的看法远非理想,但允许部分理解OOP的本质
class DVDPlayer {
private final boolean recordable;
// by default recordable false
DVDPlayer() {
this(false);
}
// you can specify recordable
DVDPlayer(boolean recordable) {
this.recordable = recordable;
}
void playDVD() {
System.out.println("DVD playing");
}
void recordDVD() {
if (recordable) {
System.out.println("DVD recording");
} else {
System.out.println("non recordable");
}
}
}
class DVDPlayerTestDrive {
public static void main(String [] args) {
DVDPlayer d1 = new DVDPlayer(true);
d1.recordDVD();
d1.playDVD();
DVDPlayer d2 = new DVDPlayer();
d2.recordDVD();
d2.playDVD();
}
我希望,你明白了。