一个类可以嵌套在另一个类的内部;内部类可以使用外部所有的方法与变量,就算是私有也一样。
class MyOuterClass {
private int x;
class MyInnerClass {
void go() {
x = 42;//把x当做自己的
}
}
}
内部类的实例一定会绑在外部类的实例上。
与音乐同步输出图形,见GitHub:https://github.com/JackWon3637/headFirstJava/blob/master/P392
13 运用Swing
创建GUI四个步骤回顾:
1.创建Window(JFrame)
JFrame frame = new JFrame();
2.创建组件
JButton button = new JButton("click me");
3.把组件加到frame上
frame.getContentPane().add(BorderLayout.EAST,button);
4.显示出来
frame.setSize(300,300);
frame.setVisible(true);
14 保存对象
如果只有自己写的Java程序会用到这些数据:
1.用序列化(serialization):将被序列化的对象写到文件中。然后就可以让你的程序去文件中读取序列化的对象并把它们展开回到活生生的状态。
如果数据需要被其他程序引用:
2.写一个纯文本文件。用其他程序可以解析的特殊字符写到文件中。列如写成用tab字符来分隔的档案以便让电子表格或数据库应用程序能够应用。
将序列化对象写入文件
1.创建出FileOutputStream
FileOutputStream fileStream = new FileOutputStream("MyGame.ser");//如果文件不存在,它会自动被创建出来
2.创建ObjectOutputStream
ObjectOutputStream os = new ObjectOutputStream(fileStream);
3.写入对象
os.writeObject(characterOne);
os.writeObject(characterTwo);
os.writeObject(characterThree);
4.关闭ObjectOutputStream
os.close();
静态变量不会被序列化,因为所有对象都是共享同一份静态变量值。