基本数据类型和操作.ppt

上传人:小飞机 文档编号:6559967 上传时间:2023-11-12 格式:PPT 页数:67 大小:416.50KB
返回 下载 相关 举报
基本数据类型和操作.ppt_第1页
第1页 / 共67页
基本数据类型和操作.ppt_第2页
第2页 / 共67页
基本数据类型和操作.ppt_第3页
第3页 / 共67页
基本数据类型和操作.ppt_第4页
第4页 / 共67页
基本数据类型和操作.ppt_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《基本数据类型和操作.ppt》由会员分享,可在线阅读,更多相关《基本数据类型和操作.ppt(67页珍藏版)》请在三一办公上搜索。

1、第 2 章 基本数据类型和操作,JDK、JRE与JVM的作用与关系?,JDK:Java Development Kit Java开发工具包,其中包含Java编译器(javac.exe)、Java运行时环境JRE:Java Runtime Environment Java运行时环境(Java 虚拟机)+支持类库JVM:Java Virtual Machine 负责将Java字节码翻译为本地机器可以执行二进制机器码,问题,问题,JDK、JRE与JVM的作用与关系?,学习目标,编写简单的Java程序(2.2).使用标识符命名变量、常量、方法和类(2.3).Java数据类型使用Java运算符书写表达式

2、(2.7 2.10).使用 JOptionPane 输入对话框输入(2.14).熟悉Java的文档管理、编程风格和命名习惯(2.18).,编写一个简单的程序,计算的圆的面积.,ComputeArea,Run,跟踪程序执行过程,public class ComputeArea/*Main method*/public static void main(String args)double radius;double area;/Assign a radius radius=20;/Compute area area=radius*radius*3.14159;/Display results S

3、ystem.out.println(The area for the circle of radius+radius+is+area);,no value,radius,为 radius分配内存单元,跟踪程序执行过程,public class ComputeArea/*Main method*/public static void main(String args)double radius;double area;/Assign a radius radius=20;/Compute area area=radius*radius*3.14159;/Display results Syste

4、m.out.println(The area for the circle of radius+radius+is+area);,no value,radius,memory,no value,area,为 area分配内存单元,跟踪程序执行过程,public class ComputeArea/*Main method*/public static void main(String args)double radius;double area;/Assign a radius radius=20;/Compute area area=radius*radius*3.14159;/Displa

5、y results System.out.println(The area for the circle of radius+radius+is+area);,20,radius,no value,area,assign 20 to radius,跟踪程序执行过程,public class ComputeArea/*Main method*/public static void main(String args)double radius;double area;/Assign a radius radius=20;/Compute area area=radius*radius*3.1415

6、9;/Display results System.out.println(The area for the circle of radius+radius+is+area);,20,radius,memory,1256.636,area,compute area and assign it to variable area,跟踪程序执行过程,public class ComputeArea/*Main method*/public static void main(String args)double radius;double area;/Assign a radius radius=20

7、;/Compute area area=radius*radius*3.14159;/Display results System.out.println(The area for the circle of radius+radius+is+area);,20,radius,memory,1256.636,area,控制台输出信息,数据类型,I)值类型(Value Type)、基本类型、原生类型 8种,II)引用类型(Reference Type)、类类型 很多,值类型,引用类型(Reference Type),:int值类型的包装类:long值类型的包装类,变量,值类型名 变量名=值;引用

8、类型名 变量名=new 构造方法();,变量名可以包含中文吗?,标识符,标识符是一个由字母、数字、下划线(_)和美元符号($)构成的字符转.标识符必须由字母、下划线(_)或美元符号开始,不能用数字开头。标识符不能是保留字(参见附录A)。标识符不能是 true,false和null.标识符可以有任何长度.,变量,/Compute the first arearadius=1.0;area=radius*radius*3.14159;System.out.println(The area is“+area+for radius+radius);/Compute the second arearad

9、ius=2.0;area=radius*radius*3.14159;System.out.println(The area is“+area+for radius+radius);,变量说明,int x;/Declare x to be an/integer variable;double radius;/Declare radius to/be a double variable;char a;/Declare a to be a/character variable;,变量名使用小写字母,如果一个名字有多个词组成,每个词的第一个字母大写,赋值语句,x=1;/Assign 1 to x;r

10、adius=1.0;/Assign 1.0 to radius;a=A;/Assign A to a;,在第一步中说明和初始化变量,int x=1;double d=1.4;float f=1.4;,Is this statement correct?,float f=1.4f,常量,final datatype CONSTANTNAME=VALUE;final double PI=3.14159;final int SIZE=3;,常量用大写字母命名,例如PI,算术运算符,+,-,*,/,and%5/2结果为整型2.5.0/2结果为double类型2.55%2 结果为 1(求余数),Janu

11、ary 1,2005 是 Saturday,可推算 February 1,2005 是 Tuesday,注意,浮点型数不一定是精确存储.例如,System.out.println(1-0.1-0.1-0.1-0.1-0.1);显示 0.5000000000000001,而不是 0.5,System.out.println(1.0-0.9);显示 0.09999999999999998,而不是 0.1.整型数据是精确存储.,数值直接量,直接量是在程序中直接出现的常量值。int i=34;整型直接量在-231(-2147483648)到 2311(2147483647)之间.long类型在其后加L

12、.浮点型默认为 double 类型.float类型在其后加f 或F,double 类型加 d or D.例如:float:100.2f or 100.2F,double:100.2d or 100.2D.科学计数法可表示为:1.23456e+2,或者 1.23456e2,等价于 123.456,and 1.23456e-2 等价于 0.0123456.,算术表达式,翻译成(3+4*x)/5 10*(y-5)*(a+b+c)/x+9*(4/x+(9+x)/y),简捷赋值运算符,OperatorExample等价于+=i+=8i=i+8-=f-=8.0f=f-8.0*=i*=8i=i*8/=i/=

13、8i=i/8%=i%=8i=i%8,增量和减量运算符,Operator Name Description+var前置增量运算符 表达式执行前变量var先加1.var+后置增量运算符 表达式执行后变量var加1.-var前置减量运算符 表达式执行前变量var先减1.var-后置减量运算符 表达式执行后变量var减1,赋值表达式和赋值语句,以下表达式可作语句:variable op=expression;/op 可选+,-,*,/,or%+variable;variable+;-variable;variable-;,数值类型转换,考虑以下语句:byte i=100;long k=i*3+4;do

14、uble d=i*3.1+k/2;,Byte,short,int,long,float,double,范围增加,扩宽可自动转换,缩窄需明确指明,类型转换,隐式转换 double d=3;(类型拓宽)显式转换 int i=(int)3.0;(类型所在)int i=(int)3.9;(小数部分被截去)What is wrong?int x=5/2.0;,字符型数据类型,char letter=A;(ASCII)char numChar=4;(ASCII)char letter=u0041;(Unicode)char numChar=u0034;(Unicode),4位十六进制组成.,注意:字符型可

15、作自加、自减运算 char ch=a;System.out.println(+ch);,Unicode 统一码,Unicode 占2个字节,以 u开头的4个16进制数,范围从u0000 到 uFFFF.共65536个字符。,Unicode u03b1 u03b2 u03b3 for three Greek letters,特殊字符的转义字符序列,Description Escape Sequence UnicodeBackspace bu0008Tab tu0009换行 nu000A回车 ru000D斜杠 u005C单引号 u0027双引号 u0022,字符型和数值型之间的转换,int i=a

16、;/Same as int i=(int)a;char c=97;/Same as char c=(char)97;,比较运算符,Operator Namegreater than=greater than or equal to=equal to!=not equal to,布尔运算符,Operator Name!not&and|orexclusive or(异或),!真值表,&真值表,|真值表,真值表,举例,System.out.println(Is+num+divisible by 2 and 3?+(num%2=0),闰年?,boolean isLeapYear=(year%4=0),

17、年份:能被4整除,但是不能被100整除;或者能被400整除,&和|运算符,&:条件与(捷径与):如果第一个条件为假,则不需要再计算下个条件&:无条件与(按位与)|:条件或(捷径或):):如果第一个条件为真,则不需要再计算下个条件|:无条件或(按位或),If x is 1,what is x after this expression?(x 1)&(x+x)&(1 x+)How about(1=x)|(10 x+)?(1=x)|(10 x+)?,运算符优先级,表达式3+4*4 5*(4+3)1的结果?,var+,var-+,-(Unary plus and minus),+var,-var(ty

18、pe)Casting!(Not)*,/,%(Multiplication,division,and remainder)+,-(Binary addition and subtraction),=(Comparison)=,!=;(Equality)&(Unconditional AND)(Exclusive OR)|(Unconditional OR)&(Conditional AND)Short-circuit AND|(Conditional OR)Short-circuit OR=,+=,-=,*=,/=,%=(Assignment operator),运算符结合方向,除赋值运算符外,

19、所有的双目运算符都是左结合的。a b+c d等价于(a b)+c)d 赋值运算符右是结合的。a=b+=c=5 等价于 a=(b+=(c=5),举例,根据运算符优先级和结合方向,表达式 3+4*4 5*(4+3)-1 的求值过程如下:,运算对象的计算顺序,如果运算对象没有修改变量值的副作用,运算对象的运算顺序是无关紧要的。然而副作用确实存在。int a=0;int x=(a+)+a;int a=0;int x=+a+a;,X=1,X=2,表达式计算的规则,规则1:可能的情况下,从左向右依次计算所有的表达式;规则2:根据运算符的优先级进行运算;规则3:对优先级相同的相邻运算符,根据结合方向进行运算

20、。,表达式计算的规则,根据规则,表达式 3+4*4 5*(4+3)-1 的计算如下:,String 类型,String实际上Java定义的一个类。例如:String message=Welcome to Java;,字符串可以用“+”链接起来/Three strings are concatenatedString message=Welcome+to+Java;/String Chapter is concatenated with number 2String s=Chapter+2;/s becomes Chapter2/String Supplement is concatenated

21、 with character BString s1=Supplement+B;/s becomes SupplementB,字符串转为数值,int intValue=Integer.parseInt(intString);intString 是一个数值型字符串,例如“123”.double doubleValue=Double.parseDouble(doubleString);doubleString是一个数值型字符串,例如“123.45”.,String s=String.valueOf(value);其中 value 为任意一种数字类型。,从输入对话框获取输入,String strin

22、g=JOptionPane.showInputDialog(null,“Prompting Message”,“Dialog Title”,JOptionPane.QUESTION_MESSAGE);,两种调用方法,第一种:String string=JOptionPane.showInputDialog(null,x,y,JOptionPane.QUESTION_MESSAGE);第一个参数总是null,x 表示显示内容的字符串,y 表示对话框的标题,第四个参数是对话框显示的图标.第二种:JOptionPane.showMessageDialog(x);x 表示显示内容的字符串,Exampl

23、e 2.3 计算贷款支付额,ComputeLoan,Run,输入年利率、年数和贷款总额显示月支付额和总支付额,Example 2.4 整钱兑零,输入总钱数,然后兑换成 dollars(1元),quarters(2角5分),dimes(1角),nickels(5分),and pennies(1分).,ComputeChange,Run,程序跟踪,int remainingAmount=(int)(amount*100);/Find the number of one dollars int numberOfOneDollars=remainingAmount/100;remainingAmoun

24、t=remainingAmount%100;/Find the number of quarters in the remaining amount int numberOfQuarters=remainingAmount/25;remainingAmount=remainingAmount%25;/Find the number of dimes in the remaining amount int numberOfDimes=remainingAmount/10;remainingAmount=remainingAmount%10;/Find the number of nickels

25、in the remaining amount int numberOfNickels=remainingAmount/5;remainingAmount=remainingAmount%5;/Find the number of pennies in the remaining amount int numberOfPennies=remainingAmount;,1156,remainingAmount,remainingAmount initialized,Suppose amount is 11.56,程序跟踪,int remainingAmount=(int)(amount*100)

26、;/Find the number of one dollars int numberOfOneDollars=remainingAmount/100;remainingAmount=remainingAmount%100;/Find the number of quarters in the remaining amount int numberOfQuarters=remainingAmount/25;remainingAmount=remainingAmount%25;/Find the number of dimes in the remaining amount int number

27、OfDimes=remainingAmount/10;remainingAmount=remainingAmount%10;/Find the number of nickels in the remaining amount int numberOfNickels=remainingAmount/5;remainingAmount=remainingAmount%5;/Find the number of pennies in the remaining amount int numberOfPennies=remainingAmount;,1156,remainingAmount,Supp

28、ose amount is 11.56,11,numberOfOneDollars,numberOfOneDollars assigned,程序跟踪,int remainingAmount=(int)(amount*100);/Find the number of one dollars int numberOfOneDollars=remainingAmount/100;remainingAmount=remainingAmount%100;/Find the number of quarters in the remaining amount int numberOfQuarters=re

29、mainingAmount/25;remainingAmount=remainingAmount%25;/Find the number of dimes in the remaining amount int numberOfDimes=remainingAmount/10;remainingAmount=remainingAmount%10;/Find the number of nickels in the remaining amount int numberOfNickels=remainingAmount/5;remainingAmount=remainingAmount%5;/F

30、ind the number of pennies in the remaining amount int numberOfPennies=remainingAmount;,56,remainingAmount,Suppose amount is 11.56,11,numberOfOneDollars,remainingAmount updated,程序跟踪,int remainingAmount=(int)(amount*100);/Find the number of one dollars int numberOfOneDollars=remainingAmount/100;remain

31、ingAmount=remainingAmount%100;/Find the number of quarters in the remaining amount int numberOfQuarters=remainingAmount/25;remainingAmount=remainingAmount%25;/Find the number of dimes in the remaining amount int numberOfDimes=remainingAmount/10;remainingAmount=remainingAmount%10;/Find the number of

32、nickels in the remaining amount int numberOfNickels=remainingAmount/5;remainingAmount=remainingAmount%5;/Find the number of pennies in the remaining amount int numberOfPennies=remainingAmount;,56,remainingAmount,Suppose amount is 11.56,11,numberOfOneDollars,2,numberOfOneQuarters,numberOfOneQuarters

33、assigned,程序跟踪,int remainingAmount=(int)(amount*100);/Find the number of one dollars int numberOfOneDollars=remainingAmount/100;remainingAmount=remainingAmount%100;/Find the number of quarters in the remaining amount int numberOfQuarters=remainingAmount/25;remainingAmount=remainingAmount%25;/Find the

34、 number of dimes in the remaining amount int numberOfDimes=remainingAmount/10;remainingAmount=remainingAmount%10;/Find the number of nickels in the remaining amount int numberOfNickels=remainingAmount/5;remainingAmount=remainingAmount%5;/Find the number of pennies in the remaining amount int numberO

35、fPennies=remainingAmount;,6,remainingAmount,Suppose amount is 11.56,11,numberOfOneDollars,2,numberOfQuarters,remainingAmount updated,格式化输出,JDK 1.5Feature,Specifier OutputExample%b a boolean value true or false%c a character a%d a decimal integer 200%f a floating-point number 45.460000%e a number in

36、standard scientific notation 4.556000e+01%s a string Java is cool,编程风格和文档,适当的注释和注释类型命名习惯变量和方法常用小写,如果包含多个单词,第二个单词之后的每个单词的首字母大写类的每个单词首字母大写常量中所有字母大写,两个单词之间用下划线连接适当的缩进和空白块的对齐方式,块风格,程序错误,语法错误代码结构中的问题引起的,编译时检查运行错误引起程序非正常中断逻辑错误结果不正确,Syntax Errors,public class ShowSyntaxErrors public static void main(String

37、 args)i=30;System.out.println(i+4);,错误提示:i can not be resolved.i无法解析.没有定义数据类型.,int i=30;,Runtime Errors,public class ShowRuntimeErrors public static void main(String args)int i=1/0;,Logic Errors,public class ShowLogicErrors/Determine if a number is between 1 and 100 inclusively public static void ma

38、in(String args)/Prompt the user to enter a number String input=JOptionPane.showInputDialog(null,Please enter an integer:,ShowLogicErrors,JOptionPane.QUESTION_MESSAGE);int number=Integer.parseInt(input);/Display the result System.out.println(The number is between 1 and 100,+inclusively?+(1 number),调试,Jdk有一个命令行调试器(jdb)。一次执行一条语句进入或跳过方法设置断点显示变量,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号