Java编程基础(12)

作者: 疯狂平头哥 | 来源:发表于2018-12-27 00:17 被阅读13次

    Java Number类

    Number 是一个抽象类,也是一个超类(即父类)。Number 类属于 java.lang 包,所有的包装类(如 Double、Float、Byte、Short、Integer 以及 Long)都是抽象类 Number 的子类。

    Number 类定义了一些抽象方法,以各种不同数字格式返回对象的值。如 xxxValue() 方法,它将 Number 对象转换为 xxx 数据类型的值并返回,其中 doubleValue() 方法返回 double 类型的值,floatValue() 方法返回 float 类型的值。

    抽象类不能直接实例化,而是必须实例化其具体的子类

    Java Character类

    Character 类是字符数据类型 char 的包装类。Character 类的对象包含类型为 char 的单个字段,这样能把基本数据类型当对象来处理,其常用方法如表 1 所示。

    表1 Character类的常用方法

    方法描述

    void Character(char value)构造一个新分配的 Character 对象,用以表示指定的 char 值

    char charValue()返回此 Character 对象的值,此对象表示基本 char 值

    int compareTo(Character anotherCharacter)根据数字比较两个 Character 对象

    boolean equals(Character anotherCharacter)将此对象与指定对象比较,当且仅当参数不是 null,而 是一个与此对象

    包含相同 char 值的 Character 对象时, 结果才是 true

    boolean isDigit(char ch)确定指定字符是否为数字,如果通过 Character. getType(ch) 提供的字

    符的常规类别类型为 DECIMAL_DIGIT_NUMBER,则字符为数字

    boolean isLetter(int codePoint)确定指定字符(Unicode 代码点)是否为字母

    boolean isLetterOrDigit(int codePoint)确定指定字符(Unicode 代码点)是否为字母或数字

    boolean isLowerCase(char ch)确定指定字符是否为小写字母

    boolean isUpperCase(char ch)确定指定字符是否为大写字母

    char toLowerCase(char ch)使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为小写

    char toUpperCase(char ch)使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为大写

    可以从 char 值中创建一个 Character 对象。例如,下列语句为字符 S 创建了一个 Character 对象。

    Character character=newCharacter ('S');

    例 1

    在注册会员时,需要验证用户输入的用户名、密码、性别、年龄和邮箱地址等信息是否符合标准,如果符合标准方可进行注册。那么,下面就使用 Character 类中的一些静态方法来完成这个程序,具体的实现步骤如下。

    (1) 创建 Register 类,在该类中创建 validateUser() 方法,对用户输入的用户名、密码和年龄进行验证,代码如下:

    在 main() 方法中,通过调用 Register 类的 validateUser() 方法,获取一个 boolean 类型的变量,即表明是否验证通过。当变量值为 true 时,表示验证通过,输出注册成功的提示信息;否则表示验证未通过,输出注册失败的提示信息。

    Java Boolean类

    Boolean 类将基本类型为 boolean 的值包装在一个对象中。一个 Boolean 类的对象只包含一个类型为 boolean 的字段。此外,此类还为 boolean 和 String 的相互转换提供了很多方法,并提供了处理 boolean 时非常有用的其他一些常用方法。

    Boolean 类的构造方法

    Boolean 类有以下两种构造形式:

    Boolean(boolean boolValue);

    Boolean(String boolString);

    其中 boolValue 必须是 true 或 false(不区分大小写),boolString 包含字符串 true(不区分大小写),那么新的 Boolean 对象将包含 true;否则将包含 false。

    Boolean 类的常用方法

    在 Boolean 类内部包含了一些和 Boolean 操作有关的方法,见表 1。

    表1 Boolean类中的常用方法

    方法返回值功能

    booleanValue()boolean将 Boolean 对象的值以对应的 boolean 值返回

    equals(Object obj)boolean判断调用该方法的对象与 obj 是否相等。当且仅当参数不是 null,且与调用该

    方法的对象一样都表示同一个 boolean 值的 Boolean 对象时,才返回 true

    parseBoolean(String s)boolean将字符串参数解析为 boolean 值

    toString()string返回表示该 boolean 值的 String 对象

    valueOf(String s)boolean返回一个用指定的字符串表示的 boolean 值

    Boolean 类的常用常量

    在 Boolean 类中包含了很多的常量,其中较为常用的常量如下。

    TRUE:对应基值 true 的 Boolean 对象。

    FALSE:对应基值 false 的 Boolean 对象。

    TYPE:表示基本类型 boolean 的 Class 对象。

    Java Byte类

    Byte 类将基本类型为 byte 的值包装在一个对象中。一个 Byte 类的对象只包含一个类型为 byte 的字段。此外,该类还为 byte 和 String 的相互转换提供了方法,并提供了一些处理 byte 时非常有用的常量和方法。

    Byte 类的构造方法

    Byte 类提供了两个构造方法来创建 Byte 对象。

    1. Byte(byte value)

    通过这种方法创建的 Byte 对象,可以表示指定的 byte 值。例如,下面的示例将 5 作为 byte 类型变量,然后再创建 Byte 对象。

    byte my_byte=5;

    Byte b=newByte(my_byte);

    2. Byte(String s)

    通过这个方法创建的 Byte 对象,可表示 String 参数所指定的 byte 值。例如,下面的示例将 5 作为 String 类型变量,然后再创建 Byte 对象。

    String my_byte="5";

    Byte b=newByte(my_byte);

    注意:必须使用数值型的 String 变量作为参数才能创建成功,否则会抛出 NumberFormatException 异常。

    Byte 类的常用方法

    在 Byte 类内部包含了一些和 Byte 操作有关的方法,见表 1。

    表1 Byte类中的常用方法

    方法返回值功能

    byteValue()byte以一个 byte 值返回 Byte 对象

    compareTo(Byte bytel)int在数字上比较两个 Byte 对象

    doubleValue()double以一个 double 值返回此 Byte 的值

    intValue()int以一个 int 值返回此 Byte 的值

    parseByte(String s)byte将 String 型参数解析成等价的 byte 形式

    toStringOString返回表示此 byte 值的 String 对象

    valueOf(String s)Byte返回一个保持指定 String 所给出的值的 Byte 对象

    equals(Object obj)boolean将此对象与指定对象比较,如果调用该方法的对象与 obj 相等 则返回 true,否则返回 false

    Byte 类的常用常量

    在 Byte 类中包含了很多的常量,其中较为常用的常量如下。

    MIN_VALUE:byte 类可取的最小值。

    MAX_VALUE:byte 类可取的最大值。

    SIZE:用于以二进制补码形式表示的 byte 值的位数。

    TYPE:表示基本类 byte 的 Class 实例。

    Java System类详解

    System 类代表系统,系统级的很多属性和控制方法都放置在该类的内部。该类位于 java. lang 包。由于该类的构造方法是 private 的,所以无法创建该类的对象,也就是无法实例化该类。

    System 类内部的成员变量和成员方法都是 static 的,所以可以方便地进行调用。

    System 类的成员变量

    System 类有 3 个静态成员变量,分别是 PrintStream out、InputStream in 和 PrintStream err。

    1. PrintStream out

    标准输出流。此流已打开并准备接收输出数据。通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。

    例如,编写一行输出数据的典型方式是:

    System.out.println(data);

    其中,println 方法是属于流类 PrintStream 的方法,而不是 System 中的方法。

    2. InputStream in

    标准输入流。此流已打开并准备提供输入数据。通常,此流对应于键盘输入或者由主机环境或用户指定的另一个输入源。

    3. PrintStream err

    标准的错误输出流。其语法与 System.out 类似,不需要提供参数就可输出错误信息。也可以用来输出用户指定的其他信息,包括变量的值。

    以上代码中,System.in.read() 语句读入一个字符,read() 方法是 InputStream 类拥有的方法。变量 c 必须用 int 类型而不能用 char 类型,否则会因为丢失精度而导致编译失败。

    以上的程序如果输入汉字将不能正常输出。如果要正常输出汉字,需要把 System.in 声明为 InputStreamReader 类型的实例,最终在 try 语句块中的代码为:

    InputStreamReader in=newInputStreamReader(System.in,"GB2312");

    c=in.read();

    while(c!='\r')

    {

    System.out.print((char)c);

    c=in.read();

    }

    如上述代码所示,语句 InputStreamReader in=new InputStreamReader(System.in,"GB2312") 声明一个新对象 in,它从 Reader 继承而来,此时就可以读入完整的 Unicode 码,显示正常的汉字。

    System 类的成员方法

    System 类中提供了一些系统级的操作方法,常用的方法有 arraycopy()、currentTimeMillis()、exit()、gc() 和 getProperty()。

    1. arraycopy() 方法

    该方法的作用是数组复制,即从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。该方法的具体定义如下:   

    publicstaticvoidarraycopy(Object src,intsrcPos,Objectdest,intdestPos,intlength)

    其中,src 表示源数组,srcPos 表示从源数组中复制的起始位置,dest 表示目标数组,destPos 表示要复制到的目标数组的起始位置,length 表示复制的个数。

    下面的示例代码演示了 arraycopy() 方法的使用:

    如上述代码,将数组 srcArray 中,从下标 1 开始的数据复制到数组 destArray 从下标 1 开始的位置,总共复制两个。也就是将 srcArray[1] 复制给 destArray[1],将 srcArray[2] 复制给 destArray[2]。这样经过复制之后,数组 srcArray 中的元素不发生变化,而数组 destArray 中的元素将变为 E、B、C、 H。

    2. currentTimeMillis() 方法

    该方法的作用是返回当前的计算机时间,时间的格式为当前计算机时间与 GMT 时间(格林尼治时间)1970 年 1 月 1 日 0 时 0 分 0 秒所差的毫秒数,例如:

    longm=System.currentTimeMillis();

    上述语句将获得一个长整型的数字,该数字就是以差值表达的当前时间。

    使用 currentTimeMillis() 方法来显示时间不够直观,但是可以很方便地进行时间计算。例如,计算程序运行需要的时间就可以使用如下的代码:

    上述代码中的变量 time 的值表示代码中 for 循环执行所需要的毫秒数,使用这种方法可以测试不同算法的程序的执行效率高低,也可以用于后期线程控制时的精确延时实现。

    . exit() 方法

    该方法的作用是终止当前正在运行的 Java 虚拟机,具体的定义格式如下:

    publicstaticvoidexit(intstatus)

    其中,status 的值为 0 时表示正常退出,非零时表示异常退出。使用该方法可以在图形界面编程中实现程序的退出功能等。

    4. gc() 方法

    该方法的作用是请求系统进行垃圾回收。至于系统是否立刻回收,取决于系统中垃圾回收算法的实现以及系统执行时的情况。定义如下:

    publicstaticvoidgc()

    5. getProperty() 方法

    该方法的作用是获得系统中属性名为 key 的属性对应的值,具体的定义如下:

    publicstaticString getProperty(String key)

    系统中常见的属性名以及属性的说明如表 1 所示。

    表1 系统常见属性

    属性名属性说明

    java. versionJava 运行时琢境版本

    java.homeJava 安装目录

    os.name操作系统的名称

    os.version操作系统的版本

    user.name用户的账户名称

    user.home用户的主目录

    user, dir用户的当前工作目录

    下面的示例演示了 getProperty() 方法的使用。

    提示:使用 getProperty() 方法可以获得很多系统级的参数以及对应的值。

    相关文章

      网友评论

        本文标题:Java编程基础(12)

        本文链接:https://www.haomeiwen.com/subject/xvjllqtx.html