资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,JAVA,程序设计,第,9,章,工具类及常用算法,1,9.1.1 JAVA,基础类库,java.lang,包是,Java,语言的核心类库,java.io,包是,Java,语言的标准输入,/,输出类库,java.util,包包括了,Java,语言中的一些低级的实用工具,ava.awt,包是,Java,语言用来构建图形用户界面,(GUI),的类库,java.applet,包是用来实现运行于,Internet,浏览器中的,Java Applet,的工具类库,包是,Java,语言用来实现网络功能的类库,其他包,2,9.1 JAVA,语言基础类,JDK,API,文档,JDK,API,文档可以从,网站下载,安装后,打开,index.html,即可,网上可以找到,chm,格式的,甚至中文版,3,9.1.2 Object,类,Object,类是,Java,程序中所有类的直接或间接父类,类,java.lang.Object,处于,Java,开发环境的类层次树的根部,其他所有的类都直接或间接地为它的子类。该类定义了一些所有对象最基本的状态和行为,包括与同类对象相比较,转化为字符串等等。下面我们分别进行介绍,(,详细用法大家可以查阅,Java JDK,的,API),。,4,(1)equals(),用来比较两个对象是否相同,如果相同,则返回,true,,否则返回,false,,它比较的是两个对象状态和功能上的相同,而不是引用上的相同。,Integer one=new Integer(1);,Integer anotherOne=new Integer(1);,if(one.equals(anotherOne),System.out.println(“objects are equal”);,例中,,equals(),方法返回,true,,因为对象,One,和,anotherOne,包含相同的整数值,1.,5,(2)getClass(),getClass(),方法是,final,方法,它不能被重载。它返回一个对象在运行时所对应的,类的表示,,从而可以得到相应的信息。下面的方法得到并显示对象的类名:,void PrintClassName(Object obj),System.out.println(“The objects class is“+obj.getClass().getName();,6,(3)toString(),toString(),方法用来返回对象的字符串表示,可以用来显示一个对象。例如:,System.out.println(Thread.currentThread().toString();,可以显示当前的线程。,通过重载,toString(),方法可以适当地显示对象的信息以进行调试。,7,OBJECT,类的,TOSTRING(),方法,当,System.out.println(),方法的参数为,Object,类型,,println(),会自动调用,Object,对象的,toString(),方法,然后打印,toString(),方法返回的字符串。,System.out.println(new Object().toString();,等价于:,System.out.println(new Object();,8,覆盖父类的函数,(P195/,例,9-6),public String toString(),return(,电话卡接入号码,:+connectNumber,+n,电话卡卡号,:+cardNumber,+n,电话卡密码,:+password,+n,卡中的金额,:+balance,+n,通话附加费,:+additoryFee);,9,9.1.3,基本数据类型的包装类,Java,的基本数据类型用于定义简单的变量和属性将十分方便,但为了与面向对象的环境一致,,Java,中提供了基本数据类型的包装类(,wrapper,),它们是这些基本类型的面向对象的代表。与,8,种基本数据类型相对应,基本数据类型的包装类也有,8,种,分别是:,Character,,,Byte,,,Short,,,Integer,,,Long,,,Float,,,Double,,,Boolean,。,10,6.1.2,数据类型类,表,6-1,数据类型类及对应的基本数据类型,11,数据类型类,基本数据类型,Boolean,boolean,Character,char,Byte,byte,Double,double,Float,float,Integer,int,Long,long,Short,short,P98,这几个类有以下共同特点。,(,1,)这些类都提供了一些常数,以方便使用,如,Integer.MAX_VALUE,(整数最大值),,Double.NaN(,非数字,),,,Double.POSITIVE_INFINITY,(正无穷)等。,(,2,)提供了,valueOf(String),,,toString(),,用于从字符串转换及或转换成字符串。,(,3,)通过,xxxxValue(),方法可以得到所包装的值,,Integer,对象的,intValue(),方法。,(,4,)对象中所包装的值是不可改变的(,immutable,)。要改变对象中的值只有重新生成新的对象。,(,5,),toString(),equals(),等方法进行了覆盖。,除了以上特点外,有的类还提供了一些实用的方法以方便操作。例如,,Double,类就提供了更多的方法来与字符串进行转换。,12,/double,转成,string,的几种方法,d=3.14159,;,s=+d,;,s=Double.toString(d),;,s=new Double(d).toString(),;,s=String.valueOf(d),;,/String,转成,double,的几种方法,s=3.14159,;,try,d=Double.parseDouble(s),;,d=new Double(s).doubleValue(),;,d=Double.valueOf(s).doubleValue(),;,catch(NumberFormatException e),e.printStackTrace(),;,13,(,4,),String,与,int,量相互转化,public String toString(),将当前对象所对应的,int,量转化成字符串;,public static int parseInt(String s),类方法,将字符串转化成,int,量;,public static Integer valueOf(String s),类方法,将字符串转化成,Integer,对象,该对象对应的 数值与字符串表示的数值一致;,14,所有数据类型类都是最终类。除,Boolean,类和,Character,类,是,Object,类的直接子类外,其他类都是抽象类,Number,类的子类,与,Integer,类相似的属性和方法。,例,从字符串转成其它基本数据类型;,int i=Integer.parseInt(“123”);,int i=Integer.valueOf(“123”).intValue();,float f=Float.valueOf (“1.23”).floatValue();,boolean b=Boolean.valueOf(“true”).,booleanValue();,15,9.9.3,自动装箱与拆箱,在,JDK1.5,以上的版本中则可以自动地进行装箱和拆箱:自动装箱是指基本类型自动转为包装类,(,如,int,转为,Integer),;自动拆箱是指包装类自动转为基本类型,(,如,Integer,转为,int),int a=3;,ArrayList ary=new ArrayList();,ary.add(a);/,装箱:,int,自动转换成,Integer,对象作为,add,方法的参数,int c=(Integer)ary.get(0);/,拆箱:,Integer,自动转换成,int,赋值给变量,c,16,P100,341,Math,类,特点:,1,)提供实现标准数学函数的方法,用来完成常用数学运算;,2,)使用方法全部是,static,方法,可直接采用类名调用;,public final static double E;/,数学常量,e,public final static double PI;/,圆周率,public static double abs(double a);/,绝对值,public static double acos(double a);/,反余弦,public static double exp(double a);/e,的,a,次幂,public static double floor(double a);/,不大于,a,的最大整数,public static double IEEEremainder(double f1,double f2);/,求余,17,public static double log(double a);/,自然对数,public static double max (double a,double b);/,最大值,public static double random();/,返回带正号的,double,值,大于或等于,0.0,,小于,1.0,。,public static double rint(double a);/,四舍五入,public static double sqrt(double a);/,平方根,例,求,1100,之间的一个随机数,int i=(int)(Math.random()*100)+1;,产生一个,x1,x2,内的随机整数,x,x=(int)(Math.random()*(x2-x1+1)+x1),Math.random(),产生一个,0,,,1),区间内的实数,18,System,类,public final class,System,extends,Object,特点,:,System,类不能继承,且所有属性和方法都是,static,的。,用,System,类获取标准输入,/,输出,public static InputStream in;/,标准输入,public static PrintStream out;/,标准输出,public static PrintStream err;/,标准错误输出,例,:,char c=System.in.read();,System.out.println(“Hello!”);,19,P319,用,System,类的方法获取系统信息,完成系统操作,public static long currentTimeMillis():,获取自,1970,年,1,月,1,日零时至当前系统时刻的微秒数;,public static void exit(int status):,强制,Java,虚拟机退出运行;,public static void gc():,强制调用,Java,虚拟机的垃圾回收功能;,20,9.2,字符串,程序中需要用到的字符串可以分为两大类,一类是创建之后不会再做修改和变动的字符串常量;另一类是创建之后允许再做更改和变化的字符串。前者是,String,类,后者是,StringBuffer,类。,21,9.2.1 String,类,String,类对象保存不可修改,(immutable),的,Unicode,字符序列,String,类的下述方法能创建并返回一个,新的,String,对象,:,concat,replace,substring,toLowerCase,toUpperCase,trim,String,.,提供查找功能的有关方法,:
展开阅读全文