1.构造函数:可以给对象进行初始化,创建对象都必须要通过构造函数进行初始化。一个类中没有定义构造函数,会有一个默认的
空
参数构造函数。
事物一旦产生就具备的内容定义在构造函数中,格式:类名(){}。
2.与一般函数区别:构造函数对象创建时,就会调用与之对应的构造函数,对对象进行初始化。一般函数对象创建后,需要函数功能时才会调用。
3.构造函数-重载:一个类中多个构造函数,参数不同,可以给对象不同的初始化。
构造代码块:给所有对象进行初始化。格式:{}
函数中的{}为局部代码块,限制局部变量生存周期。
4.this关键字:当成员变量和局部变量重名时,可以用其进行区分,代表当前对象。
this就是所在函数所属对象的引用,简单来说就是那个对象调用了其所在函数,this就代表那个对象。
另:还可用this调用构造函数,格式:this()
5.static关键字:数据共享。修饰成员(成员变量、成员函数),被所有对象共享;static优先于对象存在,随着类的加载就已经存在;除了可以被对象调用,还能被类名直接调用,格式:类.静态成员。
静态使用注意事项:静态方法(加了static的函数)只能访问静态成员;静态方法中不可以使用this或super关键字;主函数是静态的。
静态成员前省略的是类名,非静态省略的是this。
静态什么时候使用:该函数功能是否有访问到对象中的特有数据。从源代码看,该功能是否需要访问非静态成员变量,如果需要,该功能就是非静态的。如果不需要,就可以定义为静态的,不浪费空间。(不访问对象的特有数据就不需要创建非静态,直接类名调用,不创建对象,节约空间)
6.静态代码块:给类初始化。用于类中全是静态成员,不需要对象。
7.main函数:
public:因为权限必须是最大的。
static:不需要对象的,直接用主函数所属类名调用即可。
void:主函数没有具体的返回值。
String[] args:数组类型的参数,而且元素都是字符串类型。
总结:静态代码块先执行,静态变量,若有对象,构造代码块再执行,然后是构造函数。
加:创建子类对象,首先是加载子类构造函数,然后super()即父类构造函数,然后显示初始化,再构造代码块初始化,最后构造函数。