第三章—Java基础语法
一、注释
1、说明
用某种特定的符号,标记的内容,不会被执行,对代码的功能进行说明。
2、种类
(1)单行注释
// 单行注释
(2)多行注释
/*
多行注释
**/
多行注释
**/
(3)文档注释
/**
* 文档注释,用于对类,方法,属性进行说明,在调用时会提示
*/
3、快捷键
快捷键进行注释 | 功能效果 |
---|---|
Ctrl + / | 单行注释。 |
Ctrl + Shift + / | 选中代码进行多行注释。 |
二、关键字
说明:Java自己保留的一些单词,作为特殊功能的单词。不能被用户来作为类名或者变量名,否则就会出错。
注:Java中还存在一些保留字(不是关键字),虽然还尚未使用,但是也不能作为类名或变量名。
关键字 | 含义 |
---|---|
abstract | 抽象类或方法 |
assert | 用来查找内部程序错误 |
break | 跳出一个switch或循环 |
byte | 8位整数类型 |
case | switch的一个分支 |
catch | 捕获异常的try块子句 |
class | 定义一个类类型 |
continue | 在循环末尾继续 |
default | switch的缺省语句 |
do | do/while循环最前面的语句 |
double | 双精度浮点数类型 |
else | if语句的else子句 |
enum | 枚举类型 |
extends | 定义一个类的父类 |
final | 一个常量,或不能覆盖的一个类或方法 |
finally | try块中总会执行的部分 |
float | 单精度浮点数类型 |
for | 一个循环类型 |
if | 一个条件语句 |
implements | 定义一个类实现的接口 |
import | 导入一个包 |
instanceof | 测试一个对象是否是某个类的实例 |
int | 32位整型数 |
interface | 接口,一种抽象类型,仅有方法和常量的定义 |
long | 64位长整数型 |
native | 由宿主系统实现的一个方法 |
new | 分配新的类实例 |
null | 一个空引用 |
package | 包含类的一个包 |
private | 表示私有字段,或者方法等,只能从类内部访问 |
protected | 表示保护类型字段 |
public | 表示共有属性或者方法 |
return | 从一个方法中返回 |
short | 16位整数类型 |
static | 这个特性是这个类特有的,而不属于这个类的对象 |
strictfp | 对浮点数计算使用严格的规则 |
super | 超类对象或构造函数 |
switch | 选择语句 |
synchronized | 对线程而言是原子的方法或代码块 |
this | 当前类的一个方法或构造函数的隐含参数 |
throw | 抛出一个异常 |
throws | 一个方法可能抛出的异常 |
transient | 标志非永久性的数据 |
try | 捕获异常的代码块 |
void | 标记方法不返回任何值 |
volatile | 标记字段可能会被多个线程同时访问,而不做同步 |
while | 一种循环 |
三、变量
1、说明:是用来存储一个数据的内存区域,且里面存储的数据可以变化。
2、定义格式
// 数据类型 变量名称 = 初始值;
int name = 1;
四、标识符
1、说明
为类、属性、方法等命名时所使用的字符序列称为标识符。
2、命名规则
由数字、字母、下划线( _ )、美元符号( $ )组成。不能以数字开头,不能是关键字,不能有空格,并且区分大小写。
3、约定俗成的标识符写法
1)变量名称:满足标识符规则,建议全英文、有意义、首字母小写,满足“驼峰模式”,例如:studyNumber
2)类名称: 满足标识符规则,建议全英文、有意义、首字母大写,满足“驼峰模式”,例如:HelloWorld
3)常量:全部大写,复合单词中间使用下划线_隔开,例如:STATIC_DATA = 1
五、运算符
1、基本算术运算符
加(+)、减(-)、乘(*)、除(/)、取余(%)
注:作除运算时,两个整数相除还是整数,向下取整
2、关系运算符
相等(==)、不等(!=)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=)。成立时返回true,不成立返回false。
注:判断相等使用的是连续的两个“等于号”,即“==”
3、逻辑运算符
逻辑与(&)、逻辑或(|)、逻辑非(!)、逻辑异或(^)
短路与(&&):左边为 false,右边则不执行。
短路或(||):左边为 true, 右边则不执行。
3、其他运算符
(1)+符号作连接符
当+可以作为“加”运算符时,优先做加法(如5 + 4,结果是9),不能再做连接符使用(如"abc" + 4,结果是"abc4")
(2)自增自减运算符
变量自身的值加一(++):放在变量前,先加一再使用;放在变量后,先试用,再加一
变量自身的值减一(–):放在变量前,先减一再使用;放在变量后,先试用,再减一
(3)赋值运算符
赋值(=):将右边的数据赋值给左边的变量(如:int data = 1;)
扩展赋值运算符:加后赋值(+=)、减后赋值(-=)、乘后赋值(*=)、除后赋值(/=)、取余后赋值(%=)。
如:data += 1;与data = data + 1;一致
(4)三元运算符
格式:条件表达式 ? 值1 : 值2;
执行流程:首先计算关系表达式的值,如果值为true,返回值1,如果为false,返回值2。
如求两个数的最大值:num1 > num2 ? num1 : num2;
4、运算符优先级
优先级 | 运算符 | 结合性 |
---|---|---|
1 | ()、[]、{} | 从左向右 |
2 | !、+、-、~、++、– | 从右向左 |
3 | *、/、% | 从左向右 |
4 | +、- | 从左向右 |
5 | «、»、>>> | 从左向右 |
6 | <、<=、>、>=、instanceof | 从左向右 |
7 | ==、!= | 从左向右 |
8 | & | 从左向右 |
9 | ^ | 从左向右 |
10 | | | 从左向右 |
11 | && | 从左向右 |
12 | || | 从左向右 |
13 | ?: | 从右向左 |
14 | =、+=、-=、*=、/=、&=、|=、^=、~=、«=、»=、>>>= | 从右向左 |
六、流程控制语句
1、顺序结构
程序代码按照先后顺序依次执行
2、选择结构
(1)if-else
格式1:
if (条件表达式) {
语句体;
}
格式2:
if (条件表达式) {
语句体1;
} else {
语句体2;
}
格式3:
if (条件表达式1) {
语句体1;
} else if (条件表达式2) {
语句体2;
} else if (条件表达式3) {
语句体3;
}
. . .
else {
语句体n+1;
}
(2)switch
注意:
①表达式类型只能是byte、short、int、char,JDK5开始支持枚举,JDK7开始支持String。不支持double、float、long。
②case给出的值不允许重复,不能是变量。
③如果break,九会出现穿透现象,即执行完当前case的代码块而不停止继续执行下方的代码,直到遇到break或switch语句结束。
switch(表达式){
case 值1:
执行代码...;
break;
case 值2:
执行代码...;
break;
…
case 值n-1:
执行代码...;
break;
default:
执行代码n;
}
(3)
3、循环结构
(1)for
格式:
for (初始化语句; 循环条件; 迭代语句) {
循环体语句(重复执行的代码);
}
(2)while
格式:
while (循环条件) {
循环体语句(被重复执行的代码);
迭代语句;
}
注:知道循环几次:使用for;不知道循环几次建议使用:while。
(3)do-while
格式:
do {
循环体语句;
迭代语句;
} while (循环条件);
特点:一定会先执行一次
(4)跳转控制语句
break : 跳出并结束当前所在循环的执行。 只能用于结束所在循环, 或者结束所在switch分支的执行。
continue: 用于跳出当前循环的当次执行,进入下一次循环。只能在循环中进行使用。
七、循环
七、数组
1、概念
数组就是用来存储一批同种类型数据的内存区域。
2、格式
数据类型[] 数组名 = new 数据类型[]{元素1,元素2 ,元素3… };
数据类型[] 数组名 = { 元素1,元素2 ,元素3,… };
数据类型[] 数组名 = new 数据类型[长度];
3、元素默认值
数据类型 | 默认值 |
---|---|
byte、short、char、int、long | 0 |
float、double | 0.0 |
boolean | false |
引用类型 :类、接口、数组、String等 | null |
4、注意
“数据类型[] 数组名”也可以写成 “数据类型 数组名[] ”
数组一旦定义出来,程序执行的过程中,长度、类型就固定了。
八、方法
1、说明
方法是一种语法结构,它可以把一段代码封装成一个功能,以方便重复调用。
提高了代码的复用性。,让程序的逻辑更清晰。
2、格式
修饰符 返回值类型 方法名( 形参列表 ){
方法体代码(需要执行的功能代码)
return 返回值; }
3、注意
方法的运行区域在栈内存。
方法的编写顺序无所谓。
方法与方法之间是平级关系,不能嵌套定义。
4、参数
实参:如在方法内部定义的变量。
形参:如在定义方法时,“()”中所声明的参数。
Java的参数传递机制:值传递:在传输实参给方法的形参的时候,并不是传输实参变量本身,而是传输实参变量中存储的值。引用类型的参数传输的是存储的地址值。
2、方法重载
(1)说明:同一个类中,多个方法的名称相同,形参列表不同。
(2)优势:可读性好,方法名称相同提示是同一类型的功能,通过形参不同实现功能差异化的选择。0