静态方法封装了由一系列语句所描述的算法。方法需要参数并根据参数计算出来的某种数据类型的返回值(int等)或者产生某种副作用(void)。实例如下:
//实例1
public static int abs(int x) //计算一个整数的绝对值
{
if(x<0)return -x;
else return x;
}
//实例2
public static void main(String [] args)
{
}
调用静态方法的方法是写出方法名并在后面的括号中列出参数值,用逗号分隔。
抽象数据类型(ADT)是一种能对使用者隐藏(private)数据表示的数据类型。
public class Counter //计数器
{
private final String name;//实例变量
private int count;
public Counter(String id)//构造函数
{name=id;}
public void increment()//实例方法
{count++;}
public int tally()
{return count;}
public String toString()
{return count+" "+name;}
public static void main(String [] args)//测试用例
{
Counter heads=new Counter("heads");//创建并初始化对象
Counter tails=new Counter("tails");
heads.increment();//使用对象名调用实例方法
heads.increment();
tails.increment();
System.out.println(heads+" "+tails);
System.out.println(heads.tally()+tails.tally());
}
}
用Java类来实现抽象数据类型和用一组静态方法实现用一个函数库并没有什么不同。抽象函数类型的主要不同之处在于它将数据和函数的实现关联,并将数据的表示方式隐藏起来。
静态方法的主要作用是实现函数;非静态方法(即实例方法)的主要作用是实现对数据类型的操作。两者很容易区分,静态方法的调用使用类名,而实例方法的调用使用对象名。