Java 作为一门面向对象的高级编程语言,在编程时必须确定变量类型,因此这方面的基础能力必须要具备。
在本实训你将掌握: 1、 Java 中变量的使用; 2、 Java 中数据类型的使用。
第1关:变量与常量
任务描述
本小节你只需要完成:定义变量,并输出它。
相关知识
什么是常量,什么是变量
你只需要记住两点:
常量:就是一种不会根据环境而改变的数据,例如:圆周率。 变量:是一种能够根据不同环境产生不同值的数据,例如:手机电量。
例如图中的水杯容量,电池容量,人物等级都是变量。
怎么定义变量
在 Java
中,我们通过三个元素描述变量:变量类型、变量名以及变量值。 那什么是变量类型,变量名,变量值呢?
通过这张图你就能很好的理解了。 在计算机系统中有很多文件的类型(例如:视频文件,音频文件,office
文件等等),在Java
中的变量类型又有哪些呢?在JAVA
中变量类型大致可以分为两种一种是数值类型
,一种是非数值类型
,数值类型又分为两种:整形
和非整形
如图所示:
如果你理解了,那么请你查看下图,思考哪些是数值类型
,整形
,非整形
,非数值类型
。
答案在最下方.
接下来我们就要开始定义变量了,需要四个步骤。
- 确定变量类型。
- 取变量名。
- 给变量赋初值。
- 别忘了分号结尾哦。
例如:我们要定义一个名字是张三的变量,并且输出:
public static void main(String[] args){
String name = "张三";
System.out.println(name);
}
输出的结果: 张三
思考题答案
编程要求
请在Begin-End
区域中定义一个名为 love
的变量,并且给变量赋值www.educoder.net
,然后输出。 程序运行结果:www.educoder.net
测试说明
平台会对你的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
开始你的任务吧,祝你成功!
package chapter2.step1;
public class HelloWorld{
public static void main(String[] args){
/********* Begin *********/
String love = "www.educoder.net";
System.out.println(love);
/********* End *********/
}
}
第2关:变量的使用
任务描述
本小节,你只需要完成:根据变量的命名规则给变量赋值。
相关知识
变量的命名规则和规范
我们定义变量的时候应该遵守什么规则呢? 我们先来看一张图。
这些都是`符合规则`的。 再来看一张图。
这些都是 `不符合规则`的。 相信看到这里你就明白了,`JAVA`中`变量`的命名和前面第一章所学的`标识符`命名规则是一样的,不过还是有一些不同,总结下来规则与规范一共有六点: 1. 由字母,下划线,美元符号($),数字组成,但第一个字符不能是数字。 1. 如果变量名是复合型的那么我们采用驼峰式,或者蛇形式的方式。 驼峰式:`teaCup`(表示茶杯的意思),`stuAge`(学生年龄) 蛇形式:`tea_cup`,`stu_age` 1. 如果是单个单词就全小写就行了。 1. 千万不要用中文拼音来表达:例如学生年龄:`xueShengNianling`。 1. 在一个方法中变量名不能重复。 1. 变量一定要给自己一个确定的类型。
变量的赋值
我们定义了一个变量 name
,用来保存一个字符串 “张三丰” , 在程序中只要找到了 name
这个变量,就能找到存储在里面的 ”张三丰”!当然,我们也可以把 name
的值更换成新的字符串 “张三”。 最后的输出结果为: 变量name的值为张三丰
最新赋值后变量name的值为张三
编程要求
在Begin-End
区域中添加代码定义love
变量并且赋初值为 我喜欢在educoder上学习
在12行将userName的值改成李四
。 运行结果:
测试说明
平台会对你的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
开始你的任务吧!祝你成功。
package chapter2;
public class HelloVariable {
public static void main(String[] args) {
/********* Begin *********/
String love = "我喜欢在educoder上学习"; //在这里定义变量 love 并赋初值为 我喜欢在educoder上学习
/********* End *********/
System.out.println("变量love的值为" + love);
String userName = "张无忌";
/********* Begin *********/
userName = "李四"; //在这一行将userName的值改成李四
/********* End *********/
System.out.println("重新赋值后变量userName的值为" + userName);
}
}
第3关:变量测试题
1.
下列语句中,(BD)正确完成整形变量的声明和赋值
A、int count,count=0;
B、int count=0;
C、count=0;
D、int count1=0,count2=1;
2.
在下列语句中(C)正确声明并初始化一个双精度型变量。
A、double d;
B、d=10;
C、double d=10;
D、float j=10;
第4关:JAVA数据类型
任务描述
本小节,需要你掌握两个知识:
1.JAVA中有多少种数据类型。
2.怎么定义这些数据类型的变量。
相关知识
JAVA中的数据类型
Java
基本类型共有八种,基本类型可以分为三类,字符类型char
,布尔类型boolean
以及数值类型byte、short、int、long、float、double
。数值类型又可以分为整数类型byte、short、int、long
和浮点数类型float、double
。JAVA中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变。实际上,JAVA
中还存在另外一种基本类型void
,它也有对应的包装类 java.lang.Void
,不过我们无法直接对它们进行操作。8 种类型表示范围如下: 2. byte
:8位,最大存储数据量是255
,存放的数据范围是-128127之间。 3. short
:16位,最大数据存储量是65536
,数据范围是-3276832767之间。 4. int
:32位,最大数据存储容量是2
的32
次方减1
,数据范围是负的2
的31
次方到正的2
的31
次方减1
。 5. long
:64位,最大数据存储容量是2
的64
次方减1
,数据范围为负的2
的63
次方到正的2
的63
次方减1
。 6. float
:32位,数据范围在3.4e
-451.4e38,直接赋值时必须在数字后加上f
或F
。 7. double
:64位,数据范围在4.9e
-3241.8e308,赋值时可以加d
或D
也可以不加。 8. boolean
:只有true
和false
两个取值。 9. char
:16位,存储Unicode
码,用单引号赋值。
这些东西你不需要把他背下来,当然如果你能背下来那更好了,我们现在对这些数据类型有个初步的印象,在之后的学习过程中会越来越熟悉的,好了接下来看两张图帮助记忆吧。
怎么定义对应数据类型的变量
好了相信你现在已经迫不及待的想要尝试一下了吧。接下来我们就一起来定义这八种数据类型吧。
编程要求
在右侧Begin-End
区域中,第7
行定义字符串类型变量赋值为张无忌
,第9
行定义int
类型变量赋值为23
,在第11
行定义字符型变量赋值为男
,在第13
行定义float
变量赋值为66.6
。 输出结果:张无忌23岁性别:男这次考了66.6分
测试说明
平台会对你的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
开始你的任务吧!祝你成功。
开始你的任务吧,祝你成功!
package chapter2;
public class JavaDataType1 {
public static void main(String[] args) {
/********* Begin *********/
String name = "张无忌"; //在本行定义字符串变量name
byte age = 23; //在本行定义年龄变量 age
char sex = '男'; //在本行定义性别变量 sex
float score = 66.6f; //在本行定义分数变量 score
/********* End *********/
System.out.println(name + age + "岁" + "性别:" + sex + "这次考了" + score + "分");
}
}
第5关:Java类型转换
任务描述
本小节需要根据所学知识,修改Java
代码,进行数据类型的转换,我们开始吧!
相关知识
什么是数据类型转换
顾名思义,数据类型转换就是指:不同数据类型之间的相互转换 关于数据类型转换只需要你掌握两种方式:
- 自动类型转换。
2.
强制类型转换。
自动类型转换
关于自动类型转换你只需要记住一句话,就是:表数范围小的可以向表数范围大的进行自动类型转换。 你可以这样理解:当一个小的容器的水换到一个大的容器中毫无问题,但是一个大的容器的水换成小的容器可能会装不下,就会溢出。 如下图:
在代码中体现:
如果你理解了,那就看个思考题吧。
答案在最后面哦。
强制类型转换
你肯定会有疑问,既然自动类型转换只能是表数范围小的可以向表数范围大的转换
那么我在实际使用中想要将表述范围大的向小的转换怎么办呢?诶这里就要用到强制类型转换了,顾名思义,强制类型转换就是将:表数范围大的数向表数范围小的进行转换。 那怎么使用强制类型转换呢?
思考题答案
编程要求
在Begin-End
区域中,定义了两个变量,在第 7 行
中有错误请修改,并调整。 预期输出: 89.3
89
测试说明
平台会对你的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
开始你的任务吧,祝你成功!
package chapter2;
public class TypeConvert {
public static void main(String[] args) {
/********* Begin *********/
double score=89.3;
int scoreInt = (int)score;
System.out.println(score);
System.out.println(scoreInt);
/********* End *********/
}
}
第6关:JAVA数据类型和类型转换测试题
1.以下不是Java基本数据类型的是(CD)
A、int
B、float
C、class
D、String
2.以下关于类型转换成功的有(CD)
float d = 84.5f;
A、char i=d;
B、int k=d;
C、int h=(int)d;
D、double c = d;
3.下面(AD)可以作为boolean类型变量的值
A、true
B、2
C、"false"
D、false
第7关:Scanner的使用
任务描述
本关任务:完成编写Scanner实现如下效果:
相关知识
为什么要使用Scanner
我们前面所有的章节的练习一直都是输出一段数据,我们知道一个软件是既要有输出也需要有输入的。而Scanner
就是用于用户在Java
程序中输入数据的。 所以对于Scanner
你可以理解为,它就是一个扫描仪,用来获取我们从键盘输入的数据。
怎么使用?
你只需要记住三个步骤:
- 在类的声明之前,引入扫描仪(
Scanner
):import java.util.Scanner;
- 在方法中创建一个扫描仪
Scanner input = new Scanner(System.in);
- 通过扫描仪获取从键盘输入的数据
int i = input.nextInt();
接下来,让我们一起在windows
系统中来使用一下Scanner
吧。
- 在
D盘
下新建一个java
的文件夹用来存放代码。 - 在
java
文件夹中新建一个HelloWorld.java
的文件如图所示:
- 在`HelloWorld.java`文件的第一行中输入`import java.util.Scanner;` 并在`main`函数中创建扫描仪(Scanner)如图所示:
- 输入如图所示代码:
- 最后我们一起来查看效果吧,使用`windows键+R`输入`cmd`打开`dos`界面按照如图所示操作来运行`java`程序吧。
提示
本关任务涉及到一些前面章节没有涉及到的细节。 如下:
- 打印输出并换行和打印输出不换行。
System.out.println("请输入姓名:嫦娥"); //输出并换行
System.out.print("请输入姓名:嫦娥"); //输出但不换行
- 在
JAVA
中tab
缩进,System.out.println(" 嫦娥");
System.out.print(" 嫦娥
");//本行代码和上一行代码实现同样的效果
编程要求
好了,是时候检验一下学习成果了。 在Begin-End
区域编写一个Java
程序,定义变量,从控制台接受输入来描述嫦娥的姓名、年龄、性别、体重、地址、婚否等信息,效果如下图:
提示:Scanner不能获取char
(字符)类型,获取小数类型需要使用nextDouble
方法或者是nextFloat
方法例如:
//获取输入的小数
double d = input.nextDouble();//获取输入的双精度类型数据
float f = input.nextFloat();//获取输入的单精度类型数据
测试说明
本次任务中涉及到了输入数据,你只需要将代码补充在右侧即可,需要输入的数据,平台会自动帮你填充并测试,以后平台自动填充的数据以测试输入
来表示。
测试输入:
嫦娥
3500
女
45.5
月球广寒宫
否
预期输出:
预期输出中绿色字体部分为平台输入的内容(在本地的效果和图中是一致的),不需要你输出,具体输出结果请查看右侧测试集。
开始你的任务吧,祝你成功!
package chapter2.step7;
/********* Begin *********/
import java.util.Scanner;
public class HelloWorld{
public static void main(String[] args){
Scanner input = new Scanner(System.in); //声明扫描仪
System.out.println("请录入嫦娥个人信息:");
System.out.println("请输入姓名:");
String name = input.next();
System.out.println("请输入年龄:");
int age = input.nextInt();
System.out.println("请输入性别:");
String xb = input.next();
System.out.println("请输入体重:");
float tizhong = input.nextFloat();
System.out.println("请输入地址:");
String dizhi = input.next();
System.out.println("请输入是否已婚:");
String hun = input.next();
System.out.println("信息如下:");
System.out.println("\t姓名:" + name);
System.out.println("\t年龄:" + age +"岁");
System.out.println("\t性别:" + xb);
System.out.println("\t体重:" + tizhong +"kg");
System.out.println("\t地址:" + dizhi);
System.out.println("\t婚否:" + hun);
/********* End *********/
}
}