目前,Java中已经存在了很多由前辈开发出来的类,可以被开发人员直接使用,将这些有共同特征的类组合在一起形成了类库(API)。在Java中包含大量用于不同目的的类库,这些类库是开发Java软件的基础。及时需要设计自己的类,也有可能使用到Java类库中的很多类。
1.Java的数学运算处理类Math
Math包含了丰富的数学函数,可以直接使用这个类的方法,而不用管他们内部是如何实现的。通过查看API文档,知道"Math"类中的所有方法和字段都是可以直接访问的,在Java中,称之为静态方法和静态字段。因为这些成员是静态成员,所以可以通过"类名.方法名称"和"类名.字段"来访问方法和字段。在Math类中,由于都是静态成员,就可以使用"Math.方法名称或常量名"。下面把这个类中常用到的方法和属性值列举出来,供大家参考。
1.1 Math类中包含了两个静态常量。
Math.PI //表示数学常量π
Math.E //表示和e最可能接近的近似值
1.2 Math类提供了常用的三角函数。
Math.sin //表示正弦函数
Math.cos //表示余弦函数
Math.tan //表示正切函数
Math.asin //表示反正弦函数
Math.acos //表示反余弦函数
Math.atan //表示反正切函数
Math.atan2 //表示反余切函数
1.3 Math类还提供了幂函数,指数函数和自然对数函数。
Math.pow(a,b) //返回a的b次方
Math.exp(a) //返回e的a次方
Math.log(a) //返回a的常用对数值,此处返回以e为底,a为真值的数值
1.4Math类中提供了一个常用的数学运算函数。
Math.abs //返回绝对值
Math.sqrt //返回平方根
Math.max //返回最大值
Math.min //返回最小值
1.5 Math类提供了角度与弧度相关的转换运算方法
Math.toDegrees(double angrad) //将弧度转化成角度值
Math.toRadians(double angdeg) //将角度值转化成弧度
1.6 Math类提供了四舍五入的运算及截断运算
Math.round(double e) //四舍五入运算
Math.floor(double e) //返回不大于e的最大整数
1.7 Math类提供了一个专门用来救产生随机数的函数。
Math.random() //用来产生随机数的函数
接下来通过程序代码熟悉数学运算函数的用法。
public class test {
public static void main(String[] args) {
int x=9;
int y=16;
System.out.println(Math.sqrt(x)); //计算x的平方根的结果
System.out.println(Math.abs(x)); //计算x的绝对值的结果
System.out.println(Math.max(x,y)); //计算x与y的最大值
System.out.println(Math.min(x,y)); //计算x与y的最小值
}
}
代码说明:在运用这些函数方法的时候,希望读者能注意到函数所带的参数,Math.sqrt(),Math.abs()带的是一个参数。MAth.max(),Math.min()带的是两个参数。
运行结果:
再通过下列程序代码来熟悉四舍五入函数的方法:
package test;
public class test {
public static void main(String[] args) {
double x=4.51;
System.out.println(Math.round(x)); //返回的是四舍五入的值
System.out.println(Math.floor(x)); //返回的是不大于x的最大整数
}
}
运行结果:
2.测试时间和日期的类Date
下面要介绍另一个比较重要的类:Date类。Date类包括了有关日期和时间操作的一些方法。Date类提供相应的方法,可将日期分解为年、月、日、时、分、秒。Date类还可以将日期转换成一个字符串,甚至可以执行反向的操作。
因为Math类中的方法和字段属性都是静态的,所以可以直接使用它。而Date类中的方法和字段属性不是静态的,所以不能直接用"类.方法名或字段名",必须使用"对象名.方法名或字段名"。针对非静态的类或方法,就要使用对象来操作,不能使用类来操作。
在程序中将时间显示出来,这里有两种方法:
2.1 将Date对象作为一个参数,传给println方法。
下面是这个方法的实例。
import java.util.Date;
public class test {
public static void main(String[] args) {
System.out.println(new Date()); //输出当前时间
}
}
代码说明:第1行非常关键,使用import导入类库。第6行直接输出日期。这个程序代码段是显示当前的日期和时间。它将Date()作为当前时间日期,然后将此对象传给"println"方法。
运行结果:
2.2 使用Date类中的一个方法:"toString()",它可以直接将时间日期按照字符串的形式显示出来。
import java.util.Date;
public class test {
public static void main(String[] args) {
System.out.println(new Date()); //输出当前时间
System.out.println(new Date().toString()); //输出当前时间
}
}
代码说明:这个例子将两种方法做了对比,其实从输出结果来看是一模一样的,只是使用的方法不同而已。
运行结果:
3.测试日历的类 GregorianCalendar
在对Date类的介绍中,读者会发现Date类所表示的是一个时间点,也就是在创建对象当前的时间点,而这对于进行日期的相关操作及运算是非常不方便的。为此,前辈们在Java类库中,为开发者提供了一个方便操作日期的类:GregorianCalendar类。其实GregorianCalendar类是Calendar类的一个扩展而已,Calendar类是从总体上描述历法的类。
3.1 GregorianCalendar类的常用方法:
public int get(int field)
这里的field指Calender类中定义的常数,返回与"field"相关的日期。
import java.util.*;
public class test {
public static void main(String[] args) {
GregorianCalendar gc=new GregorianCalendar(); //创建格式化对象
int X=gc.get(Calendar.DATE); //获取当前天
System.out.println(X);
}
}
运行效果:
3.2 "public void set(int field,int value)"将"field"所表示的日期替换成"value"的值。
import java.util.*;
public class test {
public static void main(String[] args) {
GregorianCalendar gc=new GregorianCalendar();
gc.set(Calendar.YEAR,1999);
System.out.println(gc.get(Calendar.YEAR));
}
}
运行结果:
3.3 下面是一些有关如何设置系统时间的方法。
public final void set(int year,int month,int date)
public final void set(int year,int month,int date,int hour,int minute)
public final void set(int year,int month,int date,int hour,int minute,int second)
下面举个例子:
import java.util.*;
public class test {
public static void main(String[] args) {
GregorianCalendar gc=new GregorianCalendar(); //创建对象gc
gc.set(2013,10,14); //设置时间
System.out.println(gc.get(Calendar.YEAR)); //输出当前年
System.out.println(gc.get(Calendar.MONTH)); //输出当前月
System.out.println(gc.get(Calendar.DATE)); //输出当前天
}
}
运行结果: