1.static关键字 表示静态的意思 存在于内存的静态区
static 修饰类 属性 方法 静态块
a.static 修饰类
static关键字是不能够用来修饰类的
b.static修饰属性 (变量)
修饰符 static 数据类型 变量的名称 = 初始化的值
1.类中的静态变量属于类,而不属于某个特定的对象。
通过类名点方式来找到静态的属性====》例如:class.username 直接使用类名的形式去找到静态变量可以不用去创建对象从而提高了程序的性能。
2.类的静态变量可以和类名一起使用,不需要使用对象。
3.静态变量也可以称为类的变量
4.不管我们创建了多少个对象,整个类中的静态变量只有一个副本
对象是在内存的堆区划分一块区域,多个对象就划分多个区域,静态变量永远只存在静态区,并且多个静态变量是不会创建多个内存空间。
5.使用静态变量的时候建议用类名来调用。在同一个类中使用静态变量的时候就直接写变量的名称就可以了。在不同的类中使用类名来访问静态属性。
6.使用到了static关键字,那么这个变量就叫做全局变量,普通的变量叫做类的成员变量。
static 修饰方法
Static所修饰的方法我们都叫做静态方法。在本类中直接使用静态方法的名称,在不同类中使用类名点的方式来找到静态方法。
Static修饰的方法也叫做类方法。
静态方法的特征
1.类的静态方法只能访问其他的静态方法,不能直接访问非静态方法。如果在静态方法中去创建对象在去访问非静态方法这样是可以的 方法有两种:普通方法和静态方法,还有一个叫构造方法(和对象配合使用的)
2.静态方法中不能使用this关键字。
3.静态方法是否能够重载或者覆盖
a.静态方法是可以进行方法重载的。
b.静态方法是不能够实现方法覆盖的。(两个都是静态方法是实现了方法的隐藏。)
c.一个静态方法和一个非静态方法不能实现方法覆盖。
d.如果父类的方法是一个普通方法子类的方法是一个静态方法,那么子类的静态方法不能够隐藏父类的普通方法。
e.如果父类的方法是一个静态方法子类的方法是一个普通方法,那么子类是不能够覆盖父类的静态方法。
静态块
static {} ======>初始化数据
1.静态块中不能存放非静态的属性
2.静态块中不能使用static关键字,也不能使用任何修饰符。
非静态块
{}
非静态块必须要创建对象才能使用,并且是在构造方法之前调用
|