第二章 Java语法基础
第二章 Java语法基础 1 常量和变量 2 运算符和表达式 4 本章案例 3 程序控制结构
基本数据类型 数值类型 基本数据类型 字符类型:char 布尔类型:boolean 数据类型 类:class 引用数据类型 数组 一、常量和变量 基本数据类型 数据类型 基本数据类型 引用数据类型 类:class 布尔类型:boolean 数组 接口:interface 字符类型:char 数值类型 浮点数类型:float,double 整数类型:byte,short,int,long 1、单行注释://注释内容;利用单行注释,从符号//直到换行位置内容均作为注释而被编译器忽略; 例如 int age=13; //定义Age用于保存年龄 2、多行注释:用/*…….*/ ;必须成对出现,注释内容写在两者之间,内容可换行; /* 注释内容1 注释内容2 */ 为了美观可写成: *注释内容1 *注释内容2 3、文档注释:和多行注释相似,文档注释出现在任何声明之前时,会被JavaDoc文档工具读取作为JavaDoc文档内容,文档是对代码结构和功能的描述。 /** 举例说明。
基本数据类型 一、常量和变量 类型 长度 表示范围 默认值 byte 8 bits -128 ~ +127 short 16 bits short 16 bits -32768~ + 32767 int 32 bits -231~(231-1) long 64 bits -263~(263-1) 0L,以l或L结束,84l float -2-149~(2-2-23)*2127 0.0,以f或F结束,8.4f double -2-1074~(2-2-52)*21023 0.0,以d或D结束,8.4d char 0 ~ 65535或者‘\u0000’ ~‘\uffff’ 0或者‘\u0000’ boolean true或false false 1、单行注释://注释内容;利用单行注释,从符号//直到换行位置内容均作为注释而被编译器忽略; 例如 int age=13; //定义Age用于保存年龄 2、多行注释:用/*…….*/ ;必须成对出现,注释内容写在两者之间,内容可换行; /* 注释内容1 注释内容2 */ 为了美观可写成: *注释内容1 *注释内容2 3、文档注释:和多行注释相似,文档注释出现在任何声明之前时,会被JavaDoc文档工具读取作为JavaDoc文档内容,文档是对代码结构和功能的描述。 /** 举例说明。
标识符 1、标识符是一个名称标识,用来为各种变量、类、接口、包等所起的名字,与内存中的某个位置(地址)相对应; 一、常量和变量 标识符 1、标识符是一个名称标识,用来为各种变量、类、接口、包等所起的名字,与内存中的某个位置(地址)相对应; 2、标识符的第一个字符必须是字母、下划线或美元符号字符之一,第二个字符及后继字符必须是上述任意字符或数字字符(0-9); 3、大小写敏感,无长度限制,可用汉字或者其他语言,标识符不能用Java的关键字和预留关键字。
Java关键字 boolean double import protected throws 一、常量和变量 Java关键字 abstract do implements private throw boolean double import protected throws break else instanceof public transient byte extends int return true case false interface short try catch final long static void char finally native super volatile class float new switch while continue for null synchronized default if this package goto const
常量 变量 常量是用来记录值不能发生变化的数据的标识符。 变量用来记录值可以发生改变的数据的标识符; 类型:基本数据类型变量和引用类型变量 一、常量和变量 常量 常量是用来记录值不能发生变化的数据的标识符。 变量 变量用来记录值可以发生改变的数据的标识符; 类型:基本数据类型变量和引用类型变量 位置:局部变量和成员变量(全局变量)
作用域和生命周期 成员变量的作用域是其所在的类;生命周期随着对象的创建而创建,随着对象的销毁而销毁; 一、常量和变量 作用域和生命周期 成员变量的作用域是其所在的类;生命周期随着对象的创建而创建,随着对象的销毁而销毁; 局部变量的作用域是所在方法内部或者代码块内部;生命周期就是所在方法或者代码块的一次执行期间。
复合赋值运算符“*=、/=、%=、+=、-= 、<<=、>>=、>>>=、&=、^=、|= ” 二、运算符与表达式 运算符 1、算术运算符 +、-、*、/、%、++、--等 2、赋值运算符 E1 op= E2 等效于 E1 = (T)((E1) op (E2)), 其中T 是 E1的类型 简单赋值运算符“=” 复合赋值运算符“*=、/=、%=、+=、-= 、<<=、>>=、>>>=、&=、^=、|= ”
<、<=、 >、 >=、!=、== 4、逻辑运算符 &&、||、!、^、&、| 5、位运算符 二、运算符与表达式 3、关系运算符 <、<=、 >、 >=、!=、== 4、逻辑运算符 &&、||、!、^、&、| 5、位运算符 &、|、^、 ~ 、<<、>>、>>> 6、条件运算符 移位运算举例: int a=5; 00000000 00000000 00000000 00000101 a<<2 00 00000000 00000000 00000000 00010100 a>>2 00000000 00000000 00000000 00000001 01 a>>>2 00000000 00000000 00000000 00000001 01 int a=-5 10000000 00000000 00000000 00000101 11111111 11111111 11111111 11111010 11111111 11111111 11111111 11111011 a<<2 11 11111111 11111111 11111111 11101100 a>>2 11111111 11111111 11111111 11111110 11 a>>>2 00111111 11111111 11111111 11111110 11 表达式1?表达式2 : 表达式3
1、表达式是由一系列变量、常量、运算符、方法调用按照语法规则构成的序列; 二、运算符与表达式 表达式 1、表达式是由一系列变量、常量、运算符、方法调用按照语法规则构成的序列; 2、运算符优先级。
基本数据类型转换 1、扩展转换 2、窄化转换 byte, short(char), int, long, float, double 二、运算符与表达式 基本数据类型转换 1、扩展转换 byte, short(char), int, long, float, double 扩展转换,比较安全 2、窄化转换 double, float, long, int, short, byte,char 窄化转换可能导致数据溢出或精度降低
for循环、while循环、do…while循环 三、控制结构 顺序结构 分支(选择)结构 If分支结构、switch多分支结构 循环结构 for循环、while循环、do…while循环 跳转语句 3.8 流程控制语句 1、顺序结构:最简单的基本结构,按照语句的顺序执行; 2、分支(选择)结构:对给定的条件进行判断,条件为真时执行一个分支,条件为假时执行一个分支; If分支结构、switch多分支结构 If分支结构可用于嵌套。If分支结构有简单的if结构、if……else……结构、if……else if……else if……else…….结构;另外if结构中还可以嵌套if结构。 if(逻辑表达式){ 语句或者语句块 } }else{ }else if(逻辑表达式){ .... [else{ }] switch(expression){ case(常量1): [语句或者语句块1; break;] case(常量2): [语句或者语句块2; ..... [default: 语句或者语句块; break; ] expression的值类型必须是int、byte、short、char、枚举、类之一; break是使得程序执行完一个分支后跳出switch语句; 举例说明:用If分支结构、switch多分支结构分别实现将百分制分数改为五分制。 3、循环结构:按照需要多次重复执行一行或者多行代码。 for循环、while循环、do…while循环 for循环用于循环次数已知的情况; while循环又称当型循环或前测试循环,有可能一次都不执行; do…while循环又称直到型循环或者后测试循环,至少执行一次。循环中可以嵌套循环。 举例说明: 1)利用三种循环分别实现1…100之间所有整数的和; 2)利用三种循环分别实现打印99乘法表。 4、跳转语句 1、break跳转:break语句可以应用在循环语句中,用于强制跳出循环,即一碰到break语句忽略循环体中的任何其他语句和循环条件的限制。break语句也可以应用在Switch语句,用于终止Switch语句。break语句也可以用在代码块中,用于跳到它所指定的代码块中; 举例说明。 2、continue跳转:continue语句只能应用在循环语句中,用于强制跳出本次循环,即一碰到continue语句忽略循环体中的任何其他语句,转而进行下一次循环。 3、return跳转:用于方法返回,格式return 表达式; 表达式的类型与声明方法类型一致,不一致应通过强制类型转换来实现。 break、continue、return
1、运行程序,进入下图所示程序界面。 四、综合案例 3.8 流程控制语句 1、顺序结构:最简单的基本结构,按照语句的顺序执行; 2、分支(选择)结构:对给定的条件进行判断,条件为真时执行一个分支,条件为假时执行一个分支; If分支结构、switch多分支结构 If分支结构可用于嵌套。If分支结构有简单的if结构、if……else……结构、if……else if……else if……else…….结构;另外if结构中还可以嵌套if结构。 if(逻辑表达式){ 语句或者语句块 } }else{ }else if(逻辑表达式){ .... [else{ }] switch(expression){ case(常量1): [语句或者语句块1; break;] case(常量2): [语句或者语句块2; ..... [default: 语句或者语句块; break; ] expression的值类型必须是int、byte、short、char、枚举、类之一; break是使得程序执行完一个分支后跳出switch语句; 举例说明:用If分支结构、switch多分支结构分别实现将百分制分数改为五分制。 3、循环结构:按照需要多次重复执行一行或者多行代码。 for循环、while循环、do…while循环 for循环用于循环次数已知的情况; while循环又称当型循环或前测试循环,有可能一次都不执行; do…while循环又称直到型循环或者后测试循环,至少执行一次。循环中可以嵌套循环。 举例说明: 1)利用三种循环分别实现1…100之间所有整数的和; 2)利用三种循环分别实现打印99乘法表。 4、跳转语句 1、break跳转:break语句可以应用在循环语句中,用于强制跳出循环,即一碰到break语句忽略循环体中的任何其他语句和循环条件的限制。break语句也可以应用在Switch语句,用于终止Switch语句。break语句也可以用在代码块中,用于跳到它所指定的代码块中; 举例说明。 2、continue跳转:continue语句只能应用在循环语句中,用于强制跳出本次循环,即一碰到continue语句忽略循环体中的任何其他语句,转而进行下一次循环。 3、return跳转:用于方法返回,格式return 表达式; 表达式的类型与声明方法类型一致,不一致应通过强制类型转换来实现。
2、在上图中输入数字“1”,执行用户管理操作,程序进入如下图所示程序界面。 四、综合案例 2、在上图中输入数字“1”,执行用户管理操作,程序进入如下图所示程序界面。 3.8 流程控制语句 1、顺序结构:最简单的基本结构,按照语句的顺序执行; 2、分支(选择)结构:对给定的条件进行判断,条件为真时执行一个分支,条件为假时执行一个分支; If分支结构、switch多分支结构 If分支结构可用于嵌套。If分支结构有简单的if结构、if……else……结构、if……else if……else if……else…….结构;另外if结构中还可以嵌套if结构。 if(逻辑表达式){ 语句或者语句块 } }else{ }else if(逻辑表达式){ .... [else{ }] switch(expression){ case(常量1): [语句或者语句块1; break;] case(常量2): [语句或者语句块2; ..... [default: 语句或者语句块; break; ] expression的值类型必须是int、byte、short、char、枚举、类之一; break是使得程序执行完一个分支后跳出switch语句; 举例说明:用If分支结构、switch多分支结构分别实现将百分制分数改为五分制。 3、循环结构:按照需要多次重复执行一行或者多行代码。 for循环、while循环、do…while循环 for循环用于循环次数已知的情况; while循环又称当型循环或前测试循环,有可能一次都不执行; do…while循环又称直到型循环或者后测试循环,至少执行一次。循环中可以嵌套循环。 举例说明: 1)利用三种循环分别实现1…100之间所有整数的和; 2)利用三种循环分别实现打印99乘法表。 4、跳转语句 1、break跳转:break语句可以应用在循环语句中,用于强制跳出循环,即一碰到break语句忽略循环体中的任何其他语句和循环条件的限制。break语句也可以应用在Switch语句,用于终止Switch语句。break语句也可以用在代码块中,用于跳到它所指定的代码块中; 举例说明。 2、continue跳转:continue语句只能应用在循环语句中,用于强制跳出本次循环,即一碰到continue语句忽略循环体中的任何其他语句,转而进行下一次循环。 3、return跳转:用于方法返回,格式return 表达式; 表达式的类型与声明方法类型一致,不一致应通过强制类型转换来实现。
四、综合案例 3、在上图中输入数字“2”,执行用户登录,程序提示输入登录类型,输入用户类型后,输入用户名和密码。若用户名和密码输入正确,提示登录成功信息,否则提示登录失败信息,结果界面下图所示。 3.8 流程控制语句 1、顺序结构:最简单的基本结构,按照语句的顺序执行; 2、分支(选择)结构:对给定的条件进行判断,条件为真时执行一个分支,条件为假时执行一个分支; If分支结构、switch多分支结构 If分支结构可用于嵌套。If分支结构有简单的if结构、if……else……结构、if……else if……else if……else…….结构;另外if结构中还可以嵌套if结构。 if(逻辑表达式){ 语句或者语句块 } }else{ }else if(逻辑表达式){ .... [else{ }] switch(expression){ case(常量1): [语句或者语句块1; break;] case(常量2): [语句或者语句块2; ..... [default: 语句或者语句块; break; ] expression的值类型必须是int、byte、short、char、枚举、类之一; break是使得程序执行完一个分支后跳出switch语句; 举例说明:用If分支结构、switch多分支结构分别实现将百分制分数改为五分制。 3、循环结构:按照需要多次重复执行一行或者多行代码。 for循环、while循环、do…while循环 for循环用于循环次数已知的情况; while循环又称当型循环或前测试循环,有可能一次都不执行; do…while循环又称直到型循环或者后测试循环,至少执行一次。循环中可以嵌套循环。 举例说明: 1)利用三种循环分别实现1…100之间所有整数的和; 2)利用三种循环分别实现打印99乘法表。 4、跳转语句 1、break跳转:break语句可以应用在循环语句中,用于强制跳出循环,即一碰到break语句忽略循环体中的任何其他语句和循环条件的限制。break语句也可以应用在Switch语句,用于终止Switch语句。break语句也可以用在代码块中,用于跳到它所指定的代码块中; 举例说明。 2、continue跳转:continue语句只能应用在循环语句中,用于强制跳出本次循环,即一碰到continue语句忽略循环体中的任何其他语句,转而进行下一次循环。 3、return跳转:用于方法返回,格式return 表达式; 表达式的类型与声明方法类型一致,不一致应通过强制类型转换来实现。