在类中有两种成员:实例成员和静态成员。
实例成员是通过对象调用,静态成员可以直接通过类名调用。
静态成员是有关键字static声明的方法,有静态成员变量和静态成员方法两种。
1、静态成员变量
其声明的语法格式如下:
[修饰符] static 数据类型变量名;
其初始化有两种方式:
(1)在声明时赋初值,如:
public static int count=0;
(2)用static声明静态初始块,如:
public static int count ;
static{
count=0;
}
其调用方式有两种:
(1)通过类名调用
类名.变量名
(2)通过对象调用
对象名.变量名
2、静态成员方法
其语法格式如下:
[修饰符] static 返回值类型方法名([参数列表])[throws异常类列表]
{
方法体语句;
[return [返回值];]
}
此声明与实例方法的声明相同,只多了一个关键字static。
静态方法的调用有两种方式:
(1)通过类名调用
类名.方法名([参数列表])
(2)通过对象调用
对象.方法名([参数列表])
3、注意
静态方法体中不能访问实例成员,也不能使用this引用。
在类内部可直接访问静态方法,省略类名。
4、例:
public class Circle {
private double radius;
public static int count=0;//声明静态变量
public Circle(){
radius=0;
count++;
}
public Circle(doubleradius){
this.radius=radius;
count++;
}
public Circle(Circle c){
this.radius=c.radius;
count++;
}
public static void getCount(){//静态方法,访问静态变量
System.out.println("已有"+count+"个圆");
}
public static void main(String args[]){
getCount();//在类内部,可直接调用静态方法
count++;//在类内部,可直接调用静态成员变量
System.out.println(count);
Circle.count++;//可用类名调用静态成员变量
getCount();
Circle c=new Circle();
Circle.getCount();//可用类名调用静态方法
Circle c1=new Circle(1);
c1.getCount();//可用对象调用静态方法
Circle c3=new Circle(c1);
getCount();
}
}
其运行结果如下;
联系客服