04_变量
变量的基本概念
- 数值可以改变的量就是变量
- 当需要在程序中记录单个数据内容时,则声明一个变量即可,而声明变量的本质就是在内存(在计算机的常用硬件中介绍过,用于临时存放CPU即将访问的数据和硬盘交换的数据,CPU可以直接访问它,效率比较高)中申请一个存储单元,由于该存储单元(就是去内存条里申请一个小格子,用小格子采集数据)中的数据内容可以发生改变,因此得名为“变量”。要存储更多的数据内容,就需要去申请更多的存储单元。
- 变量的作用:记录数据
- 变量的本质:在内存中申请一个存储单元
- 由于存放数据的内容大小不一样,导致所需存储单元的大小不一样,在Java语言中使用数据类型加以描述,为了方便下次访问还需要给该变量指定一个名字,用于记录该变量对应的存储单元。
变量的声明方式
-
数据类型 变量名 = 初始值;
-
其中 = 初始值可以省略,但 ; 不可以省略
/* 编程实现变量的声明和使用 */ public class VarTest { public static void main(String[] args) { // 1、声明一个变量并初始化 数据类型 变量名 = 初始值; int age = 18; // 2、打印变量的数值 + 字符串连接符 用于将两边的内容拼接/连接起来,结果还是字符串 System.out.println("age = " + age); // age = 18 } }
错误信息1:找不到符号
/* 编程实现变量的声明和使用 */ public class VarTest { public static void main(String[] args) { // 1、声明一个变量并初始化 数据类型 变量名 = 初始值; int age = 18; // 2、打印变量的数值 + 字符串连接符 用于将两边的内容拼接/连接起来,结果还是字符串 System.out.println("age = " + age); // age = 18 System.out.println("-----------------------------"); System.out.println("name = " + name); } } 一般遇到错误信息就去找^,^指向谁就是谁错,就是哪里出问题。 出现找不到符号的错误,要么就是单词拼写错误,要么就是符号不存在。
错误信息2:可能尚未初始化变量
/* 编程实现变量的声明和使用 */ public class VarTest { public static void main(String[] args) { // 1、声明一个变量并初始化 数据类型 变量名 = 初始值; int age = 18; // 2、打印变量的数值 + 字符串连接符 用于将两边的内容拼接/连接起来,结果还是字符串 System.out.println("age = " + age); // age = 18 System.out.println("-----------------------------"); // 3、使用变量的注意事项 // 3.1、使用变量之前需要声明 // System.out.println("name = " + name); // 错误:找不到符号 String name; System.out.println("name = " + name); } }
错误信息3:已在方法 main(String[])中定义了变量 age
public static void main(String[] args) { // 1、声明一个变量并初始化 数据类型 变量名 = 初始值; int age = 18; // 2、打印变量的数值 + 字符串连接符 用于将两边的内容拼接/连接起来,结果还是字符串 System.out.println("age = " + age); // age = 18 System.out.println("-----------------------------"); // 3、使用变量的注意事项 // 3.1、使用变量之前需要声明 // System.out.println("name = " + name); // 错误:找不到符号 // 3.2、使用变量之前需要初始化 // String name; // System.out.println("name = " + name); // 错误:可能尚未初始化 name String name = "淳神"; System.out.println("name = " + name); // name = 淳神 // 3.3 变量不能重复声明 int age = 17; // 错误: 已在方法 main(String[])中定义了变量 age }
正常情况
/*
编程实现变量的声明和使用
*/
public class VarTest {
public static void main(String[] args) {
// 1、声明一个变量并初始化 数据类型 变量名 = 初始值;
int age = 18;
// 2、打印变量的数值 + 字符串连接符 用于将两边的内容拼接/连接起来,结果还是字符串
System.out.println("age = " + age); // age = 18
System.out.println("-----------------------------");
// 3、使用变量的注意事项
// 3.1、使用变量之前需要声明
// System.out.println("name = " + name); // 错误:找不到符号
// 3.2、使用变量之前需要初始化
// String name;
// System.out.println("name = " + name); // 错误:可能尚未初始化 name
String name = "淳神";
System.out.println("name = " + name); // name = 淳神
}
}
变量的注意事项
- Java 是强类型语言,变量在使用前必须声明来指名其数据类型。
- 变量在使用之前必须初始化。
- 变量不能重复声明。
标识符(变量名就是标识符的一种)的命名规则(笔试)
-
由数字、字母、下划线以及 $ 等组成,其中数字不能开头。
-
在开发中一般是用字母,一般不太常用数字,不用 $.
-
不能使用Java的关键字,所谓关键字就是Java中用于表示特殊含义的单词。
-
区分大小写,长度没有限制但不宜过长。
-
尽量做到见名知意,支持中文但不推荐使用。
-
标识符可以给 类/变量/属性/方法/包 起名字。
变量输入输出案例:提示用户从键盘输入自己的姓名和年龄信息并打印出来。
分析:
- 声明两个变量,一个用来记录姓名,一个用来记录年龄
- 提示用户输入姓名和年龄并放到变量中
- 输出值,打印出来
/*
编程实现变量的输入输出
*/
// 导入Java目录中util目录中的Scanner
import java.util.Scanner;
public class VarIOTest {
public static void main(String[] args) {
// 1、声明两个变量,一个用来记录姓名,一个用来记录年龄
String name;
int age;
// 2、提示用户输入姓名和年龄并放到变量中
System.out.println("请输出您的姓名和年龄信息:");
// 创建一个扫描器来扫描键盘输入的内容,System.in代表键盘输入的内容
Scanner sc = new Scanner(System.in);
// 通过扫描器读取一个字符串数据放入变量name中
name = sc.next(); // 读取字符串
// 通过扫描器读取一个整数数据放入变量age中
age = sc.nextInt(); // 读取整数数据
// 两次读取中需要使用一个空格来隔开,按下回车,到下一步
// 3、输出值,打印出来
System.out.println("name = " + name);
System.out.println("age = " + age);
}
}
不能先输入年龄再输入姓名,否则会出错/异常:java.util.InputMismatchException------输入不匹配异常
变量输入输出案例的优化
/*
编程实现变量的输入输出
*/
// 导入Java目录中util目录中的Scanner
import java.util.Scanner;
public class VarIOTest {
public static void main(String[] args) {
// 1、声明两个变量,一个用来记录姓名,一个用来记录年龄
// String name;
// int age;
// 2、提示用户输入姓名和年龄并放到变量中 变量随时用随时声明
System.out.println("请输出您的姓名和年龄信息:");
// 创建一个扫描器来扫描键盘输入的内容,System.in代表键盘输入的内容
Scanner sc = new Scanner(System.in); // 好处:我在声明变量的同时把值也赋上了,就无缝衔接了
// 通过扫描器读取一个字符串数据放入变量name中
String name = sc.next(); // 读取字符串
// 通过扫描器读取一个整数数据放入变量age中
int age = sc.nextInt(); // 读取整数数据
// 两次读取中需要使用一个空格来隔开,按下回车,到下一步
// 3、输出值,打印出来 尽可能减少重复的代码
// System.out.println("name = " + name);
// System.out.println("age = " + age);
System.out.println("name = " + name + ", age = " + age); // 好处:用一个打印语句把两个变量的值都打印了,不用再写两个打印语句了。
}
}
官方库的使用
- jdk 中带有大量的 API 类,是由Java系统带来的工具库,这些工具数以万计!是Java官方程序员的技术积累。
- 使用这些类可以大大简化编程,提高开发效率。
- 具体的API类功能,可以参阅Java的参考手册。