【前言】昨天我们整理的方法,已经方法的调用,今天我们来拓展一些新内容,以及出一些练习题供你们练习,明天公布答案。
一、Jshell脚本工具
JShell
脚本工具是
JDK9
的新特性
(
了解
)
什么时候会用到
JShell
工具呢,当我们编写的代码非常少的时候,而又不愿意编写类,
main
方法,也不愿意去编 译和运行,这个时候可以使用JShell
工具。
启动
JShell
工具,在
DOS
命令行直接输入
JShell
命令。
![](https://img-blog.csdnimg.cn/ab215095e96b43298566db45d96cfb8e.png)
接下来可以编写
Java
代码,无需写类和方法,直接写方法中的代码即可,同时无需编译和运行,直接回车即可
![](https://img-blog.csdnimg.cn/c204eb7a49be4320ad6ba4077923a996.png)
小贴士
:
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
中体现:
![](https://img-blog.csdnimg.cn/275688703bf040219dd4740ff3d86ee8.png)
练习:
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、按步骤编写代码,效果如图所示:
![](https://img-blog.csdnimg.cn/ce80c23ce0f5411890a3d10ec3cbf1da.png)
编写步骤:
1.
定义类
Test4
2.
定义
main
方法
3.
定义两个
int
类型变量
a1
和
a2,
分别赋值
10,11,
判断变量是否为偶数
,
拼接输出结果
4.
定义两个
int
类型变量
b1
和
b2,
分别赋值
12,13,
判断变量是否为奇数
,
拼接输出结果
扩展题目
:
按步骤编写代码,效果如图所示:
![](https://img-blog.csdnimg.cn/f4d1c906d387468ba2e3ff06aa847fc8.png)
编写步骤:
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
的值
.
今天就学习到这里