(精品)《面向对象程序设计》第二章教学课件.ppt
-
资源ID:85540025
资源大小:645.51KB
全文页数:51页
- 资源格式: PPT
下载积分:16金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
(精品)《面向对象程序设计》第二章教学课件.ppt
第二章第二章Java基础基础 学习目标:学习目标:掌握标识符和关键字熟练使用各种数据类型的定义、表示和引用掌握算术、逻辑和布尔运算符自动类型转换和强制类型转换2.1标识符标识符Java保留字保留字标识符的命名规则标识符的命名规则一一定定要要牢牢记记啊啊类名首字母大写;符号常量名全部字母大写;变量名、对象名、方法名、包名等标识符全部采用小写字母;如果标识符由多个单词构成,则首字母小写,其后单词的首字母打写,其余字母小写;合法的标识符identifieruserNameUser_Name_sysval$change A98_23_abc非法的标识符2mailroom#classA-43_1theJava保留字保留字(又称关键字关键字)关键字不能作为标识符;关键字不能作为标识符;关键字不能作为标识符;关键字不能作为标识符;关键字是关键字是具有专门的意义和用途,不能当作一般的标识符使用,这些标识符称为保留字(reserved word),下面列出了java语言中的所有保留字:abstractdoimplementsprotectedthrowsabstractdoimplementsprotectedthrowsbooleanbooleandoubleimportpublictransientdoubleimportpublictransientbreakelsebreakelseinstanceofinstanceofreturntruethisthrowreturntruethisthrowbyteextendsbyteextendsintintshorttrysynchronizedshorttrysynchronizedcasefalseinterfacestaticvoidcontinuecasefalseinterfacestaticvoidcontinuecatchfinallongcatchfinallongstrictpfstrictpfvolatilevolatilegotogotodefaultdefaultcharfinallynativesuperwhilepackagecharfinallynativesuperwhilepackageclassfloatnewswitchconstfornullifprivateclassfloatnewswitchconstfornullifprivate javajava中的关键字均用小写字母表示。中的关键字均用小写字母表示。中的关键字均用小写字母表示。中的关键字均用小写字母表示。数据类型与常量、变量数据类型与常量、变量数据是计算机程序处理的对象,数据的类型决定了数据的数据是计算机程序处理的对象,数据的类型决定了数据的表示方式、取值范围以及可进行的操作。表示方式、取值范围以及可进行的操作。基本类型包括:整型 byte,short,int和long浮点型 float和double字符型 char逻辑型boolean引用类型(需要用户自己定义)数组接口类基本数据类型基本数据类型 数据类型名数据类型名占用内存空间占用内存空间数值范围数值范围缺省值缺省值说明说明byte1字节(-128)1270整型short2字节(-32768)327670int4字节(-2147483648)21474836470long8字节(-9223372036854775808)92233720368547758070float4字节0.0F浮点型double8字节0.0Dchar2字节字符型boolean1字节true或falsefalse布尔型类型类型长度长度范围范围byte8bit-2727-1(-128127)short16bit-215215-1(-3276832767)int32bit-231231-1(-21474836482147483648 2147483647)2147483647)long64bit-263263-1(-92233720368547758089223372036854775807)(-92233720368547758089223372036854775807)存储没有小数部分的数据类型Java各整数类型有固定的表数范围和字段长度,而不受具体操作系统的影响,以保证Java程序的可移植性 1、整型、整型 数值数值20在内存中的存储形式在内存中的存储形式 00010100 byte(1字节)00000000 00010100 short(2字节)高位置000000000 00000000 00000000 00010100 int(4字节)00000000 00000000 00000000 00000000 00000000 00000000 00000000 00010100 Long(8字节)2、浮点型、浮点型 浮点型是带有小数部分的数据类型,包括两种不同的数浮点型是带有小数部分的数据类型,包括两种不同的数浮点型是带有小数部分的数据类型,包括两种不同的数浮点型是带有小数部分的数据类型,包括两种不同的数据类型:据类型:据类型:据类型:floatfloat和和和和doubledouble。floatfloat类型的变量占用类型的变量占用类型的变量占用类型的变量占用4 4个字节(个字节(个字节(个字节(3232位),位),位),位),doubledouble类型的数据则需要类型的数据则需要类型的数据则需要类型的数据则需要8 8个字节(个字节(个字节(个字节(6464位)内存。位)内存。位)内存。位)内存。在许多程序中,就其表示的数值范围而言,使用在许多程序中,就其表示的数值范围而言,使用在许多程序中,就其表示的数值范围而言,使用在许多程序中,就其表示的数值范围而言,使用floatfloat类型类型类型类型来存储浮点数已经足够了。来存储浮点数已经足够了。来存储浮点数已经足够了。来存储浮点数已经足够了。浮点数据有两种表示形式浮点数据有两种表示形式浮点数据有两种表示形式浮点数据有两种表示形式十进制数形式,必须含有小数点,例如十进制数形式,必须含有小数点,例如十进制数形式,必须含有小数点,例如十进制数形式,必须含有小数点,例如:3.14314.0.3143.14314.0.314科学记数法形式,如科学记数法形式,如科学记数法形式,如科学记数法形式,如3.14e23.14E-123.14e23.14E-12JavaJava浮点数据默认为浮点数据默认为浮点数据默认为浮点数据默认为doubledouble型型型型,如要声明一个如要声明一个如要声明一个如要声明一个常量为常量为常量为常量为floatfloat型,则需在数字后面加型,则需在数字后面加型,则需在数字后面加型,则需在数字后面加f f或或或或F F,如:如:如:如:doubled=3.14;doubled=3.14;floatf=3.14floatf=3.14f f;3、布尔型(、布尔型(boolean)布尔数据类型用于表达两个逻辑状态之一的布尔数据类型用于表达两个逻辑状态之一的布尔数据类型用于表达两个逻辑状态之一的布尔数据类型用于表达两个逻辑状态之一的值:值:值:值:truetrue(真)或真)或真)或真)或falsefalse(假)。假)。假)。假)。布尔型数据只有两个值布尔型数据只有两个值布尔型数据只有两个值布尔型数据只有两个值truetrue和和和和falsefalse,且它们,且它们,且它们,且它们不对应于任何整数值。不对应于任何整数值。不对应于任何整数值。不对应于任何整数值。布尔型变量的定义如:布尔型变量的定义如:布尔型变量的定义如:布尔型变量的定义如:booleanbooleanb=true;b=true;4、字符型、字符型(char)字符型数据类型用于存放字符型数据类型用于存放字符型数据类型用于存放字符型数据类型用于存放单个字符单个字符单个字符单个字符,每个字符占用,每个字符占用,每个字符占用,每个字符占用2 2个个个个字节(字节(字节(字节(1616位)的存储空间。位)的存储空间。位)的存储空间。位)的存储空间。将一个字符放到一个字符变量中将一个字符放到一个字符变量中将一个字符放到一个字符变量中将一个字符放到一个字符变量中,实际上并不是把该,实际上并不是把该,实际上并不是把该,实际上并不是把该字符本身放到内存单元中去,而是将该字符的相应的字符本身放到内存单元中去,而是将该字符的相应的字符本身放到内存单元中去,而是将该字符的相应的字符本身放到内存单元中去,而是将该字符的相应的UnicodeUnicode代码代码代码代码放到存储单元中。放到存储单元中。放到存储单元中。放到存储单元中。char c1=t;char c2=3;char基于Unicode编码,uu前缀标志着这是一个前缀标志着这是一个前缀标志着这是一个前缀标志着这是一个UnicodeUnicode值值值值例如,例如,例如,例如,u0061u0061代表字符代表字符代表字符代表字符 aa。新术语新术语在Java技术中:变量=属性方法=操作类仍然称作类所谓类就是一类所谓类就是一类属性(变量)属性(变量)和和操作(方操作(方法)法)的描述。其中,的描述。其中,属性可用一系列的属性可用一系列的变变量量表达,而操作用一系列表达,而操作用一系列方法方法表示表示。一类人员一类人员Person:抽象出下列属性:名字、年龄、身高、婚否、抽象出下列属性:名字、年龄、身高、婚否、抽象出下列属性:名字、年龄、身高、婚否、抽象出下列属性:名字、年龄、身高、婚否、性别,分别用变量性别,分别用变量性别,分别用变量性别,分别用变量namename、ageage、heightheight、marriagemarriage、sexsex表示表示表示表示(见名知义)(见名知义)(见名知义)(见名知义),吃饭,讲话,走路等行为可表示为相应的方法吃饭,讲话,走路等行为可表示为相应的方法吃饭,讲话,走路等行为可表示为相应的方法吃饭,讲话,走路等行为可表示为相应的方法eat()eat(),speak()speak(),walk()walk()等。等。等。等。用Java语言描述Person类如下:classPerson/以下以下5个是变量个是变量Stringname;intage;doubleheight;booleanmarriage;charsex;speak()/方法方法eat()/方法方法 对对对对PersonPerson类类类类中中中中某某某某一一一一特特特特定定定定的的的的人人人人,上上上上 述述述述 变变变变 量量量量 就就就就 有有有有 特特特特 定定定定 的的的的 值值值值,如如如如namename(张张张张 三三三三),ageage(2020),heightheight(1.761.76),marriagemarriage(falsefalse),sexsex(mm)。)。)。)。变量(属性)变量是用来存放指定类型的数据,其值在程序变量是用来存放指定类型的数据,其值在程序变量是用来存放指定类型的数据,其值在程序变量是用来存放指定类型的数据,其值在程序运行运行运行运行过程中是过程中是过程中是过程中是可变的。可变的。可变的。可变的。在使用在使用在使用在使用JavaJava中的每个变量之前,都必须对它进行声明。中的每个变量之前,都必须对它进行声明。中的每个变量之前,都必须对它进行声明。中的每个变量之前,都必须对它进行声明。变量的声明形式如下:变量的声明形式如下:变量的声明形式如下:变量的声明形式如下:修饰符修饰符修饰符修饰符类型标识符号类型标识符号类型标识符号类型标识符号 变量名常量变量名常量变量名常量变量名常量;变量声明包括指明变量声明包括指明变量声明包括指明变量声明包括指明变量的数据类型、变量名和作用域变量的数据类型、变量名和作用域变量的数据类型、变量名和作用域变量的数据类型、变量名和作用域 其中其中其中其中数据类型数据类型数据类型数据类型说明了这个变量能存放什么样的数据。说明了这个变量能存放什么样的数据。说明了这个变量能存放什么样的数据。说明了这个变量能存放什么样的数据。变量名变量名变量名变量名是用来标识该变量的,我们存取变量的内容(变量的值)都是是用来标识该变量的,我们存取变量的内容(变量的值)都是是用来标识该变量的,我们存取变量的内容(变量的值)都是是用来标识该变量的,我们存取变量的内容(变量的值)都是通过通过通过通过变量名变量名变量名变量名来实现的。来实现的。来实现的。来实现的。变量名变量名 在在在在JavaJava中用标识符来表示变量名。象中用标识符来表示变量名。象中用标识符来表示变量名。象中用标识符来表示变量名。象PersonPerson这个类,我们使用了这个类,我们使用了这个类,我们使用了这个类,我们使用了namename、ageage、talltall、marriagemarriage、sexsex这几个标识符,分别定义了五个变量。这几个标识符,分别定义了五个变量。这几个标识符,分别定义了五个变量。这几个标识符,分别定义了五个变量。程序员应该为变量取有意义的名称,以利于程序的阅读和理解。程序员应该为变量取有意义的名称,以利于程序的阅读和理解。程序员应该为变量取有意义的名称,以利于程序的阅读和理解。程序员应该为变量取有意义的名称,以利于程序的阅读和理解。(见名(见名(见名(见名知义)知义)知义)知义)但变量取名时还有一些限制:但变量取名时还有一些限制:但变量取名时还有一些限制:但变量取名时还有一些限制:变量名由字母、数字、下划线或美元符变量名由字母、数字、下划线或美元符变量名由字母、数字、下划线或美元符变量名由字母、数字、下划线或美元符“$”$”组成的组成的组成的组成的 变量名不能以数字作为第一个字符变量名不能以数字作为第一个字符变量名不能以数字作为第一个字符变量名不能以数字作为第一个字符 区分大小写区分大小写区分大小写区分大小写 下面是合法的变量名:下面是合法的变量名:下面是合法的变量名:下面是合法的变量名:MonthMonth(不同于不同于不同于不同于monthmonth),student_namestudent_name,class1class1,dollar$dollar$,$abcabc 而下面的变量名都不合法:而下面的变量名都不合法:而下面的变量名都不合法:而下面的变量名都不合法:3 3a46a46,a a b b,abcabc-d d,#efef.变量名变量名 变量名中字母大写和小写是有区别的,变量名中字母大写和小写是有区别的,name和和Name表示两个不同的变量名。表示两个不同的变量名。Java中约定,变量名以小写字母开头,若中约定,变量名以小写字母开头,若一个变量名由超过一个单词所组成,则第一个变量名由超过一个单词所组成,则第一个单词之后的所有单词都以大写字母开一个单词之后的所有单词都以大写字母开头,以便于理解该变量名。头,以便于理解该变量名。例如:例如:anIntVar表示一个整型变量。表示一个整型变量。变量的初始化变量的初始化 赋予变量一个初值,称为变量的初始化。可在定义赋予变量一个初值,称为变量的初始化。可在定义赋予变量一个初值,称为变量的初始化。可在定义赋予变量一个初值,称为变量的初始化。可在定义变量的同时进行变量的初始化,如:变量的同时进行变量的初始化,如:变量的同时进行变量的初始化,如:变量的同时进行变量的初始化,如:intanIntVar=1;charaCharVar=A;floataFloatVar=1.23f;booleanaBooleanVar=true;也可定义变量后再单独初始化,如:也可定义变量后再单独初始化,如:intint anIntVaranIntVar;charcharaCharVaraCharVar;floatfloataFloatVaraFloatVar;booleanboolean aBooleanVaraBooleanVar;anIntVaranIntVar=1;=1;aCharVaraCharVar=A;=A;aFloatVaraFloatVar=1.23f;=1.23f;aBooleanVaraBooleanVar=true;=true;两种方法都完成了定义变量:两种方法都完成了定义变量:两种方法都完成了定义变量:两种方法都完成了定义变量:anIntVaranIntVar、aCharVaraCharVar、aFloatVaraFloatVar、aBooleanVaraBooleanVar,并分别给它们赋初值:并分别给它们赋初值:并分别给它们赋初值:并分别给它们赋初值:1 1、AA、1.231.23、truetrue。变量的作用域变量的作用域 变量的作用域:变量的使用范围。变量的作用域:变量的使用范围。假定在某代码段中能够使用一特定变量,假定在某代码段中能够使用一特定变量,则此段代码即是该变量的作用域。则此段代码即是该变量的作用域。在类中声明的类成员变量,可在该类的各个成员方法中使用;在某个方法体中或参数表中声明的变量,只能在该方法体中使用;在某个语句块中声明的变量,只能在该语句块中使用。变量的作用域变量的作用域public class VariableLifeTimepublic static void main(String args)int sum=0;int A=10;for(int x=1;x=5;x+)int y=0;y=y+A;sum=sum+y;System.out.print(x=+x);System.out.print(y=+y);System.out.println(sum=+sum);System.out.println(sum=+sum);查看结果:VariableLifeTime.javaclassPersonclassPerson/以下以下以下以下5 5个成员变量个成员变量个成员变量个成员变量Stringname;Stringname;intintage;age;doubletall;doubletall;booleanbooleanmarriage;marriage;charsex;/charsex;/以下以下以下以下2 2个方法个方法个方法个方法eat(Stringeat(Stringeatwhateatwhat)System.out.println(nameSystem.out.println(name+”ateupthe+”ateupthe“+“+eatwhateatwhat););Speak(String Speak(String saywhatsaywhat,intint time)time)intint i;i;for(i=0;itime;i+)for(i=0;itime;i+)System.out.println(nameSystem.out.println(name+”+”say:”+saywhatsay:”+saywhat););变量变量变量变量namename、ageage、talltall、marriagemarriage、sexsex的作用的作用的作用的作用域域域域变量变量变量变量i i的的的的作用域作用域作用域作用域下图为变量作用域的示意图下图为变量作用域的示意图下图为变量作用域的示意图下图为变量作用域的示意图:由左图可以看出,变量由左图可以看出,变量由左图可以看出,变量由左图可以看出,变量namename、ageage、talltall、marriagemarriage、sexsex和和和和变量变量变量变量i i的作用域是不同的。变的作用域是不同的。变的作用域是不同的。变的作用域是不同的。变量量量量namename、ageage、talltall、marriagemarriage、和、和、和、和sexsex的作用域是的作用域是的作用域是的作用域是整个类,在类的方法中也可使整个类,在类的方法中也可使整个类,在类的方法中也可使整个类,在类的方法中也可使用它们。用它们。用它们。用它们。这种变量称之为这种变量称之为这种变量称之为这种变量称之为成员变量成员变量成员变量成员变量。确。确。确。确切地讲,成员变量是在类当中、切地讲,成员变量是在类当中、切地讲,成员变量是在类当中、切地讲,成员变量是在类当中、但不是在其类的方法中定义的但不是在其类的方法中定义的但不是在其类的方法中定义的但不是在其类的方法中定义的变量。变量。变量。变量。而变量而变量而变量而变量i i是定义在是定义在是定义在是定义在speakspeak方法中,方法中,方法中,方法中,它的作用域仅限于它的作用域仅限于它的作用域仅限于它的作用域仅限于speakspeak方法方法方法方法中。这类定义在某方法中的变中。这类定义在某方法中的变中。这类定义在某方法中的变中。这类定义在某方法中的变量叫做量叫做量叫做量叫做局部变量局部变量局部变量局部变量。注意:注意:注意:注意:同一作用域中不可有同同一作用域中不可有同同一作用域中不可有同同一作用域中不可有同名的变量。如上面的代码在名的变量。如上面的代码在名的变量。如上面的代码在名的变量。如上面的代码在speakspeak方法中不能再定义一个方法中不能再定义一个方法中不能再定义一个方法中不能再定义一个名字为名字为名字为名字为i i的变量的变量的变量的变量。在Java中嵌套的程序块的内层和外层,不允许定义相同的变量名,否则将导致编译错误。public class ScopeErrorpublic static void main(String args)int E=999;int E=999;System.out.println(“E=+E);常量常量 常量是指在程序运行过程中其值不变的量。常量是指在程序运行过程中其值不变的量。常量是指在程序运行过程中其值不变的量。常量是指在程序运行过程中其值不变的量。定义常量的方法有两种:定义常量的方法有两种:定义常量的方法有两种:定义常量的方法有两种:(1 1)在定义变量的类型前面加)在定义变量的类型前面加)在定义变量的类型前面加)在定义变量的类型前面加finalfinal关键字,关键字,关键字,关键字,并同时进行初始化,如下所示:并同时进行初始化,如下所示:并同时进行初始化,如下所示:并同时进行初始化,如下所示:finalfinalintint aFinalVaraFinalVar=0;=0;finaldoublePI=3.14159;finaldoublePI=3.14159;(2 2)在定义变量的类型前面加在定义变量的类型前面加在定义变量的类型前面加在定义变量的类型前面加finalfinal关键字,关键字,关键字,关键字,不进行初始化。通过另外的语句进行赋值。如不进行初始化。通过另外的语句进行赋值。如不进行初始化。通过另外的语句进行赋值。如不进行初始化。通过另外的语句进行赋值。如下所示:下所示:下所示:下所示:finalfinalintint aFinalVaraFinalVar;aFinalVaraFinalVar=0;=0;常量和变量常量和变量常量与变量之间最根本的区别是:常量在经过定义并给它一常量与变量之间最根本的区别是:常量在经过定义并给它一常量与变量之间最根本的区别是:常量在经过定义并给它一常量与变量之间最根本的区别是:常量在经过定义并给它一个值之后,不能再对它进行修改。而变量则无此限制。个值之后,不能再对它进行修改。而变量则无此限制。个值之后,不能再对它进行修改。而变量则无此限制。个值之后,不能再对它进行修改。而变量则无此限制。对于常量对于常量对于常量对于常量a a,进行如下的操作是错误的:进行如下的操作是错误的:进行如下的操作是错误的:进行如下的操作是错误的:finalfinalintinta=1;a=1;.a=2;a=2;而对于变量而对于变量而对于变量而对于变量a a,如下这段代码则是正确的。如下这段代码则是正确的。如下这段代码则是正确的。如下这段代码则是正确的。intinta=1;a=1;a=2;a=2;示例:示例:public class Assign public static void main(String args)int x;int y;/定义定义x,y两个整型变量两个整型变量 float z=1.234f;/指定变量指定变量z为为float型,且赋初值为型,且赋初值为1.234double w=1.234;/指定变量指定变量w为为double型,且赋初值型,且赋初值为为1.234boolean flag=true;/指定变量指定变量flag为为boolean型,且型,且赋初值为赋初值为truechar c;/定义字符型变量定义字符型变量cString str;/定义字符串变量定义字符串变量strString str1=Hi ;/指定变量指定变量str1为为String型,且赋初型,且赋初值为值为Hic=A ;/给字符型变量给字符型变量c赋值赋值Astr=bye ;/给字符串变量给字符串变量str赋值赋值byex=12;/给整型变量给整型变量x赋值为赋值为12y=x;/给整型变量给整型变量y赋值为赋值为12 2.3运算符和表达式运算符和表达式运算符分类运算符分类依据操作数的个数:单目运算符(一元运算符)、双目运算符(二元运算符)、多目运算符。根据操作数和运算结果分为:算术、关系、逻辑、位运算符、赋值运算符、条件运算符、括号运算符。1、算术运算符:、算术运算符:运算符优先级别运算符优先级别优先级规则:()乘除(从左到右)加减(从左到右)复杂的表达式:C=25-5*4/2-10+4;从左到右的规则求值,结果是:34按照优先级规则求值,结果是:9用()来表述想要的结构 2、关系运算符:、关系运算符:3、逻辑(布尔)运算符:逻辑(布尔)运算符:逻辑(布尔)运算真值表:逻辑(布尔)运算真值表:ab!aa&b,a&b a|b,a|babfalse false truefalsefalsefalsefalse truetruefalsetruetruetrue false falsefalsetruetruetruetrue falsetruetruefalse条件与(短路与)条件或(短路或)4、位运算符:位运算符:a baa&b a|b ab0 010000 110111 000111 10110位运算是对整数类型的操作数按二进制的位进行运算,运算的结果仍然是整数类型值。位运算真值表位运算真值表位移运算符位移运算符aaba向右移动b位aba向右移动b位,空位填0位移运算举例位移运算举例运算符:将操作数的二进制位左移,高位溢出高位溢出,低位补低位补。如 int b=13;b=b运算符:将操作数的二进制位右移,低位溢出低位溢出,高位补高位补充原来高位的值。充原来高位的值。如 int b=60;b=b1;(此时b的值为30,二进制右移一位相当于该数除?)考虑若b=-60,b=b1,b?运算符:将操作数的二进制位右移,低位溢出低位溢出,高位高位补补0 0。5、赋值运算符及条件运算符:赋值运算符及条件运算符:赋值运算符的形式:赋值运算符的形式:变量名变量名=表达式;表达式;复合赋值运算符复合赋值运算符x+=yx=x+yx/=yx=x/y条件运算符条件运算符的形式:的形式:表达式表达式1?表达式?表达式2:表达式:表达式3举例举例intmin,x=4,y=20;min=(x高byte,short,char-int-long-float-double 高级数据类型要转换成低级数据类型,需要用到强制类型转换。高级数据类型要转换成低级数据类型,需要用到强制类型转换。高级数据类型要转换成低级数据类型,需要用到强制类型转换。高级数据类型要转换成低级数据类型,需要用到强制类型转换。其一般形式为:其一般形式为:其一般形式为:其一般形式为:(类型名类型名类型名类型名)()()()(表达式表达式表达式表达式)如:如:如:如:intint i i;bytebbyteb;i=356i=356;b=b=(bytebyte)i i;/强制转换后丢失一部分数据,使得强制转换后丢失一部分数据,使得强制转换后丢失一部分数据,使得强制转换后丢失一部分数据,使得b b的值为的值为的值为的值为100100。一般使用强制类型转换可能会导致数值溢出或精度的下降,应尽量一般使用强制类型转换可能会导致数值溢出或精度的下降,应尽量一般使用强制类型转换可能会导致数值溢出或精度的下降,应尽量一般使用强制类型转换可能会导致数值溢出或精度的下降,应尽量避免。避免。避免。避免。