Java是种强类型语言必须显示规定数据类型.ppt_第1页
Java是种强类型语言必须显示规定数据类型.ppt_第2页
Java是种强类型语言必须显示规定数据类型.ppt_第3页
Java是种强类型语言必须显示规定数据类型.ppt_第4页
Java是种强类型语言必须显示规定数据类型.ppt_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Programming with Types,Java是种强类型语言必须显示规定数据类型 使用基本类型可以大大地改善系统的特性,但是它不具有对象的特性,也不能满足很多特殊的需要。所以要用包装类来包装基本类型,使它变成对象类型。 几乎所有的基本类型(e.g. int, float, boolean)都有一个类或称“包装器类”与其对应,Class类则是表示类和接口的类型。 这些类具有三个优点: (1)、特定类型的有用静态方法具有逻辑的和统一的归宿。For example,把字符串转化为float的方法是Float类型类的静态方法 (2)、描述性的方法和域也有逻辑归宿。常数MIN_VALUE和MAX_VALUE存在于任一数值基本类型的类中,描述一个super类的方法存在于它的Class对象中。 (3)、对于基本类型,可以创建包装器对象保存它们的值,然后这些对象可以应用。(-所以基本类型的类叫做包装器类(wrapper class)。),这些类型的层次关系,Java的威力:能从对应用程序有意义的地方 载入类。 说明载入类的功能:游戏 如果开发一个游戏,使得玩家可以利用他自己选择的任何策略编写类来玩游戏,需要提供一个抽象类Player,玩家继承它并实现自己的策略。 当玩家准备尝试自己的策略时,他们往系统发送编译过的字节码。字节码被载入游戏,经过运算,把得分返回给玩家。,让人感兴趣的部分是:如何使游戏程序载入编译过的字节码使用类载入器(class loader) 通过继承抽象的ClassLoader并实现它的loadClass()方法定义类载入器 loadClass方法: protected abstract Class loadClass(String name, boolean resolve) throws ClassNotFoundException / 如果resolve为true, 它必须调用resolveClass以确保这个类引用的所有类都载入了,包装器类概述,大部分基本语言类型都有表示它的类,叫做包装器类。 包装器类具有2个基本功能: 1、为与这个类型相关的方法和变量(e.g. 字符串转换和 取值范围常数)提供一个归宿。 下面的实例检验到底是可以在一个特定的值上进行较快的float运 算,还是这个值需要比float所能提供的更大范围: if ( value = Float.MIN_VALUE ,一些对所有的包装器类公用的方法,1、构造函数,以基本类型为自变量,创建相应类 型的一个对象(e.g. Character(char); ) 2、构造函数,解码一个简单的String参数,得到 对象的初始值(Integer(String) ) 3、toString()方法:得到对象类型的字符串形式 4、typeValue():得到基本类型值,e.g. Character.charValue, Boolean.booleanValue ; 5、equals():比较同类型的类对象是否相等(区分大小写) 6、hashCode():返回一个散列表的基于值的散列码,利用包装器类进行类型转化的常用办法 (以Integer为例,其他类类似),1 、用包装器类来包装基本类型,使它变成对象类型。 用其Constructor Summary :Integer (int value) , Integer(String s) 分别接受int和String。 2 、把一个包装类变成基本类型: 有三种常用的方法: a. intValue(): 返回的是int 其它的类型也有这方法:#Value() 返回的是# 。 b. parseInt(String s): 这是一个static方法,用类名.parseInt(Strings) 返回的是int ,不用实例化一个类。要注意它传入的是String 。 其它的类型也有这方法 parse#(String)返回的 是# 。 c. valueOf(String s): 这是一个static方法,用类名. valueOf(Strings) 但它返回的是Integer,是对象类型,可以与a方法一起用-就可 以返回int 。 其它的类型也有这方法 valueOf(String s)返回的是# 对象类型。 3、 最常用的方法: String(byte bytes, int offset,int length) byte buf = new byte100; int len = bis.read(buf); System.out.println( new String(buf, 0, en) ); / (explain it),具体的对象类型(其中的一些常用方法),1、Boolean: 不管其中大小写字母如何混杂,上页中提到的Constructor Summary只把“true”当作true,其他字符串都解释为false,2、Character: 除提供常数MIN_VALUE和MAX_VALUE外,还提供常 数MIN_RADIX和MAX_RADIX(字符数字和整数之间 互译的方法所能理解的最小和最大基数(explain it) ) public static int digit(char ch, int radix):返回指定基数上的数字ch的数值。若给定的字符不是合法数字,返回-1 public static char forDigit(int digit, int radix): 返回给定数字在指定的基数上的字符值。若给定的数字在指定的基数上非法,返回字符u0000 public static boolean isLowercase(char ch): 如果ch是个小 写字母,返回true ( Uppercase同理 ) public static boolean isDigit(char ch) public static boolean isLetter(char ch) public static boolean isLetterOfDigit(char ch) public static boolean isJavaLetter(char ch) / 是否可以作为Java标识 / 符的第一个字母a letter | _ | $ public static boolean isJavaLetterOrDigit(char ch) public static boolean isSpace(char ch) / , t, n, f, r,PS:部分转义符意义列表,f 新页符(FF) r 回车(R) b 回格(Backspace, BS) t 水平制表符(HT) n 换行符(LF) ” 双引号(“) 单引号() 反斜杠(),3、一些Number类的共同的常用方法前面 已列出,故不再赘述 补充说明: 除标准的Number方法,Float和Double支持以下 方法(以Float和float为例,Double和Double类似) public final static float POSITIVE_INFINITY / +的值 public final static float NEGATIVE_INFIN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论