JavaSE-第2章 Java语法基础
1.标识符
- 标识符:按一定规则定义、命名的符号名称。
- 标识符命名规则:
(1)只能使用字母(含汉字)、数字、下划线、货币符号(如$或¥)。
(2)必须以字母、下划线或货币符号开头。
- 例如:x、y、i、j、k、str、_age、calculateArea、Who、stu1、stu2、$、数1、变量2、计算面积
- 两种标识符:
(1)预定义保留的关键字
(2)用户标识符
- 用途:对程序各个组成元素如变量、方法、类等命名。
2.Java关键字
3.变量
- 声明变量格式: 数据类型 变量名;
- 如: double x; x = 12.3; x = 5.6;
- int a=2, b, c=5;
- 变量要“先定义,后使用”。
- 方法内部的局部变量,要先赋值,再读取。
- 变量属于标识符。建议:
(1)以小写字母开头,一般不用下划线和货币符。
(2)骆驼式命名法
4.Java数据类型
5.字符串及其与数值的转换
- 字符串类型,用String表示,是类(class),不是基本类型。
如: "abcd" 、 "123" 、"张三"
长度(有效字符个数)分别是4、3和2。
- 声明字符串变量str并赋值:
String str = "abcd";
- 字符串长度str.length()为4。空串""的长度为0。
- 把字符串转换为int型和double型例子:
int i = Integer.parseInt("168");
double d = Double.parseDouble("3.14");
- 反之,把数值转换为字符串,方法是String.valueOf( )。如:
String s = String.valueOf(28.9);
1 /** 2 * @Time:2022/4/8 10:13 3 * @Author:Henry Scofield 4 * @File:Ex1.java 5 * @Software:IntelliJ IDEA 6 */ 7 // 编程,把字符串转成数值后相加,最后输出结果 8 public class Ex1 { 9 public static void main(String[] args) { 10 String s1 = "12.3",s2 = "4"; 11 double d1,d2,d3; 12 d1 = Double.parseDouble(s1); // 字符串转Double 13 d2 = Double.parseDouble(s2); 14 d3 = d1 + d2; 15 System.out.println(String.valueOf(d3)); // d3 Double型转回字符串 16 } 17 }
6.类型转换
7.转义符
- \n 表示换行符,反斜杠开头的字符叫转义符。
- 转义符常用的还有 \r(回车符)、\t(制表符)。
- 字符串可以包含转义符,例如:
String str = "abcd\n123";
System.out.println(str);
- 要输出反斜杠本身,则要使用两个反斜杠\\。例如:
System.out.println("D:\\JavaProg");
- 输出结果:D:\JavaProg
8.运算符
(1)运算符优先级
- 优先级:不同种类的运算符具有不同的执行次序(等级)。
- 如:先乘除、后加减。
- 可采用圆括号来改变运算符的执行次序。如:
a = (b + c) * d
- 同等优先级的运算符通过结合性控制运算顺序。例:
4 / 2 * 6
- 运算符结合性:从左到右为左结合, 从右到左为右结合。
- 算术、关系等二元运算符是左结合的,
- 一元、三目条件和赋值运算符则是右结合的,如:
int a, b, c, d;
a = b = c = d = 18; //相当a = (b = (c = (d = 18)));
(2)常用的运算符
①算术运算符
- 二元算术运算符有5个:加、减、乘、除、求余:+ - * / %
- 两个整数相除是整除,结果只取整数(并非四舍五入)。
如:5 / 2,的值为2
- 求余也叫取余、取模,其运算符是%。例:
int a = 5 % 2; //a值:1
double x = 5 % 1.8; //x值:1.4
- double和float型数据,除法运算允许除数为零,结果无穷大Infinity。
- 零(如0.0)除以零也不出错,但结果为NaN(非数字)。
②字符串连接运算符 +
- 当含有字符串操作数时,运算符+成为字符串连接符。
- 串接表达式的值是字符串。例如:
System.out.println(12 + "34");
System.out.println("12" + 34);
System.out.println("12" + "34");
- 结果都是"1234"。
- 又如:
double x = 4.7, y = 2.4, sum = x + y;
System.out.println(x + "+" + y + "=" + sum);
- 输出结果为:4.7+2.4=7.1
③赋值运算符、赋值表达式及赋值语句
- 赋值表达式语法: 变量 = 表达式
- 赋值号=左边一定是变量,赋值号右边是表达式(含常量)。
- 赋值表达式的值就是左边变量值。如:
double d;
System.out.println(d = 4.7 + 2.4); //值7.1
- 在声明变量的同时,可赋初值给变量。语法:
数据类型 变量 = 表达式;
- 注意:赋值号=不能当成等号==。
- 赋值语句:赋值表达式加上英文分号,如:
i = 2;
④自增和自减运算符
- 整型、浮点型等变量可进行自增、自减运算,即加1、减1操作。运算符++和--均是一元的,又分前、后自增,前、后自减。如:++x x++ --x x--
1 /** 2 * @Time:2022/4/8 10:34 3 * @Author:Henry Scofield 4 * @File:Ex2.java 5 * @Software:IntelliJ IDEA 6 */ 7 public class Ex2 { 8 public static void main(String[] args) { 9 int a = 2, b; 10 double x = 3.5, y; 11 ++a; //a=3 12 --x; //x=2.5 13 System.out.println(a); //3 14 System.out.println(x); //2.5 15 b = a--; //b=3, a=2 16 y = x++; //y=2.5, x=3.5 17 System.out.println(a); //2 18 System.out.println(b); //3 19 System.out.println(x); //3.5 20 System.out.println(y); //2.5 21 22 } 23 }
9.var类型判断
10.作业
1. 编写字符界面计算器程序,运行时提示输入两个操作数,然后输出加减乘除运行结果。
1 import java.util.Scanner; 2 3 /** 4 * @Time:2022/4/8 10:39 5 * @Author:Henry Scofield 6 * @File:test1.java 7 * @Software:IntelliJ IDEA 8 */ 9 public class test1 { 10 public static void main(String[] args) { 11 System.out.println("==== 字符版计算器1 ===="); 12 Scanner sc = new Scanner(System.in); 13 double x,y; 14 System.out.println("请输入第一个操作数:x="); 15 x = sc.nextDouble(); 16 17 System.out.println("请输入第一个操作数:y="); 18 y = sc.nextDouble(); 19 20 System.out.println("运算结果如下:"); 21 System.out.println("x+y=" + (x + y)); 22 System.out.println("x-y=" + (x - y)); 23 System.out.println("x*y=" + (x * y)); 24 System.out.println("x/y=" + (x / y)); 25 sc.close(); 26 27 28 } 29 }
2. 修改第1题程序,使得运算结果中能直接显示输入的数据,而不是x+y之类。
1 import java.util.Scanner; 2 3 /** 4 * @Time:2022/4/8 10:47 5 * @Author:Henry Scofield 6 * @File:test2.java 7 * @Software:IntelliJ IDEA 8 */ 9 public class test2 { 10 public static void main(String[] args) { 11 System.out.println("==== 字符版计算器2 ===="); 12 Scanner sc = new Scanner(System.in); 13 double x, y; 14 System.out.println("请输入第一个操作数:x="); 15 x = sc.nextDouble(); 16 17 System.out.println("请输入第一个操作数:y="); 18 y = sc.nextDouble(); 19 20 System.out.println("运算结果如下:"); 21 System.out.println(x + "+" + y + "=" + (x + y)); 22 System.out.println(x + "-" + y + "=" + (x - y)); 23 System.out.println(x + "*" + y + "=" + (x * y)); 24 System.out.println(x + "/" + y + "=" + (x / y)); 25 sc.close(); 26 27 28 } 29 }