【前言】昨天我们整理的方法,已经方法的调用,今天我们来拓展一些新内容,以及出一些练习题供你们练习,明天公布答案。
一、Jshell脚本工具
JShell脚本工具是JDK9的新特性(了解)
什么时候会用到 JShell 工具呢,当我们编写的代码非常少的时候,而又不愿意编写类,main方法,也不愿意去编 译和运行,这个时候可以使用JShell工具。
启动JShell工具,在DOS命令行直接输入JShell命令。

接下来可以编写Java代码,无需写类和方法,直接写方法中的代码即可,同时无需编译和运行,直接回车即可

小贴士:
JShell工具,只适合片段代码的测试,开发更多内容,建议编写在方法中。
二、扩展知识点
+=符号的扩展
下面的程序有问题吗?
public static void main(String[] args){
short s = 1;
s+=1;
System.out.println(s);
}
分析: s += 1 逻辑上看作是 s = s + 1 计算结果被提升为int类型,再向short类型赋值时发生错误,因为不能 将取值范围大的类型赋值到取值范围小的类型。但是, s=s+1进行两次运算 , += 是一个运算符,只运算一次,并 带有强制转换的特点,也就是说 s += 1 就是 s = (short)(s + 1) ,因此程序没有问题编译通过,运行结果是2.
常量和变量的运算
下面的程序有问题吗?
public static void main(String[] args){
byte b1=1;
byte b2=2;
byte b3=1 + 2;
byte b4=b1 + b2;
System.out.println(b3);
System.out.println(b4);
}
分析: b3 = 1 + 2 , 1 和 2 是常量,为固定不变的数据,在编译的时候(编译器javac),已经确定了 1+2 的 结果并没有超过byte类型的取值范围,可以赋值给变量 b3 ,因此 b3=1 + 2 是正确的。
反之, b4 = b2 + b3 , b2 和 b3 是变量,变量的值是可能变化的,在编译的时候,编译器javac不确定b2+b3 的结果是什么,因此会将结果以int类型进行处理,所以int类型不能赋值给byte类型,因此编译失败。
在jshell中体现:

练习:
1、按步骤编写代码,效果如图所示:
编写步骤:
1. 定义类 Test2
2. 定义 main方法
3. 定义两个byte类型变量b1,b2,并分别赋值为10和20.
4. 定义变量b3,保存b1和b2的和,并输出.
5. 定义两个short类型变量s1,s2,并分别赋值为1000和2000.
6. 定义变量s3,保存s1和s2的和,并输出
2、按步骤编写代码,效果如图所示:
编写步骤:
1. 定义类 Test2
2. 定义 main方法
3. 定义 int类型变量i1 和 long类型变量l1
4. 定义变量add,保存i1和l1的和,并输出.
5. 定义 long类型变量l2 和 flfloat类型变量f2
6. 定义变量add2,保存l2和f2的和,并输出.
7. 定义 int类型变量i3 和 double类型变量d3
8. 定义变量add3,保存i3和d3的和,并输出.
3、按步骤编写代码,效果如图所示:

编写步骤:
1. 定义类 Test4
2. 定义 main方法
3. 定义两个int类型变量a1和a2,分别赋值10,11,判断变量是否为偶数,拼接输出结果
4. 定义两个int类型变量b1和b2,分别赋值12,13,判断变量是否为奇数,拼接输出结果
扩展题目:
按步骤编写代码,效果如图所示:

编写步骤:
1. 定义类 Test5
2. 定义 main方法
3. 定义方法printNum,在main方法中调用printNum方法
4. printNum方法中,定义flfloat变量f1赋值12345.01
5. printNum方法中,定义flfloat变量f2赋值12345.00
6. printNum方法中,定义flfloat 变量 var1 , 使用三元运算符赋值,当f1大于等于f2时,赋值12456 ,当f1小于f2
赋值12456.02
7. printNum方法中,定义flfloat 变量 var2 , 保存var1 与1024的和.
8. printNum方法中,同时输出var1,var2的值.
今天就学习到这里
本文介绍了JDK9新特性JShell脚本工具的使用场景,演示了+=符号扩展和常量变量运算在Java中的注意事项,并提供了练习题。涵盖了byte、short类型转换,以及不同数据类型间的运算规则。

1400

被折叠的 条评论
为什么被折叠?



