static 修饰的方法被称为静态方法,从内存分析的角度来看,属于最先加载的一批,与类一起加载到内存中,静态方法中不能调用非静态方法的原因是因为非静态方法还未加载到内存中,相对于静态方法是"不存在"的状态,所以编译器会报错.
public static double avarge(double a,double b)
{
return add(a,b)/2;//此处会报错
}
public double add(double a,double b)
{
return a+b;
}
static修饰的变量被称为静态变量,静态变量不需要实例化而直接通过类名调用
public class Demo01
{
private static int i=1;
static int j=2;
public static void main(String[] args)
{
short a=10;
byte b=8;
System.out.println(Demo01.i);//静态变量可以不用实例化而直接通过类名调用
Math.pow(a, b);
int m=i++ + ++j;
System.out.println(m);
System.out.println(getType(a+b));
System.out.println(i++);//先输出i,在运算这一行
i--;
System.out.println(++i);//先运算i,在输出
System.out.println(j++);
j--;
System.out.println(++j);
}
public static String getType(Object o)//获取变量类型方法
{
return o.getClass().toString(); //使用int类型的getClass()方法
}
}
static修饰的与类一同加载,且只加载一次.