1.子类在执行时会调用父类的构造函数,生成父类的实例,然后再生成子类自己的实例。
2.变量时在编译时解析的,方法是在运行是解析的。
3.声明为static的变量是属于类的,类下面所有的对象要使用这个static的变量的时候都是共享同一块内存空间的。
4.因为在程序开始的时候必须调用main();所以必须被声明为static。(个人理解:程序一开始就要跑main方法,根本没时间让它进行实例化对象,所以必须进行static)
5.static声明的变量、语句块,在程序一开始加载起来的时候都会马上被执行掉,然后再调用main()方法。
6.编译器在区分方法时不考虑返回类型,所以不能声明两个具有相同参数列表但返回类型不同的方法。
7.包的概念就类似于文件夹,在不同文件夹下可以创建相同名字的文件,也就是说在不同的包下面可以创建相同的类名。包目录下面的包用“.”,如person.hushunfeng,这个表示的是person这个包文件夹下有hushunfeng这个包。
8.String类在使用时不需要使用import java.lang.String;因为每个java程序都会默认地有 import java.lang.*;特别注意:这个“*”只能是识别类名和接口名,它是识别不了子包的目录名的!!!同时它只能识别出public类型的。所以,对于lang下面子包(即子目录)的类还是要通过import语句进行引进的,系统是不会默认的。 这点深刻体会下,就能理解整个包的机制!!!
9.在java中,属性成员最好是private,对它们的访问可以通过public的函数,而这些函数一般的命名规则是以get和set作为前缀。
10.this的用法:1)在一个类里面,加入成员变量有个s,方法体内部也有一个局部变量s,那么如果我想用成员变量s,就需要加this,代码为:this.s 告诉编译器,要用我类里面的这个this。所以可以理解成“类本身就是个霸道主义者,要用我的s,而不是你方法里面的s”。
2)this可以代表类本身或者构造函数。
3)super也是类似的用法,用在父类上。
11.如果一个类里包含一个或者多个抽象方法,那么这个类就必须定义成抽象的,即abstract。