static:修饰成员变量时,表示静态成员变量或叫类变量
普通变量在使用的时候,必须要通过对象名进行调用
类变量或者静态变量可以使用对象名调用也可以使用类名进行调用
修饰方法的时候,表示静态方法或者叫类方法
普通方法在使用时,必须要通过对象名进行调用
类方法或者静态方法可以使用类名,也可以使用对象名
注意:
1.静态变量,在创建对象之前被初始化,或者说在类被载入之前进行初始化
2.静态变量被所有的对象共享,属于公共变量,对象和类都可以直接调用
3.成员变量放在堆中,而静态变量放在方法中静态区
4.静态变量不能定义在静态方法中(静态与非静态都不能定义静态属性)
5.静态方法可以在非静态方法中进行调用(非静态可调静态)
6.静态方法中不能直接调用非静态方法
7.静态方法中不允许出现this调用
8.一般工具类中的方法为static
package com.gml;
public class StaticDemo {
//属性
int age;
static String name;
//定义方法
public void gg(){
System.out.println("精神顺");
}
static void gml(){
//System.out.println(age);静态中不能访问非静态的方法和属性
System.out.println("牛马顺");
}
public static void main(String[] args) {
StaticDemo sd = new StaticDemo();
// sd.name = "牛马顺";
StaticDemo.name = "牛马顺";//一般通过类名调用,推荐使用这个
sd.gml();//通过对象调用
StaticDemo.gml();//通过类名调用(推荐使用)
gml();//静态调用,只能在当前的类中可以使用
}
}