Java 类型number_Java基础——Number类

Number类

在使用数字时,我们通常会使用内置数据类型,如下:

int a = 100;

double b = 11.22;

//byte的取值范围为(-128~127),占用int类型的四分之一空间。

byte c = 127;

//short取值范围为(-32768~32767),占用int类型的二分之一空间.

short d = 32767;

//boolean只有两个取值:true和false,表示一位的信息。

boolean e = true;

long f = 1000;

float g = 234.3f;

char h = 'A';

然而在数据开发中,我们进程遇到需要使用对象而不是使用内置数据类型的对象。为了解决之一问题,Java为每一个内置数据类型提供了对应的包装类(比如使用该类型所拥有的函数)

以上基本数据类型的包装类如下:

基本数据类型

(对应的) 包装类

boolean

Boolean

byte

Byte

short

Short

long

Long

char

Character

int

Integer

float

Float

double

Double

所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类Number的子类。(Character、Boolean)单独。

这种由编译器特别支持的包装称为装箱,所以当内置数据类型被当作对象使用的时候,编译器会把内置类型装箱为包装类。相似的,编译器也可以把一个对象拆箱为内置类型。Number类属于java.lang包。

下面使用Integer对象的实例:

public class Test {

public static void main(String args[]){

Integer x=5;

x +=20; //当x被赋值为整型值时。由于x是一个对象,所以编译器要对x进行装箱。然后为了使x能进行加运算,所以要对x进行拆箱。

System.out.println(x);

}

}

Number类方法

xxxValue()方法

例题:

bf6f42c43610b26f93b6a55e27ad130c.png

类型

方法

用途

byte

byteValue

以byte形式返回指定的数值

abstract double

doubleValue()

以double形式返回指定的数值

abstract float

floatValue()

以float形式返回指定的数值

abstract int

intValue()

以int形式返回指定的数值

abstract long

longValue()

以long形式返回指定的数值

short

shortValue()

以short形式返回指定的数值

compareTo()方法

compareTo()方法用于将Number对象与方法的参数进行比较。该方法用于两个相同数据类型的比较,两个不同类型的数据不能用此方法来比较

ba3b71a2b24ff46ebb0730b6fc1271aa.png

equals()方法

085291f22f9d9db6dc664b639bd3f327.png``

valueOf()方法

valueOf()方法用于返回给定参数的原生Number对象值,参数可以是原生数据类型,String等。

该方法是静态方法,该方法接收两个参数:字符串String,和基数。

语法(以Integer类为例)

static Integer valueOf(int i) //i为Integer对象的整数,返回一个表示指定的int值的Integer实例

static Integer valueOf(String s) //s为Integer对象的字符串,

static Integer valueOf(String s,int radix) //radix为在解析字符串s时使用的进制数,用于指定使用的进制数。返回一个Integer对象,该对象中保存了用第二个参数提供的基数进行解析时从指定的String中提取的值

例题:

7ae74863c385221badfe32dba639dfbc.png

toStrng()方法

以String类为例

String toString() //toString():返回表示Integer值的String对象

static String toString(int i) //i为要转换的整数,返回int的String对象。

例题:

c12c17bd0aabd3abeb18a6b40e82d83b.png

parseInt()方法

parseInt()函数可解析一个字符串,并返回一个整数,

语法

System.out.println(Integer.parseInt(String a,int radix));

System.out.println(Double.parseDouble(String a,int radix));

//Integer() 、Double()为必需,指定返回对象

//a(必需)要被解析的字符串

//radix可选,表示要解析的数字的基数,该值介于2~36之间(若为16就返回十六进制数)。

例题:

671f89e0aa48d309c8fdbfea4d1b1ddb.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
语法分析是编译原理中的重要部分,它的作用是将词法分析阶段得到的词法单元序列转换成抽象语法树(AST)或语法分析树(Parse Tree),以便于后续的语义分析、中间代码生成和目标代码生成等环节的进行。在本次实验中,我们将使用Java语言实现一个简单的语法分析器。 实验要求: 1. 实现自顶向下的递归下降分析器。 2. 支持的文法如下: ``` <program> ::= <stmts_list> <stmts_list> ::= <stmt> | <stmts_list> <stmt> <stmt> ::= <if_stmt> | <while_stmt> | <assign_stmt> <if_stmt> ::= if <condition> then <stmts_list> end <while_stmt> ::= while <condition> do <stmts_list> end <assign_stmt> ::= <id> = <expr> <condition> ::= <expr> <relop> <expr> <expr> ::= <term> | <expr> <addop> <term> <term> ::= <factor> | <term> <mulop> <factor> <factor> ::= <id> | <number> | '(' <expr> ')' <relop> ::= '<' | '>' | '=' | '<=' | '>=' | '<>' <addop> ::= '+' | '-' <mulop> ::= '*' | '/' <id> ::= <letter> | <id> <letter> | <id> <digit> <number> ::= <digit> | <number> <digit> <letter> ::= A | B | ... | Z | a | b | ... | z <digit> ::= 0 | 1 | ... | 9 ``` 注意:文法中的关键字 if、then、end、while、do、and 等均为保留字。 3. 实现的语法分析器应具备以下功能: - 能够识别出语法正确的程序,并输出相应的语法分析树或抽象语法树。 - 能够识别出语法错误的程序,并给出相应的错误提示信息。 - 能够处理注释和空格等无意义的字符。 4. 实验提交要求: - 实验报告,包括程序设计和实验结果分析。 - 程序源代码。 实验设计思路: 1. 根据给定的文法,设计语法分析器的语法规则和对应的产生式。 2. 编写相应的Java代码,将文法转换为递归下降分析器所需要的形式。 3. 实现从输入的源代码中读取词法单元序列的功能。 4. 实现递归下降分析器的核心算法,对输入的词法单元序列进行语法分析,并构建相应的语法分析树或抽象语法树。 5. 在语法分析过程中,需要处理注释和空格等无意义的字符,以便于正确识别语法错误。 6. 在语法分析过程中,需要对输入的源代码进行错误检查,并给出相应的错误提示信息。 7. 输出语法分析树或抽象语法树,以便于后续的语义分析、中间代码生成和目标代码生成等环节的进行。 实验结果分析: 经过实验测试,我们的语法分析器能够正确地识别出合法的程序,并输出相应的语法分析树或抽象语法树。同时,它也能够正确地识别出语法错误的程序,并给出相应的错误提示信息。总的来说,本次实验取得了较好的实验效果。 实验源代码: 见下方代码框:

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值