《Head First Java》读书笔记day08

本文深入探讨了Java内部类的特性,包括如何访问外部类的私有成员,以及内部类实例与外部类实例的关系。同时,文章详细介绍了序列化机制,用于保存Java对象状态的方法,包括使用FileOutputStream和ObjectOutputStream进行对象的写入和读取过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个类可以嵌套在另一个类的内部;内部类可以使用外部所有的方法与变量,就算是私有也一样。

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();

静态变量不会被序列化,因为所有对象都是共享同一份静态变量值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值