注意点,类中若含有静态变量,则静态变量必须独立于方法之外,就像其他高级语言在声明全局变量时必须在函数之外声明一样
//定义Cylinder类
//本例程中,pi值声明为静态变量,另声明了一个num用于记录共产生了多少个对象,
//因此对象创建时会自动调用构造方法,因此加入num++,以达到构造一次产生一个对象,num值自动+1
class Cylinder{
private static int num=0;
private static double pi=3.14;
private double radius;
private int height;
public Cylinder(double r,int h) {
radius=r;
height=h;
num++;
}
public void count() {
System.out.print("创建了"+num+"个对象:");
}
double area(){
return pi*radius*radius;
}
double volume() {
return area()*height;
}
}
public class example1{
public static void main(String[] args){
Cylinder volu1=new Cylinder(2.5,5);
volu1.count();
System.out.println("圆柱体1的体积="+volu1.volume());
Cylinder volu2=new Cylinder(1.0,2);
volu2.count();
System.out.println("圆柱体2的体积="+volu2.volume());
}
}
创建了1个对象:圆柱体1的体积=98.125
创建了2个对象:圆柱体2的体积=6.28
静态方法
与静态变量相似,实质是属于整个类的方法
class Cylinder{
private static int num=0;
private static double pi=3.14;
private double radius;
private int height;
public Cylinder(double r,int h) {
radius=r;
height=h;
num++;
}
public static void count() { //声明count()为静态方法
System.out.println("创建了"+num+"个对象:");
}
double area(){
return pi*radius*radius;
}
double volume() {
return area()*height;
}
}
public class example1{
public static void main(String[] args){
Cylinder.count(); //在对象产生之前用类名cylinder调用count()方法
Cylinder volu1=new Cylinder(2.5,3);
volu1.count(); //用对象volu1调用count()方法
System.out.println("圆柱体1的体积="+volu1.volume());
Cylinder.count(); //用类名cylinder直接调用count()方法
Cylinder volu2=new Cylinder(1.0,2);
System.out.println("圆柱体2的体积="+volu2.volume());
}
}
创建了0个对象:
创建了1个对象:
圆柱体1的体积=58.875
创建了1个对象:
圆柱体2的体积=6.28