静态与非静态的区别
(1)在非静态类中既可以有实例成员,也可以有静态成员(static修饰)。
(2)在调用静态成员的时候要使用:对象名.实例成员。
(3)在调用静态成员的时候要使用:类名.静态成员。
总结:静态成员使用类名去调用,非静态成员使用对象名去调用。静态函数中只能访问静态成员,不允许访问实例成员 (静静),实例函数中既可以使用静态成员,也可以是实例成员。
静态类中只允许有静态成员,不允许出现实例成员。
使用:什么时候使用静态,什么时候使用非静态
(1)把类当成“工具类”去使用,考虑写成静态类 例如:console类
(2)静态类在整个项目中资源共享---------占内存,,,,只有程序全部结束后,静态类才会释放资源。
非静态创建对象并赋值(逐一赋值)会造成代码冗余,所以产生构造函数来赋值
构造函数:
作用:初始化对象(给对象的每个属性依次赋值),构造函数是一个特殊的方法。
(1)构造函数没有返回值,没有Void
(2)构造函数名称必须和类名一样。
语法:
public 类名(参数)
{
属性赋值;
}
创建对象时调用构造函数 关键字new
new关键字做了三件事:
(1)在内存中开辟了一块空间。
(2)在开辟的空间创建对象。
(3)调用对象的构造函数进行初始化对象。
类当中默认有一个无参的构造函数 ,默认的构造函数会被我们新建的构造方法覆盖
无参的构造函数:public 类名()
{
}
有参的构造函数:public 类名(参数)
{
赋值;
}
在创建对象时(new)传参 n=new 类名(实参)
当类中已有重载的构造函数时,需要无参的构造函数需重新写无参构造函数。
this关键字:
作用:(1)表示当前类的对象
(2)调用本类当中的构造函数(重载中不全参数的构造函数去调用全参的构造函数)
语法::this()
例如:public Student(部分参数):this(全部参数值)
析构函数:~类名(){}
作用:当程序结束的时候,析构函数才执行 -----------》释放资源