toString():每一个非基本类型的对象都有一个toString()方法,而且当编译器需要一个String而你只有一个对象时,该方法便会调用。
main() : 可以为每个类都创建一个main()方法,可使每个类的单元测试变得简单易行。由于main()方法用static修饰,所以在一个类中main()方法中可以调用另一个类中的main()方法,由另一个的类名调用,参数为前一个类的main方法的参数args。
为了继承,一般的规则是将所有的数据成员都指定为private,将所有的方法指定为public。
super表示超类,如果没有默认的基类构造器,或者想调用一个带参数的基类构造器,就必须用关键词super显式地调用基类构造器。
组合:在新类中使用现有类的功能而非它的接口。开始一个设计时,优先选择组合或者代理。
继承:使用某个类,并开发一个它的特殊版本。
组合和继承都允许在新的类中放置子对象,组合是显式的,继承是隐式的。
代理:继承与组合之间的中庸之道。在代理类中创建模块类的对象为私有成员变量,再在代理类中创建新的成员方法,在成员方法中用模块类的对象调用其方法。
覆盖:@Override
向上转型:新类是现有类的一种类型,导出类是基类的一个超集。如果需要从新类向基类进行向上转型,必须用继承。
final关键字:无法改变的。final类:不可继承,类中的方法都隐式指定为final。final方法:明令禁止覆盖。final参数:主要用来像匿名内部类传递数据。final数据:对于基本类型,使数值不变;对于对象引用,使引用不变。空白final:在构造器中进行初始化,应用于重载的构造方法。
编译时常量:既是static又是final的域。大写表示,下划线分隔单词。
如果某方法为private,它就不是基类的接口的一部分,它仅是一些隐藏于类中的程序代码。
在ClassName上运行Java时,首先访问ClassName.main()(一个static方法),加载ClassName类,如果有基类,先加载基类,完成对static初始化。