Java随记

1.javax.swing.*;
String JOptionPane.showInputDialog(String s); 建立一个对话框
2.Java中String类的对象称作是不可改变的。这样具有一个伟大的优点:编译器可以安排共享的字符串。
3.java.text.NumberFormat类有三个方法可以产生数据的标准格式器:数字、货币值、百分数。
4.处理时间使用GregorianCalendar类方便。

5.设计继承的提示:
    1)把通用操作和方法放到超类中;
    2)不要使用受保护字段。因为任何人都可以派生子类直接访问该字段,而且同一包的任何类都能访问该字段。
    3)使用继承来模型化"is-a"关系。
    4)除非所有的继承方法都有意义,否则不要使用继承。
    5)使用多态而非类型信息。如:
            if (x is type1) action1(x)
            else if (x is type2) action2(x); 此类代码都应考虑使用多态。
    6)不要滥用反射。

6.写好equals的建议:
    1)先不要调用显式参数otherObject.你需要把它造型转换为另一个称作other的变量。
    2)测试this是否同otherObject相等。这是一个优化。
    3)测试otherObject是否为null。这是必需的。
    4)测试this同otherObject是否属于同一个类。这项测试是“对称性规则”所必需的。
    5)把otherObject转换成你的类的类型的一个变量。
    6)现在比较所有的字段。用==比较基本类型字段,用equals比较对象字段。
7.一个内部类是定义在另一个类内部的类。这样做的原因有如下个四个:
    1)一个内部类的对象能够访问创建他的对象的实现——包括私有数据。
    2)对于同一包中的其他类来说,内部类能够隐藏起来。
    3)匿名内部类可以很方便的定义回调。
    4)使用内部类可以非常方便的编写事件驱动的程序。

    注意:虽然内部类B在类A中但是并不是说A具有B的一个实例。而在A中构造的B的对象只是A的方法中的局部变量而已。

              内部类是属于编译器而不是属于虚拟机的一个特性,java编译器会把内部类翻译成常规class文件,并且该class文件的名字是通过使用符号$把外部类名字和内部类名字结合在一起表示的。而虚拟机对此一无所知。

你可能感兴趣的:(java)