




已阅读5页,还剩90页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2JAVA编程基础 Java程序的基本结构Java中的基本语法格式Java中的基本数据类型Java中的运算符程序的流程控制 2 1 1程序 程序是指按照时间顺序依次安排的工作步骤 而程序设计则是对这些步骤的编排和优化 计算机处理的核心是数据和运算 数据的基本存储单位是位 数据按照不同的数据类型来组织和存储 运算的基础是表达式 运算的控制手段是流程 无论是多么复杂的运算 都可以分解成顺序 选择和循环这三种基本的程序结构 2 1 2撰写规范的程序代码 程序代码质量评审原则 正确性指程序代码要实现软件设计所要求的功能 可靠性指程序代码最后编译的程序要能够稳定 可靠 安全的运行 规范化指程序代码书写的风格 命名规则等要符合规范 Java语言编码规范 中文版 可读性指程序代码要便于查看和理解 灵活性指程序代码的设计和编写应该易于维护和改动 2 1 3Java程序 一个Java程序的基本框架结构 Java程序由一个或多个独立的类组成 但其中必须有一个公有类 如 HelloWorld 而且源代码文件必须与这个公有类的名字相同 如 HelloWorld java Java的类可以由一个或多个方法组成 其中公有类中的main方法可用作程序运行的入口 TheFirstJavaProgrampublicclassHelloWorld publicstaticvoidmain String args System out println HelloWorld 程序头的注释 HelloWorld类 main方法 修饰符 方法头 方法体 方法名 参数 返回类型 2 1 4编辑 编译和运行Java程序 Java程序编译通过 会自动生成一个包含了这个源程序字节码的同名 class文件 该文件可以通过Java虚拟机运行 2 2Java中的基本语法格式 代码的位置分隔符代码的注释标志符关键字常量 2 2 1Java代码的位置 所有代码都存在于一个类里修饰符class类名 程序代码 2 2 2Java代码的位置 注意 Java是严格区分大小写的功能执行语句以 结束 这个分号必须是英文输入法中的 连续的字符串不能换行 可使用 连接HelloWorld java 分隔符使程序代码组织成编译器所理解的形式 它构造了语句的结构和程序的结构 分隔符 2 2 3Java代码的注释 注释的作用 解释程序中某些部分的作用和功能 提高程序的可读性 可以使用注释暂时屏蔽某些语句 在程序调试时使用 2 2 4Java代码的注释 单行注释 Commentsononeline 以 开头 直到当前行结束的所有文本都会被作为注释多行注释 Commentsononeormorelines 以 开头 以 结尾 中间的所有文本都会被作为注释文档注释 Documentationcomments 以 开头 以 结尾 中间可以加入特殊的指令 2 2 5Java代码的注释 单行注释intc 10 定义一个整型多行注释 intc 10 定义一个整型intx 5 注意 中可以嵌套 注释 但不能嵌套 2 2 6Java代码的注释 文档注释 Title test1类 Company NEUISE authorAAAbbb version1 0 CommentTest java 2 2 7Java代码的注释 文档注释放在类 变量和方法之前 说明其作用 可以通过文档生成工具提取文档注释 形成程序文档 javadoc dtestdoc version authortest java 2 2 8Java中的标识符 标识符是Java程序中的一个名字 可以用来表示程序中的一个变量 方法或类标识符只能包含字母 数字以及两个特殊符号 和 标识符只能以字母 和 开头 不能用数字作为标识符的开头 2 2 9Java中的标识符 标识符对大小写是敏感的 就是说myname与MyName是两个不同的标志符标识符是由Unicode字符组成的 因此可以使用汉字作为标识符 不推荐 尽量不用 汉字标识符不能用作类名和接口名 2 2 10标识符举例 合法的 valid 标识符identifier12userNameCAPTICAL NAMEuser name sys var strange 我是标识符 非法的 invalid 标识符username2userstar michal jordanc javaHello world 2 2 11Java中的关键字 又叫保留字 ReservedWords 是Java语言规定的 具有固定含义的标志符 关键字不能作为普通的标识符使用 2 2 12Java中关键字列表 注意 Java中没有goto const这些关键字 但不能用goto const作为变量名 2 2 13Java中的常量 常量就是程序里持续不变的值 是不能改变的数据 Java中的常量包括整型常量 浮点型常量 布尔常量 字符常量等 2 2 14常量的表示 整型常量十进制 不能以0开头十六进制 以0 x或0X开头0 x8a0X56d八进制 必须以0开头0340376长整型 必须以L l 结尾87L345L浮点数常量单精度 32位 型 2e3f0 6f8 09e 12f双精度 64位 型 4 1d1 23d 2 2 15常量的表示 布尔常量 true和false字符常量 a 5 n u0027 以反斜杠 开头的字符 反斜杠将其后面的字符转变为另外的含义 称为转义字符 r 表示接受键盘输入 相当于按下了回车键 n 是换行 t 是制表符 相当于table键 b 是退格键 相当于BackSpace 是单引号 而 是双引号 是一个斜杠 字符串常量 hello 8698 nmain null常量 null 表示对象的引用为空 字符例 2 3Java中的基本数据类型 Java的基本变量类型基本类型变量的声明 初始化和赋值基本数据类型之间的兼容性类型转换变量的作用域 2 3 1Java的基本数据类型 Java中的数据类型包括基本数据类型和引用类型 数据类型 基本数据类型 引用数据类型 数值型 字符型 char 布尔型 boolean 整数类型 byte short int long 浮点类型 float double 类 class 数组 array 接口 interface 2 3 2Java的基本数据类型 基本数据类型 primitivetypes 是Java语言中内置的数据类型 用于表示最简单的数据基本数据类型包括 整型 浮点型 字符型 逻辑型 2 3 3整型 integral 整数类型数据用于描述一个一定大小范围内的整数整数类型数据包括以下几种数据 long 64bits 263 263 1int 32bits 231 231 1short 16bits 215 215 1 32768 32767byte 8bits 27 27 1 128 127 2 3 4浮点型 floatingpoint 浮点类型数据用于描述一个范围很大的实数浮点类型数据包括两种 float 32bits 单精度 double 64bits 双精度浮点类型表示范围float占用四个字节 数字大小为1 4E 45 3 4E 38 1 4E 45 3 4E 38 double占用八个字节 数字大小为4 9E 324 1 7E 308 4 9E 324 1 7E 308 浮点类型数据有一定的精度限制 2 3 5字符型 character 字符类型为char 它用于表示一个字符C语言中char类型为8 bit 采用ASCII来表示 Java中char类型为16 bit 采用Unicode表示 很多时候char可以被当作一个整数类型的数据 2 3 6逻辑型 logical 逻辑类型为boolean 它用于表示真和假boolean类型只有两个值真 true 假 false boolean类型有自己的运算 不能参与其他数据类型之间的运算 2 3 7基本类型变量的声明 Java中所有的变量在使用之前都必须要进行声明Java中的变量可以随时声明 随时使用声明变量的语法 VariableTypename1 name2 2 3 8基本类型变量的声明 例如 inti charc 可以同时声明多个同一类型的变量 例如 inti1 i2 i3 charc1 c2 c3 doubled1 d2 d3 2 3 9变量的赋值 Java中的变量在使用之前都必须被赋一个初值给已经声明的变量赋于某一特定值的操作 称作赋值 比如 inti i 5 还可以采用已有的变量赋值 如 charc c a charc1 c1 c 赋值例 2 3 10变量的初始化 第一次对变量赋值的操作称为初始化 例如 inti 24 charc A 也可以使用已初始化的变量 floatf 0 2154645f doubled f 2 3 11基本数据类型之间的兼容性 小 的数据类型可以直接赋值给 大 的数据类型 大 的数据类型不能直接复制给 小 的数据类型 编译错误 数据类型之间的大小关系如下 整数类 long int short byte浮点类 double float 兼容性例1 2 3 12基本数据类型之间的兼容性 整数类数据类型可以赋值给浮点类数据类型 比如 float short float int double long float long 2 3 13基本数据类型之间的兼容性 char可以赋值给long和int 但是不能赋值给short和byte 编译错误 char可以赋值给float和doubleboolean与其他数据类型之间没有兼容性 兼容性例2 2 3 14基本数据类型之间的兼容性 将整数类的文字常量赋值给整数类变量时 如未强制声明文字常量为long型 使用L标志 则文字常量在变量的表示范围之内时可以赋值成功 否则将出现编译错误 例如 byteb 24 shorts 30000 inti 150000 byteb 5000 错误byte的范围为 128 127shorts 32768 错误short范围 32768 32767 兼容性例3 2 3 15基本数据类型之间的兼容性 当整数型文字常量被声明为long类型时 只能赋值给long型变量 当整数型文字常量在0 65535之间时 可以被赋值给char型变量char型文字常量可以被赋值给整数类变量 只要整数变量的类型可以容纳char型文字常量所表示的数值 兼容性例4 2 3 16基本数据类型之间的兼容性 浮点型文字常量默认为double型 而double型文字常量不能赋值给float型变量 如 doubled 3 14 floatf 3 14 错误3 14是double型floatf 3 14f 成功 2 3 17自动类型转换 自动类型转换 隐式类型转换 需要同时满足两个条件 1 两种类型彼此兼容2 目标类型的取值范围要大于源类型byteb 3 intx b OK 程序把b的结果 自动转成int型 2 3 18强制类型转换 强制类型转换 显式类型转换 当两种类型不兼容 或目标取值类型范围小于源类型时 自动类型转换无法进行 需要进行强制类型转换 语法 Type var 2 3 19强制类型转换 强制类型转换会损伤数据的精度 不恰当的强制类型转换会导致错误的运行结果 byteb inti 266 b byte i System out println b 输出结果为10 为什么 强制转换例1 2 3 20表达式的数据类型自动提升 所有byte型 short型和char型的值将被提升到int型如果一个操作数是long型 计算结果就是long型如果一个操作数是float型 计算结果就是float型如果一个操作数是double型 计算结果就是double型 类型提升例 publicstaticvoidmain String args byteb1 1 byteb2 2 byteb3 b1 b2 errorbyteb4 3 2 byteb5 2 b1 errorlongl1 2L inti1 l1 b1 errorinti2 2L 3 errorlongl2 l1 b1 longl3 2L 3 floatx 2 1f floaty 3 1f floatz1 x y floatz2 2 0f 3 0f floatz3 2 0f 3 0 errordoublez4 2 0f 3 0 类型综和例 2 3 20变量的作用域 变量的作用域指一个变量起作用的范围 它决定了一个变量何时可以访问 何时不可以访问Java中任何变量的作用域都从该变量声明之后开始Java中变量的作用域是声明该变量的语句块中 简单的说 变量只能在声明它的那个大括号中可用 2 3 21变量的作用域 intx 4 这之间只有x可以访问inty 1 x和y可以访问 intz 2 x y z都可以访问z 5 x 4 只有x和y可以访问 不可以访问z 变量作用域例 2 4Java中的运算符 数学运算符赋值运算符比较运算符逻辑运算符位运算符移位运算符 2 4 1数学运算符 取负 乘 除 模 加 减 两个整数之间的 运算结果还是整数 其结果是除的结果的整数部分 例如 5 2结果为2 要获得实数结果 运算中必须有至少一个浮点数 如 5 2 0结果为2 5 2 4 2数学运算符 数学运算的表达式结果 数学表达式的运算结果的数据类型与表达式中最大的数据的类型一致任何整数类型之间的数学运算其结果至少是int型 如果参与运算的数中存在至少一个long数 则运算结果为long 有浮点数参加的运算结果为浮点数 如操作数都是float 则结果为float 如有至少一个double则结果为double 2 4 3自增 自减运算符 前置 i i后置 i i 其功能是将所变量的值加1 减1 前置与后置的区别 假设i 5则 表达式 i 的值为6 运算完毕后i 6表达式 i 的值为5 运算完毕后i 6 2 4 4自增 自减运算符 inti 0 intj 0 i j i i j intp i j i 1 j 0 i 2 j 1 i 2 j 2 i 3 j 3 p 5 数学运算符 字符相加例 2 4 5赋值运算符 简单赋值 组合赋值 赋值运算符 注1 在JAVA里可以把赋值语句连在一起 如 x y z 5 在这个语句中 所有三个变量都得到同样的值5 注2 x 3等效于x x 3 等于 依此类推 2 4 6比较运算符 大小比较 2 i 5 比较运算符 注1 比较运算符的结果都是boolean型 也就是要么是true 要么是false 注2 比较运算符 不能误写成 publicclassTest publicstaticvoidmain String args intn 3 intm 4 System out println System out println nmis n m System out println nis n 自增比较例 2 4 7逻辑运算符 逻辑非 逻辑异或 逻辑与 逻辑或 逻辑运算符只能用于逻辑 boolean 类型之间逻辑运算的结果值为boolean型 逻辑运算符 逻辑运算符 逻辑运算真值表 2 4 8两类逻辑运算应用时的区别 在进行二元逻辑运算时 如果第一个操作数就可以确定逻辑表达式的值 则不再计算第二个操作数 这种现象叫做逻辑表达式的短路 short circuit 有两种情况 在进行 与 运算时 如果第一操作数为 假 则不再计算第二操作数 直接返回 假 在进行 或 运算时 如果第一操作数为 真 则不再计算第二操作数 直接返回 真 2 4 9两类逻辑运算应用时的区别 逻辑运算 打印出i 5 2 4 10两类逻辑运算应用时的区别 位运算 打印出i 6 2 4 11位运算符 按位取反 按位与 按位异或 按位或 位逻辑运算符只可用于整数类型 char和逻辑类型 不可应用于浮点类型 不可应用于boolean 应用整数类型时采用位逻辑 应用逻辑类型时进行逻辑运算位运算的表达式的类型规则与数学运算一致当运算作用于boolean变量时结果为boolean 2 4 12位运算符 位逻辑运算真值表 2 4 13位运算符 位逻辑运算举例 01001111 79 10110000 80 00101101 45 01001111 79 00001101 13 00101101 45 01001111 79 01100010 98 00101101 45 01001111 79 01101111 111 publicclassbitTest publicstaticvoidmain String args System out println 3 3 1 System out println 3 System out println 3 BitTest Java 2 4 14移位运算符 算术左移 算术右移 逻辑右移 位移运算只能应用于整数类型与char类型 不能应用于浮点类型和boolean类型位移运算的表达式的类型规则与数学运算一致 与 的区别是 在右移时最左侧填入原来的最高位 在右移时最左侧填入0 2 4 15移位运算符 举例 5 2结果为5相当于21 2200010101 2 00000101 19 2结果为 5相当于 19 2 1 11101101 2 11111011 2 4 16移位运算的注意事项 移位运算符适用类型有byte short char int long对低于int型的操作数将先自动转换为int型再移位 对于int型整数移位a b 系统先将b对32取模 得到的结果才是真正移位的位数 例如 a 33和a 1结果是一样的 a 32的结果还是a原来的数字 对于long型整数移位时a b 则是先将移位位数b对64取模 移位不会改变变量本身的值 如a 1 在一行语句中单独存在 毫无意义 x 1的结果和x 2的结果是一样的 x 2和x 4的结果也是一样的 总之 一个数左移n位 就是等于这个数乘以2的n次方 一个数右移n位 就是等于这个数除以2的n次方 请思考 如何用程序实现求2的x次方 publicclassTest publicstaticvoidmain String args intb1 5 2 byteb2 5 2 System out println 5 2 System out println 5 2 System out println 5 2 System out println b1 移位例 2 4 17运算符的优先级 低 高 2 4 18括号改变运算符的优先级 对于inta 2 intb a 3 a 这样的语句 b最终等于多少呢 8对于inta 2 intb a 3 a 这样的语句 b最终等于多少呢 11 2 4 19如何避免多个运算符带来的问题 不要在一行中编写太复杂的表达式 也就是不要在一行中进行太多的运算 改为几条语句来实现想要的结果 用括号或是分成多条语句来完成想要的功能 因为括号的优先级是最高的 这也是软件编码规范的一个要求 2 5程序中的流程控制 结构化的程序包含的三种结构 顺序结构选择结构循环结构 2 5 1顺序结构模型 i 6 j 8 p i j q i j 2 5 2选择结构模型 if语句 if booleanexpression statementorblock 1 elsestatementorblock 2 例子 if score 60 pass true System out println pass else pass false System out println fail 2 5 3if else 的简洁写法 变量 布尔表达式 语句1 语句2 If x 0 Y x Elsey x y x 0 x x IfTest1 2 5 4选择结构模 if语句 if语句可以嵌套 如 if score 60 pass true if score 85 System out println Excellent else System out println passed else pass false System out println failed 2 5 5选择结构模型 if语句 注意 booleanexp处只能是boolean类型 这一点与C C 不同 比如 intu if u 12 错误 IfTest2 2 5 6if语句的选择结构 总结 if 表达式 语句 if 表达式 语句1 else语句2 if 表达式1 语句1 elseif 表达式2 语句2 elseif 表达式3 语句3 else语句n 每个语句可以是使用 组成的复合语句变量 布尔表达式 语句1 语句2 If语句还可以嵌套使用if 表达式1 if 表达式2 语句1 else语句2 esleif 表达式2 语句3 else语句4 嵌套时最好使用 确定层次界限 2 5 7选择结构模型 switch语句 2 5 8选择结构模型 switch语句 switch intexpression caseint1 statementorblock 1 break caseint2 statementorblock 2 break caseint3 statementorblock 3 break default statementorblock 4 switch season case1 System out println Spring break case2 System out println Summer break case3 System out println autumn break case4 System out println winter break default System out println unkownseason 2 5 9switch语句的选择结构 Switch 表达式 case常量表达式1 语句1 case常量表达式2 语句2 case常量表达式n 语句n default 语句n 1 default语句是可选的 它接受除上面接受值的其他值 通俗的讲 就是谁也不要的都归它 case后面可以跟多个语句 这些语句可以不用大括号括起来 switch语句判断条件可接受int byte char short型 不可以接受其他类型一旦碰到第一次case匹配 就会开始顺序执行以后所有的程序代码 而不管后面的case条件是否匹配 后面case条件下的代码都会被执行 直到碰到break语句为止 可以利用这个特点来用同一段语句处理多个case条件 SwitchTest 2 5 10循环结构模型 while 例子 intnum1 1 intnum2 20 while num1 num2 num1 num2 while booleanexpression statementorbloc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2025年标准)续签项目协议书
- 土地勘测与开发设计方案
- (2025年标准)征地搬迁协议书
- (2025年标准)汽车融资租用协议书
- 2025年美容培训教育协议书
- 照护技能人才培养的策略及实施路径
- (2025年标准)木门加盟协议书
- 2025年坚果pro充电协议书
- 新型吸音板生产工程可行性研究报告
- (2025年标准)留岗待产协议书
- 供热公司工具管理制度
- 抗凝药物使用注意事项
- DZ 0141-1994地质勘查坑探规程
- 电玩城现场管理制度
- 第24部分:铁量的测定 硫氰酸盐分光光度法(报批稿)
- T/CECS 10386-2024排水工程微型顶管用高性能硬聚氯乙烯管及连接件
- 企业法律合规培训课件
- DBJ50-T-306-2024 建设工程档案编制验收标准
- 耳石症教学课件
- (2025)义务教育英语课程标准(2025年版)测试题含答案
- 多高层木结构建筑技术标准
评论
0/150
提交评论