1.泛型
2.语言只是实现目标的工具,而不是目标本身。
——詹姆斯·高斯林
3.String类中的substring方法为前开后闭的
4.不要使用==比较两个字符串,这个运算符只能够确定两个字符串是否放在同一个位置上,完全有可能将内容相同的多个字符串的拷贝放置在不同的位置上。
使用s.equals(t)来比较两个字符串是否相等
s和t既可以是字符串变量,也可以是字符串常量。
例如:"Hello".equals(greeting)
不区分大小写检测两个字符串是否相等,使用equalsIgnoreCase方法。
例如:"Hello".equalsIgnoreCase("hello")
5.关于main()函数
main()方法所在的类不一定要是public的,你可以在所有类中都定义一个main()方法,执行的时候只会执行命令行所调用的那个类的main()方法.这种在每个类中都设置一个main()方法的技术可使每个类的单元测试都变得简便易行。而且你在完成单元测试之后,也无需删除main(),你可以将其留待下次测试。
在eclipse中执行的是你的主类People,如果你People类没有主函数肯定无法执行,你要是一定执行A类的话,按照以下方法可以执行
publicclassPeople
{…………………………
publicstaticvoidmain(Stringargs[])
{
A.main(null);//A.main(args),也是可以的,因为参数args未被初始
//所以,args也为默认值null。
}
}
classA
{publicstaticvoidmain(Stringargs[])
…………………………
}
6.继承最重要的方面是用来表现新类和基类之间的关系,这种关系可以用“is-a”来表达即“新类是基类的一种类型”。
对比:组合关系表示的是“has-a”(有一个)的关系
如何实现新类和基类这种关系:
向上转型
将导出类的引用转换为基类的引用的动作,称为向上转型。
由导出类转型成基类,在继承图上是向上移动的,因此一般称为向上转型。
导出类是基类的一个超集,向上转型从一个较专用的类型向较通用的类型转换,所以是很安全的,编译器在“未曾明确表示转型”或“未曾指定特殊标记”的情况下,任然允许向上转型。
组合与继承选择何种方式?确实需要向上转型时,才使用继承;否则,使用组合。