17xie > Java语言实用教程 > 第8章 系统常用类
背景:                 
[本书目录] [图书首页] [本书讨论区]  
链接地址:http://www.17xie.com/read-2610.html    注册17xie 一起来写书 实现您的出书梦想!

8  系统常用类

内容提示:Java类库是Java语言提供的已经实现的标准类的集合,是Java语言的API,利用这些类库可以方便快速的实现程序中的各种功能。本章具体讲述了语言包java.lang和实用程序包java.util中常用的数学运算类、字符串类、日期时间以及向量哈希表等类的使用方法。

8.1  Java基础类库

Java的类库是Java语言提供的已经实现的标准类的集合,是Java编程的APIApplication Program Interface),它可以帮助开发者方便、快捷地开发Java程序。这些类根据实现的功能不同,可以划分为不同的集合,每个集合组成一个包,称为类库。Java类库中大部分都是由Sun公司提供的,这些类库称为基础类库。

Java语言中提供了大量的类库共程序开发者来使用,了解类库的结构可以帮助开发者节省大量的编程时间,而且能够使编写的程序更简单更实用。Java中丰富的类库资源也是Java语言的一大特色,是Java程序设计的基础。

Java常用包的简单介绍如下:

1java.lang包:主要含有与语言相关的类。java.lang包由解释程序自动加载,不需要显示说明。

2java.io包:主要含有与输入/输出相关的类,这些类提供了对不同的输入和输出设备读写数据的支持,这些输入和输出设备包括键盘、显示器、打印机、磁盘文件等。

3java.util包:包括许多具有特定功能的类,有日期、向量、哈希表、堆栈等,其中Date类支持与时间有关的操作。

4java.swing包和java.awt包:提供了创建图形用户界面元素的类。通过这些元素,编程者可以控制所写的AppletApplication的外观界面。包中包含了窗口、对话框、菜单等类。

5java.net包:含有与网络操作相关的类,如TCP ScoketsURL等工具。

6java.applet包:含有控制HTML文档格式、应用程序中的声音等资源的类,其中Applet类是用来创建包含于HTMLApplet必不可少的类。

7java.beans包:定义了应用程序编程接口(API),Java BeansJava应用程序环境的中性平台组件结构。

8.2  Java语言包

Java语言包(java.lang)定义了Java中的大多数基本类。该包中包含了Object类,Object类是整个类层次结构的根结点,同时还定义了基本数据类型的类,如:StringBooleanByterShort等。这些类支持数字类型的转换和字符串的操作,在前面的章节中已经涉及了部分内容,本章主要介绍该包中的Math类和字符串类。

8.2.1  Math

Math类提供了常用的数学运算方法以及Math.PIMath.E两个数学常量。该类是final的,不能被继承,类中的方法和属性全部是静态,不允许在类的外部创建Math类的对象。因此,只能使用Math类的方法而不能对其作任何更改。表8-1列出了Math类的主要方法。

8-1  Math类的主要方法

方法

功能

int abs(int i)

求整数的绝对值(另有针对longfloatdouble的方法)

double ceil(double d)

不小于d的最小整数(返回值为double型)

double floor(double d)

不大于d的最大整数(返回值为double型)

int max(int i1,int i2)

求两个整数中最大数(另有针对longfloatdouble的方法)

int min(int i1,int i2)

求两个整数中最小数(另有针对longfloatdouble的方法)

double random()

产生0~1之间的随机数

int round(float f)

求最靠近f的整数

long round(double d)

求最靠近d的长整数

double sqrt(double a)

求平方根

double sin(double d)

dsin值(另有求其他三角函数的方法如costanatan

double log(double x)

求自然对数

double exp(double x)

ex次幂(ex

double pow(double a, double b)

ab次幂

 

【例8-1Math类主要方法的举例。

//********** ep8_1.java **********

class ep8_1{

  public static void main(String args[]){

    System.out.println("Pi="+Math.PI);

    System.out.println("E="+Math.E);

    System.out.println("abs(-6.8)="+Math.abs(-6.8));

    System.out.println("ceil(6.8)="+Math.ceil(6.8));

    System.out.println("floor(8.6)="+Math.floor(8.6));

    System.out.println("max(-5,-6)="+Math.max(-5,-6));

    System.out.println("min(5,6)="+Math.min(5,6));

    System.out.println("round(8.6)="+Math.round(8.6));

    System.out.println("sqrt(16)="+Math.sqrt(16));

    System.out.println("exp(1)="+Math.exp(1));

    System.out.println("log(e)="+Math.log(Math.E));

System.out.println("pow(2,3)="+Math.pow(2,3));

System.out.println("sin(30degree)="+Math.sin(Math.toRadians(30)));

    System.out.println("atan(90degree)="+Math.atan(Math.PI/2));

  }

}

运行结果:

Pi=3.141592653589793

    E=2.718281828459045

    abs(-6.8)=6.8

    ceil(6.8)=7.0

    floor(8.6)=8.0

    max(-5,-6)=-5

    min(5,6)=5

    round(8.6)=9

    sqrt(16)=4.0

    exp(1)=2.7182818284590455

    log(e)=1.0

    pow(2,3)=8.0

    sin(30degree)=0.49999999999999994

    atan(90degree)=1.0038848218538872

其中“Math.toRadians(30)”表示把角度值转换为弧度值。

【例8-2】产生1010~100之间的随机整数。

//********** ep8_2.java **********

class ep8_2{

  public static void main(String args[]){

    int a;

    System.out.print("随机数为:");

    for(int i=1;i<=10;i++){

      a=(int)((100-10+1)*Math.random()+10);

      System.out.print(" "+a);

    }

    System.out.println();

  }

}

运行结果:

随机数为:12 26 21 68 56 98 22 69 68 31

由于产生的是随机数,例8-2每次运行的结果都不会相同。若要产生[a,b]之间的随机数其通式为:

b-a+1*Math.random()+a


字数:4195    最后更新:1年以前 [10-22 11:55]屈辰晨 修改
本页编辑者:屈辰晨  
[前一页]:7.1.6 抽象类  [后一页]:第9章 异常处理
[在本页中加入书签] [收藏本书] [推荐本书]
  17xie论坛 > 本书讨论区 > 本页评论   (共0条)
发表评论

用户名称 匿名发表
评论内容
验证码

关于我们 | 版权声明 | 免责声明 | 诚聘英才 | 联系我们 | 合作伙伴 | 友情链接 | 广告合作 | 提交意见
Copyright © 2007 17xie.com 互联网协同写书平台 京ICP备08002671号