创建对象就是为了产生实例,并进行数据的封装。
而调用对象时,却没有用到对象中封装的数据,虽然可以编译通过,但会产生堆内存的浪费。
则需要使用静态关键字static:这是一个成员修饰符
0.静态方法:
0.1静态方法不能访问非静态的成员。
0.2但是非静态方法可以访问静态成员。
0.3静态方法中不允许this,super关键字。
原因:静态是随着类的加载就加载了,也是随着类的消失而消失了。
静态优先于对象存在,被对象共享。
静态先存在于内存中无法访问后来的对象中的数据,所以静态无法访问非静态。
而且静态中无法书写this,因为这时对象可能不存在,this没有任何指向。
1,好处:
1.0被静态修饰的方法,除了可以被对象调用外,还可以被类名调用。
1.1并不是所有的方法都需要静态。
2.用法:
2.0当不需要访问成员变量时,该方法可以定义为静态方法。
main函数关键字:
public:权限最大。
static:不需要对象,直接给定的类名就可以访问该函数了。
void :不需要返回值。
main:函数名,该函数名是固定的。
(String[] args):主函数的参数列表:字符串属性类型的参数。
args:arguments:参数。该名称就是一个变量名。约定俗成的参数名称。
3.static 关键字修饰静态变量
static修饰成员变量,实现对象的共享,加入静态关键字,避免浪费空间。
3.1什么时候定义静态变量呢?
当该成员变量的值,在每一个new的对象中都一致时,就对该对象的成员变量进行静态修饰。
4,静态变亮和成员变量的区别:
4.1所属的范围不同,
静态变量所属于类,成员变量所属于对象。
静态变量也称为:类变量,成员变量也称为实例变量。
4.2调用不同
静态变量可以被对象和类调用。(一般都用类名调用)。
成员变量只能被对象调用。
4.3加载时期不同,
静态变量随着类的加载而加载,
成员变量随着对象的加载而加载。
4.4内存存储区域不同
静态变量存储在方法区中,
成员变量存储在堆内存中。
静态代码段:
1.需求:类一加载,需要做一些动作,不一定需要对象。
特点:随着类的加载而执行,一创建类就执行。
而且仅执行一次,加载一次。
作用:给类初始化。
2,静态变量有两次初始化:一次默认初始化,一次显示初始化。
3,静态代码段,在静态变量显示初始化以后在执行。
局部代码段:
{
构造代码;//(这里可以定义不同的构造函数的共性代码)
}
构造代码段,只要创建对象就会被调用,给所有对象初始化,构造函数只给对应的对象针对性的初始化。
作用:可以控制局部变量的生命周期, |
|