作者:龙井龙井2502908921 | 来源:互联网 | 2023-02-08 18:26
二、基本语法2.1标识符定义:给类、方法、变量等起的名字规则:可以使用字母(26个英文字母的大小写、各国的一些语言、…)、数字、下划线、美元符号;不能以数字开始(可以$开始);不能
二、基本语法
2.1 标识符
定义:给类、方法、变量等起的名字
规则:
可以使用字母(26个英文字母的大小写、各国的一些语言、…)、数字、下划线、美元符号;
不能以数字开始(可以$开始);
不能是Java中的关键字;
[▲Java]类名必须以大写字母开始
标识符的规范:
- 见名知义
- 有多个单词时,使用驼峰命名法(userName)
- 常量名全部大写
- 包名小写
- 类名首字母大写
- 工程名首字母大写
Unicode
前128个是ASCII表
- '0':48
- 'A'-Z':65-90
- 'a'-'z':97-122
Java关键字
2.2 常量
2.3 变量
注意:
- 必须给局部变量赋值;
2.3.1 变量定义的语法规范
变量定义、初始化
变量定义格式:
[变量修饰符] 变量数据类型 变量名1, 变量名2 [=变量初值];
变量修饰符:
[public/protected/private] [static] [final] [transient] [volatile]
成员变量的类型可以是Java中的任意类型,包括简单数据类型、类、接口、数组。
变量的初始化:
数据类型 |
初值 |
---|
整型(byte/short/int/long) |
0 |
float |
0.0f |
double |
0.0d |
boolean |
false |
char |
/u0000 |
对象类型 |
null |
变量分类、作用域
变量的作用域
变量分类:
- 全局变量:
- 实例成员变量:单个对象独有,修改对象自己的实例变量,不影响别的对象。
- 类成员变量(类变量、静态变量):被所有对象共享,使用static修饰。
- 成员变量有默认的初始值。
- 局部变量:定义在方法体中的变量,使用之前必须初始化。加载到栈空间。
- 类属性:具有相应的 set / get 方法。加载到堆空间。
注意:
变量名首字母一般小写。
* 成员变量 和 局部变量 的区别
![成员变量和局部变量的区别](https://img2.php1.cn/3cdc5/36a2/a6e/332263787a3cd468.png)
2.4 运算符
2.4.1 算术运算符
+, -, *, /, %
2.4.2 关系运算符
==, ===, !=, >, >=, <, <=
2.4.3 逻辑运算符
&&, ||, !, &, |
&&,||
进行“短路”运算;
即,有假必假,有真必真。
&, |
则不进行,两边都要进行运算。
2.4.4 赋值和复合运算符(优先级垫底)
+=, -=, *=, /=, %=;
>>=, <<=, >>>=
2.4.5 位运算符
>> /2, <<*2, >>>
位移运算(没有 <<<)。
右移运算符 >>
:
用最高位的 1
或 0
补。
无符号右移运算符 >>>
:
2.5 运算符优先级
算术运算符>关系运算符>逻辑运算符>赋值运算符
三、Java数据类型
3.1 基本数据类型(8大)
*基本数据类型的数据储存在栈内存中。
3.1.1 逻辑类型 boolean
3.1.2 整型 byte / short / int / long
- byte:1字节,-27~(27-1),-128 ~ 127,256个值。
- short:2字节,-215~(215-1),
- int:4字节,-2147483648~2147483647
- long:8字节
3.1.3 浮点类型 double / float
3.1.4 字符类型 char
*注意
- String类型不是基本数据类型;
- 字符串与什么相加都是字符串;
3.2 复合数据类型/引用数据类型
3.3 类型转换
数据类型的优先级(低→高)
byte,short,char→ int → long → float → double
3.3.1 自动/自动转换
低优先级转换为高优先级。
char隐式转换:字符在Unicode的编号。
boolean型数据和其他基本数据类型之间不能相互转换。
复合赋值操作:
short s = 10;
s = s + 1;//错误,s+1是int型
short s2 = 10;
s2 += 1;//正确,使用复合赋值操作时,编译器会把得到的s2+1转换成short型
byte, short, char这三者不管怎么组合运算得到的都是int型数据。
3.3.2 强制/显式转换
double dou2 = 3.14;
int myInt = (int)dou2;//myInt==3
四、程序的三种基本结构
4.1 顺序结构
4.2 分支结构
单分支、双分支、多分支。
语句:
if-else语句(可以嵌套)
if (expression) {
expression;
} else if (expression) {
expression;
} else {
expression;
}
switch-case语句
switch (expression) {
case 常量1:{
statements
break;
}
case 常量2: {
statements
break;
}
...
default: {
statements
break;
}
}
- 常量的数据类型要和expression一致。
- expression的值不能是浮点型,可以是字符串,字符,整型,枚举。
4.3 循环结构
for循环
while循环
do-while循环
*注意
五、数组
5.1 一维数组
5.1.1 定义
type arrayName[];
或者 type[] arrayName;
int[] intArray;
int intArray[];
People[] pArray;
5.1.2 初始化
静态初始化
int intArray[] = {1,2,3,4};
int[] arr = {1,2,3,4};//不能给数字
动态初始化
- 用new运算符为数组分配空间
- 格式:
type[] arrayName = new type[num];
int[] arr1 = new int[2];//{0,0}
arr1[0] = 123;
arr2[1] = 456;
注意:
对于动态初始化一维数组,如果只new没有赋值,数组中的所有元素会自动获得默认初始值。如下:
数组类型 |
元素默认初始值 |
---|
整型数组 |
0 |
浮点型数组 |
0.0 |
布尔型数组 |
false |
字符型数组 |
/u0000 |
类类型数组 |
null |
5.1.3 数组的下标与长度
引用方式:arrayName[index]
5.1.4 遍历数组
- for语句
int[] arr={1,2,3,4}
for(int i=0;i<5;i++) {
System.out.println(arr[i]);
}
- foreach
for(int num:arr) {
//arr数组中的元素,会依次赋给num
System.out.println("num="+num);
}
*注意
六、输入
6.1 控制台输入
import java.util.*;
Scanner sc = new Scanner(System.in);
先构造一个 Scanner
Scanner sc = new Scanner(System.in);
使用 next 等方法
String name = in.nextLine(System.in);
- next方法:字符串;
- nextLine方法:读取一行字符串;
- nextInt方法:读取整型;
- nextDouble方法:读取浮点数;
- ......